<?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>233719</bug_id>
          
          <creation_ts>2021-12-01 13:07:30 -0800</creation_ts>
          <short_desc>[WK2] Make Web Lock API work across multiple WebProcesses</short_desc>
          <delta_ts>2021-12-02 15:00:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>
          <dependson>233289</dependson>
          <blocked>232436</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819377</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 13:07:30 -0800</bug_when>
    <thetext>Make Web Lock API work across multiple WebProcesses when using modern WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819395</commentid>
    <comment_count>1</comment_count>
      <attachid>445610</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 13:44:40 -0800</bug_when>
    <thetext>Created attachment 445610
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819437</commentid>
    <comment_count>2</comment_count>
      <attachid>445622</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 15:16:58 -0800</bug_when>
    <thetext>Created attachment 445622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819439</commentid>
    <comment_count>3</comment_count>
      <attachid>445624</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 15:27:56 -0800</bug_when>
    <thetext>Created attachment 445624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819445</commentid>
    <comment_count>4</comment_count>
      <attachid>445627</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 15:42:41 -0800</bug_when>
    <thetext>Created attachment 445627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819457</commentid>
    <comment_count>5</comment_count>
      <attachid>445629</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 16:11:38 -0800</bug_when>
    <thetext>Created attachment 445629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819459</commentid>
    <comment_count>6</comment_count>
      <attachid>445630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 16:14:23 -0800</bug_when>
    <thetext>Created attachment 445630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819477</commentid>
    <comment_count>7</comment_count>
      <attachid>445634</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 16:51:29 -0800</bug_when>
    <thetext>Created attachment 445634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819513</commentid>
    <comment_count>8</comment_count>
      <attachid>445647</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 17:32:28 -0800</bug_when>
    <thetext>Created attachment 445647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819566</commentid>
    <comment_count>9</comment_count>
      <attachid>445668</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 21:34:52 -0800</bug_when>
    <thetext>Created attachment 445668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819568</commentid>
    <comment_count>10</comment_count>
      <attachid>445670</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 21:46:51 -0800</bug_when>
    <thetext>Created attachment 445670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819704</commentid>
    <comment_count>11</comment_count>
      <attachid>445670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-12-02 08:18:03 -0800</bug_when>
    <thetext>Comment on attachment 445670
Patch

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

Would it be worth adding a test using _relatedWebView to verify what happens when you have two pages in the same process?

&gt; Source/WebCore/Modules/web-locks/WebLockRegistry.h:76
&gt; +    HashMap&lt;ClientOrigin, PerOriginRegistry*&gt; m_perOriginRegistries;

Can this be a weak pointer?

&gt; Source/WebKit/WebProcess/WebCoreSupport/RemoteWebLockRegistry.messages.in:28
&gt; +    DidCompleteLockRequest(WebCore::WebLockIdentifier lockIdentifier, WebCore::ScriptExecutionContextIdentifier clientID, bool success);
&gt; +    DidStealLock(WebCore::WebLockIdentifier lockIdentifier, WebCore::ScriptExecutionContextIdentifier clientID);

It seems like this can be a completion handler on the RequestLock message that just contains whether it was success, failure, or stolen.  That would be nicer than introducing a new messages.in just for replies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819713</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-02 08:34:14 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; Comment on attachment 445670 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=445670&amp;action=review
&gt; 
&gt; Would it be worth adding a test using _relatedWebView to verify what happens
&gt; when you have two pages in the same process?
&gt; 
&gt; &gt; Source/WebCore/Modules/web-locks/WebLockRegistry.h:76
&gt; &gt; +    HashMap&lt;ClientOrigin, PerOriginRegistry*&gt; m_perOriginRegistries;
&gt; 
&gt; Can this be a weak pointer?

It can. It is not strictly needed but it is always better to be safe. I&apos;ll make the change.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/RemoteWebLockRegistry.messages.in:28
&gt; &gt; +    DidCompleteLockRequest(WebCore::WebLockIdentifier lockIdentifier, WebCore::ScriptExecutionContextIdentifier clientID, bool success);
&gt; &gt; +    DidStealLock(WebCore::WebLockIdentifier lockIdentifier, WebCore::ScriptExecutionContextIdentifier clientID);
&gt; 
&gt; It seems like this can be a completion handler on the RequestLock message
&gt; that just contains whether it was success, failure, or stolen.  That would
&gt; be nicer than introducing a new messages.in just for replies.

There are several issues with that:
1. It could get called twice: once with success because we got the lock and a second time later on because our lock got stolen.
2. It may not get called at all (request may get aborted before it is processed)

Both are really compatible with CompletionHandler and this is why the API currently uses 2 Functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819730</commentid>
    <comment_count>13</comment_count>
      <attachid>445727</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-02 09:29:46 -0800</bug_when>
    <thetext>Created attachment 445727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819763</commentid>
    <comment_count>14</comment_count>
      <attachid>445736</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-02 10:25:36 -0800</bug_when>
    <thetext>Created attachment 445736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819836</commentid>
    <comment_count>15</comment_count>
      <attachid>445763</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-02 12:46:58 -0800</bug_when>
    <thetext>Created attachment 445763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819878</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-02 14:59:47 -0800</bug_when>
    <thetext>Committed r286455 (244797@main): &lt;https://commits.webkit.org/244797@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445763.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819881</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-02 15:00:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/85990763&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445610</attachid>
            <date>2021-12-01 13:44:40 -0800</date>
            <delta_ts>2021-12-01 15:26:25 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>233719_WebLockAPI_multi_process_wip.patch</filename>
            <type>text/plain</type>
            <size>95389</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcAppbmRleCA4YzE1NDM3OTgzOTQuLjBjNzkzMTc5MjhlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTV2ViTG9ja01h
bmFnZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJhc2UuaCIKKyNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJMb2NrR3Jh
bnRlZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIgpAQCAt
NTIsNiArNTMsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxDbGllbnRPcmlnaW4+IGNsaWVudE9y
aWdpbkZyb21Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogCiBzdHJ1Y3QgV2ViTG9ja01h
bmFnZXI6OkxvY2tSZXF1ZXN0IHsKICAgICBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
cjsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKICAgICBT
dHJpbmcgbmFtZTsKICAgICBXZWJMb2NrTW9kZSBtb2RlIHsgV2ViTG9ja01vZGU6OkV4Y2x1c2l2
ZSB9OwogICAgIFJlZlB0cjxXZWJMb2NrR3JhbnRlZENhbGxiYWNrPiBncmFudGVkQ2FsbGJhY2s7
CkBAIC0xMzYsMTQgKzEzOCwxNSBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0KGNvbnN0
IFN0cmluZyYgbmFtZSwgT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxXZWJMb2NrRwogICAgICAgICB9
KTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIExv
Y2tSZXF1ZXN0IHsgbG9ja0lkZW50aWZpZXIsIG5hbWUsIG9wdGlvbnMubW9kZSwgV1RGTW92ZShn
cmFudGVkQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSB9KTsKKyAgICBhdXRvIGNs
aWVudElEID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdCB7IGxvY2tJZGVu
dGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZNb3ZlKGdyYW50ZWRDYWxs
YmFjayksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOwogCi0gICAgcmVxdWVzdExvY2tPbk1h
aW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIG5hbWUsIG9wdGlvbnMsIFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAg
ICByZXF1ZXN0TG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUs
IG9wdGlvbnMsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0o
Ym9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAg
ICAgd2Vha1RoaXMtPmRpZENvbXBsZXRlTG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIHN1Y2Nl
c3MpOwotICAgIH0sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmll
cl0oRXhjZXB0aW9uJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICB9LCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
ICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5zZXR0bGVSZWxlYXNlUHJvbWlzZShs
b2NrSWRlbnRpZmllciwgV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHdlYWtUaGlz
LT5zZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRF
cnJvciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJlcXVlc3QiX3MgfSk7CiAgICAgfSk7
CiB9CiAKQEAgLTE1Niw3ICsxNTksNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0
ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBibwogCiAgICAg
ICAgIGlmIChzdWNjZXNzKSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC5zaWduYWwgJiYgcmVx
dWVzdC5zaWduYWwtPmFib3J0ZWQoKSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25N
YWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7CisgICAgICAg
ICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwg
cmVxdWVzdC5jbGllbnRJRCwgcmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAKQEAgLTE2NCwxNSArMTY3LDE1IEBAIHZvaWQgV2ViTG9ja01hbmFn
ZXI6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZp
ZXIsIGJvCiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHJlcXVlc3QuZ3JhbnRlZENhbGxiYWNr
LT5oYW5kbGVFdmVudChsb2NrLnB0cigpKTsKICAgICAgICAgICAgIFJlZlB0cjxET01Qcm9taXNl
PiB3YWl0aW5nUHJvbWlzZSA9IHJlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpT
dWNjZXNzID8gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpIDogbnVsbHB0cjsKICAgICAgICAg
ICAgIGlmICghd2FpdGluZ1Byb21pc2UpIHsKLSAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09u
TWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0Lm5hbWUpOworICAgICAg
ICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIs
IHJlcXVlc3QuY2xpZW50SUQsIHJlcXVlc3QubmFtZSk7CiAgICAgICAgICAgICAgICAgc2V0dGxl
UmVsZWFzZVByb21pc2UocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgRXhpc3Rp
bmdFeGNlcHRpb25FcnJvciB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIERPTVByb21pc2U6OndoZW5Qcm9taXNlSXNTZXR0bGVkKHdhaXRp
bmdQcm9taXNlLT5nbG9iYWxPYmplY3QoKSwgd2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSwgW3Ro
aXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGxvY2tJZGVudGlmaWVyID0gcmVxdWVz
dC5sb2NrSWRlbnRpZmllciwgbmFtZSA9IHJlcXVlc3QubmFtZSwgd2FpdGluZ1Byb21pc2VdIHsK
KyAgICAgICAgICAgIERPTVByb21pc2U6OndoZW5Qcm9taXNlSXNTZXR0bGVkKHdhaXRpbmdQcm9t
aXNlLT5nbG9iYWxPYmplY3QoKSwgd2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSwgW3RoaXMsIHdl
YWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGxvY2tJZGVudGlmaWVyID0gcmVxdWVzdC5sb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQgPSByZXF1ZXN0LmNsaWVudElELCBuYW1lID0gcmVxdWVzdC5u
YW1lLCB3YWl0aW5nUHJvbWlzZV0gewogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09u
TWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgbmFtZSk7CisgICAgICAgICAgICAgICAgcmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKTsKICAgICAg
ICAgICAgICAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgc3RhdGljX2Nh
c3Q8SlNDOjpKU1ZhbHVlPih3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpKSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTE4NywzMyArMTkwLDMzIEBAIHZvaWQgV2ViTG9j
a01hbmFnZXI6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIGJvCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3RM
b2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VI
YW5kbGVyKQordm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVxdWVzdExvY2tPbk1haW5UaHJlYWQoV2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmIG9wdGlv
bnMsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQo
KT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKIHsKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRl
eHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNs
aWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBuYW1lID0gY3Jv
c3NUaHJlYWRDb3B5KG5hbWUpLCBtb2RlID0gb3B0aW9ucy5tb2RlLCBzdGVhbCA9IG9wdGlvbnMu
c3RlYWwsIGlmQXZhaWxhYmxlID0gb3B0aW9ucy5pZkF2YWlsYWJsZSwgbG9ja0lkZW50aWZpZXIs
IGdyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIHJlbGVhc2VIYW5kbGVy
ID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tS
ZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+cmVxdWVzdExvY2sobG9j
a0lkZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyLCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFp
bGFibGUsIFtjb250ZXh0SWRlbnRpZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50
ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIs
IFtncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBzdWNjZXNzXShhdXRv
JikgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRJRCwgY2xpZW50T3Jp
Z2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVh
ZENvcHkobmFtZSksIG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0aW9ucy5zdGVhbCwg
aWZBdmFpbGFibGUgPSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRpZmllciwgZ3JhbnRl
ZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgbG9ja1N0b2xlbkhhbmRsZXIgPSBX
VEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oYXV0byYgcmVnaXN0cnkpIG11dGFibGUgeworICAg
ICAgICByZWdpc3RyeS5yZXF1ZXN0TG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBj
bGllbnRJRCwgbmFtZSwgbW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBbY2xpZW50SUQsIGdyYW50
ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFi
bGUgeworICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0
VGhyZWFkKGNsaWVudElELCBbZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVy
KSwgc3VjY2Vzc10oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGdyYW50ZWRIYW5k
bGVyKHN1Y2Nlc3MpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sIFtjb250ZXh0SWRlbnRp
ZmllciwgcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKV0oRXhjZXB0aW9u
JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW3JlbGVhc2VIYW5k
bGVyID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlciksIGV4Y2VwdGlvbiA9IGNyb3NzVGhyZWFkQ29w
eShleGNlcHRpb24pXShhdXRvJikgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUhh
bmRsZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAgICAgfSwgW2NsaWVudElELCBsb2NrU3Rv
bGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAg
ICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNs
aWVudElELCBbbG9ja1N0b2xlbkhhbmRsZXIgPSBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0o
YXV0byYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGxvY2tTdG9sZW5IYW5kbGVyKCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViTG9ja01h
bmFnZXI6OnJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZWxlYXNl
TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSkK
IHsKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29w
eSgqbV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29w
eShuYW1lKV0gewotICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNs
aWVudE9yaWdpbiktPnJlbGVhc2VMb2NrKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKKyAgICBlbnN1
cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRP
cmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUgPSBjcm9zc1RocmVhZENvcHko
bmFtZSldKGF1dG8mIHJlZ2lzdHJ5KSB7CisgICAgICAgIHJlZ2lzdHJ5LnJlbGVhc2VMb2NrKGNs
aWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKTsKICAgICB9KTsKIH0K
IAogdm9pZCBXZWJMb2NrTWFuYWdlcjo6YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZChXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGVuc3Vy
ZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVu
dE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
ewotICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdp
biktPmFib3J0TG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFtjb250ZXh0SWRlbnRp
ZmllciwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9v
bCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBt
dXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElEID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29w
eSgqbV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29w
eShuYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byYgcmVnaXN0cnkpIG11dGFibGUgeworICAgICAgICByZWdpc3RyeS5hYm9ydExvY2tSZXF1
ZXN0KGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBbY2xpZW50
SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wg
d2FzQWJvcnRlZCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB3YXNBYm9ydGVkXShhdXRvJikgbXV0YWJsZSB7CiAg
ICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2FzQWJvcnRlZCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CkBAIC0yMjIsOCArMjI1LDggQEAgdm9pZCBXZWJMb2NrTWFuYWdl
cjo6YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmkKIAogdm9pZCBXZWJMb2NrTWFuYWdlcjo6cXVlcnlPbk1haW5UaHJlYWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9j
bGllbnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSgpIG11dGFibGUgewotICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNsaWVudE9yaWdpbiktPnNuYXBzaG90KFtjb250ZXh0SWRlbnRpZmllciwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU25hcHNob3QmJiBzbmFwc2hv
dCkgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBj
cm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYgcmVnaXN0cnkpIG11dGFibGUgeworICAgICAg
ICByZWdpc3RyeS5zbmFwc2hvdChjbGllbnRPcmlnaW4sIFtjb250ZXh0SWRlbnRpZmllciwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU25hcHNob3QmJiBz
bmFwc2hvdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpl
bnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzbmFwc2hvdCA9IGNyb3NzVGhyZWFkQ29w
eShzbmFwc2hvdCldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKHNuYXBzaG90KSk7CiAgICAgICAgICAgICB9KTsKQEAgLTMwMSwxMSAr
MzA0LDI5IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmNsaWVudElzR29pbmdBd2F5KCkKICAgICBt
X3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigpOwogICAgIG1fcmVsZWFzZVByb21pc2VzLmNsZWFyKCk7
CiAKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29w
eSgqbV9jbGllbnRPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aWRlbnRpZmllcigpXSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0
cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+Y2xpZW50SXNHb2luZ0F3YXkoY29udGV4dElkZW50
aWZpZXIpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCldKGF1dG8mIHJlZ2lzdHJ5KSB7CisgICAgICAgIHJl
Z2lzdHJ5LmNsaWVudElzR29pbmdBd2F5KGNsaWVudE9yaWdpbiwgY29udGV4dElkZW50aWZpZXIp
OwogICAgIH0pOwogfQogCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjplbnN1cmVPbk1haW5UaHJlYWQo
RnVuY3Rpb248dm9pZChXZWJMb2NrUmVnaXN0cnkmKT4mJiB0YXNrKQoreworICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm47CisgICAgQVNTRVJUKGNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKKwor
ICAgIGlmIChpczxEb2N1bWVudD4oKmNvbnRleHQpKSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2Ug
PSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAgIHRhc2so
cGFnZS0+d2ViTG9ja1JlZ2lzdHJ5KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvd25jYXN0
PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkudGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHko
KS5wb3N0VGFza1RvTG9hZGVyKFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oYXV0byYgY29udGV4dCkg
eworICAgICAgICAgICAgaWYgKGF1dG8gcGFnZSA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0
KS5wYWdlKCkpCisgICAgICAgICAgICAgICAgdGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnkoKSk7
CisgICAgICAgIH0pOworICAgIH0KK30KKwogYm9vbCBXZWJMb2NrTWFuYWdlcjo6dmlydHVhbEhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFtX3BlbmRpbmdSZXF1ZXN0
cy5pc0VtcHR5KCkgfHwgIW1fcmVsZWFzZVByb21pc2VzLmlzRW1wdHkoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCmluZGV4IGZlY2M0
MDkzODMzOS4uOTY4MjY2MjI0Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgTmF2aWdhdG9yQmFzZTsKIGNs
YXNzIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiAKIHN0
cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKQEAgLTYy
LDggKzYzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJMb2NrTWFuYWdl
cihOYXZpZ2F0b3JCYXNlJik7CiAKLSAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWluVGhyZWFkKFdl
YkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4mJiByZWxlYXNl
SGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWluVGhy
ZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9pZChib29sKT4m
JiwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lkIHJlbGVh
c2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGFib3J0TG9ja1Jl
cXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBxdWVyeU9uTWFpblRo
cmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmKTsKIApAQCAtNzIsNiAr
NzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsVG9BYm9ydFRoZVJlcXVlc3QoV2ViTG9j
a0lkZW50aWZpZXIpOwogICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoKTsKIAorICAgIHZvaWQg
ZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5Jik+JiYgdGFz
ayk7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QuCiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJTbmFw
c2hvdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJT
bmFwc2hvdC5oCmluZGV4IDdmNTMzYzNjYzcwMC4uNDQyYzMwM2QyYTg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJTbmFw
c2hvdC5oCkBAIC0zOCwxMiArMzgsNTUgQEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qg
ewogICAgICAgICBTdHJpbmcgY2xpZW50SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENvcHko
KSBjb25zdCB7IHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElkLmlz
b2xhdGVkQ29weSgpIH07IH0KKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBtb2Rl
IDw8IGNsaWVudElkOyB9CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEluZm8+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZlY3Rv
cjxJbmZvPiBoZWxkOwogICAgIFZlY3RvcjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9ja01h
bmFnZXJTbmFwc2hvdCBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhyZWFk
Q29weShoZWxkKSwgY3Jvc3NUaHJlYWRDb3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5j
b2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVjb2Rl
ciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9j
a01hbmFnZXJTbmFwc2hvdDo6SW5mbz4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5hbWU7
CisgICAgZGVjb2RlciA+PiBuYW1lOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7CisgICAg
ZGVjb2RlciA+PiBtb2RlOworICAgIGlmICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNvZGVy
ID4+IGNsaWVudElkOworICAgIGlmICghY2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92ZSgq
Y2xpZW50SWQpIH0gfTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9u
YWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+IGhl
bGQ7CisgICAgZGVjb2RlciA+PiBoZWxkOworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5kaW5n
OworICAgIGRlY29kZXIgPj4gcGVuZGluZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBXVEZN
b3ZlKCpwZW5kaW5nKSB9IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2YzI4
NDZiMi4uZWZiMDQxN2YzNzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
Yi1sb2Nrcy9XZWJMb2NrTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tNb2RlLmgKQEAgLTI2LDYgKzI2LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1lbnVtIGNsYXNzIFdlYkxvY2tNb2RlIHsgU2hhcmVkLCBFeGNsdXNpdmUgfTsKK2VudW0g
Y2xhc3MgV2ViTG9ja01vZGUgOiBib29sIHsgU2hhcmVkLCBFeGNsdXNpdmUgfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5j
cHAKaW5kZXggZjYyYzhmM2E1NjliLi45ZDRkZGRlZmIxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAtMzIsNTYg
KzMyLDkyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3Ry
eTo6TG9ja0luZm8gewotICAgIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5OwotICAgIFdl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGNsaWVudElEOwotICAgIFdlYkxvY2tNb2RlIG1vZGU7Ci0gICAgRnVuY3Rp
b248dm9pZChFeGNlcHRpb24mJik+IHJlbGVhc2VIYW5kbGVyOwotfTsKK2NsYXNzIExvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVkPFBlck9y
aWdpblJlZ2lzdHJ5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQZXJPcmlnaW5SZWdpc3Ry
eT4gY3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7Cisg
ICAgflBlck9yaWdpblJlZ2lzdHJ5KCk7CisKKyAgICBzdHJ1Y3QgTG9ja0luZm8geworICAgICAg
ICBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IHJlZ2lzdHJ5OworICAgICAgICBXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllcjsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQ7CisgICAgICAgIFdlYkxvY2tNb2RlIG1vZGU7CisgICAgICAgIEZ1bmN0
aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRsZXI7CisgICAgfTsKKworICAgIHZvaWQgcmVxdWVz
dExvY2soV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZh
aWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2
b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpOworICAgIHZvaWQgcmVsZWFzZUxvY2soV2ViTG9j
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1
ZXN0KFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVudHNBcmVH
b2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0Y2hDbGll
bnQpOworCitwcml2YXRlOgorICAgIFBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9ja1JlZ2lz
dHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisKKyAgICBzdHJ1Y3QgTG9ja1JlcXVlc3QgOiBM
b2NrSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBGdW5jdGlvbjx2b2lkKGJv
b2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB9OwogCi1zdHJ1Y3QgV2ViTG9ja1JlZ2lzdHJ5OjpM
b2NrUmVxdWVzdCA6IExvY2tJbmZvIHsKLSAgICBTdHJpbmcgbmFtZTsKLSAgICBGdW5jdGlvbjx2
b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB2b2lkIHByb2Nlc3NMb2NrUmVxdWVzdFF1
ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAgYm9vbCBp
c0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OworCisgICAgV2Vha1B0cjxMb2Nh
bFdlYkxvY2tSZWdpc3RyeT4gbV9nbG9iYWxSZWdpc3RyeTsKKyAgICBDbGllbnRPcmlnaW4gbV9j
bGllbnRPcmlnaW47CisgICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9s
b2NrUmVxdWVzdFF1ZXVlTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+
PiBtX2hlbGRMb2NrczsKIH07CiAKLXN0YXRpYyBIYXNoTWFwPENsaWVudE9yaWdpbiwgV2ViTG9j
a1JlZ2lzdHJ5Kj4mIHJlZ2lzdHJ5TWFwKCkKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpMb2NhbFdl
YkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworTG9jYWxXZWJMb2NrUmVnaXN0cnk6On5Mb2Nh
bFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworYXV0byBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6ZW5zdXJlUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmln
aW4pIC0+IFJlZjxQZXJPcmlnaW5SZWdpc3RyeT4KK3sKKyAgICBpZiAoYXV0byBleGlzdGluZ1Jl
Z2lzdHJ5ID0gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdldChjbGllbnRPcmlnaW4pKQorICAgICAg
ICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnk7CisKKyAgICByZXR1cm4gUGVyT3JpZ2luUmVnaXN0
cnk6OmNyZWF0ZSgqdGhpcywgY2xpZW50T3JpZ2luKTsKK30KKworYXV0byBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mIGNs
aWVudE9yaWdpbikgY29uc3QgLT4gUmVmUHRyPFBlck9yaWdpblJlZ2lzdHJ5PgogewotICAgIEFT
U0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PENsaWVudE9yaWdpbiwgV2ViTG9ja1JlZ2lzdHJ5Kj4+IHJlZ2lzdHJ5TWFwOwotICAgIHJldHVy
biByZWdpc3RyeU1hcDsKKyAgICByZXR1cm4gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdldChjbGll
bnRPcmlnaW4pOwogfQogCi1SZWY8V2ViTG9ja1JlZ2lzdHJ5PiBXZWJMb2NrUmVnaXN0cnk6OnJl
Z2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQorUmVmPExvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeT4gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoTG9jYWxXZWJMb2NrUmVnaXN0cnkmIGdsb2JhbFJlZ2lz
dHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKLSAgICBpZiAoYXV0byBl
eGlzdGluZ1JlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS5nZXQob3JpZ2luKSkKLSAgICAgICAgcmV0
dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlck9yaWdp
blJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5LCBjbGllbnRPcmlnaW4pKTsKK30KIAotICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkxvY2tSZWdpc3RyeShvcmlnaW4pKTsKK0xvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkoTG9jYWxXZWJMb2Nr
UmVnaXN0cnkmIGdsb2JhbFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdp
bikKKyAgICA6IG1fZ2xvYmFsUmVnaXN0cnkoZ2xvYmFsUmVnaXN0cnkpCisgICAgLCBtX2NsaWVu
dE9yaWdpbihjbGllbnRPcmlnaW4pCit7CisgICAgZ2xvYmFsUmVnaXN0cnkubV9wZXJPcmlnaW5S
ZWdpc3RyaWVzLmFkZChjbGllbnRPcmlnaW4sIHRoaXMpOwogfQogCi1XZWJMb2NrUmVnaXN0cnk6
OldlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKLSAgICA6IG1fb3Jp
Z2luKG9yaWdpbikKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6flBl
ck9yaWdpblJlZ2lzdHJ5KCkKIHsKLSAgICByZWdpc3RyeU1hcCgpLmFkZChtX29yaWdpbiwgdGhp
cyk7CisgICAgaWYgKG1fZ2xvYmFsUmVnaXN0cnkpCisgICAgICAgIG1fZ2xvYmFsUmVnaXN0cnkt
Pm1fcGVyT3JpZ2luUmVnaXN0cmllcy5yZW1vdmUobV9jbGllbnRPcmlnaW4pOwogfQogCi1XZWJM
b2NrUmVnaXN0cnk6On5XZWJMb2NrUmVnaXN0cnkoKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6cmVxdWVzdExvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0
ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5k
bGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgYXV0byog
cmVnaXN0cnkgPSByZWdpc3RyeU1hcCgpLnRha2UobV9vcmlnaW4pOwotICAgIEFTU0VSVF9VTlVT
RUQocmVnaXN0cnksIHJlZ2lzdHJ5ID09IHRoaXMpOworICAgIGVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNsaWVudE9yaWdpbiktPnJlcXVlc3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwg
bmFtZSwgbW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwg
V1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcikpOwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jcmVxdWVzdC1hLWxvY2sKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1
ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01v
ZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFz
ZUhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6
cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxv
Y2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFu
ZGxlcikKIHsKLSAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSB9LCBuYW1lLCBXVEZN
b3ZlKGdyYW50ZWRIYW5kbGVyKSB9OworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7ICp0aGlz
LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG1vZGUsIFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpIH0sIG5hbWUsIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CiAKICAgICBpZiAoc3RlYWwp
IHsKICAgICAgICAgYXV0byBpdCA9IG1faGVsZExvY2tzLmZpbmQobmFtZSk7CiAgICAgICAgIGlm
IChpdCAhPSBtX2hlbGRMb2Nrcy5lbmQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBsb2Nr
SW5mbyA6IGl0LT52YWx1ZSkKLSAgICAgICAgICAgICAgICBsb2NrSW5mby5yZWxlYXNlSGFuZGxl
cihFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3RoZXIgcmVx
dWVzdCIgfSk7CisgICAgICAgICAgICAgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIoKTsK
ICAgICAgICAgICAgIG1faGVsZExvY2tzLnJlbW92ZShpdCk7CiAgICAgICAgIH0KICAgICB9IGVs
c2UgaWYgKGlmQXZhaWxhYmxlICYmICFpc0dyYW50YWJsZShyZXF1ZXN0KSkgewpAQCAtOTYsOCAr
MTMyLDE0IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0CiAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0
UXVldWUobmFtZSwgcXVldWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpyZWxl
YXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBleGlzdGluZ1JlZ2lz
dHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikpCisgICAgICAgIHJlZ2lzdHJ5LT5yZWxlYXNlTG9j
ayhsb2NrSWRlbnRpZmllciwgbmFtZSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8v
d2ViLWxvY2tzLyNhbGdvcml0aG0tcmVsZWFzZS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6
cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpy
ZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lKQogewogICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgIGlm
IChpdCA9PSBtX2hlbGRMb2Nrcy5lbmQoKSkKQEAgLTExMyw4ICsxNTUsMTcgQEAgdm9pZCBXZWJM
b2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcKICAgICAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUobmFtZSwgcXVl
dWVJdGVyYXRvci0+dmFsdWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjphYm9y
dExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZv
ck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICByZWdpc3RyeS0+YWJvcnRMb2NrUmVx
dWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
fQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWJvcnQtdGhlLXJlcXVl
c3QKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcXVldWVJdGVyYXRv
ciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5maW5kKG5hbWUpOwogICAgIGlmIChxdWV1ZUl0ZXJh
dG9yID09IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5lbmQoKSkKQEAgLTEzNiw3ICsxODcsNyBAQCB2
b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBs
b2NrSWRlbnRpZmllciwgY29uc3QgUwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dl
Yi1sb2Nrcy8jZ3JhbnRhYmxlCi1ib29sIFdlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUoY29u
c3QgTG9ja1JlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Citib29sIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0CiB7CiAgICAgYXV0byBxdWV1ZUl0ZXJhdG9yID0gbV9sb2NrUmVxdWVzdFF1ZXVl
TWFwLmZpbmQocmVxdWVzdC5uYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciAhPSBtX2xvY2tS
ZXF1ZXN0UXVldWVNYXAuZW5kKCkgJiYgJnF1ZXVlSXRlcmF0b3ItPnZhbHVlLmZpcnN0KCkgIT0g
JnJlcXVlc3QpCkBAIC0xNTMsNyArMjA0LDcgQEAgYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3Jh
bnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogfQogCiAvLyBodHRwczov
L3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jcHJvY2Vzcy10aGUtbG9jay1yZXF1ZXN0LXF1ZXVl
Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3Ry
aW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdWVzdD4mIHF1ZXVlKQordm9pZCBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0
IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKIHsKICAgICB3aGlsZSAo
IXF1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIWlzR3JhbnRhYmxlKHF1ZXVlLmZpcnN0
KCkpKQpAQCAtMTY4LDggKzIxOSwxNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJvY2Vzc0xv
Y2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdQogICAgIEFT
U0VSVF9VTlVTRUQocmVtb3ZlZFF1ZXVlLCByZW1vdmVkUXVldWUuaXNFbXB0eSgpKTsKIH0KIAor
dm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6OlNuYXBz
aG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVnaXN0cnkgPSBleGlz
dGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbik7CisgICAgaWYgKCFyZWdpc3RyeSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAgICByZWdpc3RyeS0+
c25hcHNob3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiAvLyBodHRwczovL3dp
Y2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jc25hcHNob3QtdGhlLWxvY2stc3RhdGUKLXZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5h
Z2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBXZWJMb2NrTWFuYWdlcjo6U25hcHNob3Qgc25hcHNob3Q7CiAgICAgZm9yIChhdXRvJiBw
YWlyIDogbV9sb2NrUmVxdWVzdFF1ZXVlTWFwKSB7CkBAIC0xODQsMTQgKzI0NCwyMSBAQCB2b2lk
IFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2Nr
TWFuYWdlcjo6U25hcHNob3QmJgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNo
b3QpKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXko
Y29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdS
ZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+Y2xpZW50
c0FyZUdvaW5nQXdheShbY2xpZW50SURdKGF1dG8mIGxvY2tJbmZvKSB7IHJldHVybiBsb2NrSW5m
by5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIu
aW8vd2ViLWxvY2tzLyNhZ2VudC1pbnRlZ3JhdGlvbgotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OmNs
aWVudElzR29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
KQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNsaWVudHNB
cmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0Y2hD
bGllbnQpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5lZmZpY2llbnQuIFdlIGNvdWxkIG9w
dGltaXplIHRoaXMgYnkga2VlcGluZyB0cmFjayBvZiB3aGljaCBsb2NrcyBtYXAgdG8gd2hpY2gg
Y2xpZW50cy4KICAgICBIYXNoU2V0PFN0cmluZz4gbmFtZXNPZlF1ZXVlc1RvUHJvY2VzczsKIAog
ICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzV2l0aG91dFJlcXVlc3RzOwogICAgIGZvciAoYXV0byYg
cGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewotICAgICAgICBpZiAoIXBhaXIudmFsdWUu
cmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1
ZXN0LmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJl
bW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dpdGhvdXRS
ZXF1ZXN0cy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjAzLDcgKzI3MCw3IEBAIHZvaWQgV2ViTG9j
a1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJCiAKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRMb2NrczsKICAg
ICBmb3IgKGF1dG8mIHBhaXIgOiBtX2hlbGRMb2NrcykgewotICAgICAgICBpZiAoIXBhaXIudmFs
dWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4g
bG9ja0luZm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pKQorICAgICAgICBpZiAoIXBhaXIudmFs
dWUucmVtb3ZlQWxsTWF0Y2hpbmcobWF0Y2hDbGllbnQpKQogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5hbWVzV2l0
aG91dExvY2tzLmFwcGVuZChwYWlyLmtleSk7CkBAIC0yMTksNCArMjg2LDEzIEBAIHZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJCiAgICAgfQogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojpj
bGllbnRzQXJlR29pbmdBd2F5KFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQor
eworICAgIFZlY3RvcjxDbGllbnRPcmlnaW4+IGNsaWVudE9yaWdpbnMgPSBjb3B5VG9WZWN0b3Io
bV9wZXJPcmlnaW5SZWdpc3RyaWVzLmtleXMoKSk7CisgICAgZm9yIChhdXRvJiBjbGllbnRPcmln
aW4gOiBjbGllbnRPcmlnaW5zKSB7CisgICAgICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3Rp
bmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICAgICAgcmVnaXN0cnkt
PmNsaWVudHNBcmVHb2luZ0F3YXkoW3Byb2Nlc3NJZGVudGlmaWVyXShhdXRvJiBsb2NrSW5mbykg
eyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBwcm9jZXNz
SWRlbnRpZmllcjsgfSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnku
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCmlu
ZGV4IGE2ZThkMDM1M2JkYy4uOGI2MzE0ZThiMTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxvY2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRpb247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFw
c2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9j
a1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwotICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2
aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2Vi
TG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2Vw
dGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2Nr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNv
bnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRP
cmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3By
b3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBM
b2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkpOyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9y
aWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50
T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYm
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0
IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50
aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJbmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAot
ICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lk
IHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1Jl
cXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3JpZ2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdp
blJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsK
KyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4o
Y29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9v
cmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hl
bGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBt
X3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjBlNDI4ODM5NzU2Li40MGVjZmQzNDY1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMTEsMTAgKzEzMTEsMTIgQEAKIAkJ
NDYwRTMwNzcyMjJGNEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NUVERDlGMjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYyMThBQ0IxRjcyRDY0RTAwNTc0RkJFIC8qIERPTUhpZ2hSZXNUaW1lU3Rh
bXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTAx
NkFEMUY3MkQ2MUUwMDI4MkIyQyAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYyNzNDQUYyNjBFNTlFRjAw
NkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYyNzNDQUMyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3Rv
cmFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTQ2MkM3RjQxMjc1NkRCRTQwMEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3ODAyQjIyNzQ3MTE4NTAw
REE5RkI2IC8qIFdlYkxvY2tJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYyRTRDNTAyNjE2QTgxMTAwM0EyQzY3IC8qIFNjcmlw
dEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYyRTRDNEQyNjE2QTgwMTAwM0EyQzY3IC8qIFNjcmlwdEJ1ZmZlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ2MzRDNzJDMjc1N0RBQjIwMDI2
QTgxNSAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc4MDJCMDI3NDcxMTdCMDBEQTlGQjYgLyogV2ViTG9j
a01hbmFnZXJTbmFwc2hvdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgx
MDkwQjAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0Nv
bGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07Ci0JCTQ2
NDRGN0Y3MjcyQTFDMUIwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUIyNzJBMUMxNjAwNTU1OTlFIC8q
IFdlYkxvY2tNb2RlLmggKi87IH07CisJCTQ2NDRGN0Y3MjcyQTFDMUIwMDU1NTk5RSAvKiBXZWJM
b2NrTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDY0NEY3RUIyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDY0NEY3RjgyNzJBMUMxRjAwNTU1
OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0VFMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2Nr
R3JhbnRlZENhbGxiYWNrLmggKi87IH07CiAJCTQ2NDRGN0Y5MjcyQTFDMjEwMDU1NTk5RSAvKiBX
ZWJMb2NrTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY0NEY3RjAyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggKi87IH07
CiAJCTQ2NDRGN0ZBMjcyQTFDMjUwMDU1NTk5RSAvKiBXZWJMb2NrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdGMzI3MkExQzE2MDA1NTU5OUUg
LyogV2ViTG9jay5oICovOyB9OwpAQCAtMzM4NjksNiArMzM4NzEsNyBAQAogCQkJCTU1QUQwOTNF
MjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEQ0MEJDOTI1NTQ2M0JGMDA3MjEzNDkgLyogRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0U4RDEyNzI2MTg1QzBFMDBGQzNBRUYgLyogRGlzcGxh
eUxpc3RJdGVtQnVmZmVySWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDYzNEM3MkMy
NzU3REFCMjAwMjZBODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNDM3N0Q1NzI1NTFDOUM2MDA4MEFCRkUgLyogRGlzcGxheUxpc3RJ
dGVtVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNFOEQxMkUyNjE4NjFDNDAwRkMzQUVGIC8q
IERpc3BsYXlMaXN0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzQzNDEsNiArMzQzNDQs
NyBAQAogCQkJCUE4REYzRkQwMDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxDb25zdHJ1
Y3Rpb25TaXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzNFNTEwQTE4REY4RjM1MDBDMTEyRjcg
LyogSFRNTENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDYyQzdGNDEyNzU2REJFNDAw
RDA4M0M4IC8qIFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzEyMEM3
MTFDNTZGM0ZCMDAxQ0IxMTIgLyogSFRNTERhdGFFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGNUMwNDFEQjBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRDM1OUQ3OEExMjlDQTI3MTAwMDZFNUQyIC8qIEhUTUxEZXRhaWxzRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CmluZGV4IDNhMDY0YmM3MjMxYS4uYzA4Nzg1YWY4ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgIlRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExNzAsNiAr
MTE3MSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWwg
eyB9CiB9OwogCitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJM
b2NrUmVnaXN0cnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlXZWJMb2NrUmVnaXN0
cnk+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVdl
YkxvY2tSZWdpc3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNv
bnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9ja01vZGUsIGJvb2wsIGJvb2wsIEZ1
bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdm9pZCBy
ZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAg
IHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRp
ZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgc25hcHNo
b3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFu
YWdlclNuYXBzaG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0
IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSB7IH0KK307
CisKIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNv
bmZpZ3VyYXRpb24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFn
ZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAg
ICAgICAgIEVtcHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSwKKyAgICAgICAg
RW1wdHlXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAgICAgICBEdW1teVBlcm1pc3Npb25D
b250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVN0b3JhZ2VQ
cm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teU1vZGVsUGxheWVyUHJvdmlk
ZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2MjhmYi4uZjM3ZDA1OWIwZWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMwNiw2ICszMDYsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3VzZXJDb250ZW50UHJvdmlk
ZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyKSkKICAgICAs
IG1fdmlzaXRlZExpbmtTdG9yZSgqV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlu
a1N0b3JlKSkKICAgICAsIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdURk1vdmUocGFnZUNv
bmZpZ3VyYXRpb24uYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAsIG1fd2ViTG9ja1Jl
Z2lzdHJ5KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ud2ViTG9ja1JlZ2lzdHJ5KSkKICAgICAs
IG1fc2Vzc2lvbklEKHBhZ2VDb25maWd1cmF0aW9uLnNlc3Npb25JRCkKICNpZiBFTkFCTEUoVklE
RU8pCiAgICAgLCBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXIoKnRoaXMsICZQ
YWdlOjpwbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyRmlyZWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CmluZGV4IGYxZTA4YmM0ZmVjMC4uNzc5ZDkzYTI0NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTY3
LDYgKzE2Nyw3IEBAIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaWJs
ZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJh
Y2tlcjsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRl
cjsKIGNsYXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKIApAQCAtMjk4LDYgKzI5OSw4IEBAIHB1
YmxpYzoKICAgICBCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpIHsgcmV0dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OyB9CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoUmVmPEJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeT4mJik7IC8vIE9ubHkgdXNlZCBieSBXZWJLaXRMZWdhY3kuCiAKKyAgICBX
ZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lz
dHJ5OyB9CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoUGFnZShjb25z
dCBGdW5jdGlvbjx2b2lkKFBhZ2UmKT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdW5z
aWduZWQgbm9uVXRpbGl0eVBhZ2VDb3VudCgpOwogCkBAIC0xMTMyLDYgKzExMzUsNyBAQCBwcml2
YXRlOgogICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlkZXI7
CiAgICAgUmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAg
ICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWZQdHI8V2hl
ZWxFdmVudFRlc3RNb25pdG9yPiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvcjsKICAgICBXZWFrSGFz
aFNldDxBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9i
c2VydmVyczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRl
eCAxOTdjNzhlNGZlOTguLmFlNDI3YjdkMmNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIK
ICNpZiBFTkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNlbmRp
ZgpAQCAtNjMsNyArNjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFj
a0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29v
a2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tl
ckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1h
aW5GcmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRp
YVJlY29yZGVyUHJvdmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lv
bkNvbnRyb2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVy
LCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQor
UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYm
IGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9y
YWdlUHJvdmlkZXIsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlk
ZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tp
ZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVy
Q2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4m
JiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3Zp
ZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eT4mJiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYgd2Vi
TG9ja1JlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRy
b2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlx
dWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQogICAgIDog
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNs
aWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAg
LTc1LDYgKzc2LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNhY2hlU3RvcmFn
ZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgdXNlckNvbnRl
bnRQcm92aWRlcihXVEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgYnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAs
IHdlYkxvY2tSZWdpc3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBzcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAg
ICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIp
KQogICAgICwgcGVybWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShwZXJtaXNzaW9uQ29udHJvbGxl
cikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggN2ZiMzM0NjU3
ZTMxLi5iYWM2ZmIyZjVlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9u
LmgKQEAgLTc0LDExICs3NCwxMiBAQCBjbGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFz
cyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFz
cyBXZWJHTFN0YXRlVHJhY2tlcjsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIAogY2xhc3MgUGFn
ZUNvbmZpZ3VyYXRpb24gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0
aW9uKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBP
UlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGll
bnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVy
PiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJl
ZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4m
JiwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJl
ZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiwg
VW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlkZXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYm
LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwg
UmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiwg
UmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJv
Z3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVu
aXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNv
cmRlclByb3ZpZGVyPiYmLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmLCBSZWY8V2Vi
TG9ja1JlZ2lzdHJ5PiYmLCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYsIFVuaXF1ZVJlZjxT
dG9yYWdlUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNvbmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJh
dGlvbihQYWdlQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoK
ICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBS
ZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8QnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5PiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdl
YkxvY2tSZWdpc3RyeT4gd2ViTG9ja1JlZ2lzdHJ5OwogICAgIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmVmUHRyPERldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dC9DTWFrZUxpc3RzLnR4dAppbmRleCA4MmFhNWYyMmRkNzIuLjUyMTRmMjE3YjBiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CkBAIC0yMjksNiArMjI5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9G
SUxFUwogICAgIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3Mv
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eQorICAgIFVJUHJvY2Vzcy9XZWJMb2NrTWFuYWdlclByb3h5CiAgICAgVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkKICAgICBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wKQEAgLTMwNyw2ICszMDgsNyBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250
ZW50Q29udHJvbGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJM
b2NrUmVnaXN0cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVj
b2duaXRpb25Db25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCBhNzg5N2I5NjFhMzkuLjg1OTJkOTlkMmUzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTUzLDYgKzE1
Myw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTIxNyw2ICsyMTgsNyBAQCAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQv
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDkzYTYxNDZkNmIxMy4uYTU5ZTYyM2IwOWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTM4
Nyw2ICszODcsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzUmVwbGllcwogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdl
c1JlcGxpZXMuaApAQCAtNTI2LDYgKzUyOSw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1Jl
Z2lzdHJ5UHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVy
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViTUROU1JlZ2lzdGVyTWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA0NTc0Mzg2NWE0YWMuLjE5MzM4ODQ5NjFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMTY4LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJv
Y2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAJVUlQcm9jZXNzL21hYy9T
ZWNJdGVtU2hpbVByb3h5IFwKIAlVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkg
XAorCVVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkgXApAQCAtMjE4LDYgKzIxOSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDTW9uaXRvciBcCiAJV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDUmVzb2x2ZXIgXAorCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5IFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeSBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVj
aFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCA3NmMyZGViYWZkOTEuLjJjODM5YTllOWJjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zMTIsNiArMzEyLDcgQEAgZGVmIHR5cGVz
X3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlNv
dXJjZUJ1ZmZlckFwcGVuZE1vZGUnLAogICAgICAgICAnV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2VyTWVk
aWFSZXF1ZXN0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6QXVkaW9NZWRp
YVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDNlNDNkM2UxM2E3Ni4uZmU2MDQxMmMyYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQzNSw2ICs0
MzUsNyBAQCBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
LmNwcAogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCitVSVByb2Nlc3MvV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcAog
VUlQcm9jZXNzL1dlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCiBVSVByb2Nlc3Mv
V2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcApAQCAtNzgxLDYgKzc4Miw3IEBAIFdl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBX
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
CiAKK1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcAog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwCiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAg
LTg0Nyw4ICs4NDksNiBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5j
cHAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0
Zm9ybVhSU3lzdGVtTWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcAotV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2Vp
dmVyLmNwcAotCiBSZW1vdGVBZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQmluZEdy
b3VwTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2Vp
dmVyLmNwcApAQCAtODcxLDMgKzg3MSw2IEBAIFJlbW90ZVNhbXBsZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVTaGFkZXJNb2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJl
TWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3Bw
CitSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitXZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitXZWJMb2NrUmVnaXN0cnlQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkxvY2tSZWdpc3RyeVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjY1NTViZjdjYTk1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkxvY2tSZWdpc3RyeVByb3h5LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCisK
KyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYkxvY2tSZWdpc3RyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2RlZmluZSBN
RVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV9w
cm9jZXNzLmNvbm5lY3Rpb24oKSkKKworV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OldlYkxvY2tSZWdp
c3RyeVByb3h5KFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9j
ZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworV2Vi
TG9ja1JlZ2lzdHJ5UHJveHk6On5XZWJMb2NrUmVnaXN0cnlQcm94eSgpCit7CisgICAgbV9wcm9j
ZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnJlcXVlc3RMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpX
ZWJMb2NrTW9kZSBsb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKK3sKKyAg
ICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9w
cm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVu
dElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmll
cigpKTsKKworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5
KCkucmVxdWVzdExvY2soV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xp
ZW50SUQsIFdURk1vdmUobmFtZSksIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdKGJvb2wg
c3VjY2VzcykgeworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkQ29tcGxl
dGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIHN1Y2Nlc3MpLCAwKTsKKyAg
ICB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVu
dElEXSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3By
b2Nlc3Muc2VuZChNZXNzYWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRTdGVhbExvY2so
bG9ja0lkZW50aWZpZXIsIGNsaWVudElEKSwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViTG9j
a1JlZ2lzdHJ5UHJveHk6OnJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBu
YW1lKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZp
ZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0Vf
Q0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nl
c3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9j
a1JlZ2lzdHJ5KCkucmVsZWFzZUxvY2soV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRp
ZmllciwgY2xpZW50SUQsIFdURk1vdmUobmFtZSkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3Ry
eVByb3h5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9y
aWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIE1FU1NBR0VfQ0hFQ0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBt
X3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xp
ZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlm
aWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5
KCkuYWJvcnRMb2NrUmVxdWVzdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVy
LCBjbGllbnRJRCwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
fQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRP
cmlnaW4mJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2Vi
TG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3By
b2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnNuYXBzaG90KFdURk1v
dmUoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lk
IFdlYkxvY2tSZWdpc3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGllbnRP
cmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElEKQoreworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lk
ZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuY2xpZW50SXNHb2lu
Z0F3YXkoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBjbGllbnRJRCk7Cit9CisKK3ZvaWQgV2ViTG9j
a1JlZ2lzdHJ5UHJveHk6OnByb2Nlc3NEaWRFeGl0KCkKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0
ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmNsaWVudHNBcmVHb2luZ0F3YXkobV9wcm9j
ZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKK30KKworI3VuZGVmIE1FU1NBR0VfQ0hFQ0sK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLjBiYTMxYTliOTJiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tNb2Rl
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBDbGllbnRPcmlnaW47CitzdHJ1Y3Qg
V2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgZmluYWwgOiBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlByb2Nlc3NQ
cm94eSYpOworICAgIH5XZWJMb2NrUmVnaXN0cnlQcm94eSgpOworCisgICAgdm9pZCBwcm9jZXNz
RGlkRXhpdCgpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDIE1lc3NhZ2UgaGFu
ZGxlcnMuCisgICAgdm9pZCByZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwgYm9vbCBzdGVh
bCwgYm9vbCBpZkF2YWlsYWJsZSk7CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lKTsKKyAgICB2b2lkIGFib3J0
TG9ja1JlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5n
JiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzbmFw
c2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVudElzR29p
bmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcik7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGJhYmMyNTRjNDFlCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMu
aW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCittZXNzYWdlcyAtPiBXZWJMb2NrUmVnaXN0cnlQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAg
ICBSZXF1ZXN0TG9jayhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwg
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lLCBlbnVtOmJvb2wg
V2ViQ29yZTo6V2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkK
KyAgICBSZWxlYXNlTG9jayhzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdp
biwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKQorICAgIEFi
b3J0TG9ja1JlcXVlc3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4s
IFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkgLT4gKGJvb2wg
d2FzQWJvcnRlZCkgQXN5bmMKKyAgICBTbmFwc2hvdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIGNsaWVudE9yaWdpbikgLT4gKHN0cnVjdCBXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90IHNuYXBzaG90KSBBc3luYworICAgIENsaWVudElzR29pbmdBd2F5KHN0cnVjdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJZCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDAyOGM4ZDhlZjA3MS4uYzE4ZDA3NjYzMmUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQ2LDYgKzQ2LDcg
QEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zv
cndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5oIgorI2lu
Y2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VHcm91cC5oIgpAQCAtMjQwLDYgKzI0MSw3IEBAIFdlYlByb2Nlc3NQcm94
eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURh
dGFTdG9yZSoKICAgICAsIG1fY2FwdGl2ZVBvcnRhbE1vZGUoY2FwdGl2ZVBvcnRhbE1vZGUpCiAg
ICAgLCBtX2Nyb3NzT3JpZ2luTW9kZShjcm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX3NodXRkb3du
UHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlm
IChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9
KQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkobWFrZVVuaXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQ
cm94eT4oKnRoaXMpKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tE
aXNhYmxlZCgpKTsKICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNv
bnN0cnVjdG9yOiIpOwpAQCAtNTI4LDYgKzUzMCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpz
aHV0RG93bigpCiAgICAgbV91c2VySW5pdGlhdGVkQWN0aW9uTWFwLmNsZWFyKCk7CiAgICAgbV9z
bGVlcERpc2FibGVycy5jbGVhcigpOwogCisgICAgbV93ZWJMb2NrUmVnaXN0cnktPnByb2Nlc3NE
aWRFeGl0KCk7CisKICNpZiBFTkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBtX3JvdXRp
bmdBcmJpdHJhdG9yLT5wcm9jZXNzRGlkVGVybWluYXRlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzk5ZThjMjBiY2U2Li5mNmIwOWMx
NTY3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC05
Myw2ICs5Myw3IEBAIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtOwogY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOwogY2xhc3Mg
V2ViRnJhbWVQcm94eTsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeVByb3h5OwogY2xhc3MgV2ViUGFn
ZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CkBAIC02
NzIsNiArNjczLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VN
YW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXI7CiAjZW5kaWYKKyAgICBVbmlxdWVSZWY8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+IG1fd2ViTG9j
a1JlZ2lzdHJ5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmlu
ZGV4IGZjMWQ5YWU5ODkzZC4uOTA5NzkzZTM3NTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNTks
NiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFn
ZVF1b3RhTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAj
aW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgpAQCAtMTMw
LDYgKzEzMSw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUmVmPFdlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgSEFWRShBUFBfU1NPKQog
ICAgICwgbV9zb0F1dGhvcml6YXRpb25Db29yZGluYXRvcihtYWtlVW5pcXVlUmVmPFNPQXV0aG9y
aXphdGlvbkNvb3JkaW5hdG9yPigpKQogI2VuZGlmCisgICAgLCBtX3dlYkxvY2tSZWdpc3RyeShX
ZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgV1RGOjpzZXRQ
cm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIHJlZ2lzdGVyV2l0aFNlc3Np
b25JRE1hcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDYxOTYyODBmNzZkYS4uMWRlMjVhNjYwNTdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCkBAIC03NSw2ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJp
dHlPcmlnaW47CitjbGFzcyBMb2NhbFdlYkxvY2tSZWdpc3RyeTsKIAogc3RydWN0IE1vY2tXZWJB
dXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiB9CkBAIC0zMTcsNiArMzE4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q2xpZW50KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYm
IGNsaWVudCkgeyBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsgfQogCiAgICAgQVBJOjpIVFRQ
Q29va2llU3RvcmUmIGNvb2tpZVN0b3JlKCk7CisgICAgV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVn
aXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgp
OyB9CiAKICAgICB2b2lkIHJlbmFtZU9yaWdpbkluV2Vic2l0ZURhdGEoVVJMJiYsIFVSTCYmLCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IApAQCAtNDcxLDYgKzQ3Myw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU+IG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZTsgLy8gTGF6aWx5IGNvbXB1dGVkLgogI2VuZGlmCisgICAgUmVmPFdlYkNvcmU6OkxvY2FsV2Vi
TG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGViNjQxYzEyMDcyOS4u
NjJkY2YzOTA4M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTkwOCw2ICs5MDgsNyBAQAogCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4
MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1By
b2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFz
b24uaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3Bh
Y2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXIuaCAqLzsgfTsKKwkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3Ry
eVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLzsgfTsK
IAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZC
QzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAq
LzsgfTsKIAkJNDY3MUZGMUYyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njcx
RkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLzsgfTsK
IAkJNDY3RTQzRTgyMjQzRkY3RDAwQjEzOTI0IC8qIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjdF
NDNFNzIyNDNGRjZEMDBCMTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCAq
LzsgfTsKQEAgLTQxNzgsNiArNDE3OSw5IEBACiAJCTQ2NUY0RTAyMjMwNzU5RDUwMDNDRURCNyAv
KiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUY0RTAzMjMwNzYwNEUw
MDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVn
aXN0cnlQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyogV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHku
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzI1Mjc1N0Q5
MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJD
MDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZCQzAzQTFGQTI2NkM5MDAy
RkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTg4LDYgKzQxOTIsOCBAQAogCQk0
NjgwOUE3QjIzRDkyMjUzMDBDMjk3RDAgLyogV2ViQ29va2llQ2FjaGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29va2llQ2FjaGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QTIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlzaW9u
YWxQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvdmlzaW9u
YWxQYWdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2OUIyMUU4
MUNDNzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdl
YkxvY2tSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8q
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVXZWJM
b2NrUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjlERTgwMjI3
M0VDQzVEMDA5MzAyNzYgLyogUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzTGF1bmNoZXJDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEg
LyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIwNiw2ICs0MjEyLDggQEAKIAkJNDZD
RTNCMTAyM0Q4QzgzRDAwMTZBOTZBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2MzkxRjM5MDVFNTAwMTk4MEJCIC8q
IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzQTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZFOTc2
MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUyODQ3MjY5RTA0OUIwMERENDhBQiAv
KiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NDgyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZFRTI4NEEyNjlFMDUxNzAwREQ0OEFCIC8qIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya0Jyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEwNTQ0LDYgKzEwNTUyLDkgQEAKIAkJCQlDRDYxNzgxMTFFNkRFOTgwMDBGREE1N0QgLyog
Y29jb2EgKi8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8qIGlvcyAqLywKIAkJCQlC
QzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTQ2ODlCOTEwMjc1NkQxNDMw
MDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwICovLAorCQkJCTQ2ODlCOTBGMjc1
NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCAqLywKKwkJCQk0NkU5NzYw
QjI3NTdGNkM5MDBBQ0REMzcgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICov
LAogCQkJCTFBNzI4NDQ0MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9u
LmNwcCAqLywKIAkJCQkxQTcyODQ0NTE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29u
dmVyc2lvbi5oICovLAogCQkJCUY0M0E5Q0RFMjVENzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFibGVC
aXRtYXBVdGlsaXRpZXMuY3BwICovLApAQCAtMTA1NTEsNiArMTA1NjIsNyBAQAogCQkJCUNFREEx
MkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywKIAkJ
CQk0NkVFMjg0NzI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
LmNwcCAqLywKIAkJCQk0NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5LmggKi8sCisJCQkJNDZFOTc2MEEyNzU3RjZDOTAwQUNERDM3IC8qIFdlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLywKIAkJCQlFM0E4NkZCQzI2OTU4
RTMzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3BwICovLAogCQkJ
CUUzQTg2RkJCMjY5NThEODMwMDU5MjY0RCAvKiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0
ZS5oICovLAogCQkJCUJDMTExQTUzMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGllbnQu
Y3BwICovLApAQCAtMTA4MzQsNiArMTA4NDYsOSBAQAogCQkJCUJDMUJFMUYxMTJENTREQkQwMDA0
QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCAqLywKIAkJCQlCQzFCRTFGMDEyRDU0
REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oICovLAogCQkJCTUxQzhFMTlC
MUYyMTYxNzIwMEJGNzMxQiAvKiBXZWJJY29uRGF0YWJhc2UuaCAqLywKKwkJCQk0NjVGQTcyNTI3
NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwICovLAorCQkJCTQ2NUZB
NzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovLAorCQkJCTQ2
NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5p
biAqLywKIAkJCQkyRDNFRjQ0MDE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcCAqLywKIAkJCQkyRDNFRjQ0MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmggKi8sCiAJCQkJN0NDQ0M4RjgxQTVGNTBGRDAwOEZCMERBIC8qIFdl
Yk5hdmlnYXRpb25TdGF0ZS5jcHAgKi8sCkBAIC0xMzg3Nyw2ICsxMzg5Miw3IEBACiAJCQkJMUEz
Q0MxNjcxODkwNkFDRjAwMUU2RUQ4IC8qIFdLV2ViVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFERjU5MUIxODkwNTI4RTAwNDNDMTQ1IC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEN0FBRkQ2MThDOTU2QUYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb25m
aWd1cmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NUZBNzI2Mjc1N0Q5M0Qw
MDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFD
MTQxNTExOEFDNDdFRTAwNkM2MDJDIC8qIFdLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDdBQUZEMzE4Qzg2NDA2MDBBN0FDRDQgLyogV0tXZWJWaWV3
Q29udGVudFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREM2RDlDMzE4QzQ0QTYxMDA0
M0JBRDQgLyogV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IGFhNzQzYzYyZTNmMy4u
ZjliODUyNDZkZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
VENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiV2Vi
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgiCkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoU2VydmljZVdv
cmtlckNvbnRleHREYXQKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0g
V2ViRGF0YWJhc2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJRCk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24uc29ja2V0UHJvdmlkZXIgPSBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRl
KG1fd2ViUGFnZVByb3h5SUQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpOwogICAgIHBhZ2VDb25maWd1cmF0aW9u
LnVzZXJDb250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKICNpZiBFTkFC
TEUoV0VCX1JUQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlciA9IG1h
a2VVbmlxdWVSZWY8U2VydmljZVdvcmtlckxpYldlYlJUQ1Byb3ZpZGVyPigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjFlYWYwOWVlNmIzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCkBAIC0wLDAg
KzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bW90ZVdlYkxvY2tSZWdpc3RyeS5oIgorCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IExv
Y2tJbmZvIHsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworfTsKKwor
c3RydWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
IGxvY2tHcmFudGVkSGFuZGxlcjsKK307CisKK3N0cnVjdCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OkxvY2tzU25hcHNob3QgeworICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIs
IExvY2tSZXF1ZXN0PiBwZW5kaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciwgTG9ja0luZm8+IGhlbGRMb2NrczsKKworICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkgJiYgaGVsZExvY2tzLmlz
RW1wdHkoKTsgfQorfTsKKworUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpSZW1vdGVXZWJMb2NrUmVn
aXN0cnkoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBwcm9jZXNzLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksICp0aGlzKTsKK30KKworUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoKnRoaXMpOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExv
Y2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpX
ZWJMb2NrTW9kZSBsb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rp
b248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tT
dG9sZW5IYW5kbGVyKQoreworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7IFdURk1vdmUobG9j
a1N0b2xlbkhhbmRsZXIpIH0sIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CisgICAgYXV0byYg
c25hcHNob3QgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5zdXJlKGNsaWVudElELCBbXSB7
IHJldHVybiBMb2Nrc1NuYXBzaG90IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIHNuYXBz
aG90LnBlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCkp
OworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViTG9ja1Jl
Z2lzdHJ5UHJveHk6OlJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNs
aWVudElELCBuYW1lLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlKSwgMCk7Cit9CisKK3Zv
aWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVu
dElELCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0byBpdCA9IG1fbG9ja3NTbmFwc2hv
dFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAoaXQgIT0gbV9sb2Nrc1NuYXBzaG90
UGVyQ2xpZW50LmVuZCgpKSB7CisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3MucmVtb3ZlKGxv
Y2tJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKyAgICB9CisKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6UmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5h
bWUpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVl
c3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViTG9ja1JlZ2lz
dHJ5UHJveHk6OkFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwg
Y2xpZW50SUQsIG5hbWUpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50
aWZpZXIsIGNsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShib29sIGRpZEFib3J0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzICYm
IGRpZEFib3J0KSB7CisgICAgICAgICAgICBhdXRvIGl0ID0gd2Vha1RoaXMtPm1fbG9ja3NTbmFw
c2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICAgICAgICAgIGlmIChpdCAhPSB3ZWFr
VGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKSB7CisgICAgICAgICAgICAgICAg
aXQtPnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOworICAgICAg
ICAgICAgICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB3
ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZGlkQWJvcnQpOworICAg
IH0sIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpTbmFwc2hvdChjbGllbnRPcmlnaW4pLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SUQpCit7CisgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShjbGllbnRJRCk7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5
UHJveHk6OkNsaWVudElzR29pbmdBd2F5KGNsaWVudE9yaWdpbiwgY2xpZW50SUQpLCAwKTsKK30K
Kwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBib29sIHN1Y2Nlc3MpCit7CisgICAg
YXV0byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBp
ZiAoaXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0ID0gaXQtPnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy50
YWtlKGxvY2tJZGVudGlmaWVyKTsKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVk
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsb2NrR3JhbnRlZEhhbmRsZXIg
PSBXVEZNb3ZlKHBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVkSGFuZGxlcik7CisgICAgaWYgKHN1
Y2Nlc3MpCisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3MuYWRkKGxvY2tJZGVudGlmaWVyLCBX
VEZNb3ZlKHBlbmRpbmdSZXF1ZXN0KSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChpdC0+dmFs
dWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92
ZShpdCk7CisgICAgfQorCisgICAgbG9ja0dyYW50ZWRIYW5kbGVyKHN1Y2Nlc3MpOworfQorCit2
b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVy
Q2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9PSBtX2xvY2tzU25hcHNob3RQZXJD
bGllbnQuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbG9ja0luZm8gPSBpdC0+
dmFsdWUuaGVsZExvY2tzLnRha2UobG9ja0lkZW50aWZpZXIpOworICAgIGlmICghbG9ja0luZm8u
bG9ja1N0b2xlbkhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpdC0+dmFsdWUu
aXNFbXB0eSgpKQorICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsK
KworICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uMzMyMDg1ZTNlNDcyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3Ry
eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnksIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IGNyZWF0
ZShXZWJQcm9jZXNzJiBwcm9jZXNzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeShwcm9jZXNzKSk7IH0KKyAgICB+UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KCk7CisK
KyAgICAvLyBXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnkuCisgICAgdm9pZCByZXF1ZXN0TG9jayhj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUs
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4m
JiBsb2NrU3RvbGVuSGFuZGxlcikgZmluYWw7CisgICAgdm9pZCByZWxlYXNlTG9jayhjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkg
ZmluYWw7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHNuYXBzaG90KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXJTbmFwc2hvdCYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShX
ZWJQcm9jZXNzJik7CisKKyAgICAvLyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIGRp
ZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIHN1Y2Nlc3MpOworICAgIHZv
aWQgZGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisKKyAgICBzdHJ1Y3QgTG9ja3NTbmFwc2hv
dDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBMb2Nrc1NuYXBzaG90PiBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQ7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTZhN2FlYTJi
ZDRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbWVzc2FnZXMgLT4gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IHsKKyAgICBE
aWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCwgYm9vbCBzdWNjZXNzKTsKKyAgICBEaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElEKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggNWMzY2ZkNDIzODc4Li4zYmRmYTdjOWQ5MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBA
CiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlV2ViSW5zcGVjdG9yVUkuaCIKICNpbmNsdWRlICJSZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Vz
c2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5oIgogI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNTczLDYgKzU3NCw3IEBAIFdlYlBhZ2U6OldlYlBh
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3Zp
ZGVyPihtX2lkZW50aWZpZXIpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQ
cm92aWRlcj4oKnRoaXMpLAogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkoKSwKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
TG9ja1JlZ2lzdHJ5KCksCiAgICAgICAgIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUo
KnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlN0b3JhZ2VQcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJNb2RlbFBsYXllclByb3ZpZGVyPigqdGhpcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA5NDMwNGI3MTFmZDQuLmY2ZTg3
NjI0NmJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDks
NiArNDksNyBAQAogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVt
b3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFu
YWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEu
aCIKQEAgLTI3OSw2ICsyODAsNyBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1f
d2ViTG9hZGVyU3RyYXRlZ3koKm5ldyBXZWJMb2FkZXJTdHJhdGVneSkKICAgICAsIG1fY2FjaGVT
dG9yYWdlUHJvdmlkZXIoV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpKQogICAgICwg
bV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpj
cmVhdGUoKSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6
Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fY29va2llSmFyKFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkp
CiAgICAgLCBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlKFJlcG9ydGluZ0VuZHBvaW50c0NhY2hl
OjpjcmVhdGUoKSkKICAgICAsIG1fZG5zUHJlZmV0Y2hIeXN0ZXJlcmlzKFt0aGlzXShQQUw6Okh5
c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6
OlN0b3BwZWQpIG1fZG5zUHJlZmV0Y2hlZEhvc3RzLmNsZWFyKCk7IH0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5YWRlM2MwMDVhZjIuLjE0Y2RmNzUxNWM2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xh
c3MgUHJvY2Vzc0Fzc2VydGlvbjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1v
dGVMZWdhY3lDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeTsKK2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIHN0cnVjdCBTZXJ2aWNlV29y
a2VySW5pdGlhbGl6YXRpb25EYXRhOwogY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiBjbGFzcyBVc2Vy
RGF0YTsKQEAgLTM0MCw2ICszNDEsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVBy
b3ZpZGVyLmdldCgpOyB9CiAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5n
ZXQoKTsgfQorICAgIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV93ZWJMb2NrUmVnaXN0cnkuZ2V0KCk7IH0KICAgICBXZWJDb29raWVKYXImIGNvb2tp
ZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAgICAgV2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXImIHdlYlNvY2tldENoYW5uZWxNYW5hZ2VyKCkgeyByZXR1cm4gbV93ZWJTb2NrZXRD
aGFubmVsTWFuYWdlcjsgfQogICAgIFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlJiBy
ZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIHsgcmV0dXJuIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUuZ2V0KCk7IH0KQEAgLTY3Niw2ICs2NzgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNh
Y2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJlZjxXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAg
IFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogICAgIFJlZjxX
ZWJDb29raWVKYXI+IG1fY29va2llSmFyOwogICAgIFJlZjxXZWJDb3JlOjpSZXBvcnRpbmdFbmRw
b2ludHNDYWNoZT4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZTsKICAgICBXZWJTb2NrZXRDaGFu
bmVsTWFuYWdlciBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDBjNzQ0ZGRjZWIzMy4uMjQ0NDk4Nzg2MWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzEs
NiArMjMxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZVZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+CkBAIC0xNDM4
LDYgKzE0MzksMTggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRl
cklmTmVjZXNzYXJ5KCkKIH0KICNlbmRpZgogCitzdGF0aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2Vi
TG9ja1JlZ2lzdHJ5PiBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShib29sIGlzUHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJD
b3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IGRlZmF1bHRSZWdpc3RyeTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IHBy
aXZhdGVSZWdpc3RyeTsKKyAgICBhdXRvJiBleGlzdGluZ1JlZ2lzdHJ5ID0gaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkID8gcHJpdmF0ZVJlZ2lzdHJ5IDogZGVmYXVsdFJlZ2lzdHJ5OworICAgIGlm
IChleGlzdGluZ1JlZ2lzdHJ5LmdldCgpKQorICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0
cnkuZ2V0KCk7CisgICAgYXV0byByZWdpc3RyeSA9IFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpjcmVhdGUoKTsKKyAgICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7Cisg
ICAgcmV0dXJuIHJlZ2lzdHJ5OworfQorCiAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldp
dGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdHJpbmcgKiln
cm91cE5hbWUKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZFR3bygpOwpA
QCAtMTU0Myw2ICsxNTU2LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJh
bWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3QKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAog
ICAgICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBw
cmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAorICAgICAgICBnZXRPckNyZWF0
ZVdlYkxvY2tSZWdpc3RyeShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWRdKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRl
KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+
KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3Zp
ZGVyPigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGY0NjMwNzlkOTgxYi4u
NGZmY2RlOWM1MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTczLDYg
KzE3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNv
cmVUZXh0UmVuZGVyZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNsdWRlIDxjb21kZWYuaD4KQEAgLTI5OTIsNiAr
Mjk5MywxNiBAQCBib29sIFdlYlZpZXc6OnNob3VsZEluaXRpYWxpemVUcmFja1BvaW50SGFjaygp
CiAgICAgcmV0dXJuIHNob3VsZENyZWF0ZVNjcm9sbGJhcnM7CiB9CiAKK3N0YXRpYyBSZWY8V2Vi
Q29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeT4+IGV4aXN0aW5nUmVnaXN0cnk7CisgICAgaWYgKGV4aXN0aW5nUmVnaXN0cnku
Z2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKKyAgICBhdXRv
IHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpOworICAg
IGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAgICByZXR1cm4gcmVnaXN0cnk7
Cit9CisKIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJT
VFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOYW1lKQogewogICAgIEhSRVNVTFQgaHIgPSBT
X09LOwpAQCAtMzA2NSw2ICszMDc2LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1l
KFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKGZhbHNlKSwKKyAgICAgICAgZ2V0
T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJtaXNz
aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCg==
</data>
<flag name="commit-queue"
          id="470855"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445622</attachid>
            <date>2021-12-01 15:16:58 -0800</date>
            <delta_ts>2021-12-01 15:40:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201151657.patch</filename>
            <type>text/plain</type>
            <size>122112</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Mzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QwN2M2YTU2Nzk2ZmM0
ZmQ5N2NiMTQzYTk2ZmIzOTE2NDAyNWQyNC4uYjk5MTZjMzZiMzRkOTlkYmNhNDQ3ZDMwNWIxOWMz
OTU1MjBhNWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBjc3AtcmVwb3J0IHJlc291cmNlIHR5
cGUgdG8gV0tDb250ZW50UnVsZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0ZDZm
YzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1YmQ5
ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJIHdv
cmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tSZWdp
c3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3RyeVBy
b3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVn
aXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0
cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2ViTG9j
a1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1
ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVsZWFz
ZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9j
a1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNuYXBz
aG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dv
aW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkQ29t
cGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3Ry
eTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Jl
bW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0Ojpt
X2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYwMzcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4NWMw
NWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjExYmQ2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEy
LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFr
ZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBjaGFu
Z2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRPckNy
ZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxp
emF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5p
dFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6
XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9y
IFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFhNzdh
MDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjllZDA1
NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJv
Y2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRo
RnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAppbmRleCA4YzE1NDM3OTgzOTQ5YjQyNDUwOGIyZGI1MTVhZTFhYTNhNjQ1MTg0Li4xNDkzMTIy
NjU3NjhlNzQzNTIwZDI3ZjMyNDUyZjkwZTRlNmU4Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMSwxMCArMzEs
MTIgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1dlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0dyYW50
ZWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCIKICNpbmNs
dWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKQEAgLTUyLDYgKzU0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2xpZW50T3JpZ2lu
PiBjbGllbnRPcmlnaW5Gcm9tQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXgKIAogc3RydWN0
IFdlYkxvY2tNYW5hZ2VyOjpMb2NrUmVxdWVzdCB7CiAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXI7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SUQ7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTG9ja01vZGUgbW9kZSB7IFdlYkxvY2tNb2Rl
OjpFeGNsdXNpdmUgfTsKICAgICBSZWZQdHI8V2ViTG9ja0dyYW50ZWRDYWxsYmFjaz4gZ3JhbnRl
ZENhbGxiYWNrOwpAQCAtMTM2LDE0ICsxMzksMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdChjb25zdCBTdHJpbmcmIG5hbWUsIE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8V2ViTG9ja0cK
ICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVu
dGlmaWVyLCBMb2NrUmVxdWVzdCB7IGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLm1vZGUs
IFdURk1vdmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7Cisg
ICAgYXV0byBjbGllbnRJRCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigp
OworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3Qg
eyBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG9wdGlvbnMubW9kZSwgV1RGTW92ZShn
cmFudGVkQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSB9KTsKIAotICAgIHJlcXVl
c3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLCBbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0
YWJsZSB7CisgICAgcmVxdWVzdExvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIGNsaWVu
dElELCBuYW1lLCBvcHRpb25zLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lk
ZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJZGVudGlm
aWVyLCBzdWNjZXNzKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9j
a0lkZW50aWZpZXJdKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgfSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXSgpIG11dGFibGUgewog
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFz
ZVByb21pc2UobG9ja0lkZW50aWZpZXIsIFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlv
biB7IEFib3J0RXJyb3IsICJMb2NrIHdhcyBzdG9sZW4gYnkgYW5vdGhlciByZXF1ZXN0Il9zIH0p
OwogICAgIH0pOwogfQogCkBAIC0xNTYsNyArMTYwLDcgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6
ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
Ym8KIAogICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgaWYgKHJlcXVlc3Quc2ln
bmFsICYmIHJlcXVlc3Quc2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0Lm5hbWUp
OworICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lk
ZW50aWZpZXIsIHJlcXVlc3QuY2xpZW50SUQsIHJlcXVlc3QubmFtZSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC0xNjQsMTUgKzE2OCwxNSBAQCB2b2lkIFdl
YkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaWVyLCBibwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSByZXF1ZXN0LmdyYW50
ZWRDYWxsYmFjay0+aGFuZGxlRXZlbnQobG9jay5wdHIoKSk7CiAgICAgICAgICAgICBSZWZQdHI8
RE9NUHJvbWlzZT4gd2FpdGluZ1Byb21pc2UgPSByZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVz
dWx0VHlwZTo6U3VjY2VzcyA/IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA6IG51bGxwdHI7
CiAgICAgICAgICAgICBpZiAoIXdhaXRpbmdQcm9taXNlKSB7Ci0gICAgICAgICAgICAgICAgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1l
KTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJ
ZGVudGlmaWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAg
ICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlv
biB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0
dGxlZCh3YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9t
aXNlKCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmll
ciA9IHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQ
cm9taXNlXSB7CisgICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0dGxlZCh3
YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCks
IFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmllciA9IHJl
cXVlc3QubG9ja0lkZW50aWZpZXIsIGNsaWVudElEID0gcmVxdWVzdC5jbGllbnRJRCwgbmFtZSA9
IHJlcXVlc3QubmFtZSwgd2FpdGluZ1Byb21pc2VdIHsKICAgICAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgICAgICAgICAg
ICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFt
ZSk7CiAgICAgICAgICAgICAgICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIs
IHN0YXRpY19jYXN0PEpTQzo6SlNWYWx1ZT4od2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSkpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xODcsMzMgKzE5MSwzMyBAQCB2
b2lkIFdlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBibwogICAgIH0pOwogfQogCi12b2lkIFdlYkxvY2tNYW5hZ2Vy
OjpyZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiBvcHRpb25zLCBGdW5jdGlvbjx2
b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4m
JiByZWxlYXNlSGFuZGxlcikKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRp
b25zJiBvcHRpb25zLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhy
ZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRp
ZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwg
bmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwg
PSBvcHRpb25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJ
ZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCByZWxl
YXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAg
ICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVl
c3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbmFtZSwgbW9kZSwgc3Rl
YWwsIGlmQXZhaWxhYmxlLCBbY29udGV4dElkZW50aWZpZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RG
TW92ZShncmFudGVkSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewotICAgICAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJ
ZGVudGlmaWVyLCBbZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgc3Vj
Y2Vzc10oYXV0byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQs
IGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBuYW1lID0g
Y3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBtb2RlID0gb3B0aW9ucy5tb2RlLCBzdGVhbCA9IG9wdGlv
bnMuc3RlYWwsIGlmQXZhaWxhYmxlID0gb3B0aW9ucy5pZkF2YWlsYWJsZSwgbG9ja0lkZW50aWZp
ZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIGxvY2tTdG9sZW5I
YW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRh
YmxlIHsKKyAgICAgICAgcmVnaXN0cnkucmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NsaWVu
dElELCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNj
ZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3Vy
ZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFu
dGVkSGFuZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBn
cmFudGVkSGFuZGxlcihzdWNjZXNzKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9LCBbY29u
dGV4dElkZW50aWZpZXIsIHJlbGVhc2VIYW5kbGVyID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlcild
KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFty
ZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpLCBleGNlcHRpb24gPSBjcm9z
c1RocmVhZENvcHkoZXhjZXB0aW9uKV0oYXV0byYpIG11dGFibGUgewotICAgICAgICAgICAgICAg
IHJlbGVhc2VIYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0sIFtjbGllbnRJ
RCwgbG9ja1N0b2xlbkhhbmRsZXIgPSBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4
dFRocmVhZChjbGllbnRJRCwgW2xvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBsb2NrU3RvbGVuSGFu
ZGxlcigpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCi12b2lk
IFdlYkxvY2tNYW5hZ2VyOjpyZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQordm9pZCBXZWJMb2NrTWFuYWdl
cjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJp
bmcmIG5hbWUpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9z
c1RocmVhZENvcHkobmFtZSldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZv
ck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZWxlYXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7
CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHko
Km1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lID0gY3Jvc3NU
aHJlYWRDb3B5KG5hbWUpXShhdXRvJiByZWdpc3RyeSkgeworICAgICAgICByZWdpc3RyeS5yZWxl
YXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSk7CiAg
ICAgfSk7CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5U
aHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29w
eSgqbV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29w
eShuYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihj
bGllbnRPcmlnaW4pLT5hYm9ydExvY2tSZXF1ZXN0KGxvY2tJZGVudGlmaWVyLCBuYW1lLCBbY29u
dGV4dElkZW50aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGJvb2wgd2FzQWJvcnRlZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB3YXNBYm9ydGVk
XShhdXRvJikgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRJRCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9z
c1RocmVhZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxlIHsKKyAgICAgICAgcmVnaXN0cnkuYWJv
cnRMb2NrUmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFt
ZSwgW2NsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgeworICAgICAgICAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNsaWVudElELCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdhc0Fib3J0ZWQpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjIyLDggKzIyNiw4IEBAIHZvaWQgV2Vi
TG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpCiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFk
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5zbmFwc2hvdChbY29udGV4dElkZW50aWZpZXIs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNuYXBzaG90
JiYgc25hcHNob3QpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElk
ZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50
T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxl
IHsKKyAgICAgICAgcmVnaXN0cnkuc25hcHNob3QoY2xpZW50T3JpZ2luLCBbY29udGV4dElkZW50
aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNu
YXBzaG90JiYgc25hcHNob3QpIG11dGFibGUgewogICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc25hcHNob3QgPSBjcm9z
c1RocmVhZENvcHkoc25hcHNob3QpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzbmFwc2hvdCkpOwogICAgICAgICAgICAgfSk7CkBA
IC0zMDEsMTEgKzMwNSwyOSBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpjbGllbnRJc0dvaW5nQXdh
eSgpCiAgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKICAgICBtX3JlbGVhc2VQcm9taXNl
cy5jbGVhcigpOwogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0gewotICAgICAgICBXZWJMb2NrUmVnaXN0
cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPmNsaWVudElzR29pbmdBd2F5KGNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9
IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpXShhdXRvJiByZWdpc3RyeSkgewor
ICAgICAgICByZWdpc3RyeS5jbGllbnRJc0dvaW5nQXdheShjbGllbnRPcmlnaW4sIGNvbnRleHRJ
ZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJMb2NrTWFuYWdlcjo6ZW5zdXJlT25N
YWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5Jik+JiYgdGFzaykKK3sKKyAg
ICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJl
YWQoKSk7CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkgeworICAgICAgICBpZiAo
YXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5wYWdlKCkpCisgICAgICAg
ICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLnRocmVhZCgpLndvcmtlckxv
YWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihbdGFzayA9IFdURk1vdmUodGFzayldKGF1dG8m
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAgICAgIHRhc2socGFnZS0+d2ViTG9ja1Jl
Z2lzdHJ5KCkpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIGJvb2wgV2ViTG9ja01hbmFnZXI6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiAhbV9wZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpIHx8ICFtX3JlbGVhc2VQcm9taXNlcy5pc0VtcHR5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaApp
bmRleCBmZWNjNDA5MzgzMzljMTcyZmU5NjdiYTljM2Q1OTAzZmYwMzdiNzg5Li45NjgyNjYyMjRj
ZGZlZTU0MWZiNzlmYjBiZGI1MDk5MTQyNjBlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgTmF2aWdhdG9y
QmFzZTsKIGNsYXNzIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s7CitjbGFzcyBXZWJMb2NrUmVnaXN0
cnk7CiAKIHN0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hv
dDsKQEAgLTYyLDggKzYzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJM
b2NrTWFuYWdlcihOYXZpZ2F0b3JCYXNlJik7CiAKLSAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlv
bnMmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4m
JiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJM
b2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHJlcXVlc3RMb2Nr
T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2
b2lkIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBxdWVy
eU9uTWFpblRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmKTsKIApA
QCAtNzIsNiArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsVG9BYm9ydFRoZVJlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIpOwogICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoKTsKIAor
ICAgIHZvaWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5
Jik+JiYgdGFzayk7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QuCiAgICAgdm9pZCBzdG9wKCkg
ZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01h
bmFnZXJTbmFwc2hvdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9j
a01hbmFnZXJTbmFwc2hvdC5oCmluZGV4IDdmNTMzYzNjYzcwMDI4ZDE2YWE0MjcwNGYyYzQ4MWIy
ZjQyMTBkMWUuLjQ0MmMzMDNkMmE4NzRlMjk0M2VmN2FjNWY2MmZjZTM2MDBmMmU3NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25h
cHNob3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFu
YWdlclNuYXBzaG90LmgKQEAgLTM4LDEyICszOCw1NSBAQCBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJT
bmFwc2hvdCB7CiAgICAgICAgIFN0cmluZyBjbGllbnRJZDsKIAogICAgICAgICBJbmZvIGlzb2xh
dGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgbmFtZS5pc29sYXRlZENvcHkoKSwgbW9kZSwgY2xp
ZW50SWQuaXNvbGF0ZWRDb3B5KCkgfTsgfQorCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBuYW1l
IDw8IG1vZGUgPDwgY2xpZW50SWQ7IH0KKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8SW5mbz4gZGVjb2RlKERlY29kZXImKTsKICAgICB9OwogCiAg
ICAgVmVjdG9yPEluZm8+IGhlbGQ7CiAgICAgVmVjdG9yPEluZm8+IHBlbmRpbmc7CiAKICAgICBX
ZWJMb2NrTWFuYWdlclNuYXBzaG90IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgY3Jv
c3NUaHJlYWRDb3B5KGhlbGQpLCBjcm9zc1RocmVhZENvcHkocGVuZGluZykgfTsgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QgeyBlbmNvZGVyIDw8IGhlbGQgPDwgcGVuZGluZzsgfQorICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q+IGRlY29k
ZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25h
bDxXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJbmZvPiBXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJ
bmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gbmFtZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7CisgICAgaWYgKCFuYW1lKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxXZWJMb2NrTW9kZT4gbW9k
ZTsKKyAgICBkZWNvZGVyID4+IG1vZGU7CisgICAgaWYgKCFtb2RlKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNsaWVudElkOworICAg
IGRlY29kZXIgPj4gY2xpZW50SWQ7CisgICAgaWYgKCFjbGllbnRJZCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbmFtZSksICptb2RlLCBX
VEZNb3ZlKCpjbGllbnRJZCkgfSB9OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3Rk
OjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBXZWJMb2NrTWFuYWdlclNuYXBzaG90
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJ
bmZvPj4gaGVsZDsKKyAgICBkZWNvZGVyID4+IGhlbGQ7CisgICAgaWYgKCFoZWxkKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IHBlbmRpbmc7CisgICAgZGVjb2RlciA+PiBwZW5kaW5nOworICAgIGlmICghcGVuZGluZykKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaGVs
ZCksIFdURk1vdmUoKnBlbmRpbmcpIH0gfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKaW5kZXgg
OTM0MzZjMjg0NmIyMTQyY2YwYmFhYjZmNDYwMDUwMjllMTM2ZmVmYi4uZWZiMDQxN2YzNzZhNjVl
NTI2NjZiODc5ODEyYmFmNTg1MWQ3NzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCkBAIC0yNiw2ICsyNiw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotZW51bSBjbGFzcyBXZWJMb2NrTW9kZSB7IFNoYXJlZCwgRXhjbHVzaXZlIH07
CitlbnVtIGNsYXNzIFdlYkxvY2tNb2RlIDogYm9vbCB7IFNoYXJlZCwgRXhjbHVzaXZlIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVn
aXN0cnkuY3BwCmluZGV4IGY2MmM4ZjNhNTY5YjliOWI3NzIzMjIyYTNiNWNiOGRmZWNiMjA3Y2Mu
LjlkNGRkZGVmYjFiZmZmNzM3N2ViNDgwMGNhZTg2NDNkN2EwZTNkMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAt
MzIsNTYgKzMyLDkyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFdlYkxvY2tS
ZWdpc3RyeTo6TG9ja0luZm8gewotICAgIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Owot
ICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOwotICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwotICAgIFdlYkxvY2tNb2RlIG1vZGU7Ci0gICAg
RnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+IHJlbGVhc2VIYW5kbGVyOwotfTsKK2NsYXNzIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVk
PFBlck9yaWdpblJlZ2lzdHJ5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQZXJPcmlnaW5S
ZWdpc3RyeT4gY3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2lu
Jik7CisgICAgflBlck9yaWdpblJlZ2lzdHJ5KCk7CisKKyAgICBzdHJ1Y3QgTG9ja0luZm8gewor
ICAgICAgICBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IHJlZ2lzdHJ5OworICAgICAgICBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQ7CisgICAgICAgIFdlYkxvY2tNb2RlIG1vZGU7CisgICAgICAg
IEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRsZXI7CisgICAgfTsKKworICAgIHZvaWQg
cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpOworICAgIHZvaWQgcmVsZWFzZUxvY2so
V2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVu
dHNBcmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0
Y2hDbGllbnQpOworCitwcml2YXRlOgorICAgIFBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisKKyAgICBzdHJ1Y3QgTG9ja1JlcXVl
c3QgOiBMb2NrSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBGdW5jdGlvbjx2
b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB9OwogCi1zdHJ1Y3QgV2ViTG9ja1JlZ2lz
dHJ5OjpMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsKLSAgICBTdHJpbmcgbmFtZTsKLSAgICBGdW5j
dGlvbjx2b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB2b2lkIHByb2Nlc3NMb2NrUmVx
dWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAg
Ym9vbCBpc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OworCisgICAgV2Vha1B0
cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gbV9nbG9iYWxSZWdpc3RyeTsKKyAgICBDbGllbnRPcmln
aW4gbV9jbGllbnRPcmlnaW47CisgICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0
Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9j
a0luZm8+PiBtX2hlbGRMb2NrczsKIH07CiAKLXN0YXRpYyBIYXNoTWFwPENsaWVudE9yaWdpbiwg
V2ViTG9ja1JlZ2lzdHJ5Kj4mIHJlZ2lzdHJ5TWFwKCkKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpM
b2NhbFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworTG9jYWxXZWJMb2NrUmVnaXN0cnk6
On5Mb2NhbFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworYXV0byBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6ZW5zdXJlUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGll
bnRPcmlnaW4pIC0+IFJlZjxQZXJPcmlnaW5SZWdpc3RyeT4KK3sKKyAgICBpZiAoYXV0byBleGlz
dGluZ1JlZ2lzdHJ5ID0gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdldChjbGllbnRPcmlnaW4pKQor
ICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnk7CisKKyAgICByZXR1cm4gUGVyT3JpZ2lu
UmVnaXN0cnk6OmNyZWF0ZSgqdGhpcywgY2xpZW50T3JpZ2luKTsKK30KKworYXV0byBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmln
aW4mIGNsaWVudE9yaWdpbikgY29uc3QgLT4gUmVmUHRyPFBlck9yaWdpblJlZ2lzdHJ5Pgogewot
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxI
YXNoTWFwPENsaWVudE9yaWdpbiwgV2ViTG9ja1JlZ2lzdHJ5Kj4+IHJlZ2lzdHJ5TWFwOwotICAg
IHJldHVybiByZWdpc3RyeU1hcDsKKyAgICByZXR1cm4gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdl
dChjbGllbnRPcmlnaW4pOwogfQogCi1SZWY8V2ViTG9ja1JlZ2lzdHJ5PiBXZWJMb2NrUmVnaXN0
cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQorUmVmPExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeT4gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoTG9jYWxXZWJMb2NrUmVnaXN0cnkmIGdsb2Jh
bFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKLSAgICBpZiAo
YXV0byBleGlzdGluZ1JlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS5nZXQob3JpZ2luKSkKLSAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBl
ck9yaWdpblJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5LCBjbGllbnRPcmlnaW4pKTsKK30KIAotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkxvY2tSZWdpc3RyeShvcmlnaW4pKTsKK0xvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkoTG9jYWxX
ZWJMb2NrUmVnaXN0cnkmIGdsb2JhbFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbikKKyAgICA6IG1fZ2xvYmFsUmVnaXN0cnkoZ2xvYmFsUmVnaXN0cnkpCisgICAgLCBt
X2NsaWVudE9yaWdpbihjbGllbnRPcmlnaW4pCit7CisgICAgZ2xvYmFsUmVnaXN0cnkubV9wZXJP
cmlnaW5SZWdpc3RyaWVzLmFkZChjbGllbnRPcmlnaW4sIHRoaXMpOwogfQogCi1XZWJMb2NrUmVn
aXN0cnk6OldlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKLSAgICA6
IG1fb3JpZ2luKG9yaWdpbikKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eTo6flBlck9yaWdpblJlZ2lzdHJ5KCkKIHsKLSAgICByZWdpc3RyeU1hcCgpLmFkZChtX29yaWdp
biwgdGhpcyk7CisgICAgaWYgKG1fZ2xvYmFsUmVnaXN0cnkpCisgICAgICAgIG1fZ2xvYmFsUmVn
aXN0cnktPm1fcGVyT3JpZ2luUmVnaXN0cmllcy5yZW1vdmUobV9jbGllbnRPcmlnaW4pOwogfQog
Ci1XZWJMb2NrUmVnaXN0cnk6On5XZWJMb2NrUmVnaXN0cnkoKQordm9pZCBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6cmVxdWVzdExvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBi
b29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50
ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byogcmVnaXN0cnkgPSByZWdpc3RyeU1hcCgpLnRha2UobV9vcmlnaW4pOwotICAgIEFTU0VS
VF9VTlVTRUQocmVnaXN0cnksIHJlZ2lzdHJ5ID09IHRoaXMpOworICAgIGVuc3VyZVJlZ2lzdHJ5
Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVlc3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGll
bnRJRCwgbmFtZSwgbW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBXVEZNb3ZlKGdyYW50ZWRIYW5k
bGVyKSwgV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcikpOwogfQogCiAvLyBodHRwczovL3dpY2cu
Z2l0aHViLmlvL3dlYi1sb2Nrcy8jcmVxdWVzdC1hLWxvY2sKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5
OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
TG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYg
cmVsZWFzZUhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdp
c3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkxvY2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9u
PHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3Rv
bGVuSGFuZGxlcikKIHsKLSAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lk
ZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSB9LCBuYW1l
LCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7
ICp0aGlzLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG1vZGUsIFdURk1vdmUobG9ja1N0b2xl
bkhhbmRsZXIpIH0sIG5hbWUsIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CiAKICAgICBpZiAo
c3RlYWwpIHsKICAgICAgICAgYXV0byBpdCA9IG1faGVsZExvY2tzLmZpbmQobmFtZSk7CiAgICAg
ICAgIGlmIChpdCAhPSBtX2hlbGRMb2Nrcy5lbmQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBsb2NrSW5mbyA6IGl0LT52YWx1ZSkKLSAgICAgICAgICAgICAgICBsb2NrSW5mby5yZWxlYXNl
SGFuZGxlcihFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3Ro
ZXIgcmVxdWVzdCIgfSk7CisgICAgICAgICAgICAgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRs
ZXIoKTsKICAgICAgICAgICAgIG1faGVsZExvY2tzLnJlbW92ZShpdCk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKGlmQXZhaWxhYmxlICYmICFpc0dyYW50YWJsZShyZXF1ZXN0KSkgewpAQCAt
OTYsOCArMTMyLDE0IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0CiAgICAgcHJvY2Vzc0xvY2tS
ZXF1ZXN0UXVldWUobmFtZSwgcXVldWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjpyZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBleGlzdGlu
Z1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikpCisgICAgICAgIHJlZ2lzdHJ5LT5yZWxl
YXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRo
dWIuaW8vd2ViLWxvY2tzLyNhbGdvcml0aG0tcmVsZWFzZS1sb2NrCi12b2lkIFdlYkxvY2tSZWdp
c3RyeTo6cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lKQogewogICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwog
ICAgIGlmIChpdCA9PSBtX2hlbGRMb2Nrcy5lbmQoKSkKQEAgLTExMyw4ICsxNTUsMTcgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcKICAgICAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUobmFt
ZSwgcXVldWVJdGVyYXRvci0+dmFsdWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICByZWdpc3RyeS0+YWJvcnRM
b2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWJvcnQtdGhl
LXJlcXVlc3QKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcXVldWVJ
dGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5maW5kKG5hbWUpOwogICAgIGlmIChxdWV1
ZUl0ZXJhdG9yID09IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5lbmQoKSkKQEAgLTEzNiw3ICsxODcs
NyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgUwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jZ3JhbnRhYmxlCi1ib29sIFdlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFi
bGUoY29uc3QgTG9ja1JlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Citib29sIExvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3Qm
IHJlcXVlc3QpIGNvbnN0CiB7CiAgICAgYXV0byBxdWV1ZUl0ZXJhdG9yID0gbV9sb2NrUmVxdWVz
dFF1ZXVlTWFwLmZpbmQocmVxdWVzdC5uYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciAhPSBt
X2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkgJiYgJnF1ZXVlSXRlcmF0b3ItPnZhbHVlLmZpcnN0
KCkgIT0gJnJlcXVlc3QpCkBAIC0xNTMsNyArMjA0LDcgQEAgYm9vbCBXZWJMb2NrUmVnaXN0cnk6
OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogfQogCiAvLyBo
dHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jcHJvY2Vzcy10aGUtbG9jay1yZXF1ZXN0
LXF1ZXVlCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdWVzdD4mIHF1ZXVlKQordm9pZCBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKIHsKICAgICB3
aGlsZSAoIXF1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIWlzR3JhbnRhYmxlKHF1ZXVl
LmZpcnN0KCkpKQpAQCAtMTY4LDggKzIxOSwxNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJv
Y2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdQog
ICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZFF1ZXVlLCByZW1vdmVkUXVldWUuaXNFbXB0eSgpKTsK
IH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6
OlNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVnaXN0cnkg
PSBleGlzdGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbik7CisgICAgaWYgKCFyZWdp
c3RyeSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAgICByZWdp
c3RyeS0+c25hcHNob3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiAvLyBodHRw
czovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jc25hcHNob3QtdGhlLWxvY2stc3RhdGUKLXZv
aWQgV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxv
Y2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJMb2NrTWFuYWdlcjo6U25hcHNob3Qgc25hcHNob3Q7CiAgICAgZm9yIChh
dXRvJiBwYWlyIDogbV9sb2NrUmVxdWVzdFF1ZXVlTWFwKSB7CkBAIC0xODQsMTQgKzI0NCwyMSBA
QCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
c25hcHNob3QpKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2lu
Z0F3YXkoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+
Y2xpZW50c0FyZUdvaW5nQXdheShbY2xpZW50SURdKGF1dG8mIGxvY2tJbmZvKSB7IHJldHVybiBs
b2NrSW5mby5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vd2ViLWxvY2tzLyNhZ2VudC1pbnRlZ3JhdGlvbgotdm9pZCBXZWJMb2NrUmVnaXN0
cnk6OmNsaWVudElzR29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNs
aWVudElEKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNs
aWVudHNBcmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYg
bWF0Y2hDbGllbnQpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5lZmZpY2llbnQuIFdlIGNv
dWxkIG9wdGltaXplIHRoaXMgYnkga2VlcGluZyB0cmFjayBvZiB3aGljaCBsb2NrcyBtYXAgdG8g
d2hpY2ggY2xpZW50cy4KICAgICBIYXNoU2V0PFN0cmluZz4gbmFtZXNPZlF1ZXVlc1RvUHJvY2Vz
czsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzV2l0aG91dFJlcXVlc3RzOwogICAgIGZvciAo
YXV0byYgcGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewotICAgICAgICBpZiAoIXBhaXIu
dmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiByZXF1ZXN0KSB7IHJldHVy
biByZXF1ZXN0LmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRSZXF1ZXN0cy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjAzLDcgKzI3MCw3IEBAIHZvaWQg
V2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJCiAKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRMb2Nr
czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2hlbGRMb2NrcykgewotICAgICAgICBpZiAoIXBh
aXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyBy
ZXR1cm4gbG9ja0luZm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pKQorICAgICAgICBpZiAoIXBh
aXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcobWF0Y2hDbGllbnQpKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5h
bWVzV2l0aG91dExvY2tzLmFwcGVuZChwYWlyLmtleSk7CkBAIC0yMTksNCArMjg2LDEzIEBAIHZv
aWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJCiAgICAgfQogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlm
aWVyKQoreworICAgIFZlY3RvcjxDbGllbnRPcmlnaW4+IGNsaWVudE9yaWdpbnMgPSBjb3B5VG9W
ZWN0b3IobV9wZXJPcmlnaW5SZWdpc3RyaWVzLmtleXMoKSk7CisgICAgZm9yIChhdXRvJiBjbGll
bnRPcmlnaW4gOiBjbGllbnRPcmlnaW5zKSB7CisgICAgICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0g
ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICAgICAgcmVn
aXN0cnktPmNsaWVudHNBcmVHb2luZ0F3YXkoW3Byb2Nlc3NJZGVudGlmaWVyXShhdXRvJiBsb2Nr
SW5mbykgeyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBw
cm9jZXNzSWRlbnRpZmllcjsgfSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3Ry
eS5oCmluZGV4IGE2ZThkMDM1M2JkYzIwOTlhMDkyNGM3NzYzMjRlZWFkZDk0M2EwNmMuLjhiNjMx
NGU4YjExYmUyYTVkMzBiYTc5MjgxODAyYWNiNWNmNzc3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCkBAIC0yNSw5ICsyNSw5
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNsaWVudE9yaWdpbi5oIgorI2luY2x1ZGUg
IlByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJMb2NrSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIldl
YkxvY2tNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01vZGUuaCIKICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDAsMjkgKzQwLDQwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV4Y2VwdGlvbjsKIHN0cnVjdCBXZWJMb2NrTWFuYWdl
clNuYXBzaG90OwogCi1jbGFzcyBXZWJMb2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJMb2NrUmVnaXN0cnk+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViTG9ja1JlZ2lzdHJ5PiB7
CitjbGFzcyBXZWJMb2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJMb2NrUmVnaXN0
cnk+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkxvY2tSZWdpc3RyeT4gcmVnaXN0cnlG
b3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJik7Ci0gICAgfldlYkxvY2tSZWdpc3RyeSgpOwor
ICAgIHZpcnR1YWwgfldlYkxvY2tSZWdpc3RyeSgpIHsgfQogCi0gICAgdm9pZCByZXF1ZXN0TG9j
ayhXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFi
bGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQo
RXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5kbGVyKTsKLSAgICB2b2lkIHJlbGVhc2VMb2NrKFdl
YkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOwotICAgIHZvaWQgYWJvcnRMb2Nr
UmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7Ci0gICAgdm9pZCBjbGllbnRJ
c0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBX
ZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5k
bGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdp
biYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc25hcHNob3QoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90
JiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENs
aWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CiAKLXBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViTG9ja1JlZ2lzdHJ5KGNvbnN0IENsaWVudE9yaWdpbiYp
OworcHJvdGVjdGVkOgorICAgIFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKK307CisKK2Ns
YXNzIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tSZWdpc3RyeSwg
cHVibGljIENhbk1ha2VXZWFrUHRyPExvY2FsV2ViTG9ja1JlZ2lzdHJ5PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBMb2NhbFdlYkxvY2tSZWdpc3RyeSk7IH0KKyAgICB+TG9jYWxXZWJMb2NrUmVn
aXN0cnkoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdExvY2soY29uc3QgQ2xp
ZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVsZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBD
bGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzbmFwc2hvdChjb25zdCBDbGll
bnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50SXNHb2luZ0F3YXko
Y29uc3QgQ2xpZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZp
bmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNz
SWRlbnRpZmllcik7CiAKLSAgICBzdHJ1Y3QgTG9ja0luZm87Ci0gICAgc3RydWN0IExvY2tSZXF1
ZXN0OworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCBMb2NhbFdlYkxvY2tSZWdpc3RyeSgp
OwogCi0gICAgYm9vbCBpc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OwotICAg
IHZvaWQgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxM
b2NrUmVxdWVzdD4mKTsKKyAgICBjbGFzcyBQZXJPcmlnaW5SZWdpc3RyeTsKKyAgICBSZWY8UGVy
T3JpZ2luUmVnaXN0cnk+IGVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdp
biYpOworICAgIFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4gZXhpc3RpbmdSZWdpc3RyeUZvck9y
aWdpbihjb25zdCBDbGllbnRPcmlnaW4mKSBjb25zdDsKIAotICAgIGNvbnN0IENsaWVudE9yaWdp
biBtX29yaWdpbjsKLSAgICBIYXNoTWFwPFN0cmluZywgRGVxdWU8TG9ja1JlcXVlc3Q+PiBtX2xv
Y2tSZXF1ZXN0UXVldWVNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxMb2NrSW5mbz4+
IG1faGVsZExvY2tzOworICAgIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBQZXJPcmlnaW5SZWdpc3Ry
eSo+IG1fcGVyT3JpZ2luUmVnaXN0cmllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li4wZjBjOGM5NTdl
NGNkNWZkZjM3MWE0NmRhYmQwODA3MzAwMWU5MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzExLDEwICsxMzExLDEyIEBA
CiAJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGlt
ZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MjczQ0FGMjYwRTU5
RUYwMDZGQUE5MSAvKiBTV1NjcmlwdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjczQ0FDMjYwRTU5REYwMDZGQUE5MSAvKiBTV1Njcmlw
dFN0b3JhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0NjJDN0Y0MTI3NTZEQkU0MDBEMDgzQzggLyogV2ViTG9ja0lkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIyMjc0NzEx
ODUwMERBOUZCNiAvKiBXZWJMb2NrSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MkU0QzUwMjYxNkE4MTEwMDNBMkM2NyAvKiBT
Y3JpcHRCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MkU0QzREMjYxNkE4MDEwMDNBMkM2NyAvKiBTY3JpcHRCdWZmZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjM0QzcyQzI3NTdEQUIy
MDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3ODAyQjAyNzQ3MTE3QjAwREE5RkI2IC8qIFdl
YkxvY2tNYW5hZ2VyU25hcHNob3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2luZG93UHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0VCNjIzMUI4Nzg5RTAwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjNFQjYyMTFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovOyB9Owot
CQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5
RSAvKiBXZWJMb2NrTW9kZS5oICovOyB9OworCQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2NDRGN0Y4MjcyQTFDMUYw
MDU1NTk5RSAvKiBXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFRTI3MkExQzE2MDA1NTU5OUUgLyogV2Vi
TG9ja0dyYW50ZWRDYWxsYmFjay5oICovOyB9OwogCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUg
LyogV2ViTG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NDRGN0YwMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTWFuYWdlci5oICov
OyB9OwogCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RjMyNzJBMUMxNjAwNTU1
OTlFIC8qIFdlYkxvY2suaCAqLzsgfTsKQEAgLTM3NTUyLDcgKzM3NTU0LDkgQEAKIAkJCQkwRkNG
MzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NDRGN0ZBMjcyQTFDMjUwMDU1NTk5RSAvKiBXZWJMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjQ0RjdGODI3MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUgLyogV2Vi
TG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MzRDNzJDMjc1N0RBQjIwMDI2QTgx
NSAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
NzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NENBRjA5Mjc0MzMxQTcwMDNCOUU0MSAvKiBXZWJMb2NrUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RjVDRkY1MjU4MkE1MUQwMDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRpZXNDb2Nv
YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IDNhMDY0YmM3MjMxYTM2MDBjYzgzZGM1OGE5YTJlN2ZmMmVlOTZiMzUuLmMwODc4NWFmOGZj
OTI0ZTM1M2ZmZDQ4M2RmN2I5NWRhMjQ0M2FlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTE3MCw2ICsxMTcx
LDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBDbGllbnRPcmlnaW4m
LCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbCB7IH0K
IH07CiAKK2NsYXNzIEVtcHR5V2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tS
ZWdpc3RyeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxFbXB0eVdlYkxvY2tSZWdpc3RyeT4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5V2ViTG9j
a1JlZ2lzdHJ5KTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgcmVxdWVzdExvY2soY29uc3Qg
Q2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJMb2NrTW9kZSwgYm9vbCwgYm9vbCwgRnVuY3Rp
b248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KKyAgICB2b2lkIHJlbGVh
c2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9p
ZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWwgeyB9CisgICAgdm9pZCBzbmFwc2hvdChj
b25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2Vy
U25hcHNob3QmJik+JiYpIHsgfQorICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIHsgfQorfTsKKwog
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmln
dXJhdGlvbiB7CkBAIC0xMTg2LDYgKzEyMDEsNyBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAg
ICAgRW1wdHlCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpLAorICAgICAgICBFbXB0
eVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCksCiAgICAgICAgIER1bW15UGVybWlzc2lvbkNvbnRy
b2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3RvcmFnZVByb3Zp
ZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNTcwNmFkODYyOGZiOWJiMmM0OTg2NTM1YzYzMmQ5ZDJk
YWM5MTNlZi4uZjM3ZDA1OWIwZWI1MjZjNTQ5YzBkN2RlYjRlYTVhMDg4MGZmMGQ4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0zMDYsNiArMzA2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBtX3Zp
c2l0ZWRMaW5rU3RvcmUoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9y
ZSkpCiAgICAgLCBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3Ry
eShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBtX3Nl
c3Npb25JRChwYWdlQ29uZmlndXJhdGlvbi5zZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFZJREVPKQog
ICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyKCp0aGlzLCAmUGFnZTo6
cGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lckZpcmVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCBmMWUwOGJjNGZlYzA3NDkxNmEzNzMzYWRmZjYyMDcxZGE0ZWQzODU2Li43NzlkOTNhMjQ1OTA1
MmMxMjMwYjAzMTMwODgwZDdhNDRiZmY5NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTY3LDYgKzE2
Nyw3IEBAIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRlcjsKIGNs
YXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKIApAQCAtMjk4LDYgKzI5OSw4IEBAIHB1YmxpYzoK
ICAgICBCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgp
IHsgcmV0dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoUmVmPEJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeT4mJik7IC8vIE9ubHkgdXNlZCBieSBXZWJLaXRMZWdhY3kuCiAKKyAgICBXZWJMb2Nr
UmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5OyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoUGFnZShjb25zdCBGdW5j
dGlvbjx2b2lkKFBhZ2UmKT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdW5zaWduZWQg
bm9uVXRpbGl0eVBhZ2VDb3VudCgpOwogCkBAIC0xMTMyLDYgKzExMzUsNyBAQCBwcml2YXRlOgog
ICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlkZXI7CiAgICAg
UmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8QnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8
V2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWZQdHI8V2hlZWxFdmVu
dFRlc3RNb25pdG9yPiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvcjsKICAgICBXZWFrSGFzaFNldDxB
Y3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVy
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAxOTdj
NzhlNGZlOTgxZWVmOGMyYWQ0YWZiNjU3NjZjNWIzODhlYzdhLi5hZTQyN2I3ZDJjZmU3YjIyMmE1
NWQ4NWU5ODE4YjA0NDc4NTRjY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0
dGVybi5oIgogI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
VmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lmIEVO
QUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogI2VuZGlmCkBAIC02
Myw3ICs2NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246
OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVk
aXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQ
cm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVy
LCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxV
c2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3Jk
ZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJv
bGxlciwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1
ZVJlZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCitQYWdlQ29u
ZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
bmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2Vi
UlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlciwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYm
IGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1Ry
YWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYg
bWVkaWFSZWNvcmRlclByb3ZpZGVyLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmIGJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgUmVmPFdlYkxvY2tSZWdpc3RyeT4mJiB3ZWJMb2NrUmVn
aXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJvbGxlciwg
VW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1ZVJlZjxN
b2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9u
SUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkK
ICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNzUsNiAr
NzYsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlk
ZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCiAgICAgLCB1c2VyQ29udGVudFByb3Zp
ZGVyKFdURk1vdmUodXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBicm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoV1RGTW92ZShicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgd2ViTG9j
a1JlZ2lzdHJ5KFdURk1vdmUod2ViTG9ja1JlZ2lzdHJ5KSkKICAgICAsIHNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKICAgICAsIG1l
ZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRlcikpCiAgICAg
LCBwZXJtaXNzaW9uQ29udHJvbGxlcihXVEZNb3ZlKHBlcm1pc3Npb25Db250cm9sbGVyKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA3ZmIzMzQ2NTdlMzEyMGM1
YWRiZDJkNGQyYWZmYjYwMGFiMjliYjJmLi5iYWM2ZmIyZjVlNjFkNDE3ZmY5YzU4NGNkYTQ4YmI0
NjllOWQwNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC03
NCwxMSArNzQsMTIgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xT
dGF0ZVRyYWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiAKIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBS
ZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiYmLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmLCBSZWY8UGVybWlz
c2lvbkNvbnRyb2xsZXI+JiYsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYsIFVuaXF1ZVJl
ZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFdlYkxvY2tSZWdp
c3RyeT4mJiwgUmVmPFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVBy
b3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFn
ZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVm
PFVzZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZp
c2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeT4gYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAgIFJlZjxXZWJMb2NrUmVn
aXN0cnk+IHdlYkxvY2tSZWdpc3RyeTsKICAgICAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKaW5kZXggODJhYTVmMjJkZDcyMGMxOTE4NDZhOTQyYTM5MTRjYmZlYWM4NmM3ZS4u
NTIxNGYyMTdiMGIyNDhlMDA0ZmE1ZGVjMWFkMDk1ODAxMWQ5MTU4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CkBAIC0yMjksNiArMjI5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAg
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eQorICAgIFVJUHJvY2Vzcy9XZWJMb2NrTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkKICAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wKQEAgLTMwNyw2ICszMDgsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBhNzg5N2I5NjFhMzlkYWY5MjdjNTRkMTJlZmEzYzg5NzE0OTdiMDJmLi44NTky
ZDk5ZDJlMzZhZmM5ZWY4NWRjYzFjM2Y1NzRlYzE5NWVlZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNTMsNiArMTUzLDcgQEAgJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgpAQCAtMjE3LDYgKzIxOCw3IEBAICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggOTNhNjE0NmQ2YjEzOWNiOGExNmExNzFiYjc3ZDQ0YmQzYjU4YjY1Yi4u
YTU5ZTYyM2IwOWU2YTk3ZWZmZWQ0ZjljNTJmNTczNjM2NDVlYWM1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zODcsNiArMzg3LDkg
QEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVX
ZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgK
QEAgLTUyNiw2ICs1MjksOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lz
dHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdp
c3Rlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDU3
NDM4NjVhNGFjODMyZDNlNWRiZDRhZmQ0MzhiZDc1MzJjZDkyMy4uMTkzMzg4NDk2MWI0YmMzMDRm
MDg5YjBiNTRlMTQ4OTFiNWMzNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MTY4LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9pb3MvU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAJVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5IFwKIAlVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAorCVVJUHJvY2Vz
cy9XZWJMb2NrUmVnaXN0cnlQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgXApA
QCAtMjE4LDYgKzIxOSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDTW9uaXRvciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2
ZXIgXAorCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IFwK
IAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBc
CiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCA3NmMyZGViYWZkOTFkMTZmOGQ3NzA4OTNmNDg4OTY5MDBkZmUyNmQyLi4yYzgzOWE5ZTliY2Q4
ZTlmMTIxZGY4OTMwZmY0MmZjNjBjYjI3ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTMxMiw2ICszMTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6U291cmNlQnVmZmVyQXBw
ZW5kTW9kZScsCiAgICAgICAgICdXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0
eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggM2U0M2QzZTEz
YTc2NzhmODE0Y2I2YzQ3NDEyNzA5YTMzM2Q3OTU0Yi4uZmU2MDQxMmMyYTE1MmFiNWM0MmVmYWZj
MGJiOGJhMjRhNDc4OWZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC00MzUsNiArNDM1LDcgQEAgVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcAorVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVBy
b3h5LmNwcAogVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKIFVJUHJvY2Vzcy9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTc4MSw2ICs3ODIsNyBAQCBXZWJQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAogV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcAogCitXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC04NDcsOCArODQ5LDYg
QEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1l
c3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKLVdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKLQogUmVt
b3RlQWRhcHRlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNl
aXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTg3
MSwzICs4NzEsNiBAQCBSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlU2hh
ZGVyTW9kdWxlTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
TWVzc2FnZVJlY2VpdmVyLmNwcAorV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjU1NWJmN2NhOTUxN2NkMjMxNjlkNzExMTFhYmVkMWU2N2E5MzRiZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCisKKyNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdp
c3RyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFz
c2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV9wcm9jZXNzLmNvbm5lY3Rp
b24oKSkKKworV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OldlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIG1f
cHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworV2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6On5XZWJMb2NrUmVnaXN0cnlQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlcXVlc3RMb2NrKFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBsb2Nr
TW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNL
KGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVu
dGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVxdWVzdExvY2so
V1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUo
bmFtZSksIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdKGJvb2wgc3VjY2VzcykgeworICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkQ29tcGxldGVMb2NrUmVxdWVzdChs
b2NrSWRlbnRpZmllciwgY2xpZW50SUQsIHN1Y2Nlc3MpLCAwKTsKKyAgICB9LCBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRTdGVhbExvY2sobG9ja0lkZW50aWZpZXIs
IGNsaWVudElEKSwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lKQoreworICAgIE1F
U1NBR0VfQ0hFQ0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nl
c3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQu
cHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkp
OworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVs
ZWFzZUxvY2soV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IFdURk1vdmUobmFtZSkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjphYm9ydExv
Y2tSZXF1ZXN0KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6
V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIE1FU1NBR0VfQ0hF
Q0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lk
ZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuYWJvcnRMb2NrUmVx
dWVzdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURh
dGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnNuYXBzaG90KFdURk1vdmUoY2xpZW50T3JpZ2lu
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3Ry
eVByb3h5OjpjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
KQoreworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBt
X3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRl
RGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuY2xpZW50SXNHb2luZ0F3YXkoV1RGTW92ZShj
bGllbnRPcmlnaW4pLCBjbGllbnRJRCk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnByb2Nlc3NEaWRFeGl0KCkKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndl
YkxvY2tSZWdpc3RyeSgpLmNsaWVudHNBcmVHb2luZ0F3YXkobV9wcm9jZXNzLmNvcmVQcm9jZXNz
SWRlbnRpZmllcigpKTsKK30KKworI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYmEzMWE5YjkyYjcxNjFjN2NhZDYwMmJmYmExYjgzNjk5NzMzMjdj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja01vZGUuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBXZWJMb2NrTWFuYWdlclNu
YXBzaG90OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OworCitjbGFzcyBXZWJMb2NrUmVnaXN0cnlQcm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgV2ViTG9ja1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgfldl
YkxvY2tSZWdpc3RyeVByb3h5KCk7CisKKyAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworcHJpdmF0ZToKKyAgICAvLyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lk
IHJlcXVlc3RMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRl
bnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmlu
ZyYmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJD
b3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFN0cmluZyYmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyU25hcHNob3QmJik+JiYpOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KTsKKworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9j
a1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhYmMyNTRjNDFlMGUwMTkx
NTZjYTgxMmM0NmZlNzkwMzA1MTdlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4g
V2ViTG9ja1JlZ2lzdHJ5UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgUmVxdWVzdExvY2soc3Ry
dWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSwgZW51bTpib29sIFdlYkNvcmU6OldlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCisgICAgUmVsZWFzZUxvY2so
c3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkKKyAgICBBYm9ydExvY2tSZXF1ZXN0KHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpIC0+IChib29sIHdhc0Fib3J0ZWQpIEFzeW5j
CisgICAgU25hcHNob3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4p
IC0+IChzdHJ1Y3QgV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCBzbmFwc2hvdCkgQXN5
bmMKKyAgICBDbGllbnRJc0dvaW5nQXdheShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNs
aWVudE9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xp
ZW50SWQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAwMjhjOGQ4ZWYwNzE0YzgyZWI5MDRjOTRlN2UyOTcxZDg1YmFlYjEzLi5jMThkMDc2NjMy
ZTM4YzZhMjNmNjhmNTVkZTZlNTVhNzJkYjA4ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJC
YWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdp
c3RyeVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91
cC5oIgpAQCAtMjQwLDYgKzI0MSw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5
KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1f
Y2FwdGl2ZVBvcnRhbE1vZGUoY2FwdGl2ZVBvcnRhbE1vZGUpCiAgICAgLCBtX2Nyb3NzT3JpZ2lu
TW9kZShjcm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291
bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3Vu
dGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9KQorICAgICwgbV93ZWJMb2Nr
UmVnaXN0cnkobWFrZVVuaXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQcm94eT4oKnRoaXMpKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKICAgICBX
RUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNvbnN0cnVjdG9yOiIpOwpAQCAt
NTI4LDYgKzUzMCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiAgICAgbV91
c2VySW5pdGlhdGVkQWN0aW9uTWFwLmNsZWFyKCk7CiAgICAgbV9zbGVlcERpc2FibGVycy5jbGVh
cigpOwogCisgICAgbV93ZWJMb2NrUmVnaXN0cnktPnByb2Nlc3NEaWRFeGl0KCk7CisKICNpZiBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBtX3JvdXRpbmdBcmJpdHJhdG9yLT5wcm9j
ZXNzRGlkVGVybWluYXRlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZGE2ZGM2OGVlYmNlY2I0MjM2MjdlYzk4OWQ2YmNhYTgwMTU3NDk3
My4uY2QzMzA4NjQ5NDQzYjVlM2VkMmI0ZjcxYTIyNzFmNmZlNTcwOGFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDYgKzkzLDcgQEAgY2xhc3Mg
VmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKQEAgLTY3NCw2ICs2NzUsNyBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICNlbmRpZgorICAgIFVu
aXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQcm94eT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZmMxZDlhZTk4OTNkZDkx
MDE2NzNmN2M4ZGFlNmYzYjliYThlMzljNy4uOTA5NzkzZTM3NTY4YzA0MmIxMDAyYTI2YWEwMjc0
Nzg0YTkxZTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFj
a0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCBXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4mJiBjb25maWd1cgogI2lmIEhBVkUoQVBQX1NTTykKICAgICAsIG1fc29BdXRob3JpemF0
aW9uQ29vcmRpbmF0b3IobWFrZVVuaXF1ZVJlZjxTT0F1dGhvcml6YXRpb25Db29yZGluYXRvcj4o
KSkKICNlbmRpZgorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxs
UHJpdmlsZWdlcygpKTsKICAgICByZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aAppbmRleCA2MTk2MjgwZjc2ZGExMjAyOThlMmI3YWIxNjQwNWQyZjBiYTI4OTIzLi4xZGUyNWE2
NjA1N2YyZDY2YzYyOTllNWViYmI4MTQ2YmVlOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC03NSw2
ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBMb2Nh
bFdlYkxvY2tSZWdpc3RyeTsKIAogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb247CiB9CkBAIC0zMTcsNiArMzE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50
KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYmIGNsaWVudCkgeyBtX2NsaWVudCA9
IFdURk1vdmUoY2xpZW50KTsgfQogCiAgICAgQVBJOjpIVFRQQ29va2llU3RvcmUmIGNvb2tpZVN0
b3JlKCk7CisgICAgV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3Ry
eSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9CiAKICAgICB2b2lkIHJlbmFt
ZU9yaWdpbkluV2Vic2l0ZURhdGEoVVJMJiYsIFVSTCYmLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApAQCAtNDcxLDYgKzQ3Myw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU+IG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsgLy8gTGF6aWx5IGNvbXB1dGVk
LgogI2VuZGlmCisgICAgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxv
Y2tSZWdpc3RyeTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGIxMjA0ZTNjNDNiYjg2YWVkNDZiM2M1MTEwMzUzOGVhNTcy
YjhkODAuLmE0NTExNWY0ODlhYTJjY2JjOWJlYzRjZTE3ZGY2MDdiZTI4NWI1MjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA4LDYg
KzkwOCw3IEBACiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYz
RkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVB
RDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwogCQk0NjVGNEUw
NjIzMEIyRTk1MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUY0RTA1MjMwQjJFN0Mw
MDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovOyB9OworCQk0NjVGQTcy
NjI3NTdEOTNEMDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYy
QiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovOyB9OwogCQk0NjZCQzAzQzFGQTI2NkRBMDAy
RkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovOyB9OwogCQk0NjcxRkYxRjIzMjE3
RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAv
KiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovOyB9OwogCQk0NjdFNDNFODIyNDNGRjdEMDBC
MTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2N0U0M0U3MjI0M0ZGNkQwMEIxMzkyNCAv
KiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwpAQCAtNDE3Niw2ICs0MTc3
LDkgQEAKIAkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwNTIzMEIyRTdDMDAzQ0VE
QjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1
RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzgxRkEyNjZDOTAwMkZB
OUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8q
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQxODYsNiArNDE5MCw4IEBACiAJCTQ2ODA5QTdCMjNEOTIyNTMwMEMyOTdE
MCAvKiBXZWJDb29raWVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb29raWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
ODM1NjlBMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QjIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
Njg5QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0Njg5QjkxMDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OURFODAyMjczRUNDNUQwMDkzMDI3NiAvKiBQcm9j
ZXNzTGF1bmNoZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFByb2Nlc3NMYXVuY2hlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkEyQjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFj
a2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00MjA0LDYgKzQyMTAsOCBAQAogCQk0NkNFM0IxMDIzRDhDODNEMDAxNkE5NkEg
LyogV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
REYwNjNBMUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTk3NjBBMjc1N0Y2QzkwMEFD
REQzNyAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyog
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0QTI2OUUwNTE3MDBE
RDQ4QUIgLyogTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1MzgsNiArMTA1NDYsOSBA
QAogCQkJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNE
RjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JB
QiAvKiBtYWMgKi8sCisJCQkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeS5jcHAgKi8sCisJCQkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQx
MDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1
MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQz
QTlDREUyNUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8s
CkBAIC0xMDU0NSw2ICsxMDU1Niw3IEBACiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8q
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovLAogCQkJCTQ2RUUyODQ3MjY5RTA0OUIwMERE
NDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovLAogCQkJCTQ2RUUyODQ4
MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLywKKwkJ
CQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lm1lc3NhZ2VzLmluICovLAogCQkJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0RCAvKiBXZWJDYXB0
aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8sCiAJCQkJRTNBODZGQkIyNjk1OEQ4MzAwNTky
NjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQkMxMTFBNTMx
MTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCkBAIC0xMDgyOCw2ICsx
MDg0MCw5IEBACiAJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXIuY3BwICovLAogCQkJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJNTFDOEUxOUIxRjIxNjE3MjAwQkY3MzFCIC8qIFdl
Ykljb25EYXRhYmFzZS5oICovLAorCQkJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJM
b2NrUmVnaXN0cnlQcm94eS5jcHAgKi8sCisJCQkJNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8q
IFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8sCisJCQkJNDY1RkE3MjQyNzU3RDkxODAwNzIzNjJC
IC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTJEM0VGNDQwMTkx
NzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovLAogCQkJCTJE
M0VGNDQxMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLywK
IAkJCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRlLmNwcCAq
LywKQEAgLTEyNDQ5LDggKzEyNDY0LDggQEAKIAkJCQk1MTYwRTk1RTI3NEMyQTAzMDA1NjczODgg
LyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwRTk1OTI3
NEMwRDg5MDA1NjczODggLyogUHVzaEFwcEJ1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFG
N0JCN0IyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5RjI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGMkYy
NzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0xMzMzNCw2ICsxMzM0OSw3IEBACiAJCQkJQkNCNjM0NzgxMTZC
RjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QkE1MDUx
Njk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTYyODBDNzE5MTk5NTBDMDA2QUQ5RjkgLyogV2ViS2l0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QjcyNUM4MUQz
NDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMzM5OCw2ICsxMzQxNCw3IEBACiAJCQkJMUExRTA5MzQxODg2MUQzODAwRDJE
QzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEy
RjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2Vi
UHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTJDRDY5QTI3MjFGMEE5MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUg
LyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEz
NTQ4LDcgKzEzNTY1LDYgQEAKIAkJCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyogV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Qzc5NUQ3MTIyOUYzNzU3
MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFBNTU1RjYxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERh
ZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTYw
MTEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDOTM4RTExMTgwREU0NDAwODVFNUZFIC8qIFdLQ29u
dGV4dFByaXZhdGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCmluZGV4IGFhNzQzYzYyZTNmM2I1NTQzY2E3Y2ZjN2I1MmUyZTMwYWQ5OTE5Y2QuLmY5
Yjg1MjQ2ZGY1YjZiMjM5YWYwZGE4Y2JmMDk1Mjg1NTU0NzdlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgor
I2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0aWFsaXph
dGlvbkRhdGEuaCIKICNpbmNsdWRlICJXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCIKQEAg
LTE0OCw2ICsxNDksNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0
YWxsU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyQ29udGV4dERhdAogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0
ZShtX3BhZ2VHcm91cElEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zb2NrZXRQcm92aWRlciA9
IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUobV93ZWJQYWdlUHJveHlJRCk7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
d2ViTG9ja1JlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5
KCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1fdXNlckNv
bnRlbnRDb250cm9sbGVyOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmxpYldlYlJUQ1Byb3ZpZGVyID0gbWFrZVVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyTGliV2Vi
UlRDUHJvdmlkZXI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlYWYwOWVlNmIzNzU5Y2VkNDI3MjdmMmZmZjBlNWIzZDkzOThlOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKKworI2luY2x1
ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1Jl
Z2lzdHJ5UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9pZCgpPiBs
b2NrU3RvbGVuSGFuZGxlcjsKK307CisKK3N0cnVjdCBMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsK
KyAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBsb2NrR3JhbnRlZEhhbmRsZXI7Cit9OworCitzdHJ1
Y3QgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpMb2Nrc1NuYXBzaG90IHsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdD4gcGVuZGluZ1JlcXVlc3RzOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIExvY2tJbmZvPiBoZWxkTG9j
a3M7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwZW5kaW5nUmVxdWVzdHMu
aXNFbXB0eSgpICYmIGhlbGRMb2Nrcy5pc0VtcHR5KCk7IH0KK307CisKK1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmIHByb2Nlc3MpCit7Cisg
ICAgcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeTo6flJlbW90ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWws
IGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIs
IEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKK3sKKyAgICBMb2NrUmVxdWVz
dCByZXF1ZXN0IHsgeyBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBXVEZNb3ZlKGdyYW50
ZWRIYW5kbGVyKSB9OworICAgIGF1dG8mIHNuYXBzaG90ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LmVuc3VyZShjbGllbnRJRCwgW10geyByZXR1cm4gTG9ja3NTbmFwc2hvdCB7IH07IH0pLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICBzbmFwc2hvdC5wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZXF1ZXN0TG9jayhjbGllbnRP
cmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgbG9ja01vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVsZWFz
ZUxvY2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAg
IGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAg
aWYgKGl0ICE9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkgeworICAgICAgICBpdC0+
dmFsdWUuaGVsZExvY2tzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgIGlmIChpdC0+
dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJl
bW92ZShpdCk7CisgICAgfQorCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNz
YWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlJlbGVhc2VMb2NrKGNsaWVudE9yaWdpbiwgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpBYm9ydExvY2tSZXF1ZXN0KGNsaWVu
dE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBkaWRBYm9ydCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBkaWRBYm9ydCkgeworICAgICAgICAgICAgYXV0byBp
dCA9IHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7Cisg
ICAgICAgICAgICBpZiAoaXQgIT0gd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5l
bmQoKSkgeworICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMucmVtb3Zl
KGxvY2tJZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVu
dC5yZW1vdmUoaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGRpZEFib3J0KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2Nr
UmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNo
b3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6U25h
cHNob3QoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDApOworfQor
Cit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIG1fbG9ja3NTbmFwc2hvdFBlckNs
aWVudC5yZW1vdmUoY2xpZW50SUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQo
TWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpDbGllbnRJc0dvaW5nQXdheShjbGllbnRP
cmlnaW4sIGNsaWVudElEKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpk
aWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCwgYm9vbCBzdWNjZXNzKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGll
bnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVu
dC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IGl0
LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYgKCFw
ZW5kaW5nUmVxdWVzdC5sb2NrR3JhbnRlZEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gbG9ja0dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShwZW5kaW5nUmVxdWVzdC5sb2NrR3Jh
bnRlZEhhbmRsZXIpOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBpdC0+dmFsdWUuaGVsZExv
Y2tzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92ZShwZW5kaW5nUmVxdWVzdCkpOworICAgIGVs
c2UgeworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbG9j
a3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIGxvY2tHcmFudGVk
SGFuZGxlcihzdWNjZXNzKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZFN0
ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7CisgICAgYXV0
byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAo
aXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGxvY2tJbmZvID0gaXQtPnZhbHVlLmhlbGRMb2Nrcy50YWtlKGxvY2tJZGVudGlm
aWVyKTsKKyAgICBpZiAoIWxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sb2Nrc1NuYXBz
aG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisKKyAgICBsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxl
cigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMzIwODVlM2U0NzJkMzM3ZGE2ZGI5ZGMyZjcyYTQ4YWY3MjI0ODU4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZVdl
YkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnksIHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1v
dGVXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNzKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShwcm9jZXNzKSk7IH0KKyAgICB+UmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5KCk7CisKKyAgICAvLyBXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnku
CisgICAgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJD
b3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUsIGJvb2wg
c3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhh
bmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikgZmluYWw7CisgICAg
dm9pZCByZWxlYXNlTG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpX
ZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkgZmluYWw7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0
KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lk
IHNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikgZmluYWw7CisgICAg
dm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWw7CisKKyAgICAvLyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShXZWJQcm9jZXNzJik7CisKKyAgICAvLyBJUEMgTWVzc2Fn
ZSBoYW5kbGVycy4KKyAgICB2b2lkIGRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29yZTo6V2Vi
TG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBib29sIHN1Y2Nlc3MpOworICAgIHZvaWQgZGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisK
KyAgICBzdHJ1Y3QgTG9ja3NTbmFwc2hvdDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBMb2Nrc1NuYXBzaG90PiBtX2xvY2tzU25hcHNob3RQ
ZXJDbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTdhZWEyYmQ0YmQ3
NzJhMmRhZGVkNGM2ZjdlYzI3MWZmNGFlZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittZXNzYWdlcyAtPiBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnkgeworICAgIERpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29yZTo6V2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElELCBib29sIHN1Y2Nlc3MpOworICAgIERpZFN0ZWFsTG9j
ayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpOworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YzNjZmQ0MjM4NzhiNmNj
NTUyMDM1MmZhZDA0NWNjZjU5ZjBjYjAwLi4zYmRmYTdjOWQ5MzNiZDlkZTAwYmY3MjBmZDQ3NTFj
NzA4NmI3ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJLmgiCiAjaW5jbHVkZSAiUmVt
b3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdp
c3RyeS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0
ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKQEAgLTU3Myw2ICs1
NzQsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4obV9pZGVudGlmaWVyKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCp0aGlzKSwKICAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCksCisgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpLAogICAgICAgICBXZWJQZXJtaXNz
aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJT
dG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViTW9kZWxQbGF5ZXJQ
cm92aWRlcj4oKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggOTQzMDRiNzExZmQ0ZmFlYTNiMjBlNzM5Yzk5NmE0N2I4YzcyYWQzNC4uZjZlODc2MjQ2YmZk
ZDZhYWQwMDc5ZDBlZWNhM2JmNzNkYmU3MGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNE
TUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisjaW5jbHVk
ZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25S
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgi
CiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTI3OSw2ICsyODAsNyBAQCBXZWJQcm9jZXNzOjpX
ZWJQcm9jZXNzKCkKICAgICAsIG1fd2ViTG9hZGVyU3RyYXRlZ3koKm5ldyBXZWJMb2FkZXJTdHJh
dGVneSkKICAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoV2ViQ2FjaGVTdG9yYWdlUHJvdmlk
ZXI6OmNyZWF0ZSgpKQogICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KFJl
bW90ZVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fY29va2llSmFyKFdl
YkNvb2tpZUphcjo6Y3JlYXRlKCkpCiAgICAgLCBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlKFJl
cG9ydGluZ0VuZHBvaW50c0NhY2hlOjpjcmVhdGUoKSkKICAgICAsIG1fZG5zUHJlZmV0Y2hIeXN0
ZXJlcmlzKFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0g
UEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIG1fZG5zUHJlZmV0Y2hlZEhvc3RzLmNsZWFy
KCk7IH0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5YWRlM2MwMDVh
ZjJlMjI3MWFmY2FiZmZkNjgxNTIzNjc2ZWZiNzBhLi4xNGNkZjc1MTVjNjJjNDVkYWI5ZjlkYjgx
NmZkY2IyZDg4NWNmMzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTEzMiw2ICsxMzIsNyBAQCBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOwogY2xhc3MgUmVtb3RlQ0RN
RmFjdG9yeTsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVNZWRp
YUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OworY2xhc3MgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGE7CiBjbGFzcyBTdG9yYWdl
QXJlYU1hcDsKIGNsYXNzIFVzZXJEYXRhOwpAQCAtMzQwLDYgKzM0MSw3IEBAIHB1YmxpYzoKIAog
ICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlcigpIHsgcmV0
dXJuIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIuZ2V0KCk7IH0KICAgICBXZWJCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpIHsgcmV0dXJuIG1fYnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmdldCgpOyB9CisgICAgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5JiB3
ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeS5nZXQoKTsgfQogICAg
IFdlYkNvb2tpZUphciYgY29va2llSmFyKCkgeyByZXR1cm4gbV9jb29raWVKYXIuZ2V0KCk7IH0K
ICAgICBXZWJTb2NrZXRDaGFubmVsTWFuYWdlciYgd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIoKSB7
IHJldHVybiBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOyB9CiAgICAgV2ViQ29yZTo6UmVwb3J0
aW5nRW5kcG9pbnRzQ2FjaGUmIHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKCkgeyByZXR1cm4gbV9y
ZXBvcnRpbmdFbmRwb2ludHNDYWNoZS5nZXQoKTsgfQpAQCAtNjc2LDYgKzY3OCw3IEBAIHByaXZh
dGU6CiAKICAgICBSZWY8V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI+IG1fY2FjaGVTdG9yYWdlUHJv
dmlkZXI7CiAgICAgUmVmPFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2Nr
UmVnaXN0cnk7CiAgICAgUmVmPFdlYkNvb2tpZUphcj4gbV9jb29raWVKYXI7CiAgICAgUmVmPFdl
YkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlPiBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hl
OwogICAgIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyIG1fd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMGM3NDRk
ZGNlYjMzMjZkMDY3MTQ3YTA2ZWI5MTIxZmIxMGU1N2Y0NS4uNTY2NDJjMjIyZDZiYzU0M2FmOWU3
NTliNjM5MzJhYTZlZDgzODY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtMjMxLDYgKzIzMSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVK
SVRPcGVyYXRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkxvY2tS
ZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJWaWV3VmlzdWFsSWRlbnRpZmljYXRpb25P
dmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9ydCA8V2ViS2l0TGVn
YWN5L0RPTS5oPgpAQCAtMTQzOCw2ICsxNDM5LDE4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRp
YWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiB9CiAjZW5kaWYKIAorc3RhdGljIFJl
ZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0
cnkoYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBkZWZhdWx0UmVn
aXN0cnk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk+PiBwcml2YXRlUmVnaXN0cnk7CisgICAgYXV0byYgZXhpc3RpbmdSZWdp
c3RyeSA9IGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA/IHByaXZhdGVSZWdpc3RyeSA6IGRlZmF1
bHRSZWdpc3RyeTsKKyAgICBpZiAoZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSkKKyAgICAgICAgcmV0
dXJuICpleGlzdGluZ1JlZ2lzdHJ5LmdldCgpOworICAgIGF1dG8gcmVnaXN0cnkgPSBXZWJDb3Jl
OjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCk7CisgICAgZXhpc3RpbmdSZWdpc3RyeS5n
ZXQoKSA9IHJlZ2lzdHJ5OworICAgIHJldHVybiByZWdpc3RyeTsKK30KKwogLSAodm9pZClfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91
cE5hbWU6KE5TU3RyaW5nICopZ3JvdXBOYW1lCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlv
bkNoZWNrUm91bmRUd28oKTsKQEAgLTE1NDMsNiArMTU1Niw3IEBAIC0gKHZvaWQpX2NvbW1vbklu
aXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1l
OihOU1N0CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25p
dGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVj
b3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpn
ZXRPckNyZWF0ZShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwK
KyAgICAgICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHByZWZlcmVuY2VzXSBw
cml2YXRlQnJvd3NpbmdFbmFibGVkXSksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lv
bkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1
bW15U3RvcmFnZVByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1
bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4oKQpAQCAtMTgyNCw2ICsxODM4LDcgQEAgLSAoaWQpaW5p
dFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dS
ZWN0KWZyYW1lIHByZWYKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6
TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShbW3NlbGYgcHJlZmVy
ZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCmluZGV4IGY0NjMwNzlkOTgxYmZlMmE1OGMyYTI0YjJmZjUxMDljMjQyZDZmMDguLjRm
ZmNkZTljNTMyNzAyZDkzNGQzYzdjMTM1NTM3Y2ViMjYxNWYxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJTdHlsZVNoZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZVRleHRSZW5kZXJlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dNZXNzYWdl
QnJvYWRjYXN0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NUb3VjaC5oPgogI2luY2x1
ZGUgPGNvbWRlZi5oPgpAQCAtMjk5Miw2ICsyOTkzLDE2IEBAIGJvb2wgV2ViVmlldzo6c2hvdWxk
SW5pdGlhbGl6ZVRyYWNrUG9pbnRIYWNrKCkKICAgICByZXR1cm4gc2hvdWxkQ3JlYXRlU2Nyb2xs
YmFyczsKIH0KIAorc3RhdGljIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gZ2V0
T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxX
ZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gZXhpc3RpbmdSZWdpc3RyeTsK
KyAgICBpZiAoZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSkKKyAgICAgICAgcmV0dXJuICpleGlzdGlu
Z1JlZ2lzdHJ5LmdldCgpOworICAgIGF1dG8gcmVnaXN0cnkgPSBXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y3JlYXRlKCk7CisgICAgZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSA9IHJlZ2lz
dHJ5OworICAgIHJldHVybiByZWdpc3RyeTsKK30KKwogSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0
aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE5h
bWUpCiB7CiAgICAgSFJFU1VMVCBociA9IFNfT0s7CkBAIC0zMDY1LDYgKzMwNzYsNyBAQCBIUkVT
VUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFt
ZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVy
UHJvdmlkZXI+KCksCiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JD
cmVhdGUoZmFsc2UpLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSgpLAogICAg
ICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNmI3OTY0
NzQyMTFiZTY0ZGJjMTc2MTk4ZjU4NzZkMmVkOWUzODI4Li5hYzY3MTNhZWMzYzI4YWRkOGFmZDUy
MzA0Yjc3MDY0ZGNiMWYyNTBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNYWtlIFdlYiBMb2NrIEFQSSB3b3Jr
IGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tOiBBZGRlZC4KKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBBUEkgdGVzdCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGZhNzNhZTYzZDE1YTExNmYxOGI0
OTgxZTRlNzA4OGYwZTQxODRiMi4uNDlmYjkyNjZkYjQzNjM2MWNmNDMzYmI0MzA5MjU1N2YxN2Rl
Y2NjNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dApAQCAtMjkzLDYgKzI5Myw3
IEBAIFRlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQogVGVzdHMvV2ViS2l0
Q29jb2EvV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0KIFRlc3RzL1dlYktpdENvY29h
L1dlYkNyeXB0b01hc3RlcktleS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViR0xQb2xpY3kubW0K
K1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9j
ZXNzS2lsbElEQkNsZWFudXAubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NUZXJtaW5h
dGUubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNzgwZjFiZjkwODIyZDhmZjA0NjAyYTM2NjcyZjYyYWQ2OGY2MzJmYy4uMjEw
MzA3NDI5MWM0MWU3ZTIwNTI3ODExZmE0NTdhOTU1MTA1YTlkZCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE5MzMsNiArMTkzMyw3IEBACiAJCTQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAv
KiBUeXBlQ2FzdHNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFR5cGVDYXN0c0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NENG
MzFGQjI0OTkzRjY2MDA5Q0I2Q0IgLyogQ29udGV4dE1lbnVBY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dE1lbnVBY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NEQ1MDA4RDI2RkU5RUQ2MDAwRUIxMkYgLyogUmV0YWlu
UHRyQVJDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmV0YWlu
UHRyQVJDLm1tOyBwYXRoID0gbnMvUmV0YWluUHRyQVJDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0NjA2MTU0NTI3NTgyNEI0MDBBQjYxM0QgLyogV2ViTG9ja3MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJMb2Nrcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDYwQzJGQzgyNzAzOUQ3RDAwNDdFRjExIC8qIFNlcnZpY2VXb3JrZXJQYWdlUHJvdG9jb2wu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclBhZ2VQcm90b2NvbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjEyQzJCODIxMEE2QUJGMDBCNzg4QTYgLyogTG9hZEZpbGVU
aGVuUmVsb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9h
ZEZpbGVUaGVuUmVsb2FkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjI4QzhF
ODIzNjdBQkJDMDBCMDczRjAgLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1NlY3VyaXR5T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzIsNiArMzU3Myw3IEBACiAJCQkJODMwRjJFMEIyMDlBNkE3
NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICovLAogCQkJCTU3
QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi8sCiAJCQkJ
NUM5NzNGNUIxRjU4RUYwQTAwMzU5QzI3IC8qIFdlYkdMUG9saWN5Lm1tICovLAorCQkJCTQ2MDYx
NTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJMb2Nrcy5tbSAqLywKIAkJCQk1MTcxNEVCNjFDRjhD
N0E0MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tICovLAogCQkJCUMxRDhF
RTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQcm9jZXNzVGVybWluYXRlLm1tICovLAogCQkJCTVD
MTU3QTAyMjcxN0MzQjEwMEVENTI4MCAvKiBXZWJQdXNoRGFlbW9uLm1tICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGJjOGE1ZGZiYzdhMDA0N2VkNWU1YzQxMDU1NzU0NjE5ZDJmNDM2NwotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0K
QEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiSFRUUFNlcnZlci5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIlV0aWxpdGll
cy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CisKK1RFU1QoV2ViTG9ja3MsIFNuYXBzaG90QWNyb3NzUHJvY2Vzc2VzKQoreworICAgIFRlc3RX
ZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgImZvbyIgfSB9
CisgICAgfSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24xID0gYWRvcHROUyhbW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZh
bHVlRm9yS2V5Rm9yVGVzdGluZygoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJh
dGlvbjEgcHJlZmVyZW5jZXNdLCB0cnVlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
V2ViTG9ja3NBUElFbmFibGVkIikpOworICAgIGF1dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24xLmdldCgpXSk7CisgICAgW3dlYlZpZXcxIHN5
bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlk
MSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQx
LCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIHBl
cmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25l
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2
aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21p
c2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRp
b24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAg
ICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9jZXNzUG9vbCA9IFtjb25maWd1cmF0aW9uMSBwcm9j
ZXNzUG9vbF07CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3Rpbmco
KF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24yIHByZWZlcmVuY2VzXSwg
dHJ1ZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIldlYkxvY2tzQVBJRW5hYmxlZCIp
KTsKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uMi5nZXQoKV0pOworICAgIFt3ZWJWaWV3MiBzeW5jaHJvbm91c2x5TG9hZFJlcXVl
c3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldzIgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisKKyAgICBkb25l
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6
XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwg
QCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFt3ZWJW
aWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnYmFyJywg
bG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
J0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBs
ZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBF
Q1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzEgcGVyZm9ybUFmdGVyUmVj
ZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJl
IHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4KKyAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAg
IH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3Mu
cXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25h
cHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0gZmFs
c2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0
cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMCBwZW5kaW5nIGxv
Y2tzLCBhbmQgMiBoZWxkIG9uZXMuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBA
IjAtMiIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIgZXZh
bHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9
PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBz
bmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkg
JiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYkxvY2tzLCBMb2NrUmVxdWVzdFdhaXRpbmdP
bkFub3RoZXJQcm9jZXNzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVy
KHsKKyAgICAgICAgeyAiLyIsIHsgImZvbyIgfSB9CisgICAgfSk7CisKKyAgICBhdXRvIGNvbmZp
Z3VyYXRpb24xID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19icmlk
Z2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbjEgcHJlZmVyZW5jZXNdLCB0cnVlLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiV2ViTG9ja3NBUElFbmFibGVkIikpOworICAg
IGF1dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24xLmdldCgpXSk7CisgICAgW3dlYlZpZXcxIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2
ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3Nh
Z2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2Fn
ZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2Vi
VmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2Zvbycs
IGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21w
bGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9j
ZXNzUG9vbCA9IFtjb25maWd1cmF0aW9uMSBwcm9jZXNzUG9vbF07CisgICAgV0tQcmVmZXJlbmNl
c1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYp
W2NvbmZpZ3VyYXRpb24yIHByZWZlcmVuY2VzXSwgdHJ1ZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIldlYkxvY2tzQVBJRW5hYmxlZCIpKTsKKyAgICBhdXRvIHdlYlZpZXcyID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMi5nZXQoKV0pOworICAgIFt3
ZWJWaWV3MiBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAg
ICBhdXRvIHBpZDIgPSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfTkUocGlkMSwgcGlkMik7CisKKyAgICBfX2Jsb2NrIGJvb2wgbG9ja0FjcXVpcmVkID0gZmFs
c2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0
cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FV
SVJFRCIpOworICAgICAgICBsb2NrQWNxdWlyZWQgPSB0cnVlOworICAgIH1dOworCisgICAgLy8g
UmVxdWVzdGluZyB0aGUgc2FtZSBsb2NrIG5hbWUgYXMgd2ViVmlldzEgc28gdGhlIHJlcXVlc3Qg
c2hvdWxkIGdldCBxdWV1ZWQgdW50aWwgd2ViVmlldzEgcmVsZWFzZXMgaXQuCisgICAgW3dlYlZp
ZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBs
b2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgn
QUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxl
dGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVw
KDAuNSk7CisgICAgRVhQRUNUX0ZBTFNFKGxvY2tBY3F1aXJlZCk7CisKKyAgICBkb25lID0gZmFs
c2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0
cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMSBwZW5kaW5nIGxv
Y2ssIGFuZCAxIGhlbGQgb25lLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIx
LTEiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1
YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4g
eyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25h
cHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYm
IDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlN
ZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1l
c3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgbG9ja0FjcXVpcmVkID0gdHJ1ZTsKKyAgICB9
XTsKKworICAgIC8vIE5vdyBjbG9zZSB0aGUgd2ViVmlldzEuIFRoaXMgc2hvdWxkIHJlbGVhc2Ug
dGhlICdmb28nIGxvY2sgYW5kIGFsbG93IHdlYlZpZXcyIHRvIGFjcXVpcmUgaXQuCisgICAgW3dl
YlZpZXcxIF9jbG9zZV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmxvY2tBY3F1
aXJlZCk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJl
Y2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVy
ZSBzaG91bGQgYmUgMCBwZW5kaW5nIGxvY2tzLCBhbmQgMSBoZWxkIG9uZS4KKyAgICAgICAgRVhQ
RUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0xIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAg
IH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3Mu
cXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25h
cHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="commit-queue"
          id="470857"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445624</attachid>
            <date>2021-12-01 15:27:56 -0800</date>
            <delta_ts>2021-12-01 15:52:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201152755.patch</filename>
            <type>text/plain</type>
            <size>122206</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Mzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2QwN2M2YTU2Nzk2ZmM0
ZmQ5N2NiMTQzYTk2ZmIzOTE2NDAyNWQyNC4uYjk5MTZjMzZiMzRkOTlkYmNhNDQ3ZDMwNWIxOWMz
OTU1MjBhNWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBjc3AtcmVwb3J0IHJlc291cmNlIHR5
cGUgdG8gV0tDb250ZW50UnVsZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0ZDZm
YzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1YmQ5
ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJIHdv
cmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tSZWdp
c3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3RyeVBy
b3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVn
aXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0
cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2ViTG9j
a1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1
ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVsZWFz
ZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9j
a1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNuYXBz
aG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dv
aW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkQ29t
cGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3Ry
eTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Jl
bW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0Ojpt
X2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYwMzcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4NWMw
NWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjExYmQ2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEy
LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFr
ZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBjaGFu
Z2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRPckNy
ZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxp
emF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5p
dFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6
XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9y
IFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFhNzdh
MDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjllZDA1
NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJv
Y2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRXaXRo
RnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAppbmRleCA4YzE1NDM3OTgzOTQ5YjQyNDUwOGIyZGI1MTVhZTFhYTNhNjQ1MTg0Li4xNDkzMTIy
NjU3NjhlNzQzNTIwZDI3ZjMyNDUyZjkwZTRlNmU4Zjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMSwxMCArMzEs
MTIgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1dlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0dyYW50
ZWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCIKICNpbmNs
dWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKQEAgLTUyLDYgKzU0LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2xpZW50T3JpZ2lu
PiBjbGllbnRPcmlnaW5Gcm9tQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXgKIAogc3RydWN0
IFdlYkxvY2tNYW5hZ2VyOjpMb2NrUmVxdWVzdCB7CiAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXI7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SUQ7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTG9ja01vZGUgbW9kZSB7IFdlYkxvY2tNb2Rl
OjpFeGNsdXNpdmUgfTsKICAgICBSZWZQdHI8V2ViTG9ja0dyYW50ZWRDYWxsYmFjaz4gZ3JhbnRl
ZENhbGxiYWNrOwpAQCAtMTM2LDE0ICsxMzksMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdChjb25zdCBTdHJpbmcmIG5hbWUsIE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8V2ViTG9ja0cK
ICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVu
dGlmaWVyLCBMb2NrUmVxdWVzdCB7IGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLm1vZGUs
IFdURk1vdmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7Cisg
ICAgYXV0byBjbGllbnRJRCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigp
OworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3Qg
eyBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG9wdGlvbnMubW9kZSwgV1RGTW92ZShn
cmFudGVkQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSB9KTsKIAotICAgIHJlcXVl
c3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLCBbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0
YWJsZSB7CisgICAgcmVxdWVzdExvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIGNsaWVu
dElELCBuYW1lLCBvcHRpb25zLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lk
ZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJZGVudGlm
aWVyLCBzdWNjZXNzKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9j
a0lkZW50aWZpZXJdKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgfSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXSgpIG11dGFibGUgewog
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFz
ZVByb21pc2UobG9ja0lkZW50aWZpZXIsIFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlv
biB7IEFib3J0RXJyb3IsICJMb2NrIHdhcyBzdG9sZW4gYnkgYW5vdGhlciByZXF1ZXN0Il9zIH0p
OwogICAgIH0pOwogfQogCkBAIC0xNTYsNyArMTYwLDcgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6
ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
Ym8KIAogICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgaWYgKHJlcXVlc3Quc2ln
bmFsICYmIHJlcXVlc3Quc2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0Lm5hbWUp
OworICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lk
ZW50aWZpZXIsIHJlcXVlc3QuY2xpZW50SUQsIHJlcXVlc3QubmFtZSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC0xNjQsMTUgKzE2OCwxNSBAQCB2b2lkIFdl
YkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaWVyLCBibwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSByZXF1ZXN0LmdyYW50
ZWRDYWxsYmFjay0+aGFuZGxlRXZlbnQobG9jay5wdHIoKSk7CiAgICAgICAgICAgICBSZWZQdHI8
RE9NUHJvbWlzZT4gd2FpdGluZ1Byb21pc2UgPSByZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVz
dWx0VHlwZTo6U3VjY2VzcyA/IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA6IG51bGxwdHI7
CiAgICAgICAgICAgICBpZiAoIXdhaXRpbmdQcm9taXNlKSB7Ci0gICAgICAgICAgICAgICAgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1l
KTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJ
ZGVudGlmaWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAg
ICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlv
biB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0
dGxlZCh3YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9t
aXNlKCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmll
ciA9IHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQ
cm9taXNlXSB7CisgICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0dGxlZCh3
YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCks
IFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmllciA9IHJl
cXVlc3QubG9ja0lkZW50aWZpZXIsIGNsaWVudElEID0gcmVxdWVzdC5jbGllbnRJRCwgbmFtZSA9
IHJlcXVlc3QubmFtZSwgd2FpdGluZ1Byb21pc2VdIHsKICAgICAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgICAgICAgICAg
ICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFt
ZSk7CiAgICAgICAgICAgICAgICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIs
IHN0YXRpY19jYXN0PEpTQzo6SlNWYWx1ZT4od2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSkpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xODcsMzMgKzE5MSwzMyBAQCB2
b2lkIFdlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBibwogICAgIH0pOwogfQogCi12b2lkIFdlYkxvY2tNYW5hZ2Vy
OjpyZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiBvcHRpb25zLCBGdW5jdGlvbjx2
b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4m
JiByZWxlYXNlSGFuZGxlcikKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRp
b25zJiBvcHRpb25zLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhy
ZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRp
ZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwg
bmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwg
PSBvcHRpb25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJ
ZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCByZWxl
YXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAg
ICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVl
c3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbmFtZSwgbW9kZSwgc3Rl
YWwsIGlmQXZhaWxhYmxlLCBbY29udGV4dElkZW50aWZpZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RG
TW92ZShncmFudGVkSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewotICAgICAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJ
ZGVudGlmaWVyLCBbZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgc3Vj
Y2Vzc10oYXV0byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQs
IGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBuYW1lID0g
Y3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBtb2RlID0gb3B0aW9ucy5tb2RlLCBzdGVhbCA9IG9wdGlv
bnMuc3RlYWwsIGlmQXZhaWxhYmxlID0gb3B0aW9ucy5pZkF2YWlsYWJsZSwgbG9ja0lkZW50aWZp
ZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIGxvY2tTdG9sZW5I
YW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRh
YmxlIHsKKyAgICAgICAgcmVnaXN0cnkucmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NsaWVu
dElELCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNj
ZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3Vy
ZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFu
dGVkSGFuZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBn
cmFudGVkSGFuZGxlcihzdWNjZXNzKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9LCBbY29u
dGV4dElkZW50aWZpZXIsIHJlbGVhc2VIYW5kbGVyID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlcild
KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFty
ZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpLCBleGNlcHRpb24gPSBjcm9z
c1RocmVhZENvcHkoZXhjZXB0aW9uKV0oYXV0byYpIG11dGFibGUgewotICAgICAgICAgICAgICAg
IHJlbGVhc2VIYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0sIFtjbGllbnRJ
RCwgbG9ja1N0b2xlbkhhbmRsZXIgPSBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4
dFRocmVhZChjbGllbnRJRCwgW2xvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBsb2NrU3RvbGVuSGFu
ZGxlcigpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCi12b2lk
IFdlYkxvY2tNYW5hZ2VyOjpyZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQordm9pZCBXZWJMb2NrTWFuYWdl
cjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJp
bmcmIG5hbWUpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9z
c1RocmVhZENvcHkobmFtZSldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZv
ck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZWxlYXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7
CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHko
Km1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lID0gY3Jvc3NU
aHJlYWRDb3B5KG5hbWUpXShhdXRvJiByZWdpc3RyeSkgeworICAgICAgICByZWdpc3RyeS5yZWxl
YXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSk7CiAg
ICAgfSk7CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5U
aHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29w
eSgqbV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29w
eShuYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihj
bGllbnRPcmlnaW4pLT5hYm9ydExvY2tSZXF1ZXN0KGxvY2tJZGVudGlmaWVyLCBuYW1lLCBbY29u
dGV4dElkZW50aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGJvb2wgd2FzQWJvcnRlZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB3YXNBYm9ydGVk
XShhdXRvJikgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRJRCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9z
c1RocmVhZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxlIHsKKyAgICAgICAgcmVnaXN0cnkuYWJv
cnRMb2NrUmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFt
ZSwgW2NsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgeworICAgICAgICAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNsaWVudElELCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdhc0Fib3J0ZWQpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjIyLDggKzIyNiw4IEBAIHZvaWQgV2Vi
TG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpCiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFk
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5zbmFwc2hvdChbY29udGV4dElkZW50aWZpZXIs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNuYXBzaG90
JiYgc25hcHNob3QpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElk
ZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50
T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxl
IHsKKyAgICAgICAgcmVnaXN0cnkuc25hcHNob3QoY2xpZW50T3JpZ2luLCBbY29udGV4dElkZW50
aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNu
YXBzaG90JiYgc25hcHNob3QpIG11dGFibGUgewogICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc25hcHNob3QgPSBjcm9z
c1RocmVhZENvcHkoc25hcHNob3QpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzbmFwc2hvdCkpOwogICAgICAgICAgICAgfSk7CkBA
IC0zMDEsMTEgKzMwNSwyOSBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpjbGllbnRJc0dvaW5nQXdh
eSgpCiAgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKICAgICBtX3JlbGVhc2VQcm9taXNl
cy5jbGVhcigpOwogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0gewotICAgICAgICBXZWJMb2NrUmVnaXN0
cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPmNsaWVudElzR29pbmdBd2F5KGNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9
IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpXShhdXRvJiByZWdpc3RyeSkgewor
ICAgICAgICByZWdpc3RyeS5jbGllbnRJc0dvaW5nQXdheShjbGllbnRPcmlnaW4sIGNvbnRleHRJ
ZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJMb2NrTWFuYWdlcjo6ZW5zdXJlT25N
YWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5Jik+JiYgdGFzaykKK3sKKyAg
ICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJl
YWQoKSk7CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkgeworICAgICAgICBpZiAo
YXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5wYWdlKCkpCisgICAgICAg
ICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLnRocmVhZCgpLndvcmtlckxv
YWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihbdGFzayA9IFdURk1vdmUodGFzayldKGF1dG8m
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAgICAgIHRhc2socGFnZS0+d2ViTG9ja1Jl
Z2lzdHJ5KCkpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIGJvb2wgV2ViTG9ja01hbmFnZXI6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiAhbV9wZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpIHx8ICFtX3JlbGVhc2VQcm9taXNlcy5pc0VtcHR5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaApp
bmRleCBmZWNjNDA5MzgzMzljMTcyZmU5NjdiYTljM2Q1OTAzZmYwMzdiNzg5Li45NjgyNjYyMjRj
ZGZlZTU0MWZiNzlmYjBiZGI1MDk5MTQyNjBlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgTmF2aWdhdG9y
QmFzZTsKIGNsYXNzIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s7CitjbGFzcyBXZWJMb2NrUmVnaXN0
cnk7CiAKIHN0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hv
dDsKQEAgLTYyLDggKzYzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJM
b2NrTWFuYWdlcihOYXZpZ2F0b3JCYXNlJik7CiAKLSAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlv
bnMmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4m
JiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJM
b2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHJlcXVlc3RMb2Nr
T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2
b2lkIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBxdWVy
eU9uTWFpblRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmKTsKIApA
QCAtNzIsNiArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsVG9BYm9ydFRoZVJlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIpOwogICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoKTsKIAor
ICAgIHZvaWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5
Jik+JiYgdGFzayk7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QuCiAgICAgdm9pZCBzdG9wKCkg
ZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01h
bmFnZXJTbmFwc2hvdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9j
a01hbmFnZXJTbmFwc2hvdC5oCmluZGV4IDdmNTMzYzNjYzcwMDI4ZDE2YWE0MjcwNGYyYzQ4MWIy
ZjQyMTBkMWUuLjQ0MmMzMDNkMmE4NzRlMjk0M2VmN2FjNWY2MmZjZTM2MDBmMmU3NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25h
cHNob3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFu
YWdlclNuYXBzaG90LmgKQEAgLTM4LDEyICszOCw1NSBAQCBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJT
bmFwc2hvdCB7CiAgICAgICAgIFN0cmluZyBjbGllbnRJZDsKIAogICAgICAgICBJbmZvIGlzb2xh
dGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgbmFtZS5pc29sYXRlZENvcHkoKSwgbW9kZSwgY2xp
ZW50SWQuaXNvbGF0ZWRDb3B5KCkgfTsgfQorCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBuYW1l
IDw8IG1vZGUgPDwgY2xpZW50SWQ7IH0KKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8SW5mbz4gZGVjb2RlKERlY29kZXImKTsKICAgICB9OwogCiAg
ICAgVmVjdG9yPEluZm8+IGhlbGQ7CiAgICAgVmVjdG9yPEluZm8+IHBlbmRpbmc7CiAKICAgICBX
ZWJMb2NrTWFuYWdlclNuYXBzaG90IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgY3Jv
c3NUaHJlYWRDb3B5KGhlbGQpLCBjcm9zc1RocmVhZENvcHkocGVuZGluZykgfTsgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QgeyBlbmNvZGVyIDw8IGhlbGQgPDwgcGVuZGluZzsgfQorICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q+IGRlY29k
ZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25h
bDxXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJbmZvPiBXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJ
bmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gbmFtZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7CisgICAgaWYgKCFuYW1lKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxXZWJMb2NrTW9kZT4gbW9k
ZTsKKyAgICBkZWNvZGVyID4+IG1vZGU7CisgICAgaWYgKCFtb2RlKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNsaWVudElkOworICAg
IGRlY29kZXIgPj4gY2xpZW50SWQ7CisgICAgaWYgKCFjbGllbnRJZCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbmFtZSksICptb2RlLCBX
VEZNb3ZlKCpjbGllbnRJZCkgfSB9OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3Rk
OjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBXZWJMb2NrTWFuYWdlclNuYXBzaG90
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJ
bmZvPj4gaGVsZDsKKyAgICBkZWNvZGVyID4+IGhlbGQ7CisgICAgaWYgKCFoZWxkKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IHBlbmRpbmc7CisgICAgZGVjb2RlciA+PiBwZW5kaW5nOworICAgIGlmICghcGVuZGluZykKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaGVs
ZCksIFdURk1vdmUoKnBlbmRpbmcpIH0gfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKaW5kZXgg
OTM0MzZjMjg0NmIyMTQyY2YwYmFhYjZmNDYwMDUwMjllMTM2ZmVmYi4uZWZiMDQxN2YzNzZhNjVl
NTI2NjZiODc5ODEyYmFmNTg1MWQ3NzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCkBAIC0yNiw2ICsyNiw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotZW51bSBjbGFzcyBXZWJMb2NrTW9kZSB7IFNoYXJlZCwgRXhjbHVzaXZlIH07
CitlbnVtIGNsYXNzIFdlYkxvY2tNb2RlIDogYm9vbCB7IFNoYXJlZCwgRXhjbHVzaXZlIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVn
aXN0cnkuY3BwCmluZGV4IGY2MmM4ZjNhNTY5YjliOWI3NzIzMjIyYTNiNWNiOGRmZWNiMjA3Y2Mu
LjlkNGRkZGVmYjFiZmZmNzM3N2ViNDgwMGNhZTg2NDNkN2EwZTNkMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAt
MzIsNTYgKzMyLDkyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFdlYkxvY2tS
ZWdpc3RyeTo6TG9ja0luZm8gewotICAgIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Owot
ICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOwotICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwotICAgIFdlYkxvY2tNb2RlIG1vZGU7Ci0gICAg
RnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+IHJlbGVhc2VIYW5kbGVyOwotfTsKK2NsYXNzIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVk
PFBlck9yaWdpblJlZ2lzdHJ5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQZXJPcmlnaW5S
ZWdpc3RyeT4gY3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2lu
Jik7CisgICAgflBlck9yaWdpblJlZ2lzdHJ5KCk7CisKKyAgICBzdHJ1Y3QgTG9ja0luZm8gewor
ICAgICAgICBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IHJlZ2lzdHJ5OworICAgICAgICBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQ7CisgICAgICAgIFdlYkxvY2tNb2RlIG1vZGU7CisgICAgICAg
IEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRsZXI7CisgICAgfTsKKworICAgIHZvaWQg
cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpOworICAgIHZvaWQgcmVsZWFzZUxvY2so
V2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVu
dHNBcmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0
Y2hDbGllbnQpOworCitwcml2YXRlOgorICAgIFBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisKKyAgICBzdHJ1Y3QgTG9ja1JlcXVl
c3QgOiBMb2NrSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBGdW5jdGlvbjx2
b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB9OwogCi1zdHJ1Y3QgV2ViTG9ja1JlZ2lz
dHJ5OjpMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsKLSAgICBTdHJpbmcgbmFtZTsKLSAgICBGdW5j
dGlvbjx2b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB2b2lkIHByb2Nlc3NMb2NrUmVx
dWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAg
Ym9vbCBpc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OworCisgICAgV2Vha1B0
cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gbV9nbG9iYWxSZWdpc3RyeTsKKyAgICBDbGllbnRPcmln
aW4gbV9jbGllbnRPcmlnaW47CisgICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0
Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9j
a0luZm8+PiBtX2hlbGRMb2NrczsKIH07CiAKLXN0YXRpYyBIYXNoTWFwPENsaWVudE9yaWdpbiwg
V2ViTG9ja1JlZ2lzdHJ5Kj4mIHJlZ2lzdHJ5TWFwKCkKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpM
b2NhbFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworTG9jYWxXZWJMb2NrUmVnaXN0cnk6
On5Mb2NhbFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworYXV0byBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6ZW5zdXJlUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGll
bnRPcmlnaW4pIC0+IFJlZjxQZXJPcmlnaW5SZWdpc3RyeT4KK3sKKyAgICBpZiAoYXV0byBleGlz
dGluZ1JlZ2lzdHJ5ID0gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdldChjbGllbnRPcmlnaW4pKQor
ICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnk7CisKKyAgICByZXR1cm4gUGVyT3JpZ2lu
UmVnaXN0cnk6OmNyZWF0ZSgqdGhpcywgY2xpZW50T3JpZ2luKTsKK30KKworYXV0byBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmln
aW4mIGNsaWVudE9yaWdpbikgY29uc3QgLT4gUmVmUHRyPFBlck9yaWdpblJlZ2lzdHJ5Pgogewot
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxI
YXNoTWFwPENsaWVudE9yaWdpbiwgV2ViTG9ja1JlZ2lzdHJ5Kj4+IHJlZ2lzdHJ5TWFwOwotICAg
IHJldHVybiByZWdpc3RyeU1hcDsKKyAgICByZXR1cm4gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdl
dChjbGllbnRPcmlnaW4pOwogfQogCi1SZWY8V2ViTG9ja1JlZ2lzdHJ5PiBXZWJMb2NrUmVnaXN0
cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQorUmVmPExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeT4gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoTG9jYWxXZWJMb2NrUmVnaXN0cnkmIGdsb2Jh
bFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKLSAgICBpZiAo
YXV0byBleGlzdGluZ1JlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS5nZXQob3JpZ2luKSkKLSAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBl
ck9yaWdpblJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5LCBjbGllbnRPcmlnaW4pKTsKK30KIAotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkxvY2tSZWdpc3RyeShvcmlnaW4pKTsKK0xvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkoTG9jYWxX
ZWJMb2NrUmVnaXN0cnkmIGdsb2JhbFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbikKKyAgICA6IG1fZ2xvYmFsUmVnaXN0cnkoZ2xvYmFsUmVnaXN0cnkpCisgICAgLCBt
X2NsaWVudE9yaWdpbihjbGllbnRPcmlnaW4pCit7CisgICAgZ2xvYmFsUmVnaXN0cnkubV9wZXJP
cmlnaW5SZWdpc3RyaWVzLmFkZChjbGllbnRPcmlnaW4sIHRoaXMpOwogfQogCi1XZWJMb2NrUmVn
aXN0cnk6OldlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKLSAgICA6
IG1fb3JpZ2luKG9yaWdpbikKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eTo6flBlck9yaWdpblJlZ2lzdHJ5KCkKIHsKLSAgICByZWdpc3RyeU1hcCgpLmFkZChtX29yaWdp
biwgdGhpcyk7CisgICAgaWYgKG1fZ2xvYmFsUmVnaXN0cnkpCisgICAgICAgIG1fZ2xvYmFsUmVn
aXN0cnktPm1fcGVyT3JpZ2luUmVnaXN0cmllcy5yZW1vdmUobV9jbGllbnRPcmlnaW4pOwogfQog
Ci1XZWJMb2NrUmVnaXN0cnk6On5XZWJMb2NrUmVnaXN0cnkoKQordm9pZCBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6cmVxdWVzdExvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBi
b29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50
ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byogcmVnaXN0cnkgPSByZWdpc3RyeU1hcCgpLnRha2UobV9vcmlnaW4pOwotICAgIEFTU0VS
VF9VTlVTRUQocmVnaXN0cnksIHJlZ2lzdHJ5ID09IHRoaXMpOworICAgIGVuc3VyZVJlZ2lzdHJ5
Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVlc3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGll
bnRJRCwgbmFtZSwgbW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBXVEZNb3ZlKGdyYW50ZWRIYW5k
bGVyKSwgV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcikpOwogfQogCiAvLyBodHRwczovL3dpY2cu
Z2l0aHViLmlvL3dlYi1sb2Nrcy8jcmVxdWVzdC1hLWxvY2sKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5
OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
TG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYg
cmVsZWFzZUhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdp
c3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkxvY2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9u
PHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3Rv
bGVuSGFuZGxlcikKIHsKLSAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lk
ZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSB9LCBuYW1l
LCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7
ICp0aGlzLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG1vZGUsIFdURk1vdmUobG9ja1N0b2xl
bkhhbmRsZXIpIH0sIG5hbWUsIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CiAKICAgICBpZiAo
c3RlYWwpIHsKICAgICAgICAgYXV0byBpdCA9IG1faGVsZExvY2tzLmZpbmQobmFtZSk7CiAgICAg
ICAgIGlmIChpdCAhPSBtX2hlbGRMb2Nrcy5lbmQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBsb2NrSW5mbyA6IGl0LT52YWx1ZSkKLSAgICAgICAgICAgICAgICBsb2NrSW5mby5yZWxlYXNl
SGFuZGxlcihFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3Ro
ZXIgcmVxdWVzdCIgfSk7CisgICAgICAgICAgICAgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRs
ZXIoKTsKICAgICAgICAgICAgIG1faGVsZExvY2tzLnJlbW92ZShpdCk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKGlmQXZhaWxhYmxlICYmICFpc0dyYW50YWJsZShyZXF1ZXN0KSkgewpAQCAt
OTYsOCArMTMyLDE0IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0CiAgICAgcHJvY2Vzc0xvY2tS
ZXF1ZXN0UXVldWUobmFtZSwgcXVldWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjpyZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBleGlzdGlu
Z1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikpCisgICAgICAgIHJlZ2lzdHJ5LT5yZWxl
YXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRo
dWIuaW8vd2ViLWxvY2tzLyNhbGdvcml0aG0tcmVsZWFzZS1sb2NrCi12b2lkIFdlYkxvY2tSZWdp
c3RyeTo6cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lKQogewogICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwog
ICAgIGlmIChpdCA9PSBtX2hlbGRMb2Nrcy5lbmQoKSkKQEAgLTExMyw4ICsxNTUsMTcgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcKICAgICAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUobmFt
ZSwgcXVldWVJdGVyYXRvci0+dmFsdWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICByZWdpc3RyeS0+YWJvcnRM
b2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWJvcnQtdGhl
LXJlcXVlc3QKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcXVldWVJ
dGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5maW5kKG5hbWUpOwogICAgIGlmIChxdWV1
ZUl0ZXJhdG9yID09IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5lbmQoKSkKQEAgLTEzNiw3ICsxODcs
NyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgUwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jZ3JhbnRhYmxlCi1ib29sIFdlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFi
bGUoY29uc3QgTG9ja1JlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Citib29sIExvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3Qm
IHJlcXVlc3QpIGNvbnN0CiB7CiAgICAgYXV0byBxdWV1ZUl0ZXJhdG9yID0gbV9sb2NrUmVxdWVz
dFF1ZXVlTWFwLmZpbmQocmVxdWVzdC5uYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciAhPSBt
X2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkgJiYgJnF1ZXVlSXRlcmF0b3ItPnZhbHVlLmZpcnN0
KCkgIT0gJnJlcXVlc3QpCkBAIC0xNTMsNyArMjA0LDcgQEAgYm9vbCBXZWJMb2NrUmVnaXN0cnk6
OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogfQogCiAvLyBo
dHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jcHJvY2Vzcy10aGUtbG9jay1yZXF1ZXN0
LXF1ZXVlCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdWVzdD4mIHF1ZXVlKQordm9pZCBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKIHsKICAgICB3
aGlsZSAoIXF1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIWlzR3JhbnRhYmxlKHF1ZXVl
LmZpcnN0KCkpKQpAQCAtMTY4LDggKzIxOSwxNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJv
Y2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdQog
ICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZFF1ZXVlLCByZW1vdmVkUXVldWUuaXNFbXB0eSgpKTsK
IH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6
OlNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVnaXN0cnkg
PSBleGlzdGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbik7CisgICAgaWYgKCFyZWdp
c3RyeSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAgICByZWdp
c3RyeS0+c25hcHNob3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiAvLyBodHRw
czovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jc25hcHNob3QtdGhlLWxvY2stc3RhdGUKLXZv
aWQgV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxv
Y2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJMb2NrTWFuYWdlcjo6U25hcHNob3Qgc25hcHNob3Q7CiAgICAgZm9yIChh
dXRvJiBwYWlyIDogbV9sb2NrUmVxdWVzdFF1ZXVlTWFwKSB7CkBAIC0xODQsMTQgKzI0NCwyMSBA
QCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
c25hcHNob3QpKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2lu
Z0F3YXkoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+
Y2xpZW50c0FyZUdvaW5nQXdheShbY2xpZW50SURdKGF1dG8mIGxvY2tJbmZvKSB7IHJldHVybiBs
b2NrSW5mby5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vd2ViLWxvY2tzLyNhZ2VudC1pbnRlZ3JhdGlvbgotdm9pZCBXZWJMb2NrUmVnaXN0
cnk6OmNsaWVudElzR29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNs
aWVudElEKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNs
aWVudHNBcmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYg
bWF0Y2hDbGllbnQpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5lZmZpY2llbnQuIFdlIGNv
dWxkIG9wdGltaXplIHRoaXMgYnkga2VlcGluZyB0cmFjayBvZiB3aGljaCBsb2NrcyBtYXAgdG8g
d2hpY2ggY2xpZW50cy4KICAgICBIYXNoU2V0PFN0cmluZz4gbmFtZXNPZlF1ZXVlc1RvUHJvY2Vz
czsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzV2l0aG91dFJlcXVlc3RzOwogICAgIGZvciAo
YXV0byYgcGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewotICAgICAgICBpZiAoIXBhaXIu
dmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiByZXF1ZXN0KSB7IHJldHVy
biByZXF1ZXN0LmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRSZXF1ZXN0cy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjAzLDcgKzI3MCw3IEBAIHZvaWQg
V2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJCiAKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRMb2Nr
czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2hlbGRMb2NrcykgewotICAgICAgICBpZiAoIXBh
aXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyBy
ZXR1cm4gbG9ja0luZm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pKQorICAgICAgICBpZiAoIXBh
aXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcobWF0Y2hDbGllbnQpKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5h
bWVzV2l0aG91dExvY2tzLmFwcGVuZChwYWlyLmtleSk7CkBAIC0yMTksNCArMjg2LDEzIEBAIHZv
aWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJCiAgICAgfQogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlm
aWVyKQoreworICAgIFZlY3RvcjxDbGllbnRPcmlnaW4+IGNsaWVudE9yaWdpbnMgPSBjb3B5VG9W
ZWN0b3IobV9wZXJPcmlnaW5SZWdpc3RyaWVzLmtleXMoKSk7CisgICAgZm9yIChhdXRvJiBjbGll
bnRPcmlnaW4gOiBjbGllbnRPcmlnaW5zKSB7CisgICAgICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0g
ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICAgICAgcmVn
aXN0cnktPmNsaWVudHNBcmVHb2luZ0F3YXkoW3Byb2Nlc3NJZGVudGlmaWVyXShhdXRvJiBsb2Nr
SW5mbykgeyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBw
cm9jZXNzSWRlbnRpZmllcjsgfSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3Ry
eS5oCmluZGV4IGE2ZThkMDM1M2JkYzIwOTlhMDkyNGM3NzYzMjRlZWFkZDk0M2EwNmMuLjhiNjMx
NGU4YjExYmUyYTVkMzBiYTc5MjgxODAyYWNiNWNmNzc3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCkBAIC0yNSw5ICsyNSw5
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNsaWVudE9yaWdpbi5oIgorI2luY2x1ZGUg
IlByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJMb2NrSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIldl
YkxvY2tNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01vZGUuaCIKICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDAsMjkgKzQwLDQwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV4Y2VwdGlvbjsKIHN0cnVjdCBXZWJMb2NrTWFuYWdl
clNuYXBzaG90OwogCi1jbGFzcyBXZWJMb2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJMb2NrUmVnaXN0cnk+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViTG9ja1JlZ2lzdHJ5PiB7
CitjbGFzcyBXZWJMb2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJMb2NrUmVnaXN0
cnk+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkxvY2tSZWdpc3RyeT4gcmVnaXN0cnlG
b3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJik7Ci0gICAgfldlYkxvY2tSZWdpc3RyeSgpOwor
ICAgIHZpcnR1YWwgfldlYkxvY2tSZWdpc3RyeSgpIHsgfQogCi0gICAgdm9pZCByZXF1ZXN0TG9j
ayhXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFi
bGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQo
RXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5kbGVyKTsKLSAgICB2b2lkIHJlbGVhc2VMb2NrKFdl
YkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOwotICAgIHZvaWQgYWJvcnRMb2Nr
UmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7Ci0gICAgdm9pZCBjbGllbnRJ
c0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBX
ZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5k
bGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdp
biYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc25hcHNob3QoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90
JiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENs
aWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CiAKLXBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViTG9ja1JlZ2lzdHJ5KGNvbnN0IENsaWVudE9yaWdpbiYp
OworcHJvdGVjdGVkOgorICAgIFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKK307CisKK2Ns
YXNzIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tSZWdpc3RyeSwg
cHVibGljIENhbk1ha2VXZWFrUHRyPExvY2FsV2ViTG9ja1JlZ2lzdHJ5PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBMb2NhbFdlYkxvY2tSZWdpc3RyeSk7IH0KKyAgICB+TG9jYWxXZWJMb2NrUmVn
aXN0cnkoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdExvY2soY29uc3QgQ2xp
ZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVsZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBD
bGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzbmFwc2hvdChjb25zdCBDbGll
bnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50SXNHb2luZ0F3YXko
Y29uc3QgQ2xpZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZp
bmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNz
SWRlbnRpZmllcik7CiAKLSAgICBzdHJ1Y3QgTG9ja0luZm87Ci0gICAgc3RydWN0IExvY2tSZXF1
ZXN0OworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCBMb2NhbFdlYkxvY2tSZWdpc3RyeSgp
OwogCi0gICAgYm9vbCBpc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OwotICAg
IHZvaWQgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxM
b2NrUmVxdWVzdD4mKTsKKyAgICBjbGFzcyBQZXJPcmlnaW5SZWdpc3RyeTsKKyAgICBSZWY8UGVy
T3JpZ2luUmVnaXN0cnk+IGVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdp
biYpOworICAgIFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4gZXhpc3RpbmdSZWdpc3RyeUZvck9y
aWdpbihjb25zdCBDbGllbnRPcmlnaW4mKSBjb25zdDsKIAotICAgIGNvbnN0IENsaWVudE9yaWdp
biBtX29yaWdpbjsKLSAgICBIYXNoTWFwPFN0cmluZywgRGVxdWU8TG9ja1JlcXVlc3Q+PiBtX2xv
Y2tSZXF1ZXN0UXVldWVNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxMb2NrSW5mbz4+
IG1faGVsZExvY2tzOworICAgIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBQZXJPcmlnaW5SZWdpc3Ry
eSo+IG1fcGVyT3JpZ2luUmVnaXN0cmllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li4wZjBjOGM5NTdl
NGNkNWZkZjM3MWE0NmRhYmQwODA3MzAwMWU5MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzExLDEwICsxMzExLDEyIEBA
CiAJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGlt
ZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MjczQ0FGMjYwRTU5
RUYwMDZGQUE5MSAvKiBTV1NjcmlwdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjczQ0FDMjYwRTU5REYwMDZGQUE5MSAvKiBTV1Njcmlw
dFN0b3JhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0NjJDN0Y0MTI3NTZEQkU0MDBEMDgzQzggLyogV2ViTG9ja0lkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIyMjc0NzEx
ODUwMERBOUZCNiAvKiBXZWJMb2NrSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MkU0QzUwMjYxNkE4MTEwMDNBMkM2NyAvKiBT
Y3JpcHRCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MkU0QzREMjYxNkE4MDEwMDNBMkM2NyAvKiBTY3JpcHRCdWZmZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjM0QzcyQzI3NTdEQUIy
MDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3ODAyQjAyNzQ3MTE3QjAwREE5RkI2IC8qIFdl
YkxvY2tNYW5hZ2VyU25hcHNob3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2luZG93UHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0VCNjIzMUI4Nzg5RTAwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjNFQjYyMTFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovOyB9Owot
CQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5
RSAvKiBXZWJMb2NrTW9kZS5oICovOyB9OworCQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2NDRGN0Y4MjcyQTFDMUYw
MDU1NTk5RSAvKiBXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFRTI3MkExQzE2MDA1NTU5OUUgLyogV2Vi
TG9ja0dyYW50ZWRDYWxsYmFjay5oICovOyB9OwogCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUg
LyogV2ViTG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NDRGN0YwMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTWFuYWdlci5oICov
OyB9OwogCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RjMyNzJBMUMxNjAwNTU1
OTlFIC8qIFdlYkxvY2suaCAqLzsgfTsKQEAgLTM3NTUyLDcgKzM3NTU0LDkgQEAKIAkJCQkwRkNG
MzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NDRGN0ZBMjcyQTFDMjUwMDU1NTk5RSAvKiBXZWJMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjQ0RjdGODI3MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUgLyogV2Vi
TG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MzRDNzJDMjc1N0RBQjIwMDI2QTgx
NSAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
NzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NENBRjA5Mjc0MzMxQTcwMDNCOUU0MSAvKiBXZWJMb2NrUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RjVDRkY1MjU4MkE1MUQwMDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRpZXNDb2Nv
YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IDNhMDY0YmM3MjMxYTM2MDBjYzgzZGM1OGE5YTJlN2ZmMmVlOTZiMzUuLmMwODc4NWFmOGZj
OTI0ZTM1M2ZmZDQ4M2RmN2I5NWRhMjQ0M2FlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTE3MCw2ICsxMTcx
LDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBDbGllbnRPcmlnaW4m
LCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbCB7IH0K
IH07CiAKK2NsYXNzIEVtcHR5V2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tS
ZWdpc3RyeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxFbXB0eVdlYkxvY2tSZWdpc3RyeT4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5V2ViTG9j
a1JlZ2lzdHJ5KTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgcmVxdWVzdExvY2soY29uc3Qg
Q2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJMb2NrTW9kZSwgYm9vbCwgYm9vbCwgRnVuY3Rp
b248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KKyAgICB2b2lkIHJlbGVh
c2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9p
ZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWwgeyB9CisgICAgdm9pZCBzbmFwc2hvdChj
b25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2Vy
U25hcHNob3QmJik+JiYpIHsgfQorICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIHsgfQorfTsKKwog
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmln
dXJhdGlvbiB7CkBAIC0xMTg2LDYgKzEyMDEsNyBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAg
ICAgRW1wdHlCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpLAorICAgICAgICBFbXB0
eVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCksCiAgICAgICAgIER1bW15UGVybWlzc2lvbkNvbnRy
b2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3RvcmFnZVByb3Zp
ZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNTcwNmFkODYyOGZiOWJiMmM0OTg2NTM1YzYzMmQ5ZDJk
YWM5MTNlZi4uZjM3ZDA1OWIwZWI1MjZjNTQ5YzBkN2RlYjRlYTVhMDg4MGZmMGQ4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0zMDYsNiArMzA2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBtX3Zp
c2l0ZWRMaW5rU3RvcmUoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9y
ZSkpCiAgICAgLCBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3Ry
eShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBtX3Nl
c3Npb25JRChwYWdlQ29uZmlndXJhdGlvbi5zZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFZJREVPKQog
ICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyKCp0aGlzLCAmUGFnZTo6
cGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lckZpcmVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCBmMWUwOGJjNGZlYzA3NDkxNmEzNzMzYWRmZjYyMDcxZGE0ZWQzODU2Li43NzlkOTNhMjQ1OTA1
MmMxMjMwYjAzMTMwODgwZDdhNDRiZmY5NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTY3LDYgKzE2
Nyw3IEBAIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRlcjsKIGNs
YXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKIApAQCAtMjk4LDYgKzI5OSw4IEBAIHB1YmxpYzoK
ICAgICBCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgp
IHsgcmV0dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoUmVmPEJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeT4mJik7IC8vIE9ubHkgdXNlZCBieSBXZWJLaXRMZWdhY3kuCiAKKyAgICBXZWJMb2Nr
UmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5OyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoUGFnZShjb25zdCBGdW5j
dGlvbjx2b2lkKFBhZ2UmKT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdW5zaWduZWQg
bm9uVXRpbGl0eVBhZ2VDb3VudCgpOwogCkBAIC0xMTMyLDYgKzExMzUsNyBAQCBwcml2YXRlOgog
ICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlkZXI7CiAgICAg
UmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8QnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8
V2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWZQdHI8V2hlZWxFdmVu
dFRlc3RNb25pdG9yPiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvcjsKICAgICBXZWFrSGFzaFNldDxB
Y3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVy
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAxOTdj
NzhlNGZlOTgxZWVmOGMyYWQ0YWZiNjU3NjZjNWIzODhlYzdhLi5hZTQyN2I3ZDJjZmU3YjIyMmE1
NWQ4NWU5ODE4YjA0NDc4NTRjY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0
dGVybi5oIgogI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
VmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lmIEVO
QUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogI2VuZGlmCkBAIC02
Myw3ICs2NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246
OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVk
aXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQ
cm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVy
LCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxV
c2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3Jk
ZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJv
bGxlciwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1
ZVJlZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCitQYWdlQ29u
ZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
bmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2Vi
UlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlciwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYm
IGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1Ry
YWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYg
bWVkaWFSZWNvcmRlclByb3ZpZGVyLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmIGJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgUmVmPFdlYkxvY2tSZWdpc3RyeT4mJiB3ZWJMb2NrUmVn
aXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJvbGxlciwg
VW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1ZVJlZjxN
b2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9u
SUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkK
ICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNzUsNiAr
NzYsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlk
ZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCiAgICAgLCB1c2VyQ29udGVudFByb3Zp
ZGVyKFdURk1vdmUodXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBicm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoV1RGTW92ZShicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgd2ViTG9j
a1JlZ2lzdHJ5KFdURk1vdmUod2ViTG9ja1JlZ2lzdHJ5KSkKICAgICAsIHNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKICAgICAsIG1l
ZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRlcikpCiAgICAg
LCBwZXJtaXNzaW9uQ29udHJvbGxlcihXVEZNb3ZlKHBlcm1pc3Npb25Db250cm9sbGVyKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA3ZmIzMzQ2NTdlMzEyMGM1
YWRiZDJkNGQyYWZmYjYwMGFiMjliYjJmLi5iYWM2ZmIyZjVlNjFkNDE3ZmY5YzU4NGNkYTQ4YmI0
NjllOWQwNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC03
NCwxMSArNzQsMTIgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xT
dGF0ZVRyYWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiAKIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBS
ZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiYmLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmLCBSZWY8UGVybWlz
c2lvbkNvbnRyb2xsZXI+JiYsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYsIFVuaXF1ZVJl
ZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFdlYkxvY2tSZWdp
c3RyeT4mJiwgUmVmPFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVBy
b3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFn
ZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVm
PFVzZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZp
c2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeT4gYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAgIFJlZjxXZWJMb2NrUmVn
aXN0cnk+IHdlYkxvY2tSZWdpc3RyeTsKICAgICAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKaW5kZXggODJhYTVmMjJkZDcyMGMxOTE4NDZhOTQyYTM5MTRjYmZlYWM4NmM3ZS4u
NTIxNGYyMTdiMGIyNDhlMDA0ZmE1ZGVjMWFkMDk1ODAxMWQ5MTU4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CkBAIC0yMjksNiArMjI5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAg
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eQorICAgIFVJUHJvY2Vzcy9XZWJMb2NrTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkKICAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wKQEAgLTMwNyw2ICszMDgsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBhNzg5N2I5NjFhMzlkYWY5MjdjNTRkMTJlZmEzYzg5NzE0OTdiMDJmLi44NTky
ZDk5ZDJlMzZhZmM5ZWY4NWRjYzFjM2Y1NzRlYzE5NWVlZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNTMsNiArMTUzLDcgQEAgJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgpAQCAtMjE3LDYgKzIxOCw3IEBAICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggOTNhNjE0NmQ2YjEzOWNiOGExNmExNzFiYjc3ZDQ0YmQzYjU4YjY1Yi4u
YTU5ZTYyM2IwOWU2YTk3ZWZmZWQ0ZjljNTJmNTczNjM2NDVlYWM1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zODcsNiArMzg3LDkg
QEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVX
ZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgK
QEAgLTUyNiw2ICs1MjksOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lz
dHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdp
c3Rlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDU3
NDM4NjVhNGFjODMyZDNlNWRiZDRhZmQ0MzhiZDc1MzJjZDkyMy4uMTkzMzg4NDk2MWI0YmMzMDRm
MDg5YjBiNTRlMTQ4OTFiNWMzNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MTY4LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9pb3MvU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAJVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5IFwKIAlVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAorCVVJUHJvY2Vz
cy9XZWJMb2NrUmVnaXN0cnlQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgXApA
QCAtMjE4LDYgKzIxOSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDTW9uaXRvciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2
ZXIgXAorCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IFwK
IAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBc
CiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCA3NmMyZGViYWZkOTFkMTZmOGQ3NzA4OTNmNDg4OTY5MDBkZmUyNmQyLi4yYzgzOWE5ZTliY2Q4
ZTlmMTIxZGY4OTMwZmY0MmZjNjBjYjI3ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTMxMiw2ICszMTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6U291cmNlQnVmZmVyQXBw
ZW5kTW9kZScsCiAgICAgICAgICdXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0
eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggM2U0M2QzZTEz
YTc2NzhmODE0Y2I2YzQ3NDEyNzA5YTMzM2Q3OTU0Yi4uZmU2MDQxMmMyYTE1MmFiNWM0MmVmYWZj
MGJiOGJhMjRhNDc4OWZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC00MzUsNiArNDM1LDcgQEAgVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcAorVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVBy
b3h5LmNwcAogVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKIFVJUHJvY2Vzcy9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTc4MSw2ICs3ODIsNyBAQCBXZWJQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAogV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcAogCitXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC04NDcsOCArODQ5LDYg
QEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1l
c3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKLVdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKLQogUmVt
b3RlQWRhcHRlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNl
aXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTg3
MSwzICs4NzEsNiBAQCBSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlU2hh
ZGVyTW9kdWxlTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
TWVzc2FnZVJlY2VpdmVyLmNwcAorV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjU1NWJmN2NhOTUxN2NkMjMxNjlkNzExMTFhYmVkMWU2N2E5MzRiZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCisKKyNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdp
c3RyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFz
c2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV9wcm9jZXNzLmNvbm5lY3Rp
b24oKSkKKworV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OldlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIG1f
cHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworV2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6On5XZWJMb2NrUmVnaXN0cnlQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlcXVlc3RMb2NrKFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBsb2Nr
TW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNL
KGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVu
dGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVxdWVzdExvY2so
V1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUo
bmFtZSksIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdKGJvb2wgc3VjY2VzcykgeworICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkQ29tcGxldGVMb2NrUmVxdWVzdChs
b2NrSWRlbnRpZmllciwgY2xpZW50SUQsIHN1Y2Nlc3MpLCAwKTsKKyAgICB9LCBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRTdGVhbExvY2sobG9ja0lkZW50aWZpZXIs
IGNsaWVudElEKSwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lKQoreworICAgIE1F
U1NBR0VfQ0hFQ0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nl
c3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQu
cHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkp
OworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVs
ZWFzZUxvY2soV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IFdURk1vdmUobmFtZSkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjphYm9ydExv
Y2tSZXF1ZXN0KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6
V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIE1FU1NBR0VfQ0hF
Q0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lk
ZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuYWJvcnRMb2NrUmVx
dWVzdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURh
dGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnNuYXBzaG90KFdURk1vdmUoY2xpZW50T3JpZ2lu
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3Ry
eVByb3h5OjpjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
KQoreworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBt
X3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRl
RGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuY2xpZW50SXNHb2luZ0F3YXkoV1RGTW92ZShj
bGllbnRPcmlnaW4pLCBjbGllbnRJRCk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnByb2Nlc3NEaWRFeGl0KCkKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndl
YkxvY2tSZWdpc3RyeSgpLmNsaWVudHNBcmVHb2luZ0F3YXkobV9wcm9jZXNzLmNvcmVQcm9jZXNz
SWRlbnRpZmllcigpKTsKK30KKworI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYmEzMWE5YjkyYjcxNjFjN2NhZDYwMmJmYmExYjgzNjk5NzMzMjdj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja01vZGUuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBXZWJMb2NrTWFuYWdlclNu
YXBzaG90OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OworCitjbGFzcyBXZWJMb2NrUmVnaXN0cnlQcm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgV2ViTG9ja1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgfldl
YkxvY2tSZWdpc3RyeVByb3h5KCk7CisKKyAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworcHJpdmF0ZToKKyAgICAvLyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lk
IHJlcXVlc3RMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRl
bnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmlu
ZyYmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJD
b3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFN0cmluZyYmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyU25hcHNob3QmJik+JiYpOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KTsKKworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9j
a1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhYmMyNTRjNDFlMGUwMTkx
NTZjYTgxMmM0NmZlNzkwMzA1MTdlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4g
V2ViTG9ja1JlZ2lzdHJ5UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgUmVxdWVzdExvY2soc3Ry
dWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSwgZW51bTpib29sIFdlYkNvcmU6OldlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCisgICAgUmVsZWFzZUxvY2so
c3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkKKyAgICBBYm9ydExvY2tSZXF1ZXN0KHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpIC0+IChib29sIHdhc0Fib3J0ZWQpIEFzeW5j
CisgICAgU25hcHNob3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4p
IC0+IChzdHJ1Y3QgV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCBzbmFwc2hvdCkgQXN5
bmMKKyAgICBDbGllbnRJc0dvaW5nQXdheShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNs
aWVudE9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xp
ZW50SWQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAwMjhjOGQ4ZWYwNzE0YzgyZWI5MDRjOTRlN2UyOTcxZDg1YmFlYjEzLi5jMThkMDc2NjMy
ZTM4YzZhMjNmNjhmNTVkZTZlNTVhNzJkYjA4ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJC
YWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdp
c3RyeVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91
cC5oIgpAQCAtMjQwLDYgKzI0MSw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5
KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1f
Y2FwdGl2ZVBvcnRhbE1vZGUoY2FwdGl2ZVBvcnRhbE1vZGUpCiAgICAgLCBtX2Nyb3NzT3JpZ2lu
TW9kZShjcm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291
bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3Vu
dGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9KQorICAgICwgbV93ZWJMb2Nr
UmVnaXN0cnkobWFrZVVuaXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQcm94eT4oKnRoaXMpKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKICAgICBX
RUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNvbnN0cnVjdG9yOiIpOwpAQCAt
NTI4LDYgKzUzMCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiAgICAgbV91
c2VySW5pdGlhdGVkQWN0aW9uTWFwLmNsZWFyKCk7CiAgICAgbV9zbGVlcERpc2FibGVycy5jbGVh
cigpOwogCisgICAgbV93ZWJMb2NrUmVnaXN0cnktPnByb2Nlc3NEaWRFeGl0KCk7CisKICNpZiBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBtX3JvdXRpbmdBcmJpdHJhdG9yLT5wcm9j
ZXNzRGlkVGVybWluYXRlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZGE2ZGM2OGVlYmNlY2I0MjM2MjdlYzk4OWQ2YmNhYTgwMTU3NDk3
My4uY2QzMzA4NjQ5NDQzYjVlM2VkMmI0ZjcxYTIyNzFmNmZlNTcwOGFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDYgKzkzLDcgQEAgY2xhc3Mg
VmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKQEAgLTY3NCw2ICs2NzUsNyBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICNlbmRpZgorICAgIFVu
aXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQcm94eT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZmMxZDlhZTk4OTNkZDkx
MDE2NzNmN2M4ZGFlNmYzYjliYThlMzljNy4uOTA5NzkzZTM3NTY4YzA0MmIxMDAyYTI2YWEwMjc0
Nzg0YTkxZTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFj
a0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCBXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4mJiBjb25maWd1cgogI2lmIEhBVkUoQVBQX1NTTykKICAgICAsIG1fc29BdXRob3JpemF0
aW9uQ29vcmRpbmF0b3IobWFrZVVuaXF1ZVJlZjxTT0F1dGhvcml6YXRpb25Db29yZGluYXRvcj4o
KSkKICNlbmRpZgorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxs
UHJpdmlsZWdlcygpKTsKICAgICByZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aAppbmRleCA2MTk2MjgwZjc2ZGExMjAyOThlMmI3YWIxNjQwNWQyZjBiYTI4OTIzLi4xZGUyNWE2
NjA1N2YyZDY2YzYyOTllNWViYmI4MTQ2YmVlOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC03NSw2
ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBMb2Nh
bFdlYkxvY2tSZWdpc3RyeTsKIAogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb247CiB9CkBAIC0zMTcsNiArMzE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50
KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYmIGNsaWVudCkgeyBtX2NsaWVudCA9
IFdURk1vdmUoY2xpZW50KTsgfQogCiAgICAgQVBJOjpIVFRQQ29va2llU3RvcmUmIGNvb2tpZVN0
b3JlKCk7CisgICAgV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3Ry
eSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9CiAKICAgICB2b2lkIHJlbmFt
ZU9yaWdpbkluV2Vic2l0ZURhdGEoVVJMJiYsIFVSTCYmLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApAQCAtNDcxLDYgKzQ3Myw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU+IG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsgLy8gTGF6aWx5IGNvbXB1dGVk
LgogI2VuZGlmCisgICAgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxv
Y2tSZWdpc3RyeTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGIxMjA0ZTNjNDNiYjg2YWVkNDZiM2M1MTEwMzUzOGVhNTcy
YjhkODAuLmE0NTExNWY0ODlhYTJjY2JjOWJlYzRjZTE3ZGY2MDdiZTI4NWI1MjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA4LDYg
KzkwOCw3IEBACiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYz
RkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVB
RDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwogCQk0NjVGNEUw
NjIzMEIyRTk1MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUY0RTA1MjMwQjJFN0Mw
MDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovOyB9OworCQk0NjVGQTcy
NjI3NTdEOTNEMDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYy
QiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovOyB9OwogCQk0NjZCQzAzQzFGQTI2NkRBMDAy
RkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovOyB9OwogCQk0NjcxRkYxRjIzMjE3
RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAv
KiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovOyB9OwogCQk0NjdFNDNFODIyNDNGRjdEMDBC
MTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2N0U0M0U3MjI0M0ZGNkQwMEIxMzkyNCAv
KiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwpAQCAtNDE3Niw2ICs0MTc3
LDkgQEAKIAkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwNTIzMEIyRTdDMDAzQ0VE
QjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1
RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzgxRkEyNjZDOTAwMkZB
OUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8q
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQxODYsNiArNDE5MCw4IEBACiAJCTQ2ODA5QTdCMjNEOTIyNTMwMEMyOTdE
MCAvKiBXZWJDb29raWVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb29raWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
ODM1NjlBMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QjIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
Njg5QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0Njg5QjkxMDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OURFODAyMjczRUNDNUQwMDkzMDI3NiAvKiBQcm9j
ZXNzTGF1bmNoZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFByb2Nlc3NMYXVuY2hlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkEyQjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFj
a2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00MjA0LDYgKzQyMTAsOCBAQAogCQk0NkNFM0IxMDIzRDhDODNEMDAxNkE5NkEg
LyogV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
REYwNjNBMUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTk3NjBBMjc1N0Y2QzkwMEFD
REQzNyAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyog
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0QTI2OUUwNTE3MDBE
RDQ4QUIgLyogTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1MzgsNiArMTA1NDYsOSBA
QAogCQkJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNE
RjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JB
QiAvKiBtYWMgKi8sCisJCQkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeS5jcHAgKi8sCisJCQkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQx
MDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1
MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQz
QTlDREUyNUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8s
CkBAIC0xMDU0NSw2ICsxMDU1Niw3IEBACiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8q
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovLAogCQkJCTQ2RUUyODQ3MjY5RTA0OUIwMERE
NDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovLAogCQkJCTQ2RUUyODQ4
MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLywKKwkJ
CQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lm1lc3NhZ2VzLmluICovLAogCQkJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0RCAvKiBXZWJDYXB0
aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8sCiAJCQkJRTNBODZGQkIyNjk1OEQ4MzAwNTky
NjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQkMxMTFBNTMx
MTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCkBAIC0xMDgyOCw2ICsx
MDg0MCw5IEBACiAJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXIuY3BwICovLAogCQkJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJNTFDOEUxOUIxRjIxNjE3MjAwQkY3MzFCIC8qIFdl
Ykljb25EYXRhYmFzZS5oICovLAorCQkJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJM
b2NrUmVnaXN0cnlQcm94eS5jcHAgKi8sCisJCQkJNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8q
IFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8sCisJCQkJNDY1RkE3MjQyNzU3RDkxODAwNzIzNjJC
IC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTJEM0VGNDQwMTkx
NzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovLAogCQkJCTJE
M0VGNDQxMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLywK
IAkJCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRlLmNwcCAq
LywKQEAgLTEyNDQ5LDggKzEyNDY0LDggQEAKIAkJCQk1MTYwRTk1RTI3NEMyQTAzMDA1NjczODgg
LyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwRTk1OTI3
NEMwRDg5MDA1NjczODggLyogUHVzaEFwcEJ1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFG
N0JCN0IyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5RjI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGMkYy
NzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0xMzMzNCw2ICsxMzM0OSw3IEBACiAJCQkJQkNCNjM0NzgxMTZC
RjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QkE1MDUx
Njk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTYyODBDNzE5MTk5NTBDMDA2QUQ5RjkgLyogV2ViS2l0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QjcyNUM4MUQz
NDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMzM5OCw2ICsxMzQxNCw3IEBACiAJCQkJMUExRTA5MzQxODg2MUQzODAwRDJE
QzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEy
RjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2Vi
UHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTJDRDY5QTI3MjFGMEE5MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUg
LyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEz
NTQ4LDcgKzEzNTY1LDYgQEAKIAkJCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyogV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Qzc5NUQ3MTIyOUYzNzU3
MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFBNTU1RjYxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERh
ZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTYw
MTEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDOTM4RTExMTgwREU0NDAwODVFNUZFIC8qIFdLQ29u
dGV4dFByaXZhdGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCmluZGV4IGFhNzQzYzYyZTNmM2I1NTQzY2E3Y2ZjN2I1MmUyZTMwYWQ5OTE5Y2QuLmY5
Yjg1MjQ2ZGY1YjZiMjM5YWYwZGE4Y2JmMDk1Mjg1NTU0NzdlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgor
I2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0aWFsaXph
dGlvbkRhdGEuaCIKICNpbmNsdWRlICJXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCIKQEAg
LTE0OCw2ICsxNDksNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0
YWxsU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyQ29udGV4dERhdAogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0
ZShtX3BhZ2VHcm91cElEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zb2NrZXRQcm92aWRlciA9
IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUobV93ZWJQYWdlUHJveHlJRCk7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
d2ViTG9ja1JlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5
KCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1fdXNlckNv
bnRlbnRDb250cm9sbGVyOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmxpYldlYlJUQ1Byb3ZpZGVyID0gbWFrZVVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyTGliV2Vi
UlRDUHJvdmlkZXI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlYWYwOWVlNmIzNzU5Y2VkNDI3MjdmMmZmZjBlNWIzZDkzOThlOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKKworI2luY2x1
ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1Jl
Z2lzdHJ5UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9pZCgpPiBs
b2NrU3RvbGVuSGFuZGxlcjsKK307CisKK3N0cnVjdCBMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsK
KyAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBsb2NrR3JhbnRlZEhhbmRsZXI7Cit9OworCitzdHJ1
Y3QgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpMb2Nrc1NuYXBzaG90IHsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdD4gcGVuZGluZ1JlcXVlc3RzOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIExvY2tJbmZvPiBoZWxkTG9j
a3M7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwZW5kaW5nUmVxdWVzdHMu
aXNFbXB0eSgpICYmIGhlbGRMb2Nrcy5pc0VtcHR5KCk7IH0KK307CisKK1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmIHByb2Nlc3MpCit7Cisg
ICAgcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeTo6flJlbW90ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWws
IGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIs
IEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKK3sKKyAgICBMb2NrUmVxdWVz
dCByZXF1ZXN0IHsgeyBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBXVEZNb3ZlKGdyYW50
ZWRIYW5kbGVyKSB9OworICAgIGF1dG8mIHNuYXBzaG90ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LmVuc3VyZShjbGllbnRJRCwgW10geyByZXR1cm4gTG9ja3NTbmFwc2hvdCB7IH07IH0pLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICBzbmFwc2hvdC5wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZXF1ZXN0TG9jayhjbGllbnRP
cmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgbG9ja01vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVsZWFz
ZUxvY2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAg
IGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAg
aWYgKGl0ICE9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkgeworICAgICAgICBpdC0+
dmFsdWUuaGVsZExvY2tzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgIGlmIChpdC0+
dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJl
bW92ZShpdCk7CisgICAgfQorCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNz
YWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlJlbGVhc2VMb2NrKGNsaWVudE9yaWdpbiwgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpBYm9ydExvY2tSZXF1ZXN0KGNsaWVu
dE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBkaWRBYm9ydCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBkaWRBYm9ydCkgeworICAgICAgICAgICAgYXV0byBp
dCA9IHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7Cisg
ICAgICAgICAgICBpZiAoaXQgIT0gd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5l
bmQoKSkgeworICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMucmVtb3Zl
KGxvY2tJZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVu
dC5yZW1vdmUoaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGRpZEFib3J0KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2Nr
UmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNo
b3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6U25h
cHNob3QoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDApOworfQor
Cit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIG1fbG9ja3NTbmFwc2hvdFBlckNs
aWVudC5yZW1vdmUoY2xpZW50SUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQo
TWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpDbGllbnRJc0dvaW5nQXdheShjbGllbnRP
cmlnaW4sIGNsaWVudElEKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpk
aWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCwgYm9vbCBzdWNjZXNzKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGll
bnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVu
dC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IGl0
LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYgKCFw
ZW5kaW5nUmVxdWVzdC5sb2NrR3JhbnRlZEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gbG9ja0dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShwZW5kaW5nUmVxdWVzdC5sb2NrR3Jh
bnRlZEhhbmRsZXIpOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBpdC0+dmFsdWUuaGVsZExv
Y2tzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92ZShwZW5kaW5nUmVxdWVzdCkpOworICAgIGVs
c2UgeworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbG9j
a3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIGxvY2tHcmFudGVk
SGFuZGxlcihzdWNjZXNzKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZFN0
ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7CisgICAgYXV0
byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAo
aXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGxvY2tJbmZvID0gaXQtPnZhbHVlLmhlbGRMb2Nrcy50YWtlKGxvY2tJZGVudGlm
aWVyKTsKKyAgICBpZiAoIWxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sb2Nrc1NuYXBz
aG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisKKyAgICBsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxl
cigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMTViMWFhZmM1NGM4YTIxNTdjNTJmZjBjZGE5NjgzNDM2Y2IxYWFk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc1F1YWxpZmllZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdp
c3RyeS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBj
cmVhdGUoV2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnkocHJvY2VzcykpOyB9CisgICAgflJlbW90ZVdlYkxvY2tSZWdpc3RyeSgp
OworCisgICAgLy8gV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LgorICAgIHZvaWQgcmVxdWVzdExv
Y2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lk
KCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIHZvaWQgcmVsZWFzZUxvY2soY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUpIGZpbmFsOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBzbmFwc2hvdChjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxv
Y2tNYW5hZ2VyU25hcHNob3QmJik+JiYpIGZpbmFsOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3
YXkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIu
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBSZW1vdGVXZWJMb2NrUmVnaXN0
cnkoV2ViUHJvY2VzcyYpOworCisgICAgLy8gSVBDIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9p
ZCBkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBzdWNjZXNzKTsKKyAg
ICB2b2lkIGRpZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworCisgICAgc3RydWN0IExvY2tzU25h
cHNob3Q7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgTG9ja3NTbmFwc2hvdD4gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmE3YWVhMmJkNGJkNzcyYTJkYWRlZDRjNmY3ZWMyNzFm
ZjRhZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbWVzc2FnZXMgLT4gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IHsKKyAg
ICBEaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGll
bnRJRCwgYm9vbCBzdWNjZXNzKTsKKyAgICBEaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElEKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggNWMzY2ZkNDIzODc4YjZjYzU1MjAzNTJmYWQwNDVjY2Y1OWYw
Y2IwMC4uM2JkZmE3YzlkOTMzYmQ5ZGUwMGJmNzIwZmQ0NzUxYzcwODZiN2Y4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU4LDYgKzU4LDcg
QEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVXZWJJbnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC01NzMsNiArNTc0LDcgQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+KG1faWRlbnRpZmllciksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigqdGhpcyksCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeSgpLAorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0
ZSgqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3RvcmFnZVByb3ZpZGVyPigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYk1vZGVsUGxheWVyUHJvdmlkZXI+KCp0aGlzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk0MzA0YjcxMWZkNGZhZWEz
YjIwZTczOWM5OTZhNDdiOGM3MmFkMzQuLmY2ZTg3NjI0NmJmZGQ2YWFkMDA3OWQwZWVjYTNiZjcz
ZGJlNzBmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5
LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJl
bW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdp
c3RyeS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRh
LmgiCkBAIC0yNzksNiArMjgwLDcgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLCBt
X3dlYkxvYWRlclN0cmF0ZWd5KCpuZXcgV2ViTG9hZGVyU3RyYXRlZ3kpCiAgICAgLCBtX2NhY2hl
U3RvcmFnZVByb3ZpZGVyKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSkKICAgICAs
IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
Y3JlYXRlKCkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3RyeShSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2Nvb2tpZUphcihXZWJDb29raWVKYXI6OmNyZWF0ZSgp
KQogICAgICwgbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZShSZXBvcnRpbmdFbmRwb2ludHNDYWNo
ZTo6Y3JlYXRlKCkpCiAgICAgLCBtX2Ruc1ByZWZldGNoSHlzdGVyZXJpcyhbdGhpc10oUEFMOjpI
eXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRl
OjpTdG9wcGVkKSBtX2Ruc1ByZWZldGNoZWRIb3N0cy5jbGVhcigpOyB9KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOWFkZTNjMDA1YWYyZTIyNzFhZmNhYmZmZDY4MTUy
MzY3NmVmYjcwYS4uMTRjZGY3NTE1YzYyYzQ1ZGFiOWY5ZGI4MTZmZGNiMmQ4ODVjZjMzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xh
c3MgUHJvY2Vzc0Fzc2VydGlvbjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1v
dGVMZWdhY3lDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeTsKK2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIHN0cnVjdCBTZXJ2aWNlV29y
a2VySW5pdGlhbGl6YXRpb25EYXRhOwogY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiBjbGFzcyBVc2Vy
RGF0YTsKQEAgLTM0MCw2ICszNDEsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVBy
b3ZpZGVyLmdldCgpOyB9CiAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5n
ZXQoKTsgfQorICAgIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV93ZWJMb2NrUmVnaXN0cnkuZ2V0KCk7IH0KICAgICBXZWJDb29raWVKYXImIGNvb2tp
ZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAgICAgV2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXImIHdlYlNvY2tldENoYW5uZWxNYW5hZ2VyKCkgeyByZXR1cm4gbV93ZWJTb2NrZXRD
aGFubmVsTWFuYWdlcjsgfQogICAgIFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlJiBy
ZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIHsgcmV0dXJuIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUuZ2V0KCk7IH0KQEAgLTY3Niw2ICs2NzgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNh
Y2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJlZjxXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAg
IFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogICAgIFJlZjxX
ZWJDb29raWVKYXI+IG1fY29va2llSmFyOwogICAgIFJlZjxXZWJDb3JlOjpSZXBvcnRpbmdFbmRw
b2ludHNDYWNoZT4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZTsKICAgICBXZWJTb2NrZXRDaGFu
bmVsTWFuYWdlciBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDBjNzQ0ZGRjZWIzMzI2ZDA2NzE0N2EwNmVi
OTEyMWZiMTBlNTdmNDUuLjU2NjQyYzIyMmQ2YmM1NDNhZjllNzU5YjYzOTMyYWE2ZWQ4Mzg2ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIzMSw2
ICsyMzEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET00uaD4KQEAgLTE0Mzgs
NiArMTQzOSwxOCBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVy
SWZOZWNlc3NhcnkoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBSZWY8V2ViQ29yZTo6TG9jYWxXZWJM
b2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KGJvb2wgaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNv
cmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gZGVmYXVsdFJlZ2lzdHJ5OworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gcHJp
dmF0ZVJlZ2lzdHJ5OworICAgIGF1dG8mIGV4aXN0aW5nUmVnaXN0cnkgPSBpc1ByaXZhdGVCcm93
c2luZ0VuYWJsZWQgPyBwcml2YXRlUmVnaXN0cnkgOiBkZWZhdWx0UmVnaXN0cnk7CisgICAgaWYg
KGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3Ry
eS5nZXQoKTsKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmNyZWF0ZSgpOworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAg
ICByZXR1cm4gcmVnaXN0cnk7Cit9CisKIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0
aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdy
b3VwTmFtZQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdvKCk7CkBA
IC0xNTQzLDYgKzE1NTYsNyBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFt
ZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAg
ICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxmIHBy
ZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3JlYXRl
V2ViTG9ja1JlZ2lzdHJ5KFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZF0pLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUo
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlk
ZXI+KCkKQEAgLTE4MjQsNiArMTgzOCw3IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRl
cj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShb
W3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKKyAgICAgICAgZ2V0
T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3Np
bmdFbmFibGVkXSksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6
OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3RvcmFnZVBy
b3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5
ZXJQcm92aWRlcj4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBmNDYzMDc5
ZDk4MWJmZTJhNThjMmEyNGIyZmY1MTA5YzI0MmQ2ZjA4Li40ZmZjZGU5YzUzMjcwMmQ5MzRkM2M3
YzEzNTUzN2NlYjI2MTVmMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAt
MTczLDYgKzE3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkNvcmVUZXh0UmVuZGVyZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNsdWRlIDxjb21kZWYuaD4KQEAgLTI5
OTIsNiArMjk5MywxNiBAQCBib29sIFdlYlZpZXc6OnNob3VsZEluaXRpYWxpemVUcmFja1BvaW50
SGFjaygpCiAgICAgcmV0dXJuIHNob3VsZENyZWF0ZVNjcm9sbGJhcnM7CiB9CiAKK3N0YXRpYyBS
ZWY8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lz
dHJ5KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeT4+IGV4aXN0aW5nUmVnaXN0cnk7CisgICAgaWYgKGV4aXN0aW5nUmVn
aXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKKyAg
ICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgp
OworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAgICByZXR1cm4gcmVn
aXN0cnk7Cit9CisKIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBf
SW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOYW1lKQogewogICAgIEhSRVNVTFQg
aHIgPSBTX09LOwpAQCAtMzA2NSw2ICszMDc2LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0
aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4K
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAg
ICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKGZhbHNlKSwKKyAgICAg
ICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTZiNzk2NDc0MjExYmU2NGRiYzE3NjE5OGY1
ODc2ZDJlZDllMzgyOC4uYWM2NzEzYWVjM2MyOGFkZDhhZmQ1MjMwNGI3NzA2NGRjYjFmMjUwYyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJMb2Nrcy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgQVBJIHRlc3QgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDBmYTczYWU2M2QxNWExMTZmMThiNDk4MWU0ZTcwODhmMGU0MTg0YjIu
LjQ5ZmI5MjY2ZGI0MzYzNjFjZjQzM2JiNDMwOTI1NTdmMTdkZWNjYzUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Myw2ICsyOTMsNyBAQCBUZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXku
bW0KIFRlc3RzL1dlYktpdENvY29hL1dlYkdMUG9saWN5Lm1tCitUZXN0cy9XZWJLaXRDb2NvYS9X
ZWJMb2Nrcy5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1t
CiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzVGVybWluYXRlLm1tCiBUZXN0cy9XZWJLaXRD
b2NvYS9XZWJQdXNoRGFlbW9uLm1tCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4MGYxYmY5
MDgyMmQ4ZmYwNDYwMmEzNjY3MmY2MmFkNjhmNjMyZmMuLjIxMDMwNzQyOTFjNDFlN2UyMDUyNzgx
MWZhNDU3YTk1NTEwNWE5ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTMzLDYgKzE5
MzMsNyBAQAogCQk0NENERTREMzI2RUU2RTQxMDA5RjZBQ0IgLyogVHlwZUNhc3RzQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUeXBlQ2FzdHNDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRDRjMxRkIyNDk5M0Y2NjAwOUNCNkNC
IC8qIENvbnRleHRNZW51QWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENvbnRleHRNZW51QWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDRENTAwOEQyNkZFOUVENjAwMEVCMTJGIC8qIFJldGFpblB0ckFSQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJldGFpblB0ckFSQy5tbTsgcGF0aCA9IG5z
L1JldGFpblB0ckFSQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYwNjE1NDUy
NzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
TG9ja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEMyRkM4MjcwMzlEN0Qw
MDQ3RUYxMSAvKiBTZXJ2aWNlV29ya2VyUGFnZVByb3RvY29sLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
cnZpY2VXb3JrZXJQYWdlUHJvdG9jb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDYxMkMyQjgyMTBBNkFCRjAwQjc4OEE2IC8qIExvYWRGaWxlVGhlblJlbG9hZC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRGaWxlVGhlblJlbG9hZC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYyOEM4RTgyMzY3QUJCQzAwQjA3M0YwIC8q
IFdLU2VjdXJpdHlPcmlnaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tTZWN1cml0eU9yaWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
NTcyLDYgKzM1NzMsNyBAQAogCQkJCTgzMEYyRTBCMjA5QTZBNzQwMEQzNkZGMSAvKiBXZWJDb250
ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbSAqLywKIAkJCQk1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2
RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tICovLAogCQkJCTVDOTczRjVCMUY1OEVGMEEwMDM1
OUMyNyAvKiBXZWJHTFBvbGljeS5tbSAqLywKKwkJCQk0NjA2MTU0NTI3NTgyNEI0MDBBQjYxM0Qg
LyogV2ViTG9ja3MubW0gKi8sCiAJCQkJNTE3MTRFQjYxQ0Y4QzdBNDAwNDcyM0M0IC8qIFdlYlBy
b2Nlc3NLaWxsSURCQ2xlYW51cC5tbSAqLywKIAkJCQlDMUQ4RUUyMTIwMjhFOEUzMDA4RUIxNDEg
LyogV2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbSAqLywKIAkJCQk1QzE1N0EwMjI3MTdDM0IxMDBFRDUy
ODAgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiYzhhNWRmYmM3YTAwNDdl
ZDVlNWM0MTA1NTc1NDYxOWQyZjQzNjcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tCkBAIC0wLDAgKzEsMTg1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIK
KyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYkxvY2tzLCBT
bmFwc2hvdEFjcm9zc1Byb2Nlc3NlcykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVy
IHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7ICJmb28iIH0gfQorICAgIH0pOworCisgICAgYXV0
byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3Rpbmco
KF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24xIHByZWZlcmVuY2VzXSwg
dHJ1ZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIldlYkxvY2tzQVBJRW5hYmxlZCIp
KTsKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3ZWJWaWV3MSBzeW5jaHJvbm91c2x5TG9hZFJlcXVl
c3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAgICBfX2Jsb2Nr
IGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdB
bnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07Cisg
ICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0
KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYg
MSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29uZmlndXJhdGlvbjIuZ2V0
KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJhdGlvbjEgcHJvY2Vzc1Bvb2xdOworICAgIFdLUHJl
ZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRnZSBXS1ByZWZlcmVu
Y2VzUmVmKVtjb25maWd1cmF0aW9uMiBwcmVmZXJlbmNlc10sIHRydWUsIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJXZWJMb2Nrc0FQSUVuYWJsZWQiKSk7CisgICAgYXV0byB3ZWJWaWV3
MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsK
KyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCld
OworCisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Cisg
ICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2Up
IHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2JhcicsIGxvY2sgPT4geyB3ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4g
bmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJl
c3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihO
U1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMCBwZW5kaW5n
IGxvY2tzLCBhbmQgMiBoZWxkIG9uZXMuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdl
LCBAIjAtMiIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hv
dCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycg
KyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsg
fSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAg
ICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDIgaGVsZCBvbmVz
LgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTIiKTsKKyAgICAgICAgZG9u
ZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5h
dmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5n
dGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5k
bGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChl
cnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30K
KworVEVTVChXZWJMb2NrcywgTG9ja1JlcXVlc3RXYWl0aW5nT25Bbm90aGVyUHJvY2VzcykKK3sK
KyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7
ICJmb28iIH0gfQorICAgIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tQcmVmZXJlbmNl
c1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJpZGdlIFdLUHJlZmVyZW5jZXNSZWYp
W2NvbmZpZ3VyYXRpb24xIHByZWZlcmVuY2VzXSwgdHJ1ZSwgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIldlYkxvY2tzQVBJRW5hYmxlZCIpKTsKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3
ZWJWaWV3MSBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAg
ICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfTkUocGlkMSwgMCk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3
ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3Nh
Z2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAg
ICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNj
cmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJu
IG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBj
b25maWd1cmF0aW9uMiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgY29uZmlndXJhdGlvbjIuZ2V0KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJh
dGlvbjEgcHJvY2Vzc1Bvb2xdOworICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlG
b3JUZXN0aW5nKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKVtjb25maWd1cmF0aW9uMiBwcmVm
ZXJlbmNlc10sIHRydWUsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJXZWJMb2Nrc0FQ
SUVuYWJsZWQiKSk7CisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNs
eUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQyID0gW3dlYlZp
ZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOwor
CisgICAgX19ibG9jayBib29sIGxvY2tBY3F1aXJlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgbG9j
a0FjcXVpcmVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIC8vIFJlcXVlc3RpbmcgdGhlIHNhbWUg
bG9jayBuYW1lIGFzIHdlYlZpZXcxIHNvIHRoZSByZXF1ZXN0IHNob3VsZCBnZXQgcXVldWVkIHVu
dGlsIHdlYlZpZXcxIHJlbGVhc2VzIGl0LgorICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBu
ZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVz
dWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAg
fV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOworICAgIEVYUEVDVF9G
QUxTRShsb2NrQWNxdWlyZWQpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAg
ICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDEgcGVuZGluZyBsb2NrLCBhbmQgMSBoZWxkIG9uZS4K
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMS0xIik7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZp
Z2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3Ro
ICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJy
b3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAg
ICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICpt
ZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7
CisgICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBOb3cgY2xv
c2UgdGhlIHdlYlZpZXcxLiBUaGlzIHNob3VsZCByZWxlYXNlIHRoZSAnZm9vJyBsb2NrIGFuZCBh
bGxvdyB3ZWJWaWV3MiB0byBhY3F1aXJlIGl0LgorICAgIFt3ZWJWaWV3MSBfY2xvc2VdOworCisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZsb2NrQWNxdWlyZWQpOworCisgICAgZG9uZSA9
IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4o
TlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGlu
ZyBsb2NrcywgYW5kIDEgaGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdl
LCBAIjAtMSIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hv
dCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycg
KyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsg
fSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>
<flag name="commit-queue"
          id="470858"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445627</attachid>
            <date>2021-12-01 15:42:41 -0800</date>
            <delta_ts>2021-12-01 16:12:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201154240.patch</filename>
            <type>text/plain</type>
            <size>122231</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcAppbmRleCA3ZTViNTUxNDg1YWM2NTUxZGQ1ZjBjMTkwNDFiM2UyOTNmMWI2Y2VkLi5jNDQ1
NjI5ZjVmYzA1NTc5MWJkYzFjNTU0YTg4Yzg3YzhkZTEwNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMSwxMSAr
MzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1dlYkxvY2tN
YW5hZ2VyU25hcHNob3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViTG9jay5o
IgogI2luY2x1ZGUgIldlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmgiCiAjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC01Myw2ICs1NSw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xpZW50T3JpZ2luRnJvbUNvbnRleHQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJMb2NrTWFuYWdlcjo6TG9ja1JlcXVlc3Qgewog
ICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwogICAgIFN0cmluZyBuYW1lOwogICAgIFdlYkxv
Y2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhjbHVzaXZlIH07CiAgICAgUmVmUHRyPFdlYkxv
Y2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxsYmFjazsKQEAgLTEzNywxNCArMTQwLDE1IEBA
IHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3QoY29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25z
JiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIG1fcGVu
ZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRlbnRp
ZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZNb3ZlKGdyYW50ZWRDYWxsYmFjayksIFdURk1v
dmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9j
a0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1l
LCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25z
LnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmll
ciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVu
dGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgeworICAgIHJlcXVlc3RMb2NrT25NYWluVGhy
ZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUg
ewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29tcGxl
dGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgc3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShFeGNlcHRpb24mJiBleGNlcHRp
b24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2Nr
SWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAg
ICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBXVEZNb3Zl
KGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNl
KGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVu
IGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAgICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2MSw3
IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAg
ICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAmJiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRlZCgp
KSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2Nr
SWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09u
TWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1
ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAt
MTY1LDE1ICsxNjksMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVx
dWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KICAgICAgICAgICAgIGF1
dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGxvY2sucHRy
KCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVByb21pc2U+IHdhaXRpbmdQcm9taXNlID0gcmVz
dWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAgICAgICAgICAgaWYgKCF3YWl0aW5nUHJvbWlz
ZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9j
a0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7CisgICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tP
bk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5jbGllbnRJRCwgcmVx
dWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1ZXN0
LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgRE9N
UHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVj
dCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3Zl
KHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBuYW1l
ID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlzZV0geworICAgICAgICAgICAgRE9NUHJvbWlz
ZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3
YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCA9
IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNlXSB7
CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlm
aWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgICAgICAgICAgICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdhaXRp
bmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9IGVsc2Ug
ewpAQCAtMTg4LDMzICsxOTIsMzMgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVM
b2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KICAgICB9KTsK
IH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVxdWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9j
a0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0
aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVu
Y3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxvY2tN
YW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVy
KQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFtZSksIG1v
ZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUgPSBv
cHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRpZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZN
b3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9y
aWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY29udGV4dElk
ZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVudGlm
aWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNj
ZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3Vy
ZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2dyYW50ZWRIYW5kbGVyID0gV1RG
TW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKKyAgICBlbnN1
cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHko
Km1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9w
dGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMu
aWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3Jh
bnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVlc3RM
b2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBtb2RlLCBz
dGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdy
YW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtncmFu
dGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBzdWNjZXNzXShhdXRvJikgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRlZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJZGVudGlmaWVyLCByZWxlYXNlSGFuZGxlciA9
IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFibGUg
ewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhy
ZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VI
YW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbildKGF1dG8mKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxlYXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlv
bikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShs
b2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtsb2NrU3RvbGVuSGFu
ZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJikgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIoKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tPbk1h
aW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxv
Y2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGVuc3VyZU9uTWFpblRo
cmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxv
Y2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpXSB7Ci0gICAgICAgIFdl
YkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+cmVsZWFzZUxv
Y2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50
T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVy
LCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKV0oYXV0byYgcmVnaXN0cnkp
IHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRp
ZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0pOwogfQogCiB2b2lkIFdlYkxvY2tNYW5hZ2Vy
OjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0
SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGll
bnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZp
ZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdp
c3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVzdChs
b2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUg
ewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhy
ZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11dGFibGUgeworICAgIGVuc3VyZU9u
TWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZp
ZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxv
Y2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJs
ZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtjbGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVh
ZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAg
LTIyMyw4ICsyMjcsOCBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25N
YWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaQogCiB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29u
dGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwg
Y2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+c25h
cHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKKyAgICBlbnN1
cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGll
bnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90KGNs
aWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChj
b250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJlYWRDb3B5KHNuYXBzaG90KV0oYXV0byYpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNo
b3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAyLDExICszMDYsMjkgQEAgdm9pZCBXZWJMb2Nr
TWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQogICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFy
KCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xlYXIoKTsKIAotICAgIGVuc3VyZU9uTWFpblRo
cmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNv
bnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCld
IHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmln
aW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0SWRlbnRpZmllcik7CisgICAgZW5zdXJlT25N
YWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2lu
KSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZp
ZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkuY2xpZW50SXNHb2luZ0F3
YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQg
V2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tS
ZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAgaWYgKGlzPERvY3VtZW50Pigq
Y29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAgdGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnko
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpj
b250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Rh
c2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0
byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAg
ICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICAgICAgfSk7CisgICAgfQor
fQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9yZWxl
YXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
LWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXggZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5YzNk
NTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmVk
UHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENhbGxi
YWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3Ry
dWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBAIC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01hbmFnZXIoTmF2aWdhdG9yQmFzZSYpOwogCi0g
ICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiwgRnVu
Y3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBs
b2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJM
b2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxv
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1haW5UaHJlYWQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcyLDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyKTsKICAgICB2b2lk
IGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5j
dGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spOworCiAgICAgLy8gQWN0aXZlRE9N
T2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAppbmRleCA3ZjUzM2Mz
Y2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEwZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNlZjdh
YzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
Yi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oCkBAIC0zOCwxMiArMzgsNTUg
QEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3QgewogICAgICAgICBTdHJpbmcgY2xpZW50
SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IG5hbWUu
aXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElkLmlzb2xhdGVkQ29weSgpIH07IH0KKworICAg
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBtb2RlIDw8IGNsaWVudElkOyB9CisgICAgICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRlY29k
ZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZlY3RvcjxJbmZvPiBoZWxkOwogICAgIFZlY3Rv
cjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9ja01hbmFnZXJTbmFwc2hvdCBpc29sYXRlZENv
cHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhyZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJlYWRD
b3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7
IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJM
b2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbz4g
V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5hbWU7CisgICAgZGVjb2RlciA+PiBuYW1lOwor
ICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7CisgICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlm
ICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkOworICAgIGlmICgh
Y2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7
IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92ZSgqY2xpZW50SWQpIH0gfTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hv
dD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+IGhlbGQ7CisgICAgZGVjb2RlciA+PiBoZWxk
OworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5kaW5nOworICAgIGRlY29kZXIgPj4gcGVuZGlu
ZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBXVEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1s
b2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1MDI5
ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaApAQCAtMjYs
NiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9ja01v
ZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJvb2wg
eyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3YmJk
MzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi45NzRjZWJmYjM0OWM3YjM5MDQ1NjgyNjI5MDlkMzYw
NmMzY2JiMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9X
ZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2ICszMyw5MiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8V2Vi
TG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKLSAg
ICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiByZWxl
YXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJPcmlnaW5SZWdpc3RyeT4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdp
c3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOwor
CisgICAgc3RydWN0IExvY2tJbmZvIHsKKyAgICAgICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiBy
ZWdpc3RyeTsKKyAgICAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAg
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOworICAgICAgICBX
ZWJMb2NrTW9kZSBtb2RlOworICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5k
bGVyOworICAgIH07CisKKyAgICB2b2lkIHJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVy
KTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hv
dCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRzQXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJv
b2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xpZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJP
cmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYp
OworCisgICAgc3RydWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAgICAgICBTdHJpbmcg
bmFtZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAg
fTsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3RyeTo6TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0g
ICAgU3RyaW5nIG5hbWU7Ci0gICAgRnVuY3Rpb248dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7
CisgICAgdm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERl
cXVlPExvY2tSZXF1ZXN0PiYpOworICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVl
c3QmKSBjb25zdDsKKworICAgIFdlYWtQdHI8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFs
UmVnaXN0cnk7CisgICAgQ2xpZW50T3JpZ2luIG1fY2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8
U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBI
YXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0
aWMgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgp
CitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CisKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojp+TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1
bHQ7CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2lu
KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0
cnk+Cit7CisgICAgaWYgKGF1dG8gZXhpc3RpbmdSZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0
cmllcy5nZXQoY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5
OworCisgICAgcmV0dXJuIFBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9y
aWdpbik7Cit9CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlG
b3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0
cjxQZXJPcmlnaW5SZWdpc3RyeT4KIHsKLSAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdp
c3RyeSo+PiByZWdpc3RyeU1hcDsKLSAgICByZXR1cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJu
IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKTsKIH0KIAotUmVmPFdlYkxv
Y2tSZWdpc3RyeT4gV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGll
bnRPcmlnaW4mIG9yaWdpbikKK1JlZjxMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk+IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8gZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5
TWFwKCkuZ2V0KG9yaWdpbikpCi0gICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmlnaW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwg
Y2xpZW50T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVn
aXN0cnkob3JpZ2luKSk7CitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OlBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwg
Y29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5
KGdsb2JhbFJlZ2lzdHJ5KQorICAgICwgbV9jbGllbnRPcmlnaW4oY2xpZW50T3JpZ2luKQorewor
ICAgIGdsb2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2luUmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2lu
LCB0aGlzKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5OjpXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xp
ZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29yaWdpbihvcmlnaW4pCitMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5QZXJPcmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAg
cmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRoaXMpOworICAgIGlmIChtX2dsb2JhbFJlZ2lz
dHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5LT5tX3Blck9yaWdpblJlZ2lzdHJpZXMucmVt
b3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lz
dHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVu
Y3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxv
Y2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8qIHJlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50
YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0
aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0
TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWls
YWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciksIFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIp
KTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3JlcXVlc3QtYS1s
b2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wg
aWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5kbGVyKQordm9pZCBMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGll
bnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBi
b29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBG
dW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3Qg
cmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92
ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RGTW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAg
ICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElE
LCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50
ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFsKSB7CiAgICAgICAgIGF1dG8gaXQgPSBtX2hl
bGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBpZiAoaXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkp
IHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9ja0luZm8gOiBpdC0+dmFsdWUpCi0gICAgICAg
ICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRsZXIoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwg
IkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJlcXVlc3QiIH0pOworICAgICAgICAgICAgICAg
IGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7CiAgICAgICAgICAgICBtX2hlbGRMb2Nrcy5y
ZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChpZkF2YWlsYWJsZSAmJiAhaXNH
cmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDggKzEzMywxNCBAQCB2b2lkIFdlYkxvY2tSZWdp
c3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAor
dm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2lu
JiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlm
IChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4p
KQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOwor
fQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVh
c2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBhdXRvIGl0ID0g
bV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBpZiAoaXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkp
CkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nCiAgICAgICAgIHBy
b2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1ZXVlSXRlcmF0b3ItPnZhbHVlKTsKIH0KIAor
dm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRP
cmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0
byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAg
ICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1ZXN0Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6
YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFi
b3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0b3IgPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAu
ZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVN
YXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFMKIH0K
IAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2dyYW50YWJsZQotYm9vbCBX
ZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBj
b25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3Jh
bnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewogICAgIGF1dG8gcXVl
dWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5maW5kKHJlcXVlc3QubmFtZSk7CiAg
ICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwLmVuZCgpICYmICZx
dWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9ICZyZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3
IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYg
cmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3Mv
I3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1ZQotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnBy
b2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVl
c3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5
Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tS
ZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUgKCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJzdCgpKSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAg
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwg
cmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6
OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGll
bnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnktPnNuYXBzaG90KFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Nu
YXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNo
b3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViTG9ja01hbmFnZXI6OlNuYXBz
aG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYgcGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1h
cCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90JiYKICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBzaG90KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJM
b2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50
T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAg
ICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3Jp
Z2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVudHNBcmVHb2luZ0F3YXkoW2NsaWVudElEXShh
dXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0p
OworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdy
YXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9u
PGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xpZW50KQogeworICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBvcHRpbWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJh
Y2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNoIGNsaWVudHMuCiAgICAgSGFzaFNldDxTdHJp
bmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dp
dGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVN
YXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJ
RF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVxdWVzdC5jbGllbnRJRCA9PSBjbGllbnRJRDsg
fSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5yZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVu
dCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0
eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0UmVxdWVzdHMuYXBwZW5kKHBhaXIua2V5KTsK
QEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3
YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SQogCiAgICAgVmVjdG9y
PFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9oZWxk
TG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGll
bnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElEID09IGNsaWVu
dElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNo
Q2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAocGFpci52YWx1ZS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dpdGhvdXRMb2Nrcy5hcHBlbmQocGFpci5rZXkp
OwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SQogICAgIH0KIH0K
IAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNz
SWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBWZWN0b3I8Q2xpZW50T3JpZ2lu
PiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9yKG1fcGVyT3JpZ2luUmVnaXN0cmllcy5rZXlz
KCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3JpZ2luIDogY2xpZW50T3JpZ2lucykgeworICAg
ICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50
T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5LT5jbGllbnRzQXJlR29pbmdBd2F5KFtwcm9j
ZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElE
LnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vzc0lkZW50aWZpZXI7IH0pOworICAgIH0KK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAppbmRleCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRj
Nzc2MzI0ZWVhZGQ5NDNhMDZjLi44YjYzMTRlOGIxMWJlMmE1ZDMwYmE3OTI4MTgwMmFjYjVjZjc3
NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
UmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJD
bGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2NrTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxv
Y2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRp
b247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lz
dHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwot
ICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7
IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBi
b29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50
ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7
Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9p
ZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRP
cmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZB
dmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9u
PHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJ
ZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRPcmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdp
c3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3Byb3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0
cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6
IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxv
Y2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0
cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkp
OyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVy
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
aWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJ
bmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBP
UlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAotICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3Qg
TG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lkIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNv
bnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3Jp
Z2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZv
ck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0
cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7
CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9vcmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcs
IERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hlbGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVu
dE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBtX3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjBlNDI4ODM5NzU2OGQ0NTBkMTJmMTg1Yjhm
NmZlYTYwNjY0ZTE3OC4uMGYwYzhjOTU3ZTRjZDVmZGYzNzFhNDZkYWJkMDgwNzMwMDFlOTE4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTMxMSwxMCArMTMxMSwxMiBAQAogCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2
IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRF
MDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhp
Z2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjI3M0NBRjI2MEU1OUVGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2
MEU1OURGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8q
IFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0Njc4MDJCMjI3NDcxMTg1MDBEQTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJF
NEM1MDI2MTZBODExMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyog
U2NyaXB0QnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNDYzNEM3MkMyNzU3REFCMjAwMjZBODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Nzgw
MkIwMjc0NzExN0IwMERBOUZCNiAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDky
QTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNF
QjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8q
IFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKLQkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdl
YkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0
NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0NjQ0RjdGODI3MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3
RUUyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJ
NDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5
OUUgLyogV2ViTG9ja01hbmFnZXIuaCAqLzsgfTsKIAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlF
IC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDRGN0YzMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU1
Miw3ICszNzU1NCw5IEBACiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9j
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxv
Y2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQw
MEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3
RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0NjM0QzcyQzI3NTdEQUIyMDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjRDQUYwOTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9j
a1JlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUg
LyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAzYTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEy
ZTdmZjJlZTk2YjM1Li5jMDg3ODVhZjhmYzkyNGUzNTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNzksNiArNzksNyBAQAog
I2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNv
bnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRl
ICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5l
cy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KQEAgLTExNzAsNiArMTE3MSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1l
c3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9OwogCitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3Ry
eSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnkgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8RW1wdHlXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBFbXB0eVdlYkxvY2tSZWdpc3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAg
ICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9j
a01vZGUsIGJvb2wsIGJvb2wsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQo
KT4mJikgeyB9CisgICAgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJM
b2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRP
cmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
IHsgfQorICAgIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNs
aWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyKSB7IH0KK307CisKIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0
aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFn
ZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAg
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIEVtcHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpjcmVhdGUoKSwKKyAgICAgICAgRW1wdHlXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAg
ICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxE
dW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2
MjhmYjliYjJjNDk4NjUzNWM2MzJkOWQyZGFjOTEzZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdk
ZWI0ZWE1YTA4ODBmZjBkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAs
IG1fdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250
ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVkTGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQogICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkp
KQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJM
b2NrUmVnaXN0cnkpKQogICAgICwgbV9zZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lv
bklEKQogI2lmIEVOQUJMRShWSURFTykKICAgICAsIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJV
cGRhdGVUaW1lcigqdGhpcywgJlBhZ2U6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGlt
ZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjFlMDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3
MWRhNGVkMzg1Ni4uNzc5ZDkzYTI0NTkwNTJjMTIzMGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwog
Y2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAg
LTI5OCw2ICsyOTksOCBAQCBwdWJsaWM6CiAgICAgQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBi
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2Vi
S2l0TGVnYWN5LgogCisgICAgV2ViTG9ja1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJl
dHVybiBtX3dlYkxvY2tSZWdpc3RyeTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgZm9yRWFjaFBhZ2UoY29uc3QgRnVuY3Rpb248dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG5vblV0aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEz
Miw2ICsxMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91
c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRM
aW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0
cnk7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1v
bml0b3I7CiAgICAgV2Vha0hhc2hTZXQ8QWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2Fj
dGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKaW5kZXggMTk3Yzc4ZTRmZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4
ZWM3YS4uYWU0MjdiN2QyY2ZlN2IyMjJhNTVkODVlOTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNp
bmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJX
ZWJMb2NrUmVnaXN0cnkuaCIKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0
ZVRyYWNrZXIuaCIKICNlbmRpZgpAQCAtNjMsNyArNjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNh
Y2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVu
dFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJl
ZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50
PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYm
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRy
b2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+
JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2Rl
bFBsYXllclByb3ZpZGVyKQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JD
bGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYm
IHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2Fy
ZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2Fk
ZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJM
b2NrUmVnaXN0cnk+JiYgd2ViTG9ja1JlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+
JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3Rv
cmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXll
clByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVu
dChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNv
Y2tldFByb3ZpZGVyKSkKQEAgLTc1LDYgKzc2LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMK
ICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIp
KQogICAgICwgdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIp
KQogICAgICwgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5KSkKKyAgICAsIHdlYkxvY2tSZWdpc3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3Ry
eSkpCiAgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRp
YVJlY29yZGVyUHJvdmlkZXIpKQogICAgICwgcGVybWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShw
ZXJtaXNzaW9uQ29udHJvbGxlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9u
LmgKaW5kZXggN2ZiMzM0NjU3ZTMxMjBjNWFkYmQyZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZi
MmY1ZTYxZDQxN2ZmOWM1ODRjZGE0OGJiNDY5ZTlkMDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsMTEgKzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50
VVJMUGF0dGVybjsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRl
ZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lz
dHJ5OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5p
cXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVz
ZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tp
ZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZy
YW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4m
JiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeT4mJiwgUmVmPFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3Rv
cmFnZVByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJl
ZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldl
YlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29u
dGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+
JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxv
YWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+JiYsIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxl
cj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVy
UHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwog
ICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiAr
MTI5LDcgQEAgcHVibGljOgogICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVu
dFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3Jl
OwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTsKKyAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDgyYWE1ZjIyZGQ3MjBjMTkx
ODQ2YTk0MmEzOTE0Y2JmZWFjODZjN2UuLjUyMTRmMjE3YjBiMjQ4ZTAwNGZhNWRlYzFhZDA5NTgw
MTFkOTE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjI5LDYgKzIyOSw3IEBAIHNldChXZWJL
aXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3Mv
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkKKyAgICBVSVByb2Nlc3MvV2ViTG9ja01hbmFnZXJQ
cm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sCkBAIC0zMDcsNiArMzA4LDcg
QEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYTc4OTdiOTYxYTM5ZGFmOTI3YzU0
ZDEyZWZhM2M4OTcxNDk3YjAyZi4uODU5MmQ5OWQyZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVl
ZWY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMTUzLDYgKzE1Myw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTIx
Nyw2ICsyMTgsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDkzYTYxNDZkNmIxMzljYjhh
MTZhMTcxYmI3N2Q0NGJkM2I1OGI2NWIuLmE1OWU2MjNiMDllNmE5N2VmZmVkNGY5YzUyZjU3MzYz
NjQ1ZWFjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtMzg3LDYgKzM4Nyw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0
b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3Bl
Y3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1lc3NhZ2VzUmVwbGllcy5oCkBAIC01MjYsNiArNTI5LDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
SW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JV
SVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5
UHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJNRE5TUmVnaXN0ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDQ1NzQzODY1YTRhYzgzMmQzZTVkYmQ0YWZkNDM4YmQ3NTMy
Y2Q5MjMuLjE5MzM4ODQ5NjFiNGJjMzA0ZjA4OWIwYjU0ZTE0ODkxYjVjMzQ4ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE2OCw2ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlVSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogCVVJ
UHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eSBcCiAJVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5IFwKKwlVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkgXAogCVVJUHJv
Y2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5IFwKQEAgLTIxOCw2ICsyMTksNyBAQCBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKKwlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeSBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNzZjMmRlYmFmZDkxZDE2ZjhkNzcwODkzZjQ4ODk2
OTAwZGZlMjZkMi4uMmM4MzlhOWU5YmNkOGU5ZjEyMWRmODkzMGZmNDJmYzYwY2IyN2QwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zMTIsNiArMzEyLDcg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYkNvcmU6OlNvdXJjZUJ1ZmZlckFwcGVuZE1vZGUnLAogICAgICAgICAnV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktp
dDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDNlNDNkM2UxM2E3Njc4ZjgxNGNiNmM0NzQxMjcwOWEzMzNkNzk1NGIu
LmZlNjA0MTJjMmExNTJhYjVjNDJlZmFmYzBiYjhiYTI0YTQ3ODlmYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtNDM1LDYgKzQzNSw3IEBAIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAogVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKK1VJ
UHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9u
U3RhdGUuY3BwCiBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAK
IFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC03ODEsNiAr
NzgyLDcgQEAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
Y3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5jcHAKIAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVn
aXN0cnkuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNp
b24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1NoYXJlYWJsZUJpdG1hcFV0aWxpdGll
cy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcApAQCAtODQ3LDggKzg0OSw2IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1NZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lz
dGVtUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi1XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCi0KIFJlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBS
ZW1vdGVCaW5kR3JvdXBNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRN
ZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC04NzEsMyArODcxLDYgQEAgUmVtb3RlU2FtcGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJl
bW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkxvY2tSZWdp
c3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NTViZjdjYTk1MTdjZDIz
MTY5ZDcxMTExYWJlZDFlNjdhOTM0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQ
cm94eS5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxv
Y2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVE
YXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
KyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3Nl
cnRpb24sIG1fcHJvY2Vzcy5jb25uZWN0aW9uKCkpCisKK1dlYkxvY2tSZWdpc3RyeVByb3h5OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3By
b2Nlc3MocHJvY2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7
Cit9CisKK1dlYkxvY2tSZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkoKQorewor
ICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFdlYkxvY2tSZWdp
c3RyeVByb3h5OjpyZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmln
aW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwg
V2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFi
bGUpCit7CisgICAgTUVTU0FHRV9DSEVDSyhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmll
cigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9D
SEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSk7CisKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxv
Y2tSZWdpc3RyeSgpLnJlcXVlc3RMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50
aWZpZXIsIGNsaWVudElELCBXVEZNb3ZlKG5hbWUpLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxh
YmxlLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVu
dElEXShib29sIHN1Y2Nlc3MpIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OkRpZENvbXBsZXRlTG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBzdWNjZXNz
KSwgMCk7CisgICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRF0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFr
VGhpcy0+bV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlk
U3RlYWxMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCksIDApOworICAgIH0pOworfQorCit2
b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpyZWxlYXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwg
U3RyaW5nJiYgbmFtZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nl
c3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNz
LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9y
ZSgpLndlYkxvY2tSZWdpc3RyeSgpLnJlbGVhc2VMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwg
bG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3ZlKG5hbWUpKTsKK30KKwordm9pZCBXZWJM
b2NrUmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdChXZWJDb3JlOjpDbGllbnRPcmlnaW4m
JiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3Ry
aW5nJiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlm
aWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdF
X0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxv
Y2tSZWdpc3RyeSgpLmFib3J0TG9ja1JlcXVlc3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUobmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6c25hcHNob3QoV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5zbmFw
c2hvdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6Y2xpZW50SXNHb2luZ0F3YXkoV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElE
LnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigp
KTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmNs
aWVudElzR29pbmdBd2F5KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgY2xpZW50SUQpOworfQorCit2
b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCgpCit7CisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRzQXJlR29pbmdB
d2F5KG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7Cit9CisKKyN1bmRlZiBNRVNT
QUdFX0NIRUNLCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJhMzFhOWI5MmI3MTYx
YzdjYWQ2MDJiZmJhMWI4MzY5OTczMzI3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dl
YkxvY2tNb2RlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBDbGllbnRPcmlnaW47
CitzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHkg
ZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeVByb3h5KFdl
YlByb2Nlc3NQcm94eSYpOworICAgIH5XZWJMb2NrUmVnaXN0cnlQcm94eSgpOworCisgICAgdm9p
ZCBwcm9jZXNzRGlkRXhpdCgpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDIE1l
c3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCByZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwg
Ym9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSk7CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lKTsKKyAgICB2
b2lkIGFib3J0TG9ja1JlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgU3RyaW5nJiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAg
dm9pZCBzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNs
aWVudElzR29pbmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJv
Y2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiYWJjMjU0YzQxZTBlMDE5MTU2Y2E4MTJjNDZmZTc5MDMwNTE3ZTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkxvY2tSZWdpc3RyeVByb3h5IE5vdFJlZkNvdW50
ZWQgeworICAgIFJlcXVlc3RMb2NrKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50
T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUsIGVu
dW06Ym9vbCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZh
aWxhYmxlKQorICAgIFJlbGVhc2VMb2NrKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xp
ZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUp
CisgICAgQWJvcnRMb2NrUmVxdWVzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKSAt
PiAoYm9vbCB3YXNBYm9ydGVkKSBBc3luYworICAgIFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4gY2xpZW50T3JpZ2luKSAtPiAoc3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyU25hcHNob3Qgc25hcHNob3QpIEFzeW5jCisgICAgQ2xpZW50SXNHb2luZ0F3YXkoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDI4YzhkOGVmMDcxNGM4MmViOTA0Yzk0ZTdl
Mjk3MWQ4NWJhZWIxMy4uYzE4ZDA3NjYzMmUzOGM2YTIzZjY4ZjU1ZGU2ZTU1YTcyZGIwOGY1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00Niw2
ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMu
aCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eS5oIgogI2luY2x1ZGUgIldlYk5hdmln
YXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKQEAgLTI0MCw2ICsyNDEsNyBAQCBXZWJQcm9j
ZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdl
YnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX2NhcHRpdmVQb3J0YWxNb2RlKGNhcHRpdmVQb3J0YWxN
b2RlKQogICAgICwgbV9jcm9zc09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9z
aHV0ZG93blByZXZlbnRpbmdTY29wZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVu
dCkgeyBpZiAoZXZlbnQgPT0gUmVmQ291bnRlckV2ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERv
d24oKTsgfSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KG1ha2VVbmlxdWVSZWY8V2ViTG9ja1Jl
Z2lzdHJ5UHJveHk+KCp0aGlzKSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRP
ckNoZWNrRGlzYWJsZWQoKSk7CiAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nl
c3MsICJjb25zdHJ1Y3RvcjoiKTsKQEAgLTUyOCw2ICs1MzAsOCBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c2h1dERvd24oKQogICAgIG1fdXNlckluaXRpYXRlZEFjdGlvbk1hcC5jbGVhcigpOwog
ICAgIG1fc2xlZXBEaXNhYmxlcnMuY2xlYXIoKTsKIAorICAgIG1fd2ViTG9ja1JlZ2lzdHJ5LT5w
cm9jZXNzRGlkRXhpdCgpOworCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCiAgICAg
bV9yb3V0aW5nQXJiaXRyYXRvci0+cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGRhNmRjNjhlZWJjZWNi
NDIzNjI3ZWM5ODlkNmJjYWE4MDE1NzQ5NzMuLmNkMzMwODY0OTQ0M2I1ZTNlZDJiNGY3MWEyMjcx
ZjZmZTU3MDhhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CkBAIC05Myw2ICs5Myw3IEBAIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOwog
Y2xhc3MgV2ViRnJhbWVQcm94eTsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeVByb3h5OwogY2xhc3Mg
V2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CkBAIC02NzQsNiArNjc1LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CiAjZW5kaWYKKyAgICBVbmlxdWVSZWY8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+IG1f
d2ViTG9ja1JlZ2lzdHJ5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCmluZGV4IGZjMWQ5YWU5ODkzZGQ5MTAxNjczZjdjOGRhZTZmM2I5YmE4ZTM5YzcuLjkwOTc5
M2UzNzU2OGMwNDJiMTAwMmEyNmFhMDI3NDc4NGE5MWU0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBA
IC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dG9yYWdlUXVvdGFNYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnku
aD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CkBA
IC0xMzAsNiArMTMxLDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXIKICNpZiBIQVZFKEFQUF9T
U08pCiAgICAgLCBtX3NvQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yKG1ha2VVbmlxdWVSZWY8U09B
dXRob3JpemF0aW9uQ29vcmRpbmF0b3I+KCkpCiAjZW5kaWYKKyAgICAsIG1fd2ViTG9ja1JlZ2lz
dHJ5KFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKSkKIHsKICAgICBXVEY6
OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7CiAgICAgcmVnaXN0ZXJXaXRo
U2Vzc2lvbklETWFwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNjE5NjI4MGY3NmRhMTIwMjk4ZTJiN2Fi
MTY0MDVkMmYwYmEyODkyMy4uMWRlMjVhNjYwNTdmMmQ2NmM2Mjk5ZTVlYmJiODE0NmJlZTliODFl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtNzUsNiArNzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOworY2xhc3MgTG9jYWxXZWJMb2NrUmVnaXN0cnk7CiAKIHN0cnVjdCBNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogfQpAQCAtMzE3LDYgKzMxOCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZUNsaWVu
dD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KIAogICAgIEFQSTo6
SFRUUENvb2tpZVN0b3JlJiBjb29raWVTdG9yZSgpOworICAgIFdlYkNvcmU6OkxvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeS5n
ZXQoKTsgfQogCiAgICAgdm9pZCByZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKFVSTCYmLCBVUkwm
JiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAKQEAgLTQ3MSw2ICs0NzMsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlPiBtX3RoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU7IC8vIExhemlseSBjb21wdXRlZC4KICNlbmRpZgorICAgIFJlZjxXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMTIwNGUzYzQz
YmI4NmFlZDQ2YjNjNTExMDM1MzhlYTU3MmI4ZDgwLi5hNDUxMTVmNDg5YWEyY2NiYzliZWM0Y2Ux
N2RmNjA3YmUyODViNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTkwOCw2ICs5MDgsNyBAQAogCQk0NjNGRDQ4MDFFQjk0NTk2MDBB
Mjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNz
VGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1l
c3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50
aWZpZXIuaCAqLzsgfTsKKwkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdp
c3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLzsg
fTsKIAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aCAqLzsgfTsKIAkJNDY3MUZGMUYyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9i
c2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLzsg
fTsKIAkJNDY3RTQzRTgyMjQzRkY3RDAwQjEzOTI0IC8qIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjdFNDNFNzIyNDNGRjZEMDBCMTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMu
aCAqLzsgfTsKQEAgLTQxNzYsNiArNDE3Nyw5IEBACiAJCTQ2NUY0RTAyMjMwNzU5RDUwMDNDRURC
NyAvKiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUY0RTAzMjMwNzYw
NEUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2Nr
UmVnaXN0cnlQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyog
V2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzI1Mjc1
N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZCQzAzQTFGQTI2NkM5
MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTg2LDYgKzQxOTAsOCBAQAog
CQk0NjgwOUE3QjIzRDkyMjUzMDBDMjk3RDAgLyogV2ViQ29va2llQ2FjaGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29va2llQ2FjaGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QTIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlz
aW9uYWxQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvdmlz
aW9uYWxQYWdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2OUIy
MUU4MUNDNzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUx
IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjlERTgw
MjI3M0VDQzVEMDA5MzAyNzYgLyogUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzTGF1bmNoZXJDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJh
Y2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RF
REEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIwNCw2ICs0MjEwLDggQEAKIAkJ
NDZDRTNCMTAyM0Q4QzgzRDAwMTZBOTZBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2MzkxRjM5MDVFNTAwMTk4MEJC
IC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzQTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
OTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUyODQ3MjY5RTA0OUIwMERENDhB
QiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NDgyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZFRTI4NEEyNjlFMDUxNzAwREQ0OEFCIC8qIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya0Jyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwNTM4LDYgKzEwNTQ2LDkgQEAKIAkJCQlDRDYxNzgxMTFFNkRFOTgwMDBGREE1N0Qg
LyogY29jb2EgKi8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8qIGlvcyAqLywKIAkJ
CQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTQ2ODlCOTEwMjc1NkQx
NDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwICovLAorCQkJCTQ2ODlCOTBG
Mjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCAqLywKKwkJCQk0NkU5
NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmlu
ICovLAogCQkJCTFBNzI4NDQ0MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJz
aW9uLmNwcCAqLywKIAkJCQkxQTcyODQ0NTE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRl
Q29udmVyc2lvbi5oICovLAogCQkJCUY0M0E5Q0RFMjVENzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFi
bGVCaXRtYXBVdGlsaXRpZXMuY3BwICovLApAQCAtMTA1NDUsNiArMTA1NTYsNyBAQAogCQkJCUNF
REExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywK
IAkJCQk0NkVFMjg0NzI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcCAqLywKIAkJCQk0NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LmggKi8sCisJCQkJNDZFOTc2MEEyNzU3RjZDOTAwQUNERDM3IC8qIFdl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLywKIAkJCQlFM0E4NkZCQzI2
OTU4RTMzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3BwICovLAog
CQkJCUUzQTg2RkJCMjY5NThEODMwMDU5MjY0RCAvKiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxl
Z2F0ZS5oICovLAogCQkJCUJDMTExQTUzMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGll
bnQuY3BwICovLApAQCAtMTA4MjgsNiArMTA4NDAsOSBAQAogCQkJCUJDMUJFMUYxMTJENTREQkQw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCAqLywKIAkJCQlCQzFCRTFGMDEy
RDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oICovLAogCQkJCTUxQzhF
MTlCMUYyMTYxNzIwMEJGNzMxQiAvKiBXZWJJY29uRGF0YWJhc2UuaCAqLywKKwkJCQk0NjVGQTcy
NTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwICovLAorCQkJCTQ2
NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovLAorCQkJ
CTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQkyRDNFRjQ0MDE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCAqLywKIAkJCQkyRDNFRjQ0MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmggKi8sCiAJCQkJN0NDQ0M4RjgxQTVGNTBGRDAwOEZCMERBIC8q
IFdlYk5hdmlnYXRpb25TdGF0ZS5jcHAgKi8sCkBAIC0xMjQ0OSw4ICsxMjQ2NCw4IEBACiAJCQkJ
NTE2MEU5NUUyNzRDMkEwMzAwNTY3Mzg4IC8qIE1vY2tBcHBCdW5kbGVSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE2MEU5NTkyNzRDMEQ4OTAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjdCQjdCMjc0NEM1MDcwMEM0NUE3MiAvKiBQdXNoQ2xp
ZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGMkYyNzU3MzgyQjAwMkRD
MjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyQ0Q2OUYyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUxN0I1RjJGMjc1NzM4MkIwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9u
Q29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTMzMzQsNiArMTMz
NDksNyBAQAogCQkJCUJDQjYzNDc4MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyX0MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlh
bGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcxOTE5OTUwQzAwNkFEOUY5IC8qIFdl
YktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NUZBNzI2Mjc1N0Q5M0QwMDcyMzYy
QiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMx
OUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlBQ0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdl
Yk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzOTgsNiArMTM0MTQsNyBAQAog
CQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90
ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNENjk4MjcyMUVGQzgwMEY3RjhF
QyAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVG
MkUyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OUEyNzIxRjBBOTAwRjdGOEVDIC8qIFdlYlB1
c2hEYWVtb25Db25zdGFudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUNDQ0E2MjMxNDg1QUEw
MEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzU0OCw3ICsxMzU2NSw2IEBACiAJCQkJNUM3OTVENzAy
MjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUM3OTVENzEyMjlGMzc1NzAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50
SW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTU1NUY2MTI4QzZDNDcwMDlBQkNF
QyAvKiBXS0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGMkUyNzU3
MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU2MDExMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4dE1l
bnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRUEwMjM4MURBQkZGN0UwMDk2MDIx
RiAvKiBXS0NvbnRleHRNZW51TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzkzOEUx
MTE4MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhYTc0M2M2MmUzZjNiNTU0M2Nh
N2NmYzdiNTJlMmUzMGFkOTkxOWNkLi5mOWI4NTI0NmRmNWI2YjIzOWFmMGRhOGNiZjA5NTI4NTU1
NDc3ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnku
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmgiCkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlckNv
bnRleHREYXQKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gV2ViRGF0
YWJhc2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJRCk7CiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24uc29ja2V0UHJvdmlkZXIgPSBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKG1fd2Vi
UGFnZVByb3h5SUQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgp
OworICAgIHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJD
b250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKICNpZiBFTkFCTEUoV0VC
X1JUQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlciA9IG1ha2VVbmlx
dWVSZWY8U2VydmljZVdvcmtlckxpYldlYlJUQ1Byb3ZpZGVyPigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWFmMDllZTZiMzc1OWNlZDQyNzI3ZjJmZmYw
ZTViM2Q5Mzk4ZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTAsMCArMSwxNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTG9ja0luZm8g
eworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRsZXI7Cit9OworCitzdHJ1Y3Qg
TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9pZChib29sKT4gbG9ja0dy
YW50ZWRIYW5kbGVyOworfTsKKworc3RydWN0IFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NT
bmFwc2hvdCB7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgTG9ja1Jl
cXVlc3Q+IHBlbmRpbmdSZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyLCBMb2NrSW5mbz4gaGVsZExvY2tzOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSAmJiBoZWxkTG9ja3MuaXNFbXB0eSgp
OyB9Cit9OworCitSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeShX
ZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIHByb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRo
aXMpOworfQorCitSZW1vdGVXZWJMb2NrUmVnaXN0cnk6On5SZW1vdGVXZWJMb2NrUmVnaXN0cnko
KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigq
dGhpcyk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tN
b2RlIGxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhh
bmRsZXIpCit7CisgICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcikgfSwgV1RGTW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBhdXRvJiBzbmFwc2hv
dCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbnN1cmUoY2xpZW50SUQsIFtdIHsgcmV0dXJu
IExvY2tzU25hcHNob3QgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgc25hcHNob3QucGVu
ZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQ
cm94eTo6UmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IG5hbWUsIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUpLCAwKTsKK30KKwordm9pZCBSZW1v
dGVXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNv
bnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCAhPSBtX2xvY2tzU25hcHNob3RQZXJDbGll
bnQuZW5kKCkpIHsKKyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nrcy5yZW1vdmUobG9ja0lkZW50
aWZpZXIpOworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1f
bG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZWxl
YXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSksIDAp
OworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6QWJvcnRMb2NrUmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJ
RCwgbmFtZSksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwg
Y2xpZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGJvb2wgZGlkQWJvcnQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMgJiYgZGlkQWJv
cnQpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSB3ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVy
Q2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgICAgICAgICAgaWYgKGl0ICE9IHdlYWtUaGlzLT5t
X2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBpdC0+dmFs
dWUucGVuZGluZ1JlcXVlc3RzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgICAgICAg
ICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlz
LT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihkaWRBYm9ydCk7CisgICAgfSwgMCk7
Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlNuYXBzaG90KGNsaWVudE9yaWdpbiksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmNs
aWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2lu
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sK
KyAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGNsaWVudElEKTsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6
Q2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjbGllbnRJRCksIDApOworfQorCit2b2lk
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3JlOjpX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJvb2wgc3VjY2VzcykKK3sKKyAgICBhdXRvIGl0
ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9
PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gcGVuZGluZ1JlcXVlc3QgPSBpdC0+dmFsdWUucGVuZGluZ1JlcXVlc3RzLnRha2UobG9j
a0lkZW50aWZpZXIpOworICAgIGlmICghcGVuZGluZ1JlcXVlc3QubG9ja0dyYW50ZWRIYW5kbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGxvY2tHcmFudGVkSGFuZGxlciA9IFdURk1v
dmUocGVuZGluZ1JlcXVlc3QubG9ja0dyYW50ZWRIYW5kbGVyKTsKKyAgICBpZiAoc3VjY2VzcykK
KyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nrcy5hZGQobG9ja0lkZW50aWZpZXIsIFdURk1vdmUo
cGVuZGluZ1JlcXVlc3QpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsK
KyAgICB9CisKKyAgICBsb2NrR3JhbnRlZEhhbmRsZXIoc3VjY2Vzcyk7Cit9CisKK3ZvaWQgUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OjpkaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElEKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQu
ZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5l
bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsb2NrSW5mbyA9IGl0LT52YWx1ZS5o
ZWxkTG9ja3MudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYgKCFsb2NrSW5mby5sb2NrU3Rv
bGVuSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5
KCkpCisgICAgICAgIG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworCisgICAg
bG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1YjFhYWZjNTRjOGEy
MTU3YzUyZmYwY2RhOTY4MzQzNmNiMWFhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eSwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4gY3JlYXRlKFdlYlByb2Nlc3MmIHByb2Nlc3MpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KHByb2Nlc3MpKTsgfQorICAg
IH5SZW1vdGVXZWJMb2NrUmVnaXN0cnkoKTsKKworICAgIC8vIFdlYkNvcmU6OldlYkxvY2tSZWdp
c3RyeS4KKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwg
Ym9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFu
dGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsK
KyAgICB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNv
cmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0TG9ja1Jl
cXVlc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAg
IHZvaWQgc25hcHNob3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKKworICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmKTsKKworICAgIC8vIElQQyBN
ZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3Jl
OjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9pZCBkaWRTdGVhbExvY2soV2ViQ29yZTo6V2Vi
TG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KTsKKworICAgIHN0cnVjdCBMb2Nrc1NuYXBzaG90OworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIExvY2tzU25hcHNob3Q+IG1fbG9ja3NTbmFw
c2hvdFBlckNsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdp
c3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZhN2FlYTJi
ZDRiZDc3MmEyZGFkZWQ0YzZmN2VjMjcxZmY0YWVkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21lc3NhZ2VzIC0+IFJl
bW90ZVdlYkxvY2tSZWdpc3RyeSB7CisgICAgRGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3Jl
OjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJvb2wgc3VjY2Vzcyk7CisgICAgRGlkU3Rl
YWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVjM2NmZDQyMzg3
OGI2Y2M1NTIwMzUyZmFkMDQ1Y2NmNTlmMGNiMDAuLjNiZGZhN2M5ZDkzM2JkOWRlMDBiZjcyMGZk
NDc1MWM3MDg2YjdmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCIKICNpbmNsdWRl
ICJSZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blN0YXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNTcz
LDYgKzU3NCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPihtX2lkZW50aWZpZXIpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSwKKyAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5KCksCiAgICAgICAgIFdlYlBl
cm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYlN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJNb2RlbFBs
YXllclByb3ZpZGVyPigqdGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA5NDMwNGI3MTFmZDRmYWVhM2IyMGU3MzljOTk2YTQ3YjhjNzJhZDM0Li5mNmU4NzYy
NDZiZmRkNmFhZDAwNzlkMGVlY2EzYmY3M2RiZTcwZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFN
YXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAtMjc5LDYgKzI4MCw3IEBAIFdlYlByb2Nl
c3M6OldlYlByb2Nlc3MoKQogICAgICwgbV93ZWJMb2FkZXJTdHJhdGVneSgqbmV3IFdlYkxvYWRl
clN0cmF0ZWd5KQogICAgICwgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcihXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0
cnkoUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9jb29raWVK
YXIoV2ViQ29va2llSmFyOjpjcmVhdGUoKSkKICAgICAsIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUoUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU6OmNyZWF0ZSgpKQogICAgICwgbV9kbnNQcmVmZXRj
aEh5c3RlcmVyaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0
ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgbV9kbnNQcmVmZXRjaGVkSG9zdHMu
Y2xlYXIoKTsgfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlhZGUz
YzAwNWFmMmUyMjcxYWZjYWJmZmQ2ODE1MjM2NzZlZmI3MGEuLjE0Y2RmNzUxNWM2MmM0NWRhYjlm
OWRiODE2ZmRjYjJkODg1Y2YzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aApAQCAtMTMyLDYgKzEzMiw3IEBAIGNsYXNzIFByb2Nlc3NBc3NlcnRpb247CiBjbGFzcyBSZW1v
dGVDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90
ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk7CitjbGFzcyBSZW1vdGVXZWJMb2NrUmVn
aXN0cnk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YTsKIGNsYXNzIFN0
b3JhZ2VBcmVhTWFwOwogY2xhc3MgVXNlckRhdGE7CkBAIC0zNDAsNiArMzQxLDcgQEAgcHVibGlj
OgogCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkg
eyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlci5nZXQoKTsgfQogICAgIFdlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeSYgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9i
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuZ2V0KCk7IH0KKyAgICBSZW1vdGVXZWJMb2NrUmVnaXN0
cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9
CiAgICAgV2ViQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQo
KTsgfQogICAgIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyJiB3ZWJTb2NrZXRDaGFubmVsTWFuYWdl
cigpIHsgcmV0dXJuIG1fd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI7IH0KICAgICBXZWJDb3JlOjpS
ZXBvcnRpbmdFbmRwb2ludHNDYWNoZSYgcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUoKSB7IHJldHVy
biBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmdldCgpOyB9CkBAIC02NzYsNiArNjc4LDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZjxXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4gbV9jYWNoZVN0b3Jh
Z2VQcm92aWRlcjsKICAgICBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBtX3dl
YkxvY2tSZWdpc3RyeTsKICAgICBSZWY8V2ViQ29va2llSmFyPiBtX2Nvb2tpZUphcjsKICAgICBS
ZWY8V2ViQ29yZTo6UmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU+IG1fcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGU7CiAgICAgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIgbV93ZWJTb2NrZXRDaGFubmVsTWFu
YWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAw
Yzc0NGRkY2ViMzMyNmQwNjcxNDdhMDZlYjkxMjFmYjEwZTU3ZjQ1Li41NjY0MmMyMjJkNmJjNTQz
YWY5ZTc1OWI2MzkzMmFhNmVkODM4Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0yMzEsNiArMjMxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2Vi
TG9ja1JlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNh
dGlvbk92ZXJsYXkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJL
aXRMZWdhY3kvRE9NLmg+CkBAIC0xNDM4LDYgKzE0MzksMTggQEAgc3RhdGljIHZvaWQgV2ViS2l0
SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKIH0KICNlbmRpZgogCitzdGF0
aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBnZXRPckNyZWF0ZVdlYkxvY2tS
ZWdpc3RyeShib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IGRlZmF1
bHRSZWdpc3RyeTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpM
b2NhbFdlYkxvY2tSZWdpc3RyeT4+IHByaXZhdGVSZWdpc3RyeTsKKyAgICBhdXRvJiBleGlzdGlu
Z1JlZ2lzdHJ5ID0gaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkID8gcHJpdmF0ZVJlZ2lzdHJ5IDog
ZGVmYXVsdFJlZ2lzdHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lzdHJ5LmdldCgpKQorICAgICAg
ICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAgYXV0byByZWdpc3RyeSA9IFdl
YkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsKKyAgICBleGlzdGluZ1JlZ2lz
dHJ5LmdldCgpID0gcmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lzdHJ5OworfQorCiAtICh2b2lk
KV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1l
IGdyb3VwTmFtZTooTlNTdHJpbmcgKilncm91cE5hbWUKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlv
bGF0aW9uQ2hlY2tSb3VuZFR3bygpOwpAQCAtMTU0Myw2ICsxNTU2LDcgQEAgLSAodm9pZClfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91
cE5hbWU6KE5TU3QKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShbW3NlbGYgcHJlZmVyZW5j
ZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJt
aXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCkBAIC0xODI0LDYgKzE4MzgsNyBAQCAtIChp
ZClpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOihOU1N0cmluZyAqKXN0eWxlIGZyYW1l
OihDR1JlY3QpZnJhbWUgcHJlZgogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3Np
bmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KFtbc2VsZiBw
cmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAogICAgICAgICBXZWJDb3JlOjpE
dW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKaW5kZXggZjQ2MzA3OWQ5ODFiZmUyYTU4YzJhMjRiMmZmNTEwOWMyNDJkNmYw
OC4uNGZmY2RlOWM1MzI3MDJkOTM0ZDNjN2MxMzU1MzdjZWIyNjE1ZjExNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTE3Myw2ICsxNzMsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVKSVRPcGVyYXRp
b25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlVGV4dFJlbmRlcmVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01l
c3NhZ2VCcm9hZGNhc3Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAj
aW5jbHVkZSA8Y29tZGVmLmg+CkBAIC0yOTkyLDYgKzI5OTMsMTYgQEAgYm9vbCBXZWJWaWV3Ojpz
aG91bGRJbml0aWFsaXplVHJhY2tQb2ludEhhY2soKQogICAgIHJldHVybiBzaG91bGRDcmVhdGVT
Y3JvbGxiYXJzOwogfQogCitzdGF0aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
PiBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBleGlzdGluZ1JlZ2lz
dHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lzdHJ5LmdldCgpKQorICAgICAgICByZXR1cm4gKmV4
aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAgYXV0byByZWdpc3RyeSA9IFdlYkNvcmU6OkxvY2Fs
V2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsKKyAgICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0g
cmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lzdHJ5OworfQorCiBIUkVTVUxUIFdlYlZpZXc6Omlu
aXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdy
b3VwTmFtZSkKIHsKICAgICBIUkVTVUxUIGhyID0gU19PSzsKQEAgLTMwNjUsNiArMzA3Niw3IEBA
IEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJh
bWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVj
b3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpn
ZXRPckNyZWF0ZShmYWxzZSksCisgICAgICAgIGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KCks
CiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3RvcmFnZVByb3ZpZGVyPigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE2
Yjc5NjQ3NDIxMWJlNjRkYmMxNzYxOThmNTg3NmQyZWQ5ZTM4MjguLmFjNjcxM2FlYzNjMjhhZGQ4
YWZkNTIzMDRiNzcwNjRkY2IxZjI1MGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW06IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEFQSSB0ZXN0IGJ1aWxkIGZp
eC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCAwZmE3M2FlNjNkMTVhMTE2
ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyLi40OWZiOTI2NmRiNDM2MzYxY2Y0MzNiYjQzMDkyNTU3
ZjE3ZGVjY2M1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTMsNiAr
MjkzLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCiBUZXN0cy9X
ZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0
Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJHTFBvbGlj
eS5tbQorVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KIFRlc3RzL1dlYktpdENvY29hL1dl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc1Rl
cm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA3ODBmMWJmOTA4MjJkOGZmMDQ2MDJhMzY2NzJmNjJhZDY4ZjYzMmZj
Li4yMTAzMDc0MjkxYzQxZTdlMjA1Mjc4MTFmYTQ1N2E5NTUxMDVhOWRkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTkzMyw2ICsxOTMzLDcgQEAKIAkJNDRDREU0RDMyNkVFNkU0MTAwOUY2
QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gVHlwZUNhc3RzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0Q0YzMUZCMjQ5OTNGNjYwMDlDQjZDQiAvKiBDb250ZXh0TWVudUFjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUFjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RDUwMDhEMjZGRTlFRDYwMDBFQjEyRiAvKiBS
ZXRhaW5QdHJBUkMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBS
ZXRhaW5QdHJBUkMubW07IHBhdGggPSBucy9SZXRhaW5QdHJBUkMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJMb2Nrcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkxvY2tzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjBDMkZDODI3MDM5RDdEMDA0N0VGMTEgLyogU2VydmljZVdvcmtlclBhZ2VQcm90
b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUGFnZVByb3RvY29sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2Fk
RmlsZVRoZW5SZWxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBMb2FkRmlsZVRoZW5SZWxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
MjhDOEU4MjM2N0FCQkMwMEIwNzNGMCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU3Miw2ICszNTczLDcgQEAKIAkJCQk4MzBGMkUwQjIw
OUE2QTc0MDBEMzZGRjEgLyogV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0gKi8sCiAJ
CQkJNTdBNzk4NTYyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSAqLywK
IAkJCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi8sCisJCQkJ
NDYwNjE1NDUyNzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1tICovLAogCQkJCTUxNzE0RUI2
MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gKi8sCiAJCQkJ
QzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5hdGUubW0gKi8sCiAJ
CQkJNUMxNTdBMDIyNzE3QzNCMTAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVtb24ubW0gKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYmM4YTVkZmJjN2EwMDQ3ZWQ1ZTVjNDEwNTU3NTQ2MTlkMmY0MzY3Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nr
cy5tbQpAQCAtMCwwICsxLDE4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVXRp
bGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaD4KKyNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKKworVEVTVChXZWJMb2NrcywgU25hcHNob3RBY3Jvc3NQcm9jZXNzZXMpCit7CisgICAg
VGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9v
IiB9IH0KKyAgICB9KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUHJlZmVyZW5jZXNTZXRC
b29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKVtjb25m
aWd1cmF0aW9uMSBwcmVmZXJlbmNlc10sIHRydWUsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJXZWJMb2Nrc0FQSUVuYWJsZWQiKSk7CisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjEuZ2V0KCldKTsKKyAgICBbd2ViVmll
dzEgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0
byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05F
KHBpZDEsIDApOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmll
dzEgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7
CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6
QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcg
UHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8gY29uZmln
dXJhdGlvbjIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLnByb2Nlc3NQb29sID0gW2NvbmZpZ3VyYXRpb24x
IHByb2Nlc3NQb29sXTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVz
dGluZygoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbjIgcHJlZmVyZW5j
ZXNdLCB0cnVlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiV2ViTG9ja3NBUElFbmFi
bGVkIikpOworICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5bmNocm9ub3VzbHlMb2Fk
UmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3MiBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVz
c2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNz
YWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAg
W3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdi
YXInLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIg
Y29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAg
IEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0
ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8g
VGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDIgaGVsZCBvbmVzLgorICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTIiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7
CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5s
b2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScg
KyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpe
KE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRp
bmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4KKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3Nh
Z2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3
MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBz
aG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgn
JyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgp
OyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViTG9ja3MsIExvY2tSZXF1ZXN0V2Fp
dGluZ09uQW5vdGhlclByb2Nlc3MpCit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBz
ZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9vIiB9IH0KKyAgICB9KTsKKworICAgIGF1dG8g
Y29uZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChf
X2JyaWRnZSBXS1ByZWZlcmVuY2VzUmVmKVtjb25maWd1cmF0aW9uMSBwcmVmZXJlbmNlc10sIHRy
dWUsIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJXZWJMb2Nrc0FQSUVuYWJsZWQiKSk7
CisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbjEuZ2V0KCldKTsKKyAgICBbd2ViVmlldzEgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0
OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9j
ZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIDApOworCisgICAgX19ibG9jayBi
b29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzEgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55
TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSht
ZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgn
Zm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEi
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjIgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24yLmdldCgp
LnByb2Nlc3NQb29sID0gW2NvbmZpZ3VyYXRpb24xIHByb2Nlc3NQb29sXTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19icmlkZ2UgV0tQcmVmZXJlbmNl
c1JlZilbY29uZmlndXJhdGlvbjIgcHJlZmVyZW5jZXNdLCB0cnVlLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiV2ViTG9ja3NBUElFbmFibGVkIikpOworICAgIGF1dG8gd2ViVmlldzIg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7Cisg
ICAgW3dlYlZpZXcyIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsK
KworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAg
IEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIF9fYmxvY2sgYm9vbCBsb2NrQWNxdWlyZWQg
PSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpe
KE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBA
IkFDUVVJUkVEIik7CisgICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisKKyAg
ICAvLyBSZXF1ZXN0aW5nIHRoZSBzYW1lIGxvY2sgbmFtZSBhcyB3ZWJWaWV3MSBzbyB0aGUgcmVx
dWVzdCBzaG91bGQgZ2V0IHF1ZXVlZCB1bnRpbCB3ZWJWaWV3MSByZWxlYXNlcyBpdC4KKyAgICBb
d2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2Zv
bycsIGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBj
b21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAg
RVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UobG9ja0FjcXVpcmVkKTsKKworICAgIGRvbmUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpe
KE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAxIHBlbmRp
bmcgbG9jaywgYW5kIDEgaGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdl
LCBAIjEtMSIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hv
dCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycg
KyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsg
fSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7
CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2Vpdmlu
Z0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBsb2NrQWNxdWlyZWQgPSB0cnVlOwor
ICAgIH1dOworCisgICAgLy8gTm93IGNsb3NlIHRoZSB3ZWJWaWV3MS4gVGhpcyBzaG91bGQgcmVs
ZWFzZSB0aGUgJ2ZvbycgbG9jayBhbmQgYWxsb3cgd2ViVmlldzIgdG8gYWNxdWlyZSBpdC4KKyAg
ICBbd2ViVmlldzEgX2Nsb3NlXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbG9j
a0FjcXVpcmVkKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFm
dGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8v
IFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAxIGhlbGQgb25lLgorICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTEiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7
CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5s
b2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScg
KyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="commit-queue"
          id="470861"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445629</attachid>
            <date>2021-12-01 16:11:38 -0800</date>
            <delta_ts>2021-12-01 16:14:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201161134.patch</filename>
            <type>text/plain</type>
            <size>122755</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcAppbmRleCA3ZTViNTUxNDg1YWM2NTUxZGQ1ZjBjMTkwNDFiM2UyOTNmMWI2Y2VkLi5jNDQ1
NjI5ZjVmYzA1NTc5MWJkYzFjNTU0YTg4Yzg3YzhkZTEwNjZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMSwxMSAr
MzEsMTMgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1dlYkxvY2tN
YW5hZ2VyU25hcHNob3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViTG9jay5o
IgogI2luY2x1ZGUgIldlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmgiCiAjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC01Myw2ICs1NSw3IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xpZW50T3JpZ2luRnJvbUNvbnRleHQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJMb2NrTWFuYWdlcjo6TG9ja1JlcXVlc3Qgewog
ICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwogICAgIFN0cmluZyBuYW1lOwogICAgIFdlYkxv
Y2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhjbHVzaXZlIH07CiAgICAgUmVmUHRyPFdlYkxv
Y2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxsYmFjazsKQEAgLTEzNywxNCArMTQwLDE1IEBA
IHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3QoY29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25z
JiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIG1fcGVu
ZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRlbnRp
ZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZNb3ZlKGdyYW50ZWRDYWxsYmFjayksIFdURk1v
dmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9j
a0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1l
LCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25z
LnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmll
ciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVu
dGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgeworICAgIHJlcXVlc3RMb2NrT25NYWluVGhy
ZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUg
ewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29tcGxl
dGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgc3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShFeGNlcHRpb24mJiBleGNlcHRp
b24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2Nr
SWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAg
ICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBXVEZNb3Zl
KGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNl
KGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVu
IGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAgICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2MSw3
IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAg
ICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAmJiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRlZCgp
KSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2Nr
SWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09u
TWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1
ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIApAQCAt
MTY1LDE1ICsxNjksMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVx
dWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KICAgICAgICAgICAgIGF1
dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGxvY2sucHRy
KCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVByb21pc2U+IHdhaXRpbmdQcm9taXNlID0gcmVz
dWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAgICAgICAgICAgaWYgKCF3YWl0aW5nUHJvbWlz
ZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9j
a0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7CisgICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tP
bk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5jbGllbnRJRCwgcmVx
dWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1ZXN0
LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgRE9N
UHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVj
dCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3Zl
KHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBuYW1l
ID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlzZV0geworICAgICAgICAgICAgRE9NUHJvbWlz
ZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3
YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtU
aGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCA9
IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNlXSB7
CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlm
aWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgICAgICAgICAgICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdhaXRp
bmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9IGVsc2Ug
ewpAQCAtMTg4LDMzICsxOTIsMzMgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVM
b2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KICAgICB9KTsK
IH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVxdWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9j
a0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0
aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVu
Y3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxvY2tN
YW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVy
KQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFtZSksIG1v
ZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUgPSBv
cHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRpZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZN
b3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5k
bGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9y
aWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY29udGV4dElk
ZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVudGlm
aWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNj
ZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3Vy
ZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2dyYW50ZWRIYW5kbGVyID0gV1RG
TW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKKyAgICBlbnN1
cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHko
Km1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9w
dGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMu
aWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3Jh
bnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVlc3RM
b2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBtb2RlLCBz
dGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdy
YW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtncmFu
dGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBzdWNjZXNzXShhdXRvJikgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRlZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJZGVudGlmaWVyLCByZWxlYXNlSGFuZGxlciA9
IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFibGUg
ewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhy
ZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VI
YW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbildKGF1dG8mKSBt
dXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxlYXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlv
bikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShs
b2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtsb2NrU3RvbGVuSGFu
ZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJikgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIoKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tPbk1h
aW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxv
Y2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGVuc3VyZU9uTWFpblRo
cmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxv
Y2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpXSB7Ci0gICAgICAgIFdl
YkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+cmVsZWFzZUxv
Y2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50
T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVy
LCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKV0oYXV0byYgcmVnaXN0cnkp
IHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRp
ZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0pOwogfQogCiB2b2lkIFdlYkxvY2tNYW5hZ2Vy
OjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0
SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGll
bnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZp
ZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdp
c3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVzdChs
b2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUg
ewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhy
ZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11dGFibGUgeworICAgIGVuc3VyZU9u
TWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZp
ZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxv
Y2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJs
ZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtjbGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVh
ZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAg
LTIyMyw4ICsyMjcsOCBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25N
YWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaQogCiB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29u
dGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwg
Y2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+c25h
cHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKKyAgICBlbnN1
cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGll
bnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90KGNs
aWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChj
b250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJlYWRDb3B5KHNuYXBzaG90KV0oYXV0byYpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNo
b3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAyLDExICszMDYsMjkgQEAgdm9pZCBXZWJMb2Nr
TWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQogICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFy
KCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xlYXIoKTsKIAotICAgIGVuc3VyZU9uTWFpblRo
cmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNv
bnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCld
IHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmln
aW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0SWRlbnRpZmllcik7CisgICAgZW5zdXJlT25N
YWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2lu
KSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZp
ZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkuY2xpZW50SXNHb2luZ0F3
YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQg
V2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tS
ZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBBU1NF
UlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAgaWYgKGlzPERvY3VtZW50Pigq
Y29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IGRvd25jYXN0PERvY3VtZW50Pigq
Y29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAgdGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnko
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpj
b250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Rh
c2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0
byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAg
ICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICAgICAgfSk7CisgICAgfQor
fQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9yZWxl
YXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
LWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXggZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5YzNk
NTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmVk
UHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENhbGxi
YWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3Ry
dWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBAIC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01hbmFnZXIoTmF2aWdhdG9yQmFzZSYpOwogCi0g
ICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiwgRnVu
Y3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBs
b2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJM
b2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxv
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1haW5UaHJlYWQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcyLDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyKTsKICAgICB2b2lk
IGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5j
dGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spOworCiAgICAgLy8gQWN0aXZlRE9N
T2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAppbmRleCA3ZjUzM2Mz
Y2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEwZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNlZjdh
YzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
Yi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oCkBAIC0zOCwxMiArMzgsNTUg
QEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3QgewogICAgICAgICBTdHJpbmcgY2xpZW50
SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IG5hbWUu
aXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElkLmlzb2xhdGVkQ29weSgpIH07IH0KKworICAg
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBtb2RlIDw8IGNsaWVudElkOyB9CisgICAgICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRlY29k
ZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZlY3RvcjxJbmZvPiBoZWxkOwogICAgIFZlY3Rv
cjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9ja01hbmFnZXJTbmFwc2hvdCBpc29sYXRlZENv
cHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhyZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJlYWRD
b3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7
IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJM
b2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbz4g
V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5hbWU7CisgICAgZGVjb2RlciA+PiBuYW1lOwor
ICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7CisgICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlm
ICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkOworICAgIGlmICgh
Y2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7
IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92ZSgqY2xpZW50SWQpIH0gfTsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hv
dD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7Cisg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+IGhlbGQ7CisgICAgZGVjb2RlciA+PiBoZWxk
OworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5kaW5nOworICAgIGRlY29kZXIgPj4gcGVuZGlu
ZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBXVEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1s
b2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1MDI5
ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaApAQCAtMjYs
NiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9ja01v
ZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJvb2wg
eyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3YmJk
MzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi45NzRjZWJmYjM0OWM3YjM5MDQ1NjgyNjI5MDlkMzYw
NmMzY2JiMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9X
ZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2ICszMyw5MiBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8V2Vi
TG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKLSAg
ICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiByZWxl
YXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJPcmlnaW5SZWdpc3RyeT4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdp
c3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOwor
CisgICAgc3RydWN0IExvY2tJbmZvIHsKKyAgICAgICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiBy
ZWdpc3RyeTsKKyAgICAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAg
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOworICAgICAgICBX
ZWJMb2NrTW9kZSBtb2RlOworICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5k
bGVyOworICAgIH07CisKKyAgICB2b2lkIHJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVy
KTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hv
dCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRzQXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJv
b2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xpZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJP
cmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYp
OworCisgICAgc3RydWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAgICAgICBTdHJpbmcg
bmFtZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAg
fTsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3RyeTo6TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0g
ICAgU3RyaW5nIG5hbWU7Ci0gICAgRnVuY3Rpb248dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7
CisgICAgdm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERl
cXVlPExvY2tSZXF1ZXN0PiYpOworICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVl
c3QmKSBjb25zdDsKKworICAgIFdlYWtQdHI8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFs
UmVnaXN0cnk7CisgICAgQ2xpZW50T3JpZ2luIG1fY2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8
U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBI
YXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0
aWMgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgp
CitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7
CisKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojp+TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1
bHQ7CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2lu
KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0
cnk+Cit7CisgICAgaWYgKGF1dG8gZXhpc3RpbmdSZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0
cmllcy5nZXQoY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5
OworCisgICAgcmV0dXJuIFBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9y
aWdpbik7Cit9CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlG
b3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0
cjxQZXJPcmlnaW5SZWdpc3RyeT4KIHsKLSAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdp
c3RyeSo+PiByZWdpc3RyeU1hcDsKLSAgICByZXR1cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJu
IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKTsKIH0KIAotUmVmPFdlYkxv
Y2tSZWdpc3RyeT4gV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGll
bnRPcmlnaW4mIG9yaWdpbikKK1JlZjxMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk+IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8gZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5
TWFwKCkuZ2V0KG9yaWdpbikpCi0gICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmlnaW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwg
Y2xpZW50T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVn
aXN0cnkob3JpZ2luKSk7CitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OlBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwg
Y29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5
KGdsb2JhbFJlZ2lzdHJ5KQorICAgICwgbV9jbGllbnRPcmlnaW4oY2xpZW50T3JpZ2luKQorewor
ICAgIGdsb2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2luUmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2lu
LCB0aGlzKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5OjpXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xp
ZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29yaWdpbihvcmlnaW4pCitMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5QZXJPcmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAg
cmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRoaXMpOworICAgIGlmIChtX2dsb2JhbFJlZ2lz
dHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5LT5tX3Blck9yaWdpblJlZ2lzdHJpZXMucmVt
b3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lz
dHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVu
Y3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxv
Y2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8qIHJlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50
YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0
aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0
TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWls
YWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciksIFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIp
KTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3JlcXVlc3QtYS1s
b2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
LCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wg
aWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5kbGVyKQordm9pZCBMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGll
bnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBi
b29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBG
dW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3Qg
cmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92
ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RGTW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAg
ICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElE
LCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50
ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFsKSB7CiAgICAgICAgIGF1dG8gaXQgPSBtX2hl
bGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBpZiAoaXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkp
IHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9ja0luZm8gOiBpdC0+dmFsdWUpCi0gICAgICAg
ICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRsZXIoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwg
IkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJlcXVlc3QiIH0pOworICAgICAgICAgICAgICAg
IGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7CiAgICAgICAgICAgICBtX2hlbGRMb2Nrcy5y
ZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChpZkF2YWlsYWJsZSAmJiAhaXNH
cmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDggKzEzMywxNCBAQCB2b2lkIFdlYkxvY2tSZWdp
c3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAor
dm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2lu
JiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlm
IChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4p
KQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOwor
fQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVh
c2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKICAgICBhdXRvIGl0ID0g
bV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBpZiAoaXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkp
CkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nCiAgICAgICAgIHBy
b2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1ZXVlSXRlcmF0b3ItPnZhbHVlKTsKIH0KIAor
dm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRP
cmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0
byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAg
ICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1ZXN0Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6
YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFi
b3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0b3IgPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAu
ZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVN
YXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFMKIH0K
IAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2dyYW50YWJsZQotYm9vbCBX
ZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBj
b25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3Jh
bnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewogICAgIGF1dG8gcXVl
dWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5maW5kKHJlcXVlc3QubmFtZSk7CiAg
ICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwLmVuZCgpICYmICZx
dWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9ICZyZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3
IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYg
cmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3Mv
I3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1ZQotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnBy
b2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVl
c3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5
Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tS
ZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUgKCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJzdCgpKSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAg
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwg
cmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6
OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGll
bnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnktPnNuYXBzaG90KFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Nu
YXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNo
b3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViTG9ja01hbmFnZXI6OlNuYXBz
aG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYgcGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1h
cCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90JiYKICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBzaG90KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJM
b2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50
T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAg
ICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3Jp
Z2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVudHNBcmVHb2luZ0F3YXkoW2NsaWVudElEXShh
dXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0p
OworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdy
YXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9u
PGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xpZW50KQogeworICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBvcHRpbWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJh
Y2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNoIGNsaWVudHMuCiAgICAgSGFzaFNldDxTdHJp
bmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dp
dGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVN
YXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJ
RF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVxdWVzdC5jbGllbnRJRCA9PSBjbGllbnRJRDsg
fSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5yZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVu
dCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0
eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0UmVxdWVzdHMuYXBwZW5kKHBhaXIua2V5KTsK
QEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3
YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SQogCiAgICAgVmVjdG9y
PFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9oZWxk
TG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGll
bnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElEID09IGNsaWVu
dElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNo
Q2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAocGFpci52YWx1ZS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dpdGhvdXRMb2Nrcy5hcHBlbmQocGFpci5rZXkp
OwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SQogICAgIH0KIH0K
IAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNz
SWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sKKyAgICBWZWN0b3I8Q2xpZW50T3JpZ2lu
PiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9yKG1fcGVyT3JpZ2luUmVnaXN0cmllcy5rZXlz
KCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3JpZ2luIDogY2xpZW50T3JpZ2lucykgeworICAg
ICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50
T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5LT5jbGllbnRzQXJlR29pbmdBd2F5KFtwcm9j
ZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElE
LnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vzc0lkZW50aWZpZXI7IH0pOworICAgIH0KK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAppbmRleCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRj
Nzc2MzI0ZWVhZGQ5NDNhMDZjLi44YjYzMTRlOGIxMWJlMmE1ZDMwYmE3OTI4MTgwMmFjYjVjZjc3
NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
UmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJD
bGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2NrTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxv
Y2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRp
b247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lz
dHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VX
ZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxX
ZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwot
ICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7
IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBi
b29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50
ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7
Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9p
ZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRP
cmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZB
dmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9u
PHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxl
YXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJ
ZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
bGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRPcmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdp
c3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3Byb3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0
cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6
IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxv
Y2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0
cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkp
OyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVy
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
aWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJ
bmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBP
UlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAotICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3Qg
TG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lkIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNv
bnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3Jp
Z2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZv
ck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0
cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7
CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9vcmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcs
IERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hlbGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVu
dE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBtX3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjBlNDI4ODM5NzU2OGQ0NTBkMTJmMTg1Yjhm
NmZlYTYwNjY0ZTE3OC4uMGYwYzhjOTU3ZTRjZDVmZGYzNzFhNDZkYWJkMDgwNzMwMDFlOTE4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTMxMSwxMCArMTMxMSwxMiBAQAogCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyog
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2
IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRF
MDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhp
Z2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjI3M0NBRjI2MEU1OUVGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2
MEU1OURGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8q
IFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0Njc4MDJCMjI3NDcxMTg1MDBEQTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJF
NEM1MDI2MTZBODExMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyog
U2NyaXB0QnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJNDYzNEM3MkMyNzU3REFCMjAwMjZBODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2Nzgw
MkIwMjc0NzExN0IwMERBOUZCNiAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDky
QTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNF
QjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8q
IFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKLQkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdl
YkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0
NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0NjQ0RjdGODI3MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFj
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3
RUUyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJ
NDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5
OUUgLyogV2ViTG9ja01hbmFnZXIuaCAqLzsgfTsKIAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlF
IC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDRGN0YzMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU1
Miw3ICszNzU1NCw5IEBACiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9j
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxv
Y2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQw
MEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3
RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0NjM0QzcyQzI3NTdEQUIyMDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjRDQUYwOTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9j
a1JlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUg
LyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAzYTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEy
ZTdmZjJlZTk2YjM1Li5jMDg3ODVhZjhmYzkyNGUzNTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNzksNiArNzksNyBAQAog
I2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNv
bnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRl
ICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5l
cy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KQEAgLTExNzAsNiArMTE3MSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1l
c3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5l
bElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9OwogCitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3Ry
eSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnkgeworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8RW1wdHlXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBFbXB0eVdlYkxvY2tSZWdpc3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAg
ICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9j
a01vZGUsIGJvb2wsIGJvb2wsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQo
KT4mJikgeyB9CisgICAgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJM
b2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRP
cmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
IHsgfQorICAgIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNs
aWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyKSB7IH0KK307CisKIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0
aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFn
ZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAg
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJl
Y29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIEVtcHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OjpjcmVhdGUoKSwKKyAgICAgICAgRW1wdHlXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAg
ICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxE
dW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2
MjhmYjliYjJjNDk4NjUzNWM2MzJkOWQyZGFjOTEzZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdk
ZWI0ZWE1YTA4ODBmZjBkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAs
IG1fdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250
ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVkTGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQogICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkp
KQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJM
b2NrUmVnaXN0cnkpKQogICAgICwgbV9zZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lv
bklEKQogI2lmIEVOQUJMRShWSURFTykKICAgICAsIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJV
cGRhdGVUaW1lcigqdGhpcywgJlBhZ2U6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGlt
ZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjFlMDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3
MWRhNGVkMzg1Ni4uNzc5ZDkzYTI0NTkwNTJjMTIzMGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTE2Nyw2ICsxNjcsNyBAQCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNs
aWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwog
Y2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBX
aGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAg
LTI5OCw2ICsyOTksOCBAQCBwdWJsaWM6CiAgICAgQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBi
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2Vi
S2l0TGVnYWN5LgogCisgICAgV2ViTG9ja1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJl
dHVybiBtX3dlYkxvY2tSZWdpc3RyeTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgZm9yRWFjaFBhZ2UoY29uc3QgRnVuY3Rpb248dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG5vblV0aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEz
Miw2ICsxMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91
c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRM
aW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0
cnk7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1v
bml0b3I7CiAgICAgV2Vha0hhc2hTZXQ8QWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2Fj
dGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKaW5kZXggMTk3Yzc4ZTRmZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4
ZWM3YS4uYWU0MjdiN2QyY2ZlN2IyMjJhNTVkODVlOTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNp
bmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVz
c2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJX
ZWJMb2NrUmVnaXN0cnkuaCIKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0
ZVRyYWNrZXIuaCIKICNlbmRpZgpAQCAtNjMsNyArNjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8
U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92
aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNh
Y2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVu
dFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJl
ZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50
PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYm
IGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3Jk
ZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJvdmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRy
b2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+
JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2Rl
bFBsYXllclByb3ZpZGVyKQorUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JD
bGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExp
YldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYm
IHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2Fy
ZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2Fk
ZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8
TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJM
b2NrUmVnaXN0cnk+JiYgd2ViTG9ja1JlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+
JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3Rv
cmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXll
clByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVu
dChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNv
Y2tldFByb3ZpZGVyKSkKQEAgLTc1LDYgKzc2LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMK
ICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIp
KQogICAgICwgdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIp
KQogICAgICwgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5KSkKKyAgICAsIHdlYkxvY2tSZWdpc3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3Ry
eSkpCiAgICAgLCBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2du
aXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRp
YVJlY29yZGVyUHJvdmlkZXIpKQogICAgICwgcGVybWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShw
ZXJtaXNzaW9uQ29udHJvbGxlcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9u
LmgKaW5kZXggN2ZiMzM0NjU3ZTMxMjBjNWFkYmQyZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZi
MmY1ZTYxZDQxN2ZmOWM1ODRjZGE0OGJiNDY5ZTlkMDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsMTEgKzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50
VVJMUGF0dGVybjsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRl
ZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lz
dHJ5OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5p
cXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8
TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVz
ZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tp
ZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZy
YW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4m
JiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeT4mJiwgUmVmPFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3Rv
cmFnZVByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJl
ZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldl
YlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29u
dGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+
JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxv
YWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVu
aXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+JiYsIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxl
cj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVy
UHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwog
ICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiAr
MTI5LDcgQEAgcHVibGljOgogICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVu
dFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3Jl
OwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTsKKyAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDgyYWE1ZjIyZGQ3MjBjMTkx
ODQ2YTk0MmEzOTE0Y2JmZWFjODZjN2UuLjUyMTRmMjE3YjBiMjQ4ZTAwNGZhNWRlYzFhZDA5NTgw
MTFkOTE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjI5LDYgKzIyOSw3IEBAIHNldChXZWJL
aXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5
CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3Mv
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkKKyAgICBVSVByb2Nlc3MvV2ViTG9ja01hbmFnZXJQ
cm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sCkBAIC0zMDcsNiArMzA4LDcg
QEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgV2ViUHJvY2Vzcy9Vc2VyQ29u
dGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYTc4OTdiOTYxYTM5ZGFmOTI3YzU0
ZDEyZWZhM2M4OTcxNDk3YjAyZi4uODU5MmQ5OWQyZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVl
ZWY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMTUzLDYgKzE1Myw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTIx
Nyw2ICsyMTgsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDkzYTYxNDZkNmIxMzljYjhh
MTZhMTcxYmI3N2Q0NGJkM2I1OGI2NWIuLmE1OWU2MjNiMDllNmE5N2VmZmVkNGY5YzUyZjU3MzYz
NjQ1ZWFjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdApAQCAtMzg3LDYgKzM4Nyw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0
b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3Bl
Y3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNw
cAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1lc3NhZ2VzUmVwbGllcy5oCkBAIC01MjYsNiArNTI5LDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlc1Jl
cGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
SW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JV
SVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5
UHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJNRE5TUmVnaXN0ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDQ1NzQzODY1YTRhYzgzMmQzZTVkYmQ0YWZkNDM4YmQ3NTMy
Y2Q5MjMuLjE5MzM4ODQ5NjFiNGJjMzA0ZjA4OWIwYjU0ZTE0ODkxYjVjMzQ4ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE2OCw2ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVS
UyA9IFwKIAlVSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogCVVJ
UHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eSBcCiAJVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5IFwKKwlVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkgXAogCVVJUHJv
Y2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5IFwKQEAgLTIxOCw2ICsyMTksNyBAQCBNRVNTQUdFX1JFQ0VJ
VkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwKKwlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeSBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNzZjMmRlYmFmZDkxZDE2ZjhkNzcwODkzZjQ4ODk2
OTAwZGZlMjZkMi4uMmM4MzlhOWU5YmNkOGU5ZjEyMWRmODkzMGZmNDJmYzYwY2IyN2QwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zMTIsNiArMzEyLDcg
QEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAg
J1dlYkNvcmU6OlNvdXJjZUJ1ZmZlckFwcGVuZE1vZGUnLAogICAgICAgICAnV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktp
dDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDNlNDNkM2UxM2E3Njc4ZjgxNGNiNmM0NzQxMjcwOWEzMzNkNzk1NGIu
LmZlNjA0MTJjMmExNTJhYjVjNDJlZmFmYzBiYjhiYTI0YTQ3ODlmYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtNDM1LDYgKzQzNSw3IEBAIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAogVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25N
YW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKK1VJ
UHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9u
U3RhdGUuY3BwCiBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAK
IFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC03ODEsNiAr
NzgyLDcgQEAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
Y3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5jcHAKIAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVn
aXN0cnkuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNp
b24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1NoYXJlYWJsZUJpdG1hcFV0aWxpdGll
cy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcApAQCAtODQ3LDggKzg0OSw2IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1NZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lz
dGVtUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi1XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCi0KIFJlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBS
ZW1vdGVCaW5kR3JvdXBNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRN
ZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC04NzEsMyArODcxLDYgQEAgUmVtb3RlU2FtcGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJl
bW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VS
ZWNlaXZlci5jcHAKK1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkxvY2tSZWdp
c3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NTViZjdjYTk1MTdjZDIz
MTY5ZDcxMTExYWJlZDFlNjdhOTM0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQ
cm94eS5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxv
Y2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVE
YXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
KyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3Nl
cnRpb24sIG1fcHJvY2Vzcy5jb25uZWN0aW9uKCkpCisKK1dlYkxvY2tSZWdpc3RyeVByb3h5OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3By
b2Nlc3MocHJvY2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7
Cit9CisKK1dlYkxvY2tSZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkoKQorewor
ICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFdlYkxvY2tSZWdp
c3RyeVByb3h5OjpyZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmln
aW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwg
V2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFi
bGUpCit7CisgICAgTUVTU0FHRV9DSEVDSyhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmll
cigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9D
SEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSk7CisKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxv
Y2tSZWdpc3RyeSgpLnJlcXVlc3RMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50
aWZpZXIsIGNsaWVudElELCBXVEZNb3ZlKG5hbWUpLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxh
YmxlLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVu
dElEXShib29sIHN1Y2Nlc3MpIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OkRpZENvbXBsZXRlTG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBzdWNjZXNz
KSwgMCk7CisgICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRF0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFr
VGhpcy0+bV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlk
U3RlYWxMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCksIDApOworICAgIH0pOworfQorCit2
b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpyZWxlYXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwg
U3RyaW5nJiYgbmFtZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nl
c3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAg
ICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNz
LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9y
ZSgpLndlYkxvY2tSZWdpc3RyeSgpLnJlbGVhc2VMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwg
bG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3ZlKG5hbWUpKTsKK30KKwordm9pZCBXZWJM
b2NrUmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdChXZWJDb3JlOjpDbGllbnRPcmlnaW4m
JiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3Ry
aW5nJiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlm
aWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdF
X0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxv
Y2tSZWdpc3RyeSgpLmFib3J0TG9ja1JlcXVlc3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUobmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6c25hcHNob3QoV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5zbmFw
c2hvdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6Y2xpZW50SXNHb2luZ0F3YXkoV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElE
LnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigp
KTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmNs
aWVudElzR29pbmdBd2F5KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgY2xpZW50SUQpOworfQorCit2
b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCgpCit7CisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRzQXJlR29pbmdB
d2F5KG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7Cit9CisKKyN1bmRlZiBNRVNT
QUdFX0NIRUNLCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJhMzFhOWI5MmI3MTYx
YzdjYWQ2MDJiZmJhMWI4MzY5OTczMzI3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dl
YkxvY2tNb2RlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBDbGllbnRPcmlnaW47
CitzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHkg
ZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeVByb3h5KFdl
YlByb2Nlc3NQcm94eSYpOworICAgIH5XZWJMb2NrUmVnaXN0cnlQcm94eSgpOworCisgICAgdm9p
ZCBwcm9jZXNzRGlkRXhpdCgpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDIE1l
c3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCByZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwg
Ym9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSk7CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lKTsKKyAgICB2
b2lkIGFib3J0TG9ja1JlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgU3RyaW5nJiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAg
dm9pZCBzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNs
aWVudElzR29pbmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJv
Y2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiYWJjMjU0YzQxZTBlMDE5MTU2Y2E4MTJjNDZmZTc5MDMwNTE3ZTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMg
YXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkxvY2tSZWdpc3RyeVByb3h5IE5vdFJlZkNvdW50
ZWQgeworICAgIFJlcXVlc3RMb2NrKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50
T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUsIGVu
dW06Ym9vbCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZh
aWxhYmxlKQorICAgIFJlbGVhc2VMb2NrKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xp
ZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUp
CisgICAgQWJvcnRMb2NrUmVxdWVzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKSAt
PiAoYm9vbCB3YXNBYm9ydGVkKSBBc3luYworICAgIFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4gY2xpZW50T3JpZ2luKSAtPiAoc3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyU25hcHNob3Qgc25hcHNob3QpIEFzeW5jCisgICAgQ2xpZW50SXNHb2luZ0F3YXkoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMDI4YzhkOGVmMDcxNGM4MmViOTA0Yzk0ZTdl
Mjk3MWQ4NWJhZWIxMy4uYzE4ZDA3NjYzMmUzOGM2YTIzZjY4ZjU1ZGU2ZTU1YTcyZGIwOGY1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00Niw2
ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMu
aCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eS5oIgogI2luY2x1ZGUgIldlYk5hdmln
YXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKQEAgLTI0MCw2ICsyNDEsNyBAQCBXZWJQcm9j
ZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdl
YnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX2NhcHRpdmVQb3J0YWxNb2RlKGNhcHRpdmVQb3J0YWxN
b2RlKQogICAgICwgbV9jcm9zc09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9z
aHV0ZG93blByZXZlbnRpbmdTY29wZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVu
dCkgeyBpZiAoZXZlbnQgPT0gUmVmQ291bnRlckV2ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERv
d24oKTsgfSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KG1ha2VVbmlxdWVSZWY8V2ViTG9ja1Jl
Z2lzdHJ5UHJveHk+KCp0aGlzKSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRP
ckNoZWNrRGlzYWJsZWQoKSk7CiAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nl
c3MsICJjb25zdHJ1Y3RvcjoiKTsKQEAgLTUyOCw2ICs1MzAsOCBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c2h1dERvd24oKQogICAgIG1fdXNlckluaXRpYXRlZEFjdGlvbk1hcC5jbGVhcigpOwog
ICAgIG1fc2xlZXBEaXNhYmxlcnMuY2xlYXIoKTsKIAorICAgIG1fd2ViTG9ja1JlZ2lzdHJ5LT5w
cm9jZXNzRGlkRXhpdCgpOworCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRSQVRJT04pCiAgICAg
bV9yb3V0aW5nQXJiaXRyYXRvci0+cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGRhNmRjNjhlZWJjZWNi
NDIzNjI3ZWM5ODlkNmJjYWE4MDE1NzQ5NzMuLmNkMzMwODY0OTQ0M2I1ZTNlZDJiNGY3MWEyMjcx
ZjZmZTU3MDhhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CkBAIC05Myw2ICs5Myw3IEBAIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOwog
Y2xhc3MgV2ViRnJhbWVQcm94eTsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeVByb3h5OwogY2xhc3Mg
V2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CkBAIC02NzQsNiArNjc1LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZU1hbmFnZXI7CiAjZW5kaWYKKyAgICBVbmlxdWVSZWY8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+IG1f
d2ViTG9ja1JlZ2lzdHJ5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCmluZGV4IGZjMWQ5YWU5ODkzZGQ5MTAxNjczZjdjOGRhZTZmM2I5YmE4ZTM5YzcuLjkwOTc5
M2UzNzU2OGMwNDJiMTAwMmEyNmFhMDI3NDc4NGE5MWU0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBA
IC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dG9yYWdlUXVvdGFNYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnku
aD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CkBA
IC0xMzAsNiArMTMxLDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXIKICNpZiBIQVZFKEFQUF9T
U08pCiAgICAgLCBtX3NvQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yKG1ha2VVbmlxdWVSZWY8U09B
dXRob3JpemF0aW9uQ29vcmRpbmF0b3I+KCkpCiAjZW5kaWYKKyAgICAsIG1fd2ViTG9ja1JlZ2lz
dHJ5KFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKSkKIHsKICAgICBXVEY6
OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7CiAgICAgcmVnaXN0ZXJXaXRo
U2Vzc2lvbklETWFwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNjE5NjI4MGY3NmRhMTIwMjk4ZTJiN2Fi
MTY0MDVkMmYwYmEyODkyMy4uMWRlMjVhNjYwNTdmMmQ2NmM2Mjk5ZTVlYmJiODE0NmJlZTliODFl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtNzUsNiArNzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGNsYXNzIFNl
Y3VyaXR5T3JpZ2luOworY2xhc3MgTG9jYWxXZWJMb2NrUmVnaXN0cnk7CiAKIHN0cnVjdCBNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogfQpAQCAtMzE3LDYgKzMxOCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2Vic2l0ZURhdGFTdG9yZUNsaWVu
dD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7IH0KIAogICAgIEFQSTo6
SFRUUENvb2tpZVN0b3JlJiBjb29raWVTdG9yZSgpOworICAgIFdlYkNvcmU6OkxvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeS5n
ZXQoKTsgfQogCiAgICAgdm9pZCByZW5hbWVPcmlnaW5JbldlYnNpdGVEYXRhKFVSTCYmLCBVUkwm
JiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAKQEAgLTQ3MSw2ICs0NzMsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlPiBtX3RoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU7IC8vIExhemlseSBjb21wdXRlZC4KICNlbmRpZgorICAgIFJlZjxXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMTIwNGUzYzQz
YmI4NmFlZDQ2YjNjNTExMDM1MzhlYTU3MmI4ZDgwLi5hNDUxMTVmNDg5YWEyY2NiYzliZWM0Y2Ux
N2RmNjA3YmUyODViNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTkwOCw2ICs5MDgsNyBAQAogCQk0NjNGRDQ4MDFFQjk0NTk2MDBB
Mjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBX
S1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNz
VGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1l
c3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50
aWZpZXIuaCAqLzsgfTsKKwkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdp
c3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLzsg
fTsKIAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aCAqLzsgfTsKIAkJNDY3MUZGMUYyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9i
c2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLzsg
fTsKIAkJNDY3RTQzRTgyMjQzRkY3RDAwQjEzOTI0IC8qIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjdFNDNFNzIyNDNGRjZEMDBCMTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMu
aCAqLzsgfTsKQEAgLTQxNzYsNiArNDE3Nyw5IEBACiAJCTQ2NUY0RTAyMjMwNzU5RDUwMDNDRURC
NyAvKiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUY0RTAzMjMwNzYw
NEUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2Nr
UmVnaXN0cnlQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyog
V2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzI1Mjc1
N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZCQzAzQTFGQTI2NkM5
MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTg2LDYgKzQxOTAsOCBAQAog
CQk0NjgwOUE3QjIzRDkyMjUzMDBDMjk3RDAgLyogV2ViQ29va2llQ2FjaGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29va2llQ2FjaGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QTIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlz
aW9uYWxQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvdmlz
aW9uYWxQYWdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2OUIy
MUU4MUNDNzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUx
IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjlERTgw
MjI3M0VDQzVEMDA5MzAyNzYgLyogUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzTGF1bmNoZXJDb2NvYS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJh
Y2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RF
REEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIwNCw2ICs0MjEwLDggQEAKIAkJ
NDZDRTNCMTAyM0Q4QzgzRDAwMTZBOTZBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2MzkxRjM5MDVFNTAwMTk4MEJC
IC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzQTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZF
OTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUyODQ3MjY5RTA0OUIwMERENDhB
QiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NDgyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZFRTI4NEEyNjlFMDUxNzAwREQ0OEFCIC8qIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmV0d29ya0Jyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEwNTM4LDYgKzEwNTQ2LDkgQEAKIAkJCQlDRDYxNzgxMTFFNkRFOTgwMDBGREE1N0Qg
LyogY29jb2EgKi8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8qIGlvcyAqLywKIAkJ
CQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTQ2ODlCOTEwMjc1NkQx
NDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwICovLAorCQkJCTQ2ODlCOTBG
Mjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCAqLywKKwkJCQk0NkU5
NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmlu
ICovLAogCQkJCTFBNzI4NDQ0MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJz
aW9uLmNwcCAqLywKIAkJCQkxQTcyODQ0NTE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRl
Q29udmVyc2lvbi5oICovLAogCQkJCUY0M0E5Q0RFMjVENzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFi
bGVCaXRtYXBVdGlsaXRpZXMuY3BwICovLApAQCAtMTA1NDUsNiArMTA1NTYsNyBAQAogCQkJCUNF
REExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywK
IAkJCQk0NkVFMjg0NzI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcCAqLywKIAkJCQk0NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LmggKi8sCisJCQkJNDZFOTc2MEEyNzU3RjZDOTAwQUNERDM3IC8qIFdl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLywKIAkJCQlFM0E4NkZCQzI2
OTU4RTMzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuY3BwICovLAog
CQkJCUUzQTg2RkJCMjY5NThEODMwMDU5MjY0RCAvKiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxl
Z2F0ZS5oICovLAogCQkJCUJDMTExQTUzMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGll
bnQuY3BwICovLApAQCAtMTA4MjgsNiArMTA4NDAsOSBAQAogCQkJCUJDMUJFMUYxMTJENTREQkQw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCAqLywKIAkJCQlCQzFCRTFGMDEy
RDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oICovLAogCQkJCTUxQzhF
MTlCMUYyMTYxNzIwMEJGNzMxQiAvKiBXZWJJY29uRGF0YWJhc2UuaCAqLywKKwkJCQk0NjVGQTcy
NTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwICovLAorCQkJCTQ2
NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovLAorCQkJ
CTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQkyRDNFRjQ0MDE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcCAqLywKIAkJCQkyRDNFRjQ0MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmggKi8sCiAJCQkJN0NDQ0M4RjgxQTVGNTBGRDAwOEZCMERBIC8q
IFdlYk5hdmlnYXRpb25TdGF0ZS5jcHAgKi8sCkBAIC0xMjQ0OSw4ICsxMjQ2NCw4IEBACiAJCQkJ
NTE2MEU5NUUyNzRDMkEwMzAwNTY3Mzg4IC8qIE1vY2tBcHBCdW5kbGVSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE2MEU5NTkyNzRDMEQ4OTAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjdCQjdCMjc0NEM1MDcwMEM0NUE3MiAvKiBQdXNoQ2xp
ZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGMkYyNzU3MzgyQjAwMkRD
MjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyQ0Q2OUYyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUxN0I1RjJGMjc1NzM4MkIwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9u
Q29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTMzMzQsNiArMTMz
NDksNyBAQAogCQkJCUJDQjYzNDc4MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyX0MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlh
bGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcxOTE5OTUwQzAwNkFEOUY5IC8qIFdl
YktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NUZBNzI2Mjc1N0Q5M0QwMDcyMzYy
QiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMx
OUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlBQ0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdl
Yk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzOTgsNiArMTM0MTQsNyBAQAog
CQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90
ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNENjk4MjcyMUVGQzgwMEY3RjhF
QyAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVG
MkUyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OUEyNzIxRjBBOTAwRjdGOEVDIC8qIFdlYlB1
c2hEYWVtb25Db25zdGFudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUNDQ0E2MjMxNDg1QUEw
MEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzU0OCw3ICsxMzU2NSw2IEBACiAJCQkJNUM3OTVENzAy
MjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUM3OTVENzEyMjlGMzc1NzAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50
SW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTU1NUY2MTI4QzZDNDcwMDlBQkNF
QyAvKiBXS0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3QjVGMkUyNzU3
MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU2MDExMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4dE1l
bnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRUEwMjM4MURBQkZGN0UwMDk2MDIx
RiAvKiBXS0NvbnRleHRNZW51TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzkzOEUx
MTE4MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhYTc0M2M2MmUzZjNiNTU0M2Nh
N2NmYzdiNTJlMmUzMGFkOTkxOWNkLi5mOWI4NTI0NmRmNWI2YjIzOWFmMGRhOGNiZjA5NTI4NTU1
NDc3ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSVENEYXRh
Q2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnku
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiV2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LmgiCkBAIC0xNDgsNiArMTQ5LDcgQEAgdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlckNv
bnRleHREYXQKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFzZVByb3ZpZGVyID0gV2ViRGF0
YWJhc2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJRCk7CiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24uc29ja2V0UHJvdmlkZXIgPSBXZWJTb2NrZXRQcm92aWRlcjo6Y3JlYXRlKG1fd2Vi
UGFnZVByb3h5SUQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgp
OworICAgIHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJD
b250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxlcjsKICNpZiBFTkFCTEUoV0VC
X1JUQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQcm92aWRlciA9IG1ha2VVbmlx
dWVSZWY8U2VydmljZVdvcmtlckxpYldlYlJUQ1Byb3ZpZGVyPigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWFmMDllZTZiMzc1OWNlZDQyNzI3ZjJmZmYw
ZTViM2Q5Mzk4ZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTAsMCArMSwxNDQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTG9ja0luZm8g
eworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRsZXI7Cit9OworCitzdHJ1Y3Qg
TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9pZChib29sKT4gbG9ja0dy
YW50ZWRIYW5kbGVyOworfTsKKworc3RydWN0IFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NT
bmFwc2hvdCB7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgTG9ja1Jl
cXVlc3Q+IHBlbmRpbmdSZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyLCBMb2NrSW5mbz4gaGVsZExvY2tzOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qg
eyByZXR1cm4gcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSAmJiBoZWxkTG9ja3MuaXNFbXB0eSgp
OyB9Cit9OworCitSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeShX
ZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIHByb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRo
aXMpOworfQorCitSZW1vdGVXZWJMb2NrUmVnaXN0cnk6On5SZW1vdGVXZWJMb2NrUmVnaXN0cnko
KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigq
dGhpcyk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tN
b2RlIGxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhh
bmRsZXIpCit7CisgICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcikgfSwgV1RGTW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBhdXRvJiBzbmFwc2hv
dCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbnN1cmUoY2xpZW50SUQsIFtdIHsgcmV0dXJu
IExvY2tzU25hcHNob3QgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7CisgICAgc25hcHNob3QucGVu
ZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQ
cm94eTo6UmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IG5hbWUsIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUpLCAwKTsKK30KKwordm9pZCBSZW1v
dGVXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNv
bnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCAhPSBtX2xvY2tzU25hcHNob3RQZXJDbGll
bnQuZW5kKCkpIHsKKyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nrcy5yZW1vdmUobG9ja0lkZW50
aWZpZXIpOworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1f
bG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZWxl
YXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSksIDAp
OworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6QWJvcnRMb2NrUmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJ
RCwgbmFtZSksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwg
Y2xpZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGJvb2wgZGlkQWJvcnQpIG11dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMgJiYgZGlkQWJv
cnQpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSB3ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVy
Q2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgICAgICAgICAgaWYgKGl0ICE9IHdlYWtUaGlzLT5t
X2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBpdC0+dmFs
dWUucGVuZGluZ1JlcXVlc3RzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgICAgICAg
ICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlz
LT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihkaWRBYm9ydCk7CisgICAgfSwgMCk7
Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlNuYXBzaG90KGNsaWVudE9yaWdpbiksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmNs
aWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2lu
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sK
KyAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGNsaWVudElEKTsKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6
Q2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjbGllbnRJRCksIDApOworfQorCit2b2lk
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3JlOjpX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJvb2wgc3VjY2VzcykKK3sKKyAgICBhdXRvIGl0
ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9
PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gcGVuZGluZ1JlcXVlc3QgPSBpdC0+dmFsdWUucGVuZGluZ1JlcXVlc3RzLnRha2UobG9j
a0lkZW50aWZpZXIpOworICAgIGlmICghcGVuZGluZ1JlcXVlc3QubG9ja0dyYW50ZWRIYW5kbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGxvY2tHcmFudGVkSGFuZGxlciA9IFdURk1v
dmUocGVuZGluZ1JlcXVlc3QubG9ja0dyYW50ZWRIYW5kbGVyKTsKKyAgICBpZiAoc3VjY2VzcykK
KyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nrcy5hZGQobG9ja0lkZW50aWZpZXIsIFdURk1vdmUo
cGVuZGluZ1JlcXVlc3QpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsK
KyAgICB9CisKKyAgICBsb2NrR3JhbnRlZEhhbmRsZXIoc3VjY2Vzcyk7Cit9CisKK3ZvaWQgUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OjpkaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElEKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQu
ZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5l
bmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsb2NrSW5mbyA9IGl0LT52YWx1ZS5o
ZWxkTG9ja3MudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYgKCFsb2NrSW5mby5sb2NrU3Rv
bGVuSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5
KCkpCisgICAgICAgIG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworCisgICAg
bG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1YjFhYWZjNTRjOGEy
MTU3YzUyZmYwY2RhOTY4MzQzNmNiMWFhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2VzczsKKworY2xhc3MgUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eSwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4gY3JlYXRlKFdlYlByb2Nlc3MmIHByb2Nlc3MpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KHByb2Nlc3MpKTsgfQorICAg
IH5SZW1vdGVXZWJMb2NrUmVnaXN0cnkoKTsKKworICAgIC8vIFdlYkNvcmU6OldlYkxvY2tSZWdp
c3RyeS4KKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwg
Ym9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFu
dGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsK
KyAgICB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNv
cmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0TG9ja1Jl
cXVlc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAg
IHZvaWQgc25hcHNob3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKKworICAg
IC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmKTsKKworICAgIC8vIElQQyBN
ZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3Jl
OjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9pZCBkaWRTdGVhbExvY2soV2ViQ29yZTo6V2Vi
TG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KTsKKworICAgIHN0cnVjdCBMb2Nrc1NuYXBzaG90OworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIExvY2tzU25hcHNob3Q+IG1fbG9ja3NTbmFw
c2hvdFBlckNsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdp
c3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZhN2FlYTJi
ZDRiZDc3MmEyZGFkZWQ0YzZmN2VjMjcxZmY0YWVkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21lc3NhZ2VzIC0+IFJl
bW90ZVdlYkxvY2tSZWdpc3RyeSB7CisgICAgRGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3Jl
OjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJvb2wgc3VjY2Vzcyk7CisgICAgRGlkU3Rl
YWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDVjM2NmZDQyMzg3
OGI2Y2M1NTIwMzUyZmFkMDQ1Y2NmNTlmMGNiMDAuLjNiZGZhN2M5ZDkzM2JkOWRlMDBiZjcyMGZk
NDc1MWM3MDg2YjdmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCIKICNpbmNsdWRl
ICJSZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blN0YXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNTcz
LDYgKzU3NCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPihtX2lkZW50aWZpZXIpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKnRoaXMpLAogICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSwKKyAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5KCksCiAgICAgICAgIFdlYlBl
cm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKnRoaXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYlN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJNb2RlbFBs
YXllclByb3ZpZGVyPigqdGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA5NDMwNGI3MTFmZDRmYWVhM2IyMGU3MzljOTk2YTQ3YjhjNzJhZDM0Li5mNmU4NzYy
NDZiZmRkNmFhZDAwNzlkMGVlY2EzYmY3M2RiZTcwZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKKyNp
bmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25p
dGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFN
YXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAtMjc5LDYgKzI4MCw3IEBAIFdlYlByb2Nl
c3M6OldlYlByb2Nlc3MoKQogICAgICwgbV93ZWJMb2FkZXJTdHJhdGVneSgqbmV3IFdlYkxvYWRl
clN0cmF0ZWd5KQogICAgICwgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcihXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0
cnkoUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKnRoaXMpKQogICAgICwgbV9jb29raWVK
YXIoV2ViQ29va2llSmFyOjpjcmVhdGUoKSkKICAgICAsIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUoUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU6OmNyZWF0ZSgpKQogICAgICwgbV9kbnNQcmVmZXRj
aEh5c3RlcmVyaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0
ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgbV9kbnNQcmVmZXRjaGVkSG9zdHMu
Y2xlYXIoKTsgfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlhZGUz
YzAwNWFmMmUyMjcxYWZjYWJmZmQ2ODE1MjM2NzZlZmI3MGEuLjE0Y2RmNzUxNWM2MmM0NWRhYjlm
OWRiODE2ZmRjYjJkODg1Y2YzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aApAQCAtMTMyLDYgKzEzMiw3IEBAIGNsYXNzIFByb2Nlc3NBc3NlcnRpb247CiBjbGFzcyBSZW1v
dGVDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90
ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk7CitjbGFzcyBSZW1vdGVXZWJMb2NrUmVn
aXN0cnk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YTsKIGNsYXNzIFN0
b3JhZ2VBcmVhTWFwOwogY2xhc3MgVXNlckRhdGE7CkBAIC0zNDAsNiArMzQxLDcgQEAgcHVibGlj
OgogCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkg
eyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlci5nZXQoKTsgfQogICAgIFdlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeSYgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9i
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuZ2V0KCk7IH0KKyAgICBSZW1vdGVXZWJMb2NrUmVnaXN0
cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9
CiAgICAgV2ViQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQo
KTsgfQogICAgIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyJiB3ZWJTb2NrZXRDaGFubmVsTWFuYWdl
cigpIHsgcmV0dXJuIG1fd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI7IH0KICAgICBXZWJDb3JlOjpS
ZXBvcnRpbmdFbmRwb2ludHNDYWNoZSYgcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUoKSB7IHJldHVy
biBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmdldCgpOyB9CkBAIC02NzYsNiArNjc4LDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlZjxXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4gbV9jYWNoZVN0b3Jh
Z2VQcm92aWRlcjsKICAgICBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBtX3dl
YkxvY2tSZWdpc3RyeTsKICAgICBSZWY8V2ViQ29va2llSmFyPiBtX2Nvb2tpZUphcjsKICAgICBS
ZWY8V2ViQ29yZTo6UmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU+IG1fcmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGU7CiAgICAgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIgbV93ZWJTb2NrZXRDaGFubmVsTWFu
YWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAw
Yzc0NGRkY2ViMzMyNmQwNjcxNDdhMDZlYjkxMjFmYjEwZTU3ZjQ1Li41NjY0MmMyMjJkNmJjNTQz
YWY5ZTc1OWI2MzkzMmFhNmVkODM4Njg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0yMzEsNiArMjMxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2Vi
TG9ja1JlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNh
dGlvbk92ZXJsYXkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJL
aXRMZWdhY3kvRE9NLmg+CkBAIC0xNDM4LDYgKzE0MzksMTggQEAgc3RhdGljIHZvaWQgV2ViS2l0
SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKIH0KICNlbmRpZgogCitzdGF0
aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBnZXRPckNyZWF0ZVdlYkxvY2tS
ZWdpc3RyeShib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IGRlZmF1
bHRSZWdpc3RyeTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpM
b2NhbFdlYkxvY2tSZWdpc3RyeT4+IHByaXZhdGVSZWdpc3RyeTsKKyAgICBhdXRvJiBleGlzdGlu
Z1JlZ2lzdHJ5ID0gaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkID8gcHJpdmF0ZVJlZ2lzdHJ5IDog
ZGVmYXVsdFJlZ2lzdHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lzdHJ5LmdldCgpKQorICAgICAg
ICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAgYXV0byByZWdpc3RyeSA9IFdl
YkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsKKyAgICBleGlzdGluZ1JlZ2lz
dHJ5LmdldCgpID0gcmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lzdHJ5OworfQorCiAtICh2b2lk
KV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1l
IGdyb3VwTmFtZTooTlNTdHJpbmcgKilncm91cE5hbWUKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlv
bGF0aW9uQ2hlY2tSb3VuZFR3bygpOwpAQCAtMTU0Myw2ICsxNTU2LDcgQEAgLSAodm9pZClfY29t
bW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91
cE5hbWU6KE5TU3QKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJl
Y29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVk
aWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShbW3NlbGYgcHJlZmVyZW5j
ZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJt
aXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29y
ZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCkBAIC0xODI0LDYgKzE4MzgsNyBAQCAtIChp
ZClpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOihOU1N0cmluZyAqKXN0eWxlIGZyYW1l
OihDR1JlY3QpZnJhbWUgcHJlZgogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3Np
bmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KFtbc2VsZiBw
cmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAogICAgICAgICBXZWJDb3JlOjpE
dW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJl
ZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAKaW5kZXggZjQ2MzA3OWQ5ODFiZmUyYTU4YzJhMjRiMmZmNTEwOWMyNDJkNmYw
OC4uNGZmY2RlOWM1MzI3MDJkOTM0ZDNjN2MxMzU1MzdjZWIyNjE1ZjExNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTE3Myw2ICsxNzMsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVKSVRPcGVyYXRp
b25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlVGV4dFJlbmRlcmVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01l
c3NhZ2VCcm9hZGNhc3Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAj
aW5jbHVkZSA8Y29tZGVmLmg+CkBAIC0yOTkyLDYgKzI5OTMsMTYgQEAgYm9vbCBXZWJWaWV3Ojpz
aG91bGRJbml0aWFsaXplVHJhY2tQb2ludEhhY2soKQogICAgIHJldHVybiBzaG91bGRDcmVhdGVT
Y3JvbGxiYXJzOwogfQogCitzdGF0aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
PiBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBleGlzdGluZ1JlZ2lz
dHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lzdHJ5LmdldCgpKQorICAgICAgICByZXR1cm4gKmV4
aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAgYXV0byByZWdpc3RyeSA9IFdlYkNvcmU6OkxvY2Fs
V2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsKKyAgICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0g
cmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lzdHJ5OworfQorCiBIUkVTVUxUIFdlYlZpZXc6Omlu
aXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdy
b3VwTmFtZSkKIHsKICAgICBIUkVTVUxUIGhyID0gU19PSzsKQEAgLTMwNjUsNiArMzA3Niw3IEBA
IEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJh
bWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVj
b3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Ojpn
ZXRPckNyZWF0ZShmYWxzZSksCisgICAgICAgIGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KCks
CiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3RvcmFnZVByb3ZpZGVyPigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE2
Yjc5NjQ3NDIxMWJlNjRkYmMxNzYxOThmNTg3NmQyZWQ5ZTM4MjguLmFjNjcxM2FlYzNjMjhhZGQ4
YWZkNTIzMDRiNzcwNjRkY2IxZjI1MGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW06IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEFQSSB0ZXN0IGJ1aWxkIGZp
eC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCAwZmE3M2FlNjNkMTVhMTE2
ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyLi40OWZiOTI2NmRiNDM2MzYxY2Y0MzNiYjQzMDkyNTU3
ZjE3ZGVjY2M1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTMsNiAr
MjkzLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCiBUZXN0cy9X
ZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0
Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJHTFBvbGlj
eS5tbQorVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KIFRlc3RzL1dlYktpdENvY29hL1dl
YlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc1Rl
cm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA3ODBmMWJmOTA4MjJkOGZmMDQ2MDJhMzY2NzJmNjJhZDY4ZjYzMmZj
Li4yMTAzMDc0MjkxYzQxZTdlMjA1Mjc4MTFmYTQ1N2E5NTUxMDVhOWRkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTkzMyw2ICsxOTMzLDcgQEAKIAkJNDRDREU0RDMyNkVFNkU0MTAwOUY2
QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gVHlwZUNhc3RzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0Q0YzMUZCMjQ5OTNGNjYwMDlDQjZDQiAvKiBDb250ZXh0TWVudUFjdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUFjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RDUwMDhEMjZGRTlFRDYwMDBFQjEyRiAvKiBS
ZXRhaW5QdHJBUkMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBS
ZXRhaW5QdHJBUkMubW07IHBhdGggPSBucy9SZXRhaW5QdHJBUkMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJMb2Nrcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkxvY2tzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjBDMkZDODI3MDM5RDdEMDA0N0VGMTEgLyogU2VydmljZVdvcmtlclBhZ2VQcm90
b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUGFnZVByb3RvY29sLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2Fk
RmlsZVRoZW5SZWxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBMb2FkRmlsZVRoZW5SZWxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
MjhDOEU4MjM2N0FCQkMwMEIwNzNGMCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU3Miw2ICszNTczLDcgQEAKIAkJCQk4MzBGMkUwQjIw
OUE2QTc0MDBEMzZGRjEgLyogV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0gKi8sCiAJ
CQkJNTdBNzk4NTYyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSAqLywK
IAkJCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi8sCisJCQkJ
NDYwNjE1NDUyNzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1tICovLAogCQkJCTUxNzE0RUI2
MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gKi8sCiAJCQkJ
QzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5hdGUubW0gKi8sCiAJ
CQkJNUMxNTdBMDIyNzE3QzNCMTAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVtb24ubW0gKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NmE5NTQ0NjYxMGRjZmNlNWJjZjYwZmY4MDlmMDM3ZTM3N2M1ZTAxCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nr
cy5tbQpAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
CisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgor
I2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVXRp
bGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJp
bWVudGFsRmVhdHVyZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV2Vi
TG9ja3MsIFNuYXBzaG90QWNyb3NzUHJvY2Vzc2VzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhU
VFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgImZvbyIgfSB9CisgICAgfSk7CisK
KyAgICBhdXRvIGNvbmZpZ3VyYXRpb24xID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1
cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAgICBp
ZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tzQVBJRW5hYmxlZCJdKSB7
CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24xIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZ
RVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorCisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjEuZ2V0KCldKTsKKyAgICBbd2ViVmlldzEgc3luY2hy
b25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQxID0g
W3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIDAp
OworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzEgcGVyZm9y
bUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAg
IEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0
cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0
b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgo
KSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9y
ICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjIg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNv
bmZpZ3VyYXRpb24yLmdldCgpLnByb2Nlc3NQb29sID0gW2NvbmZpZ3VyYXRpb24xIHByb2Nlc3NQ
b29sXTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJl
ZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUu
a2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tzQVBJRW5hYmxlZCJdKSB7CisgICAgICAgICAg
ICBbW2NvbmZpZ3VyYXRpb24yIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5bmNocm9ub3VzbHlMb2FkUmVx
dWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3MiBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2Fn
ZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdl
LCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgW3dl
YlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdiYXIn
LCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2Fn
ZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29t
cGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVY
UEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhl
cmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDIgaGVsZCBvbmVzLgorICAgICAgICBF
WFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTIiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7Cisg
ICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nr
cy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBz
bmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVz
dWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5T
U3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcg
bG9ja3MsIGFuZCAyIGhlbGQgb25lcy4KKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2Us
IEAiMC0yIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90
ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyAr
IHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9
KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
KyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViTG9ja3MsIExvY2tSZXF1ZXN0V2FpdGlu
Z09uQW5vdGhlclByb2Nlc3MpCit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2
ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9vIiB9IH0KKyAgICB9KTsKKworICAgIGF1dG8gY29u
ZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVm
ZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5r
ZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAgICAgICAg
IFtbY29uZmlndXJhdGlvbjEgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3ZWJWaWV3MSBzeW5jaHJvbm91c2x5TG9hZFJl
cXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dl
YlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAgICBfX2Js
b2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZp
bmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1
ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkg
JiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29uZmlndXJhdGlvbjIu
Z2V0KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJhdGlvbjEgcHJvY2Vzc1Bvb2xdOworICAgIGZv
ciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhw
ZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRv
U3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJh
dGlvbjIgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgYXV0
byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIu
Z2V0KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5y
ZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOworCisgICAgX19ibG9jayBib29sIGxv
Y2tBY3F1aXJlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdB
bnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVR
KG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgbG9ja0FjcXVpcmVkID0gdHJ1ZTsKKyAg
ICB9XTsKKworICAgIC8vIFJlcXVlc3RpbmcgdGhlIHNhbWUgbG9jayBuYW1lIGFzIHdlYlZpZXcx
IHNvIHRoZSByZXF1ZXN0IHNob3VsZCBnZXQgcXVldWVkIHVudGlsIHdlYlZpZXcxIHJlbGVhc2Vz
IGl0LgorICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3Mu
cmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7
IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikg
eworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpzbGVlcCgwLjUpOworICAgIEVYUEVDVF9GQUxTRShsb2NrQWNxdWlyZWQpOwor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdB
bnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxk
IGJlIDEgcGVuZGluZyBsb2NrLCBhbmQgMSBoZWxkIG9uZS4KKyAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKG1lc3NhZ2UsIEAiMS0xIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50
aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVs
ZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFm
dGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVY
UEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGxvY2tBY3F1aXJl
ZCA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBOb3cgY2xvc2UgdGhlIHdlYlZpZXcxLiBUaGlz
IHNob3VsZCByZWxlYXNlIHRoZSAnZm9vJyBsb2NrIGFuZCBhbGxvdyB3ZWJWaWV3MiB0byBhY3F1
aXJlIGl0LgorICAgIFt3ZWJWaWV3MSBfY2xvc2VdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZsb2NrQWNxdWlyZWQpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3
MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsK
KyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDEgaGVsZCBv
bmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIjAtMSIpOworICAgICAgICBk
b25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
bmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBzbmFwc2hvdC5wZW5kaW5nLmxl
bmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkgJiYgMSIgY29tcGxldGlvbkhh
bmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxM
KGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445630</attachid>
            <date>2021-12-01 16:14:23 -0800</date>
            <delta_ts>2021-12-01 17:05:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201161422.patch</filename>
            <type>text/plain</type>
            <size>122787</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcAppbmRleCA3ZTViNTUxNDg1YWM2NTUxZGQ1ZjBjMTkwNDFiM2UyOTNmMWI2Y2VkLi45ZDRm
NmY2YzAxOGEyOTI0NDkxOGE2Yjk3Y2JjMDE3OGNlMTljYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMSwxMSAr
MzEsMTQgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU1dlYkxvY2tN
YW5hZ2VyU25hcHNob3QuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViTG9jay5o
IgogI2luY2x1ZGUgIldlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmgiCiAjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5LmgiCisjaW5jbHVk
ZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAKQEAgLTUzLDYgKzU2LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2xpZW50T3JpZ2lu
PiBjbGllbnRPcmlnaW5Gcm9tQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXgKIAogc3RydWN0
IFdlYkxvY2tNYW5hZ2VyOjpMb2NrUmVxdWVzdCB7CiAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXI7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SUQ7CiAgICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTG9ja01vZGUgbW9kZSB7IFdlYkxvY2tNb2Rl
OjpFeGNsdXNpdmUgfTsKICAgICBSZWZQdHI8V2ViTG9ja0dyYW50ZWRDYWxsYmFjaz4gZ3JhbnRl
ZENhbGxiYWNrOwpAQCAtMTM3LDE0ICsxNDEsMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdChjb25zdCBTdHJpbmcmIG5hbWUsIE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8V2ViTG9ja0cK
ICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVu
dGlmaWVyLCBMb2NrUmVxdWVzdCB7IGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLm1vZGUs
IFdURk1vdmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7Cisg
ICAgYXV0byBjbGllbnRJRCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigp
OworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3Qg
eyBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG9wdGlvbnMubW9kZSwgV1RGTW92ZShn
cmFudGVkQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSB9KTsKIAotICAgIHJlcXVl
c3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLCBbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0
YWJsZSB7CisgICAgcmVxdWVzdExvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIGNsaWVu
dElELCBuYW1lLCBvcHRpb25zLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lk
ZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykK
ICAgICAgICAgICAgIHdlYWtUaGlzLT5kaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJZGVudGlm
aWVyLCBzdWNjZXNzKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9j
a0lkZW50aWZpZXJdKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgfSwgW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXSgpIG11dGFibGUgewog
ICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFz
ZVByb21pc2UobG9ja0lkZW50aWZpZXIsIFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgICAg
ICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlv
biB7IEFib3J0RXJyb3IsICJMb2NrIHdhcyBzdG9sZW4gYnkgYW5vdGhlciByZXF1ZXN0Il9zIH0p
OwogICAgIH0pOwogfQogCkBAIC0xNTcsNyArMTYyLDcgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6
ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
Ym8KIAogICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgaWYgKHJlcXVlc3Quc2ln
bmFsICYmIHJlcXVlc3Quc2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0Lm5hbWUp
OworICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lk
ZW50aWZpZXIsIHJlcXVlc3QuY2xpZW50SUQsIHJlcXVlc3QubmFtZSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCkBAIC0xNjUsMTUgKzE3MCwxNSBAQCB2b2lkIFdl
YkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaWVyLCBibwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSByZXF1ZXN0LmdyYW50
ZWRDYWxsYmFjay0+aGFuZGxlRXZlbnQobG9jay5wdHIoKSk7CiAgICAgICAgICAgICBSZWZQdHI8
RE9NUHJvbWlzZT4gd2FpdGluZ1Byb21pc2UgPSByZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVz
dWx0VHlwZTo6U3VjY2VzcyA/IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA6IG51bGxwdHI7
CiAgICAgICAgICAgICBpZiAoIXdhaXRpbmdQcm9taXNlKSB7Ci0gICAgICAgICAgICAgICAgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1l
KTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJ
ZGVudGlmaWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAg
ICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlv
biB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0
dGxlZCh3YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9t
aXNlKCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmll
ciA9IHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQ
cm9taXNlXSB7CisgICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0dGxlZCh3
YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCks
IFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmllciA9IHJl
cXVlc3QubG9ja0lkZW50aWZpZXIsIGNsaWVudElEID0gcmVxdWVzdC5jbGllbnRJRCwgbmFtZSA9
IHJlcXVlc3QubmFtZSwgd2FpdGluZ1Byb21pc2VdIHsKICAgICAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgcmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgICAgICAgICAg
ICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFt
ZSk7CiAgICAgICAgICAgICAgICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIs
IHN0YXRpY19jYXN0PEpTQzo6SlNWYWx1ZT4od2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSkpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xODgsMzMgKzE5MywzMyBAQCB2
b2lkIFdlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBibwogICAgIH0pOwogfQogCi12b2lkIFdlYkxvY2tNYW5hZ2Vy
OjpyZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiBvcHRpb25zLCBGdW5jdGlvbjx2
b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4m
JiByZWxlYXNlSGFuZGxlcikKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRp
b25zJiBvcHRpb25zLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhy
ZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRp
ZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwg
bmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwg
PSBvcHRpb25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJ
ZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCByZWxl
YXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAg
ICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVl
c3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbmFtZSwgbW9kZSwgc3Rl
YWwsIGlmQXZhaWxhYmxlLCBbY29udGV4dElkZW50aWZpZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RG
TW92ZShncmFudGVkSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewotICAgICAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJ
ZGVudGlmaWVyLCBbZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgc3Vj
Y2Vzc10oYXV0byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQs
IGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBuYW1lID0g
Y3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBtb2RlID0gb3B0aW9ucy5tb2RlLCBzdGVhbCA9IG9wdGlv
bnMuc3RlYWwsIGlmQXZhaWxhYmxlID0gb3B0aW9ucy5pZkF2YWlsYWJsZSwgbG9ja0lkZW50aWZp
ZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIGxvY2tTdG9sZW5I
YW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRh
YmxlIHsKKyAgICAgICAgcmVnaXN0cnkucmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NsaWVu
dElELCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNj
ZXNzKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3Vy
ZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFu
dGVkSGFuZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBn
cmFudGVkSGFuZGxlcihzdWNjZXNzKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9LCBbY29u
dGV4dElkZW50aWZpZXIsIHJlbGVhc2VIYW5kbGVyID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlcild
KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFty
ZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpLCBleGNlcHRpb24gPSBjcm9z
c1RocmVhZENvcHkoZXhjZXB0aW9uKV0oYXV0byYpIG11dGFibGUgewotICAgICAgICAgICAgICAg
IHJlbGVhc2VIYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0sIFtjbGllbnRJ
RCwgbG9ja1N0b2xlbkhhbmRsZXIgPSBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4
dFRocmVhZChjbGllbnRJRCwgW2xvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBsb2NrU3RvbGVuSGFu
ZGxlcigpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCi12b2lk
IFdlYkxvY2tNYW5hZ2VyOjpyZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQordm9pZCBXZWJMb2NrTWFuYWdl
cjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJp
bmcmIG5hbWUpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9z
c1RocmVhZENvcHkobmFtZSldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZv
ck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZWxlYXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7
CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHko
Km1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lID0gY3Jvc3NU
aHJlYWRDb3B5KG5hbWUpXShhdXRvJiByZWdpc3RyeSkgeworICAgICAgICByZWdpc3RyeS5yZWxl
YXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSk7CiAg
ICAgfSk7CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5U
aHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29w
eSgqbV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29w
eShuYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihj
bGllbnRPcmlnaW4pLT5hYm9ydExvY2tSZXF1ZXN0KGxvY2tJZGVudGlmaWVyLCBuYW1lLCBbY29u
dGV4dElkZW50aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGJvb2wgd2FzQWJvcnRlZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB3YXNBYm9ydGVk
XShhdXRvJikgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRJRCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9z
c1RocmVhZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxlIHsKKyAgICAgICAgcmVnaXN0cnkuYWJv
cnRMb2NrUmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFt
ZSwgW2NsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgeworICAgICAgICAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNsaWVudElELCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdhc0Fib3J0ZWQpOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjIzLDggKzIyOCw4IEBAIHZvaWQgV2Vi
TG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpCiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFk
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5zbmFwc2hvdChbY29udGV4dElkZW50aWZpZXIs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNuYXBzaG90
JiYgc25hcHNob3QpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElk
ZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50
T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxl
IHsKKyAgICAgICAgcmVnaXN0cnkuc25hcHNob3QoY2xpZW50T3JpZ2luLCBbY29udGV4dElkZW50
aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNu
YXBzaG90JiYgc25hcHNob3QpIG11dGFibGUgewogICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc25hcHNob3QgPSBjcm9z
c1RocmVhZENvcHkoc25hcHNob3QpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzbmFwc2hvdCkpOwogICAgICAgICAgICAgfSk7CkBA
IC0zMDIsMTEgKzMwNywyOSBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpjbGllbnRJc0dvaW5nQXdh
eSgpCiAgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKICAgICBtX3JlbGVhc2VQcm9taXNl
cy5jbGVhcigpOwogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0gewotICAgICAgICBXZWJMb2NrUmVnaXN0
cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPmNsaWVudElzR29pbmdBd2F5KGNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9
IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpXShhdXRvJiByZWdpc3RyeSkgewor
ICAgICAgICByZWdpc3RyeS5jbGllbnRJc0dvaW5nQXdheShjbGllbnRPcmlnaW4sIGNvbnRleHRJ
ZGVudGlmaWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJMb2NrTWFuYWdlcjo6ZW5zdXJlT25N
YWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5Jik+JiYgdGFzaykKK3sKKyAg
ICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29u
dGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJl
YWQoKSk7CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkgeworICAgICAgICBpZiAo
YXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5wYWdlKCkpCisgICAgICAg
ICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLnRocmVhZCgpLndvcmtlckxv
YWRlclByb3h5KCkucG9zdFRhc2tUb0xvYWRlcihbdGFzayA9IFdURk1vdmUodGFzayldKGF1dG8m
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAgICAgIHRhc2socGFnZS0+d2ViTG9ja1Jl
Z2lzdHJ5KCkpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIGJvb2wgV2ViTG9ja01hbmFnZXI6
OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiAhbV9wZW5k
aW5nUmVxdWVzdHMuaXNFbXB0eSgpIHx8ICFtX3JlbGVhc2VQcm9taXNlcy5pc0VtcHR5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaApp
bmRleCBmZWNjNDA5MzgzMzljMTcyZmU5NjdiYTljM2Q1OTAzZmYwMzdiNzg5Li45NjgyNjYyMjRj
ZGZlZTU0MWZiNzlmYjBiZGI1MDk5MTQyNjBlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgTmF2aWdhdG9y
QmFzZTsKIGNsYXNzIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s7CitjbGFzcyBXZWJMb2NrUmVnaXN0
cnk7CiAKIHN0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hv
dDsKQEAgLTYyLDggKzYzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJM
b2NrTWFuYWdlcihOYXZpZ2F0b3JCYXNlJik7CiAKLSAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlv
bnMmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4m
JiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJM
b2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHJlcXVlc3RMb2Nr
T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2
b2lkIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBxdWVy
eU9uTWFpblRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmKTsKIApA
QCAtNzIsNiArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsVG9BYm9ydFRoZVJlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIpOwogICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoKTsKIAor
ICAgIHZvaWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5
Jik+JiYgdGFzayk7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QuCiAgICAgdm9pZCBzdG9wKCkg
ZmluYWw7CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01h
bmFnZXJTbmFwc2hvdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9j
a01hbmFnZXJTbmFwc2hvdC5oCmluZGV4IDdmNTMzYzNjYzcwMDI4ZDE2YWE0MjcwNGYyYzQ4MWIy
ZjQyMTBkMWUuLjQ0MmMzMDNkMmE4NzRlMjk0M2VmN2FjNWY2MmZjZTM2MDBmMmU3NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25h
cHNob3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFu
YWdlclNuYXBzaG90LmgKQEAgLTM4LDEyICszOCw1NSBAQCBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJT
bmFwc2hvdCB7CiAgICAgICAgIFN0cmluZyBjbGllbnRJZDsKIAogICAgICAgICBJbmZvIGlzb2xh
dGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgbmFtZS5pc29sYXRlZENvcHkoKSwgbW9kZSwgY2xp
ZW50SWQuaXNvbGF0ZWRDb3B5KCkgfTsgfQorCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBuYW1l
IDw8IG1vZGUgPDwgY2xpZW50SWQ7IH0KKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8SW5mbz4gZGVjb2RlKERlY29kZXImKTsKICAgICB9OwogCiAg
ICAgVmVjdG9yPEluZm8+IGhlbGQ7CiAgICAgVmVjdG9yPEluZm8+IHBlbmRpbmc7CiAKICAgICBX
ZWJMb2NrTWFuYWdlclNuYXBzaG90IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgY3Jv
c3NUaHJlYWRDb3B5KGhlbGQpLCBjcm9zc1RocmVhZENvcHkocGVuZGluZykgfTsgfQorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QgeyBlbmNvZGVyIDw8IGhlbGQgPDwgcGVuZGluZzsgfQorICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q+IGRlY29k
ZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25h
bDxXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJbmZvPiBXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJ
bmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gbmFtZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7CisgICAgaWYgKCFuYW1lKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxXZWJMb2NrTW9kZT4gbW9k
ZTsKKyAgICBkZWNvZGVyID4+IG1vZGU7CisgICAgaWYgKCFtb2RlKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNsaWVudElkOworICAg
IGRlY29kZXIgPj4gY2xpZW50SWQ7CisgICAgaWYgKCFjbGllbnRJZCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbmFtZSksICptb2RlLCBX
VEZNb3ZlKCpjbGllbnRJZCkgfSB9OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3Rk
OjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBXZWJMb2NrTWFuYWdlclNuYXBzaG90
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJ
bmZvPj4gaGVsZDsKKyAgICBkZWNvZGVyID4+IGhlbGQ7CisgICAgaWYgKCFoZWxkKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IHBlbmRpbmc7CisgICAgZGVjb2RlciA+PiBwZW5kaW5nOworICAgIGlmICghcGVuZGluZykKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaGVs
ZCksIFdURk1vdmUoKnBlbmRpbmcpIH0gfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKaW5kZXgg
OTM0MzZjMjg0NmIyMTQyY2YwYmFhYjZmNDYwMDUwMjllMTM2ZmVmYi4uZWZiMDQxN2YzNzZhNjVl
NTI2NjZiODc5ODEyYmFmNTg1MWQ3NzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCkBAIC0yNiw2ICsyNiw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotZW51bSBjbGFzcyBXZWJMb2NrTW9kZSB7IFNoYXJlZCwgRXhjbHVzaXZlIH07
CitlbnVtIGNsYXNzIFdlYkxvY2tNb2RlIDogYm9vbCB7IFNoYXJlZCwgRXhjbHVzaXZlIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tS
ZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVn
aXN0cnkuY3BwCmluZGV4IDgyZjEwMjBhZmQyNjdiYmQzOTI3OWQ3YTk4YjQ2NDNmYWRhZjQxYmYu
Ljk3NGNlYmZiMzQ5YzdiMzkwNDU2ODI2MjkwOWQzNjA2YzNjYmIxODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAt
MzMsNTYgKzMzLDkyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFdlYkxvY2tS
ZWdpc3RyeTo6TG9ja0luZm8gewotICAgIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Owot
ICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOwotICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwotICAgIFdlYkxvY2tNb2RlIG1vZGU7Ci0gICAg
RnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+IHJlbGVhc2VIYW5kbGVyOwotfTsKK2NsYXNzIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVk
PFBlck9yaWdpblJlZ2lzdHJ5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQZXJPcmlnaW5S
ZWdpc3RyeT4gY3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2lu
Jik7CisgICAgflBlck9yaWdpblJlZ2lzdHJ5KCk7CisKKyAgICBzdHJ1Y3QgTG9ja0luZm8gewor
ICAgICAgICBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IHJlZ2lzdHJ5OworICAgICAgICBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQ7CisgICAgICAgIFdlYkxvY2tNb2RlIG1vZGU7CisgICAgICAg
IEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRsZXI7CisgICAgfTsKKworICAgIHZvaWQg
cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpOworICAgIHZvaWQgcmVsZWFzZUxvY2so
V2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVu
dHNBcmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0
Y2hDbGllbnQpOworCitwcml2YXRlOgorICAgIFBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisKKyAgICBzdHJ1Y3QgTG9ja1JlcXVl
c3QgOiBMb2NrSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOworICAgICAgICBGdW5jdGlvbjx2
b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB9OwogCi1zdHJ1Y3QgV2ViTG9ja1JlZ2lz
dHJ5OjpMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsKLSAgICBTdHJpbmcgbmFtZTsKLSAgICBGdW5j
dGlvbjx2b2lkKGJvb2wpPiBncmFudGVkSGFuZGxlcjsKKyAgICB2b2lkIHByb2Nlc3NMb2NrUmVx
dWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAg
Ym9vbCBpc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OworCisgICAgV2Vha1B0
cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gbV9nbG9iYWxSZWdpc3RyeTsKKyAgICBDbGllbnRPcmln
aW4gbV9jbGllbnRPcmlnaW47CisgICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0
Pj4gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9j
a0luZm8+PiBtX2hlbGRMb2NrczsKIH07CiAKLXN0YXRpYyBIYXNoTWFwPENsaWVudE9yaWdpbiwg
V2ViTG9ja1JlZ2lzdHJ5Kj4mIHJlZ2lzdHJ5TWFwKCkKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpM
b2NhbFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworTG9jYWxXZWJMb2NrUmVnaXN0cnk6
On5Mb2NhbFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKKworYXV0byBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6ZW5zdXJlUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGll
bnRPcmlnaW4pIC0+IFJlZjxQZXJPcmlnaW5SZWdpc3RyeT4KK3sKKyAgICBpZiAoYXV0byBleGlz
dGluZ1JlZ2lzdHJ5ID0gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdldChjbGllbnRPcmlnaW4pKQor
ICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnk7CisKKyAgICByZXR1cm4gUGVyT3JpZ2lu
UmVnaXN0cnk6OmNyZWF0ZSgqdGhpcywgY2xpZW50T3JpZ2luKTsKK30KKworYXV0byBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmln
aW4mIGNsaWVudE9yaWdpbikgY29uc3QgLT4gUmVmUHRyPFBlck9yaWdpblJlZ2lzdHJ5Pgogewot
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxI
YXNoTWFwPENsaWVudE9yaWdpbiwgV2ViTG9ja1JlZ2lzdHJ5Kj4+IHJlZ2lzdHJ5TWFwOwotICAg
IHJldHVybiByZWdpc3RyeU1hcDsKKyAgICByZXR1cm4gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdl
dChjbGllbnRPcmlnaW4pOwogfQogCi1SZWY8V2ViTG9ja1JlZ2lzdHJ5PiBXZWJMb2NrUmVnaXN0
cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQorUmVmPExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeT4gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoTG9jYWxXZWJMb2NrUmVnaXN0cnkmIGdsb2Jh
bFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKLSAgICBpZiAo
YXV0byBleGlzdGluZ1JlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS5nZXQob3JpZ2luKSkKLSAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBl
ck9yaWdpblJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5LCBjbGllbnRPcmlnaW4pKTsKK30KIAotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkxvY2tSZWdpc3RyeShvcmlnaW4pKTsKK0xvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkoTG9jYWxX
ZWJMb2NrUmVnaXN0cnkmIGdsb2JhbFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbikKKyAgICA6IG1fZ2xvYmFsUmVnaXN0cnkoZ2xvYmFsUmVnaXN0cnkpCisgICAgLCBt
X2NsaWVudE9yaWdpbihjbGllbnRPcmlnaW4pCit7CisgICAgZ2xvYmFsUmVnaXN0cnkubV9wZXJP
cmlnaW5SZWdpc3RyaWVzLmFkZChjbGllbnRPcmlnaW4sIHRoaXMpOwogfQogCi1XZWJMb2NrUmVn
aXN0cnk6OldlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKLSAgICA6
IG1fb3JpZ2luKG9yaWdpbikKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eTo6flBlck9yaWdpblJlZ2lzdHJ5KCkKIHsKLSAgICByZWdpc3RyeU1hcCgpLmFkZChtX29yaWdp
biwgdGhpcyk7CisgICAgaWYgKG1fZ2xvYmFsUmVnaXN0cnkpCisgICAgICAgIG1fZ2xvYmFsUmVn
aXN0cnktPm1fcGVyT3JpZ2luUmVnaXN0cmllcy5yZW1vdmUobV9jbGllbnRPcmlnaW4pOwogfQog
Ci1XZWJMb2NrUmVnaXN0cnk6On5XZWJMb2NrUmVnaXN0cnkoKQordm9pZCBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6cmVxdWVzdExvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBi
b29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50
ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAg
YXV0byogcmVnaXN0cnkgPSByZWdpc3RyeU1hcCgpLnRha2UobV9vcmlnaW4pOwotICAgIEFTU0VS
VF9VTlVTRUQocmVnaXN0cnksIHJlZ2lzdHJ5ID09IHRoaXMpOworICAgIGVuc3VyZVJlZ2lzdHJ5
Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVlc3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGll
bnRJRCwgbmFtZSwgbW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBXVEZNb3ZlKGdyYW50ZWRIYW5k
bGVyKSwgV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcikpOwogfQogCiAvLyBodHRwczovL3dpY2cu
Z2l0aHViLmlvL3dlYi1sb2Nrcy8jcmVxdWVzdC1hLWxvY2sKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5
OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2Vi
TG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYg
cmVsZWFzZUhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdp
c3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkxvY2tNb2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9u
PHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3Rv
bGVuSGFuZGxlcikKIHsKLSAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lk
ZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSB9LCBuYW1l
LCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7
ICp0aGlzLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG1vZGUsIFdURk1vdmUobG9ja1N0b2xl
bkhhbmRsZXIpIH0sIG5hbWUsIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CiAKICAgICBpZiAo
c3RlYWwpIHsKICAgICAgICAgYXV0byBpdCA9IG1faGVsZExvY2tzLmZpbmQobmFtZSk7CiAgICAg
ICAgIGlmIChpdCAhPSBtX2hlbGRMb2Nrcy5lbmQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBsb2NrSW5mbyA6IGl0LT52YWx1ZSkKLSAgICAgICAgICAgICAgICBsb2NrSW5mby5yZWxlYXNl
SGFuZGxlcihFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3Ro
ZXIgcmVxdWVzdCIgfSk7CisgICAgICAgICAgICAgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRs
ZXIoKTsKICAgICAgICAgICAgIG1faGVsZExvY2tzLnJlbW92ZShpdCk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKGlmQXZhaWxhYmxlICYmICFpc0dyYW50YWJsZShyZXF1ZXN0KSkgewpAQCAt
OTcsOCArMTMzLDE0IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0CiAgICAgcHJvY2Vzc0xvY2tS
ZXF1ZXN0UXVldWUobmFtZSwgcXVldWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjpyZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBleGlzdGlu
Z1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikpCisgICAgICAgIHJlZ2lzdHJ5LT5yZWxl
YXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRo
dWIuaW8vd2ViLWxvY2tzLyNhbGdvcml0aG0tcmVsZWFzZS1sb2NrCi12b2lkIFdlYkxvY2tSZWdp
c3RyeTo6cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lKQogewogICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwog
ICAgIGlmIChpdCA9PSBtX2hlbGRMb2Nrcy5lbmQoKSkKQEAgLTExNCw4ICsxNTYsMTcgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcKICAgICAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUobmFt
ZSwgcXVldWVJdGVyYXRvci0+dmFsdWUpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CisKKyAgICByZWdpc3RyeS0+YWJvcnRM
b2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWJvcnQtdGhl
LXJlcXVlc3QKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcXVldWVJ
dGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5maW5kKG5hbWUpOwogICAgIGlmIChxdWV1
ZUl0ZXJhdG9yID09IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcC5lbmQoKSkKQEAgLTEzNyw3ICsxODgs
NyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgUwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jZ3JhbnRhYmxlCi1ib29sIFdlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFi
bGUoY29uc3QgTG9ja1JlcXVlc3QmIHJlcXVlc3QpIGNvbnN0Citib29sIExvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3Qm
IHJlcXVlc3QpIGNvbnN0CiB7CiAgICAgYXV0byBxdWV1ZUl0ZXJhdG9yID0gbV9sb2NrUmVxdWVz
dFF1ZXVlTWFwLmZpbmQocmVxdWVzdC5uYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciAhPSBt
X2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkgJiYgJnF1ZXVlSXRlcmF0b3ItPnZhbHVlLmZpcnN0
KCkgIT0gJnJlcXVlc3QpCkBAIC0xNTQsNyArMjA1LDcgQEAgYm9vbCBXZWJMb2NrUmVnaXN0cnk6
OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogfQogCiAvLyBo
dHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jcHJvY2Vzcy10aGUtbG9jay1yZXF1ZXN0
LXF1ZXVlCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdWVzdD4mIHF1ZXVlKQordm9pZCBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKIHsKICAgICB3
aGlsZSAoIXF1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoIWlzR3JhbnRhYmxlKHF1ZXVl
LmZpcnN0KCkpKQpAQCAtMTY5LDggKzIyMCwxNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJv
Y2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdQog
ICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZFF1ZXVlLCByZW1vdmVkUXVldWUuaXNFbXB0eSgpKTsK
IH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6
OlNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVnaXN0cnkg
PSBleGlzdGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbik7CisgICAgaWYgKCFyZWdp
c3RyeSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAgICByZWdp
c3RyeS0+c25hcHNob3QoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiAvLyBodHRw
czovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jc25hcHNob3QtdGhlLWxvY2stc3RhdGUKLXZv
aWQgV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxv
Y2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJMb2NrTWFuYWdlcjo6U25hcHNob3Qgc25hcHNob3Q7CiAgICAgZm9yIChh
dXRvJiBwYWlyIDogbV9sb2NrUmVxdWVzdFF1ZXVlTWFwKSB7CkBAIC0xODUsMTQgKzI0NSwyMSBA
QCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
c25hcHNob3QpKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2lu
Z0F3YXkoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+
Y2xpZW50c0FyZUdvaW5nQXdheShbY2xpZW50SURdKGF1dG8mIGxvY2tJbmZvKSB7IHJldHVybiBs
b2NrSW5mby5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vd2ViLWxvY2tzLyNhZ2VudC1pbnRlZ3JhdGlvbgotdm9pZCBXZWJMb2NrUmVnaXN0
cnk6OmNsaWVudElzR29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNs
aWVudElEKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNs
aWVudHNBcmVHb2luZ0F3YXkoY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYg
bWF0Y2hDbGllbnQpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgaXMgaW5lZmZpY2llbnQuIFdlIGNv
dWxkIG9wdGltaXplIHRoaXMgYnkga2VlcGluZyB0cmFjayBvZiB3aGljaCBsb2NrcyBtYXAgdG8g
d2hpY2ggY2xpZW50cy4KICAgICBIYXNoU2V0PFN0cmluZz4gbmFtZXNPZlF1ZXVlc1RvUHJvY2Vz
czsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzV2l0aG91dFJlcXVlc3RzOwogICAgIGZvciAo
YXV0byYgcGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewotICAgICAgICBpZiAoIXBhaXIu
dmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiByZXF1ZXN0KSB7IHJldHVy
biByZXF1ZXN0LmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRSZXF1ZXN0cy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjA0LDcgKzI3MSw3IEBAIHZvaWQg
V2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJCiAKICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRMb2Nr
czsKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBtX2hlbGRMb2NrcykgewotICAgICAgICBpZiAoIXBh
aXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyBy
ZXR1cm4gbG9ja0luZm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pKQorICAgICAgICBpZiAoIXBh
aXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmcobWF0Y2hDbGllbnQpKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5h
bWVzV2l0aG91dExvY2tzLmFwcGVuZChwYWlyLmtleSk7CkBAIC0yMjAsNCArMjg3LDEzIEBAIHZv
aWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJCiAgICAgfQogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlm
aWVyKQoreworICAgIFZlY3RvcjxDbGllbnRPcmlnaW4+IGNsaWVudE9yaWdpbnMgPSBjb3B5VG9W
ZWN0b3IobV9wZXJPcmlnaW5SZWdpc3RyaWVzLmtleXMoKSk7CisgICAgZm9yIChhdXRvJiBjbGll
bnRPcmlnaW4gOiBjbGllbnRPcmlnaW5zKSB7CisgICAgICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0g
ZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICAgICAgcmVn
aXN0cnktPmNsaWVudHNBcmVHb2luZ0F3YXkoW3Byb2Nlc3NJZGVudGlmaWVyXShhdXRvJiBsb2Nr
SW5mbykgeyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBw
cm9jZXNzSWRlbnRpZmllcjsgfSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVn
aXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3Ry
eS5oCmluZGV4IGE2ZThkMDM1M2JkYzIwOTlhMDkyNGM3NzYzMjRlZWFkZDk0M2EwNmMuLjhiNjMx
NGU4YjExYmUyYTVkMzBiYTc5MjgxODAyYWNiNWNmNzc3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCkBAIC0yNSw5ICsyNSw5
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNsaWVudE9yaWdpbi5oIgorI2luY2x1ZGUg
IlByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJMb2NrSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIldl
YkxvY2tNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01vZGUuaCIKICNpbmNsdWRlIDx3dGYv
RGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDAsMjkgKzQwLDQwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV4Y2VwdGlvbjsKIHN0cnVjdCBXZWJMb2NrTWFuYWdl
clNuYXBzaG90OwogCi1jbGFzcyBXZWJMb2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJMb2NrUmVnaXN0cnk+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViTG9ja1JlZ2lzdHJ5PiB7
CitjbGFzcyBXZWJMb2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJMb2NrUmVnaXN0
cnk+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkxvY2tSZWdpc3RyeT4gcmVnaXN0cnlG
b3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJik7Ci0gICAgfldlYkxvY2tSZWdpc3RyeSgpOwor
ICAgIHZpcnR1YWwgfldlYkxvY2tSZWdpc3RyeSgpIHsgfQogCi0gICAgdm9pZCByZXF1ZXN0TG9j
ayhXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFi
bGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQo
RXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5kbGVyKTsKLSAgICB2b2lkIHJlbGVhc2VMb2NrKFdl
YkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOwotICAgIHZvaWQgYWJvcnRMb2Nr
UmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7Ci0gICAgdm9pZCBjbGllbnRJ
c0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBX
ZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5k
bGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdp
biYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc25hcHNob3QoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90
JiYpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENs
aWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CiAKLXBy
aXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViTG9ja1JlZ2lzdHJ5KGNvbnN0IENsaWVudE9yaWdpbiYp
OworcHJvdGVjdGVkOgorICAgIFdlYkxvY2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKK307CisKK2Ns
YXNzIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tSZWdpc3RyeSwg
cHVibGljIENhbk1ha2VXZWFrUHRyPExvY2FsV2ViTG9ja1JlZ2lzdHJ5PiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBMb2NhbFdlYkxvY2tSZWdpc3RyeSk7IH0KKyAgICB+TG9jYWxXZWJMb2NrUmVn
aXN0cnkoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdExvY2soY29uc3QgQ2xp
ZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVsZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBD
bGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzbmFwc2hvdChjb25zdCBDbGll
bnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50SXNHb2luZ0F3YXko
Y29uc3QgQ2xpZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZp
bmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNz
SWRlbnRpZmllcik7CiAKLSAgICBzdHJ1Y3QgTG9ja0luZm87Ci0gICAgc3RydWN0IExvY2tSZXF1
ZXN0OworcHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCBMb2NhbFdlYkxvY2tSZWdpc3RyeSgp
OwogCi0gICAgYm9vbCBpc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OwotICAg
IHZvaWQgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxM
b2NrUmVxdWVzdD4mKTsKKyAgICBjbGFzcyBQZXJPcmlnaW5SZWdpc3RyeTsKKyAgICBSZWY8UGVy
T3JpZ2luUmVnaXN0cnk+IGVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdp
biYpOworICAgIFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4gZXhpc3RpbmdSZWdpc3RyeUZvck9y
aWdpbihjb25zdCBDbGllbnRPcmlnaW4mKSBjb25zdDsKIAotICAgIGNvbnN0IENsaWVudE9yaWdp
biBtX29yaWdpbjsKLSAgICBIYXNoTWFwPFN0cmluZywgRGVxdWU8TG9ja1JlcXVlc3Q+PiBtX2xv
Y2tSZXF1ZXN0UXVldWVNYXA7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxMb2NrSW5mbz4+
IG1faGVsZExvY2tzOworICAgIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBQZXJPcmlnaW5SZWdpc3Ry
eSo+IG1fcGVyT3JpZ2luUmVnaXN0cmllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA2MGU0Mjg4Mzk3NTY4ZDQ1MGQxMmYxODViOGY2ZmVhNjA2NjRlMTc4Li4wZjBjOGM5NTdl
NGNkNWZkZjM3MWE0NmRhYmQwODA3MzAwMWU5MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzExLDEwICsxMzExLDEyIEBA
CiAJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGlt
ZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MjczQ0FGMjYwRTU5
RUYwMDZGQUE5MSAvKiBTV1NjcmlwdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjczQ0FDMjYwRTU5REYwMDZGQUE5MSAvKiBTV1Njcmlw
dFN0b3JhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0NjJDN0Y0MTI3NTZEQkU0MDBEMDgzQzggLyogV2ViTG9ja0lkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIyMjc0NzEx
ODUwMERBOUZCNiAvKiBXZWJMb2NrSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MkU0QzUwMjYxNkE4MTEwMDNBMkM2NyAvKiBT
Y3JpcHRCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MkU0QzREMjYxNkE4MDEwMDNBMkM2NyAvKiBTY3JpcHRCdWZmZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjM0QzcyQzI3NTdEQUIy
MDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3ODAyQjAyNzQ3MTE3QjAwREE5RkI2IC8qIFdl
YkxvY2tNYW5hZ2VyU25hcHNob3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2luZG93UHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0VCNjIzMUI4Nzg5RTAwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjNFQjYyMTFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovOyB9Owot
CQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5
RSAvKiBXZWJMb2NrTW9kZS5oICovOyB9OworCQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2NDRGN0Y4MjcyQTFDMUYw
MDU1NTk5RSAvKiBXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFRTI3MkExQzE2MDA1NTU5OUUgLyogV2Vi
TG9ja0dyYW50ZWRDYWxsYmFjay5oICovOyB9OwogCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUg
LyogV2ViTG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NDRGN0YwMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTWFuYWdlci5oICov
OyB9OwogCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RjMyNzJBMUMxNjAwNTU1
OTlFIC8qIFdlYkxvY2suaCAqLzsgfTsKQEAgLTM3NTUyLDcgKzM3NTU0LDkgQEAKIAkJCQkwRkNG
MzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NDRGN0ZBMjcyQTFDMjUwMDU1NTk5RSAvKiBXZWJMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjQ0RjdGODI3MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUgLyogV2Vi
TG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MzRDNzJDMjc1N0RBQjIwMDI2QTgx
NSAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
NzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NENBRjA5Mjc0MzMxQTcwMDNCOUU0MSAvKiBXZWJMb2NrUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RjVDRkY1MjU4MkE1MUQwMDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRpZXNDb2Nv
YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IDNhMDY0YmM3MjMxYTM2MDBjYzgzZGM1OGE5YTJlN2ZmMmVlOTZiMzUuLmMwODc4NWFmOGZj
OTI0ZTM1M2ZmZDQ4M2RmN2I5NWRhMjQ0M2FlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTE3MCw2ICsxMTcx
LDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBDbGllbnRPcmlnaW4m
LCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbCB7IH0K
IH07CiAKK2NsYXNzIEVtcHR5V2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tS
ZWdpc3RyeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxFbXB0eVdlYkxvY2tSZWdpc3RyeT4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5V2ViTG9j
a1JlZ2lzdHJ5KTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgcmVxdWVzdExvY2soY29uc3Qg
Q2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJMb2NrTW9kZSwgYm9vbCwgYm9vbCwgRnVuY3Rp
b248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KKyAgICB2b2lkIHJlbGVh
c2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9p
ZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWwgeyB9CisgICAgdm9pZCBzbmFwc2hvdChj
b25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2Vy
U25hcHNob3QmJik+JiYpIHsgfQorICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIHsgfQorfTsKKwog
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmln
dXJhdGlvbiB7CkBAIC0xMTg2LDYgKzEyMDEsNyBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAg
ICAgRW1wdHlCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpLAorICAgICAgICBFbXB0
eVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCksCiAgICAgICAgIER1bW15UGVybWlzc2lvbkNvbnRy
b2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3RvcmFnZVByb3Zp
ZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNTcwNmFkODYyOGZiOWJiMmM0OTg2NTM1YzYzMmQ5ZDJk
YWM5MTNlZi4uZjM3ZDA1OWIwZWI1MjZjNTQ5YzBkN2RlYjRlYTVhMDg4MGZmMGQ4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0zMDYsNiArMzA2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBtX3Zp
c2l0ZWRMaW5rU3RvcmUoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9y
ZSkpCiAgICAgLCBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3Ry
eShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBtX3Nl
c3Npb25JRChwYWdlQ29uZmlndXJhdGlvbi5zZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFZJREVPKQog
ICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyKCp0aGlzLCAmUGFnZTo6
cGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lckZpcmVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCBmMWUwOGJjNGZlYzA3NDkxNmEzNzMzYWRmZjYyMDcxZGE0ZWQzODU2Li43NzlkOTNhMjQ1OTA1
MmMxMjMwYjAzMTMwODgwZDdhNDRiZmY5NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTY3LDYgKzE2
Nyw3IEBAIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRlcjsKIGNs
YXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKIApAQCAtMjk4LDYgKzI5OSw4IEBAIHB1YmxpYzoK
ICAgICBCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgp
IHsgcmV0dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoUmVmPEJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeT4mJik7IC8vIE9ubHkgdXNlZCBieSBXZWJLaXRMZWdhY3kuCiAKKyAgICBXZWJMb2Nr
UmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5OyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoUGFnZShjb25zdCBGdW5j
dGlvbjx2b2lkKFBhZ2UmKT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdW5zaWduZWQg
bm9uVXRpbGl0eVBhZ2VDb3VudCgpOwogCkBAIC0xMTMyLDYgKzExMzUsNyBAQCBwcml2YXRlOgog
ICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlkZXI7CiAgICAg
UmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8QnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8
V2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWZQdHI8V2hlZWxFdmVu
dFRlc3RNb25pdG9yPiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvcjsKICAgICBXZWFrSGFzaFNldDxB
Y3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVy
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAxOTdj
NzhlNGZlOTgxZWVmOGMyYWQ0YWZiNjU3NjZjNWIzODhlYzdhLi5hZTQyN2I3ZDJjZmU3YjIyMmE1
NWQ4NWU5ODE4YjA0NDc4NTRjY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0
dGVybi5oIgogI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
VmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lmIEVO
QUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogI2VuZGlmCkBAIC02
Myw3ICs2NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246
OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVk
aXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQ
cm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVy
LCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxV
c2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3Jk
ZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJv
bGxlciwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1
ZVJlZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCitQYWdlQ29u
ZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
bmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2Vi
UlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlciwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYm
IGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1Ry
YWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYg
bWVkaWFSZWNvcmRlclByb3ZpZGVyLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmIGJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgUmVmPFdlYkxvY2tSZWdpc3RyeT4mJiB3ZWJMb2NrUmVn
aXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJvbGxlciwg
VW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1ZVJlZjxN
b2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9u
SUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkK
ICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNzUsNiAr
NzYsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlk
ZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCiAgICAgLCB1c2VyQ29udGVudFByb3Zp
ZGVyKFdURk1vdmUodXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBicm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoV1RGTW92ZShicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgd2ViTG9j
a1JlZ2lzdHJ5KFdURk1vdmUod2ViTG9ja1JlZ2lzdHJ5KSkKICAgICAsIHNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKICAgICAsIG1l
ZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRlcikpCiAgICAg
LCBwZXJtaXNzaW9uQ29udHJvbGxlcihXVEZNb3ZlKHBlcm1pc3Npb25Db250cm9sbGVyKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA3ZmIzMzQ2NTdlMzEyMGM1
YWRiZDJkNGQyYWZmYjYwMGFiMjliYjJmLi5iYWM2ZmIyZjVlNjFkNDE3ZmY5YzU4NGNkYTQ4YmI0
NjllOWQwNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC03
NCwxMSArNzQsMTIgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xT
dGF0ZVRyYWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiAKIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBS
ZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiYmLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmLCBSZWY8UGVybWlz
c2lvbkNvbnRyb2xsZXI+JiYsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYsIFVuaXF1ZVJl
ZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFdlYkxvY2tSZWdp
c3RyeT4mJiwgUmVmPFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVBy
b3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFn
ZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVm
PFVzZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZp
c2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeT4gYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAgIFJlZjxXZWJMb2NrUmVn
aXN0cnk+IHdlYkxvY2tSZWdpc3RyeTsKICAgICAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKaW5kZXggODJhYTVmMjJkZDcyMGMxOTE4NDZhOTQyYTM5MTRjYmZlYWM4NmM3ZS4u
NTIxNGYyMTdiMGIyNDhlMDA0ZmE1ZGVjMWFkMDk1ODAxMWQ5MTU4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CkBAIC0yMjksNiArMjI5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAg
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eQorICAgIFVJUHJvY2Vzcy9XZWJMb2NrTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkKICAgICBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wKQEAgLTMwNyw2ICszMDgsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lO
X0ZJTEVTCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlcgogCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeQogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25D
b25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBhNzg5N2I5NjFhMzlkYWY5MjdjNTRkMTJlZmEzYzg5NzE0OTdiMDJmLi44NTky
ZDk5ZDJlMzZhZmM5ZWY4NWRjYzFjM2Y1NzRlYzE5NWVlZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNTMsNiArMTUzLDcgQEAgJChQ
Uk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgpAQCAtMjE3LDYgKzIxOCw3IEBAICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0Lnhj
ZmlsZWxpc3QKaW5kZXggOTNhNjE0NmQ2YjEzOWNiOGExNmExNzFiYjc3ZDQ0YmQzYjU4YjY1Yi4u
YTU5ZTYyM2IwOWU2YTk3ZWZmZWQ0ZjljNTJmNTczNjM2NDVlYWM1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zODcsNiArMzg3LDkg
QEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVX
ZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVX
ZWJMb2NrUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgK
QEAgLTUyNiw2ICs1MjksOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lz
dHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5
TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VzLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdp
c3Rlck1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDU3
NDM4NjVhNGFjODMyZDNlNWRiZDRhZmQ0MzhiZDc1MzJjZDkyMy4uMTkzMzg4NDk2MWI0YmMzMDRm
MDg5YjBiNTRlMTQ4OTFiNWMzNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAt
MTY4LDYgKzE2OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9pb3MvU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlciBcCiAJVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVBy
b3h5IFwKIAlVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAorCVVJUHJvY2Vz
cy9XZWJMb2NrUmVnaXN0cnlQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgXApA
QCAtMjE4LDYgKzIxOSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvV2ViUlRDTW9uaXRvciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJNRE5TUmVnaXN0ZXIgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2
ZXIgXAorCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IFwK
IAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBc
CiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyIFwKIAlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRl
eCA3NmMyZGViYWZkOTFkMTZmOGQ3NzA4OTNmNDg4OTY5MDBkZmUyNmQyLi4yYzgzOWE5ZTliY2Q4
ZTlmMTIxZGY4OTMwZmY0MmZjNjBjYjI3ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkKQEAgLTMxMiw2ICszMTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6U291cmNlQnVmZmVyQXBw
ZW5kTW9kZScsCiAgICAgICAgICdXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25D
bGllbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0
eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tS
ZW5kZXJlckludGVybmFsVW5pdElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggM2U0M2QzZTEz
YTc2NzhmODE0Y2I2YzQ3NDEyNzA5YTMzM2Q3OTU0Yi4uZmU2MDQxMmMyYTE1MmFiNWM0MmVmYWZj
MGJiOGJhMjRhNDc4OWZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC00MzUsNiArNDM1LDcgQEAgVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcAorVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVBy
b3h5LmNwcAogVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKIFVJUHJvY2Vzcy9XZWJP
cGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmNwcAogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5jcHAKQEAgLTc4MSw2ICs3ODIsNyBAQCBXZWJQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAogV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcAogCitXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC04NDcsOCArODQ5LDYg
QEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1l
c3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAKLVdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKLQogUmVt
b3RlQWRhcHRlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNl
aXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTg3
MSwzICs4NzEsNiBAQCBSZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlU2hh
ZGVyTW9kdWxlTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZVRleHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
TWVzc2FnZVJlY2VpdmVyLmNwcAorV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjU1NWJmN2NhOTUxN2NkMjMxNjlkNzExMTFhYmVkMWU2N2E5MzRiZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCisKKyNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdp
c3RyeS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFz
c2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV9wcm9jZXNzLmNvbm5lY3Rp
b24oKSkKKworV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OldlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlBy
b2Nlc3NQcm94eSYgcHJvY2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIG1f
cHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworV2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6On5XZWJMb2NrUmVnaXN0cnlQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlcXVlc3RMb2NrKFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBsb2Nr
TW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNL
KGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVu
dGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVxdWVzdExvY2so
V1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUo
bmFtZSksIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdKGJvb2wgc3VjY2VzcykgeworICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcm9jZXNzLnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkQ29tcGxldGVMb2NrUmVxdWVzdChs
b2NrSWRlbnRpZmllciwgY2xpZW50SUQsIHN1Y2Nlc3MpLCAwKTsKKyAgICB9LCBbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRTdGVhbExvY2sobG9ja0lkZW50aWZpZXIs
IGNsaWVudElEKSwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lKQoreworICAgIE1F
U1NBR0VfQ0hFQ0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nl
c3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQu
cHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkp
OworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVs
ZWFzZUxvY2soV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IFdURk1vdmUobmFtZSkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjphYm9ydExv
Y2tSZXF1ZXN0KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6
V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIE1FU1NBR0VfQ0hF
Q0sobG9ja0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lk
ZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1f
cHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuYWJvcnRMb2NrUmVx
dWVzdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RG
TW92ZShuYW1lKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURh
dGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnNuYXBzaG90KFdURk1vdmUoY2xpZW50T3JpZ2lu
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3Ry
eVByb3h5OjpjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
KQoreworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBt
X3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRl
RGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuY2xpZW50SXNHb2luZ0F3YXkoV1RGTW92ZShj
bGllbnRPcmlnaW4pLCBjbGllbnRJRCk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OnByb2Nlc3NEaWRFeGl0KCkKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndl
YkxvY2tSZWdpc3RyeSgpLmNsaWVudHNBcmVHb2luZ0F3YXkobV9wcm9jZXNzLmNvcmVQcm9jZXNz
SWRlbnRpZmllcigpKTsKK30KKworI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYmEzMWE5YjkyYjcxNjFjN2NhZDYwMmJmYmExYjgzNjk5NzMzMjdj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja01vZGUuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworc3RydWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBXZWJMb2NrTWFuYWdlclNu
YXBzaG90OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OworCitjbGFzcyBXZWJMb2NrUmVnaXN0cnlQcm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgV2ViTG9ja1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgfldl
YkxvY2tSZWdpc3RyeVByb3h5KCk7CisKKyAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKKworcHJpdmF0ZToKKyAgICAvLyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lk
IHJlcXVlc3RMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRl
bnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmlu
ZyYmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJD
b3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFN0cmluZyYmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJD
b3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyU25hcHNob3QmJik+JiYpOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
KTsKKworICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9j
a1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhYmMyNTRjNDFlMGUwMTkx
NTZjYTgxMmM0NmZlNzkwMzA1MTdlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4g
V2ViTG9ja1JlZ2lzdHJ5UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgUmVxdWVzdExvY2soc3Ry
dWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSwgZW51bTpib29sIFdlYkNvcmU6OldlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCisgICAgUmVsZWFzZUxvY2so
c3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkKKyAgICBBYm9ydExvY2tSZXF1ZXN0KHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpIC0+IChib29sIHdhc0Fib3J0ZWQpIEFzeW5j
CisgICAgU25hcHNob3Qoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4p
IC0+IChzdHJ1Y3QgV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCBzbmFwc2hvdCkgQXN5
bmMKKyAgICBDbGllbnRJc0dvaW5nQXdheShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNs
aWVudE9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xp
ZW50SWQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAwMjhjOGQ4ZWYwNzE0YzgyZWI5MDRjOTRlN2UyOTcxZDg1YmFlYjEzLi5jMThkMDc2NjMy
ZTM4YzZhMjNmNjhmNTVkZTZlNTVhNzJkYjA4ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJC
YWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdp
c3RyeVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91
cC5oIgpAQCAtMjQwLDYgKzI0MSw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5
KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1f
Y2FwdGl2ZVBvcnRhbE1vZGUoY2FwdGl2ZVBvcnRhbE1vZGUpCiAgICAgLCBtX2Nyb3NzT3JpZ2lu
TW9kZShjcm9zc09yaWdpbk1vZGUpCiAgICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291
bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3Vu
dGVyRXZlbnQ6OkRlY3JlbWVudCkgbWF5YmVTaHV0RG93bigpOyB9KQorICAgICwgbV93ZWJMb2Nr
UmVnaXN0cnkobWFrZVVuaXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQcm94eT4oKnRoaXMpKQogewog
ICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKICAgICBX
RUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJvY2VzcywgImNvbnN0cnVjdG9yOiIpOwpAQCAt
NTI4LDYgKzUzMCw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiAgICAgbV91
c2VySW5pdGlhdGVkQWN0aW9uTWFwLmNsZWFyKCk7CiAgICAgbV9zbGVlcERpc2FibGVycy5jbGVh
cigpOwogCisgICAgbV93ZWJMb2NrUmVnaXN0cnktPnByb2Nlc3NEaWRFeGl0KCk7CisKICNpZiBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBtX3JvdXRpbmdBcmJpdHJhdG9yLT5wcm9j
ZXNzRGlkVGVybWluYXRlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZGE2ZGM2OGVlYmNlY2I0MjM2MjdlYzk4OWQ2YmNhYTgwMTU3NDk3
My4uY2QzMzA4NjQ5NDQzYjVlM2VkMmI0ZjcxYTIyNzFmNmZlNTcwOGFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDYgKzkzLDcgQEAgY2xhc3Mg
VmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKQEAgLTY3NCw2ICs2NzUsNyBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICNlbmRpZgorICAgIFVu
aXF1ZVJlZjxXZWJMb2NrUmVnaXN0cnlQcm94eT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZmMxZDlhZTk4OTNkZDkx
MDE2NzNmN2M4ZGFlNmYzYjliYThlMzljNy4uOTA5NzkzZTM3NTY4YzA0MmIxMDAyYTI2YWEwMjc0
Nzg0YTkxZTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFj
a0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCBXZWJzaXRl
RGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4mJiBjb25maWd1cgogI2lmIEhBVkUoQVBQX1NTTykKICAgICAsIG1fc29BdXRob3JpemF0
aW9uQ29vcmRpbmF0b3IobWFrZVVuaXF1ZVJlZjxTT0F1dGhvcml6YXRpb25Db29yZGluYXRvcj4o
KSkKICNlbmRpZgorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxs
UHJpdmlsZWdlcygpKTsKICAgICByZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aAppbmRleCA2MTk2MjgwZjc2ZGExMjAyOThlMmI3YWIxNjQwNWQyZjBiYTI4OTIzLi4xZGUyNWE2
NjA1N2YyZDY2YzYyOTllNWViYmI4MTQ2YmVlOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC03NSw2
ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBMb2Nh
bFdlYkxvY2tSZWdpc3RyeTsKIAogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb247CiB9CkBAIC0zMTcsNiArMzE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50
KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYmIGNsaWVudCkgeyBtX2NsaWVudCA9
IFdURk1vdmUoY2xpZW50KTsgfQogCiAgICAgQVBJOjpIVFRQQ29va2llU3RvcmUmIGNvb2tpZVN0
b3JlKCk7CisgICAgV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3Ry
eSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9CiAKICAgICB2b2lkIHJlbmFt
ZU9yaWdpbkluV2Vic2l0ZURhdGEoVVJMJiYsIFVSTCYmLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApAQCAtNDcxLDYgKzQ3Myw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGU+IG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsgLy8gTGF6aWx5IGNvbXB1dGVk
LgogI2VuZGlmCisgICAgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxv
Y2tSZWdpc3RyeTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGIxMjA0ZTNjNDNiYjg2YWVkNDZiM2M1MTEwMzUzOGVhNTcy
YjhkODAuLmE0NTExNWY0ODlhYTJjY2JjOWJlYzRjZTE3ZGY2MDdiZTI4NWI1MjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA4LDYg
KzkwOCw3IEBACiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYz
RkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVB
RDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwogCQk0NjVGNEUw
NjIzMEIyRTk1MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUY0RTA1MjMwQjJFN0Mw
MDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovOyB9OworCQk0NjVGQTcy
NjI3NTdEOTNEMDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYy
QiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovOyB9OwogCQk0NjZCQzAzQzFGQTI2NkRBMDAy
RkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovOyB9OwogCQk0NjcxRkYxRjIzMjE3
RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAv
KiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovOyB9OwogCQk0NjdFNDNFODIyNDNGRjdEMDBC
MTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2N0U0M0U3MjI0M0ZGNkQwMEIxMzkyNCAv
KiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwpAQCAtNDE3Niw2ICs0MTc3
LDkgQEAKIAkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSWRlbnRpZmll
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVh
SW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwNTIzMEIyRTdDMDAzQ0VE
QjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZU5hbWVzcGFjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1
RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzgxRkEyNjZDOTAwMkZB
OUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8q
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQxODYsNiArNDE5MCw4IEBACiAJCTQ2ODA5QTdCMjNEOTIyNTMwMEMyOTdE
MCAvKiBXZWJDb29raWVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb29raWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
ODM1NjlBMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QjIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
Njg5QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0Njg5QjkxMDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OURFODAyMjczRUNDNUQwMDkzMDI3NiAvKiBQcm9j
ZXNzTGF1bmNoZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFByb2Nlc3NMYXVuY2hlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkEyQjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZl
bmVzc1RpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFj
a2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00MjA0LDYgKzQyMTAsOCBAQAogCQk0NkNFM0IxMDIzRDhDODNEMDAxNkE5NkEg
LyogV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
REYwNjNBMUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVj
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTk3NjBBMjc1N0Y2QzkwMEFD
REQzNyAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyog
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0QTI2OUUwNTE3MDBE
RDQ4QUIgLyogTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1MzgsNiArMTA1NDYsOSBA
QAogCQkJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNE
RjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JB
QiAvKiBtYWMgKi8sCisJCQkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeS5jcHAgKi8sCisJCQkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQx
MDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1
MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQz
QTlDREUyNUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8s
CkBAIC0xMDU0NSw2ICsxMDU1Niw3IEBACiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8q
IFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovLAogCQkJCTQ2RUUyODQ3MjY5RTA0OUIwMERE
NDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovLAogCQkJCTQ2RUUyODQ4
MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLywKKwkJ
CQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lm1lc3NhZ2VzLmluICovLAogCQkJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0RCAvKiBXZWJDYXB0
aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8sCiAJCQkJRTNBODZGQkIyNjk1OEQ4MzAwNTky
NjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQkMxMTFBNTMx
MTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCkBAIC0xMDgyOCw2ICsx
MDg0MCw5IEBACiAJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXIuY3BwICovLAogCQkJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJNTFDOEUxOUIxRjIxNjE3MjAwQkY3MzFCIC8qIFdl
Ykljb25EYXRhYmFzZS5oICovLAorCQkJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJM
b2NrUmVnaXN0cnlQcm94eS5jcHAgKi8sCisJCQkJNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8q
IFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8sCisJCQkJNDY1RkE3MjQyNzU3RDkxODAwNzIzNjJC
IC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTJEM0VGNDQwMTkx
NzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovLAogCQkJCTJE
M0VGNDQxMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLywK
IAkJCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRlLmNwcCAq
LywKQEAgLTEyNDQ5LDggKzEyNDY0LDggQEAKIAkJCQk1MTYwRTk1RTI3NEMyQTAzMDA1NjczODgg
LyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwRTk1OTI3
NEMwRDg5MDA1NjczODggLyogUHVzaEFwcEJ1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFG
N0JCN0IyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5RjI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGMkYy
NzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0xMzMzNCw2ICsxMzM0OSw3IEBACiAJCQkJQkNCNjM0NzgxMTZC
RjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QkE1MDUx
Njk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTYyODBDNzE5MTk5NTBDMDA2QUQ5RjkgLyogV2ViS2l0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QjcyNUM4MUQz
NDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMzM5OCw2ICsxMzQxNCw3IEBACiAJCQkJMUExRTA5MzQxODg2MUQzODAwRDJE
QzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEy
RjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2Vi
UHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTJDRDY5QTI3MjFGMEE5MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUg
LyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEz
NTQ4LDcgKzEzNTY1LDYgQEAKIAkJCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyogV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Qzc5NUQ3MTIyOUYzNzU3
MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTFBNTU1RjYxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERh
ZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTYw
MTEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDOTM4RTExMTgwREU0NDAwODVFNUZFIC8qIFdLQ29u
dGV4dFByaXZhdGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCmluZGV4IGFhNzQzYzYyZTNmM2I1NTQzY2E3Y2ZjN2I1MmUyZTMwYWQ5OTE5Y2QuLmY5
Yjg1MjQ2ZGY1YjZiMjM5YWYwZGE4Y2JmMDk1Mjg1NTU0NzdlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgor
I2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0aWFsaXph
dGlvbkRhdGEuaCIKICNpbmNsdWRlICJXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCIKQEAg
LTE0OCw2ICsxNDksNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0
YWxsU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyQ29udGV4dERhdAogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0
ZShtX3BhZ2VHcm91cElEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zb2NrZXRQcm92aWRlciA9
IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUobV93ZWJQYWdlUHJveHlJRCk7CiAgICAgcGFnZUNv
bmZpZ3VyYXRpb24uYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
d2ViTG9ja1JlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5
KCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1fdXNlckNv
bnRlbnRDb250cm9sbGVyOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmxpYldlYlJUQ1Byb3ZpZGVyID0gbWFrZVVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyTGliV2Vi
UlRDUHJvdmlkZXI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFlYWYwOWVlNmIzNzU5Y2VkNDI3MjdmMmZmZjBlNWIzZDkzOThlOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKKworI2luY2x1
ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1Jl
Z2lzdHJ5UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9pZCgpPiBs
b2NrU3RvbGVuSGFuZGxlcjsKK307CisKK3N0cnVjdCBMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsK
KyAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBsb2NrR3JhbnRlZEhhbmRsZXI7Cit9OworCitzdHJ1
Y3QgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpMb2Nrc1NuYXBzaG90IHsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdD4gcGVuZGluZ1JlcXVlc3RzOwor
ICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIExvY2tJbmZvPiBoZWxkTG9j
a3M7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwZW5kaW5nUmVxdWVzdHMu
aXNFbXB0eSgpICYmIGhlbGRMb2Nrcy5pc0VtcHR5KCk7IH0KK307CisKK1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmIHByb2Nlc3MpCit7Cisg
ICAgcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeTo6flJlbW90ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWws
IGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIs
IEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKK3sKKyAgICBMb2NrUmVxdWVz
dCByZXF1ZXN0IHsgeyBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBXVEZNb3ZlKGdyYW50
ZWRIYW5kbGVyKSB9OworICAgIGF1dG8mIHNuYXBzaG90ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LmVuc3VyZShjbGllbnRJRCwgW10geyByZXR1cm4gTG9ja3NTbmFwc2hvdCB7IH07IH0pLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICBzbmFwc2hvdC5wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZXF1ZXN0TG9jayhjbGllbnRP
cmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgbG9ja01vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVsZWFz
ZUxvY2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAg
IGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAg
aWYgKGl0ICE9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkgeworICAgICAgICBpdC0+
dmFsdWUuaGVsZExvY2tzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgIGlmIChpdC0+
dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJl
bW92ZShpdCk7CisgICAgfQorCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNz
YWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlJlbGVhc2VMb2NrKGNsaWVudE9yaWdpbiwgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpBYm9ydExvY2tSZXF1ZXN0KGNsaWVu
dE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBkaWRBYm9ydCkgbXV0YWJsZSB7
CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBkaWRBYm9ydCkgeworICAgICAgICAgICAgYXV0byBp
dCA9IHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7Cisg
ICAgICAgICAgICBpZiAoaXQgIT0gd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5l
bmQoKSkgeworICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMucmVtb3Zl
KGxvY2tJZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVu
dC5yZW1vdmUoaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGRpZEFib3J0KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2Nr
UmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNo
b3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6U25h
cHNob3QoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDApOworfQor
Cit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIG1fbG9ja3NTbmFwc2hvdFBlckNs
aWVudC5yZW1vdmUoY2xpZW50SUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQo
TWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpDbGllbnRJc0dvaW5nQXdheShjbGllbnRP
cmlnaW4sIGNsaWVudElEKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpk
aWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCwgYm9vbCBzdWNjZXNzKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGll
bnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVu
dC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IGl0
LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYgKCFw
ZW5kaW5nUmVxdWVzdC5sb2NrR3JhbnRlZEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gbG9ja0dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShwZW5kaW5nUmVxdWVzdC5sb2NrR3Jh
bnRlZEhhbmRsZXIpOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBpdC0+dmFsdWUuaGVsZExv
Y2tzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92ZShwZW5kaW5nUmVxdWVzdCkpOworICAgIGVs
c2UgeworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbG9j
a3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIGxvY2tHcmFudGVk
SGFuZGxlcihzdWNjZXNzKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZFN0
ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7CisgICAgYXV0
byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAo
aXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIGxvY2tJbmZvID0gaXQtPnZhbHVlLmhlbGRMb2Nrcy50YWtlKGxvY2tJZGVudGlm
aWVyKTsKKyAgICBpZiAoIWxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sb2Nrc1NuYXBz
aG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisKKyAgICBsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxl
cigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMTViMWFhZmM1NGM4YTIxNTdjNTJmZjBjZGE5NjgzNDM2Y2IxYWFk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc1F1YWxpZmllZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdp
c3RyeS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBj
cmVhdGUoV2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnkocHJvY2VzcykpOyB9CisgICAgflJlbW90ZVdlYkxvY2tSZWdpc3RyeSgp
OworCisgICAgLy8gV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LgorICAgIHZvaWQgcmVxdWVzdExv
Y2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lk
KCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIHZvaWQgcmVsZWFzZUxvY2soY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUpIGZpbmFsOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBzbmFwc2hvdChjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxv
Y2tNYW5hZ2VyU25hcHNob3QmJik+JiYpIGZpbmFsOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3
YXkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIu
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBSZW1vdGVXZWJMb2NrUmVnaXN0
cnkoV2ViUHJvY2VzcyYpOworCisgICAgLy8gSVBDIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9p
ZCBkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBzdWNjZXNzKTsKKyAg
ICB2b2lkIGRpZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworCisgICAgc3RydWN0IExvY2tzU25h
cHNob3Q7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgTG9ja3NTbmFwc2hvdD4gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5t
ZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmE3YWVhMmJkNGJkNzcyYTJkYWRlZDRjNmY3ZWMyNzFm
ZjRhZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbWVzc2FnZXMgLT4gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IHsKKyAg
ICBEaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGll
bnRJRCwgYm9vbCBzdWNjZXNzKTsKKyAgICBEaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElEKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggNWMzY2ZkNDIzODc4YjZjYzU1MjAzNTJmYWQwNDVjY2Y1OWYw
Y2IwMC4uM2JkZmE3YzlkOTMzYmQ5ZGUwMGJmNzIwZmQ0NzUxYzcwODZiN2Y4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU4LDYgKzU4LDcg
QEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJS
ZW1vdGVXZWJJbnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC01NzMsNiArNTc0LDcgQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBw
YXJhbWV0ZXJzKQogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uUHJv
dmlkZXI+KG1faWRlbnRpZmllciksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPigqdGhpcyksCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeSgpLAorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0
ZSgqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3RvcmFnZVByb3ZpZGVyPigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYk1vZGVsUGxheWVyUHJvdmlkZXI+KCp0aGlzKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk0MzA0YjcxMWZkNGZhZWEz
YjIwZTczOWM5OTZhNDdiOGM3MmFkMzQuLmY2ZTg3NjI0NmJmZGQ2YWFkMDA3OWQwZWVjYTNiZjcz
ZGJlNzBmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5
LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJl
bW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdp
c3RyeS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRh
LmgiCkBAIC0yNzksNiArMjgwLDcgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLCBt
X3dlYkxvYWRlclN0cmF0ZWd5KCpuZXcgV2ViTG9hZGVyU3RyYXRlZ3kpCiAgICAgLCBtX2NhY2hl
U3RvcmFnZVByb3ZpZGVyKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSkKICAgICAs
IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6
Y3JlYXRlKCkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3RyeShSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2Nvb2tpZUphcihXZWJDb29raWVKYXI6OmNyZWF0ZSgp
KQogICAgICwgbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZShSZXBvcnRpbmdFbmRwb2ludHNDYWNo
ZTo6Y3JlYXRlKCkpCiAgICAgLCBtX2Ruc1ByZWZldGNoSHlzdGVyZXJpcyhbdGhpc10oUEFMOjpI
eXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRl
OjpTdG9wcGVkKSBtX2Ruc1ByZWZldGNoZWRIb3N0cy5jbGVhcigpOyB9KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOWFkZTNjMDA1YWYyZTIyNzFhZmNhYmZmZDY4MTUy
MzY3NmVmYjcwYS4uMTRjZGY3NTE1YzYyYzQ1ZGFiOWY5ZGI4MTZmZGNiMmQ4ODVjZjMzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xh
c3MgUHJvY2Vzc0Fzc2VydGlvbjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1v
dGVMZWdhY3lDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeTsKK2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIHN0cnVjdCBTZXJ2aWNlV29y
a2VySW5pdGlhbGl6YXRpb25EYXRhOwogY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiBjbGFzcyBVc2Vy
RGF0YTsKQEAgLTM0MCw2ICszNDEsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDYWNoZVN0b3JhZ2VQ
cm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVBy
b3ZpZGVyLmdldCgpOyB9CiAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5n
ZXQoKTsgfQorICAgIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkgeyBy
ZXR1cm4gbV93ZWJMb2NrUmVnaXN0cnkuZ2V0KCk7IH0KICAgICBXZWJDb29raWVKYXImIGNvb2tp
ZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAgICAgV2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXImIHdlYlNvY2tldENoYW5uZWxNYW5hZ2VyKCkgeyByZXR1cm4gbV93ZWJTb2NrZXRD
aGFubmVsTWFuYWdlcjsgfQogICAgIFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlJiBy
ZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIHsgcmV0dXJuIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2Fj
aGUuZ2V0KCk7IH0KQEAgLTY3Niw2ICs2NzgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNh
Y2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJlZjxXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAg
IFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogICAgIFJlZjxX
ZWJDb29raWVKYXI+IG1fY29va2llSmFyOwogICAgIFJlZjxXZWJDb3JlOjpSZXBvcnRpbmdFbmRw
b2ludHNDYWNoZT4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZTsKICAgICBXZWJTb2NrZXRDaGFu
bmVsTWFuYWdlciBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDBjNzQ0ZGRjZWIzMzI2ZDA2NzE0N2EwNmVi
OTEyMWZiMTBlNTdmNDUuLjU2NjQyYzIyMmQ2YmM1NDNhZjllNzU5YjYzOTMyYWE2ZWQ4Mzg2ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIzMSw2
ICsyMzEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET00uaD4KQEAgLTE0Mzgs
NiArMTQzOSwxOCBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVy
SWZOZWNlc3NhcnkoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBSZWY8V2ViQ29yZTo6TG9jYWxXZWJM
b2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KGJvb2wgaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNv
cmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gZGVmYXVsdFJlZ2lzdHJ5OworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gcHJp
dmF0ZVJlZ2lzdHJ5OworICAgIGF1dG8mIGV4aXN0aW5nUmVnaXN0cnkgPSBpc1ByaXZhdGVCcm93
c2luZ0VuYWJsZWQgPyBwcml2YXRlUmVnaXN0cnkgOiBkZWZhdWx0UmVnaXN0cnk7CisgICAgaWYg
KGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3Ry
eS5nZXQoKTsKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmNyZWF0ZSgpOworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAg
ICByZXR1cm4gcmVnaXN0cnk7Cit9CisKIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0
aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdy
b3VwTmFtZQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdvKCk7CkBA
IC0xNTQzLDYgKzE1NTYsNyBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFt
ZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBtYWtl
VW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAg
ICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxmIHBy
ZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3JlYXRl
V2ViTG9ja1JlZ2lzdHJ5KFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZF0pLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUo
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlk
ZXI+KCkKQEAgLTE4MjQsNiArMTgzOCw3IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRX
aXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRl
cj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShb
W3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKKyAgICAgICAgZ2V0
T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3Np
bmdFbmFibGVkXSksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6
OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3RvcmFnZVBy
b3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5
ZXJQcm92aWRlcj4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBmNDYzMDc5
ZDk4MWJmZTJhNThjMmEyNGIyZmY1MTA5YzI0MmQ2ZjA4Li40ZmZjZGU5YzUzMjcwMmQ5MzRkM2M3
YzEzNTUzN2NlYjI2MTVmMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAt
MTczLDYgKzE3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkNvcmVUZXh0UmVuZGVyZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNsdWRlIDxjb21kZWYuaD4KQEAgLTI5
OTIsNiArMjk5MywxNiBAQCBib29sIFdlYlZpZXc6OnNob3VsZEluaXRpYWxpemVUcmFja1BvaW50
SGFjaygpCiAgICAgcmV0dXJuIHNob3VsZENyZWF0ZVNjcm9sbGJhcnM7CiB9CiAKK3N0YXRpYyBS
ZWY8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lz
dHJ5KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeT4+IGV4aXN0aW5nUmVnaXN0cnk7CisgICAgaWYgKGV4aXN0aW5nUmVn
aXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKKyAg
ICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgp
OworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAgICByZXR1cm4gcmVn
aXN0cnk7Cit9CisKIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBf
SW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOYW1lKQogewogICAgIEhSRVNVTFQg
aHIgPSBTX09LOwpAQCAtMzA2NSw2ICszMDc2LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0
aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4K
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAg
ICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKGZhbHNlKSwKKyAgICAg
ICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQ
ZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
Q29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTZiNzk2NDc0MjExYmU2NGRiYzE3NjE5OGY1
ODc2ZDJlZDllMzgyOC4uYWM2NzEzYWVjM2MyOGFkZDhhZmQ1MjMwNGI3NzA2NGRjYjFmMjUwYyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1NvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XZWJMb2Nrcy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgQVBJIHRlc3QgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDBmYTczYWU2M2QxNWExMTZmMThiNDk4MWU0ZTcwODhmMGU0MTg0YjIu
LjQ5ZmI5MjY2ZGI0MzYzNjFjZjQzM2JiNDMwOTI1NTdmMTdkZWNjYzUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1NvdXJjZXNDb2NvYS50eHQKQEAgLTI5Myw2ICsyOTMsNyBAQCBUZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYnNpdGVEYXRhc3RvcmUubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJDcnlwdG9NYXN0ZXJLZXku
bW0KIFRlc3RzL1dlYktpdENvY29hL1dlYkdMUG9saWN5Lm1tCitUZXN0cy9XZWJLaXRDb2NvYS9X
ZWJMb2Nrcy5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1t
CiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzVGVybWluYXRlLm1tCiBUZXN0cy9XZWJLaXRD
b2NvYS9XZWJQdXNoRGFlbW9uLm1tCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4MGYxYmY5
MDgyMmQ4ZmYwNDYwMmEzNjY3MmY2MmFkNjhmNjMyZmMuLjIxMDMwNzQyOTFjNDFlN2UyMDUyNzgx
MWZhNDU3YTk1NTEwNWE5ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTMzLDYgKzE5
MzMsNyBAQAogCQk0NENERTREMzI2RUU2RTQxMDA5RjZBQ0IgLyogVHlwZUNhc3RzQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUeXBlQ2FzdHNDb2NvYS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRDRjMxRkIyNDk5M0Y2NjAwOUNCNkNC
IC8qIENvbnRleHRNZW51QWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENvbnRleHRNZW51QWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDRENTAwOEQyNkZFOUVENjAwMEVCMTJGIC8qIFJldGFpblB0ckFSQy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJldGFpblB0ckFSQy5tbTsgcGF0aCA9IG5z
L1JldGFpblB0ckFSQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDYwNjE1NDUy
NzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
TG9ja3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MEMyRkM4MjcwMzlEN0Qw
MDQ3RUYxMSAvKiBTZXJ2aWNlV29ya2VyUGFnZVByb3RvY29sLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
cnZpY2VXb3JrZXJQYWdlUHJvdG9jb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDYxMkMyQjgyMTBBNkFCRjAwQjc4OEE2IC8qIExvYWRGaWxlVGhlblJlbG9hZC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRGaWxlVGhlblJlbG9hZC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYyOEM4RTgyMzY3QUJCQzAwQjA3M0YwIC8q
IFdLU2VjdXJpdHlPcmlnaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tTZWN1cml0eU9yaWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
NTcyLDYgKzM1NzMsNyBAQAogCQkJCTgzMEYyRTBCMjA5QTZBNzQwMEQzNkZGMSAvKiBXZWJDb250
ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbSAqLywKIAkJCQk1N0E3OTg1NjIyNEFCMzRFMDBBN0Y2
RjEgLyogV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tICovLAogCQkJCTVDOTczRjVCMUY1OEVGMEEwMDM1
OUMyNyAvKiBXZWJHTFBvbGljeS5tbSAqLywKKwkJCQk0NjA2MTU0NTI3NTgyNEI0MDBBQjYxM0Qg
LyogV2ViTG9ja3MubW0gKi8sCiAJCQkJNTE3MTRFQjYxQ0Y4QzdBNDAwNDcyM0M0IC8qIFdlYlBy
b2Nlc3NLaWxsSURCQ2xlYW51cC5tbSAqLywKIAkJCQlDMUQ4RUUyMTIwMjhFOEUzMDA4RUIxNDEg
LyogV2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbSAqLywKIAkJCQk1QzE1N0EwMjI3MTdDM0IxMDBFRDUy
ODAgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YTk1NDQ2NjEwZGNmY2U1
YmNmNjBmZjgwOWYwMzdlMzc3YzVlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tCkBAIC0wLDAgKzEsMjA4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIK
KyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0
ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmg+CisKK25hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJMb2NrcywgU25hcHNob3RBY3Jvc3NQcm9j
ZXNzZXMpCit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAg
ICB7ICIvIiwgeyAiZm9vIiB9IH0KKyAgICB9KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjEg
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGZv
ciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhw
ZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRv
U3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJh
dGlvbjEgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBh
dXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
MS5nZXQoKV0pOworICAgIFt3ZWJWaWV3MSBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVy
LnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9u
ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdl
Ol4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2Us
IEAiQUNRVUlSRUQiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZp
ZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBs
b2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgn
QUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxl
dGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29uZmlndXJhdGlvbjIuZ2V0KCkucHJvY2Vz
c1Bvb2wgPSBbY29uZmlndXJhdGlvbjEgcHJvY2Vzc1Bvb2xdOworICAgIGZvciAoX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVh
dHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2Vi
TG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbjIgcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgYXV0byB3ZWJWaWV3MiA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsKKyAg
ICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOwor
CisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAg
RVhQRUNUX05FKHBpZDEsIHBpZDIpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3
MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAg
ZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0
OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2JhcicsIGxvY2sgPT4geyB3ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3
IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3Vs
dCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0gZmFs
c2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0
cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMCBwZW5kaW5nIGxv
Y2tzLCBhbmQgMiBoZWxkIG9uZXMuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBA
IjAtMiIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEgZXZh
bHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9
PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBz
bmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkg
JiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJm
b3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAg
ICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDIgaGVsZCBvbmVzLgor
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTIiKTsKKyAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmln
YXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGgg
KyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVy
Ol4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJv
cik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKwor
VEVTVChXZWJMb2NrcywgTG9ja1JlcXVlc3RXYWl0aW5nT25Bbm90aGVyUHJvY2VzcykKK3sKKyAg
ICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7ICJm
b28iIH0gfQorICAgIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0
dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJM
b2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMSBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gd2ViVmlldzEg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24xLmdldCgpXSk7Cisg
ICAgW3dlYlZpZXcxIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsK
KworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAg
IEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7Cisg
ICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAq
bWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIp
OworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEgZXZhbHVhdGVK
YXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyBy
ZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpe
KGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3Ip
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBh
dXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxs
b2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9jZXNzUG9vbCA9IFtjb25m
aWd1cmF0aW9uMSBwcm9jZXNzUG9vbF07CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJl
ICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAg
ICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJs
ZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMi5nZXQoKV0pOworICAgIFt3ZWJWaWV3MiBz
eW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBp
ZDIgPSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlk
MSwgcGlkMik7CisKKyAgICBfX2Jsb2NrIGJvb2wgbG9ja0FjcXVpcmVkID0gZmFsc2U7CisgICAg
W3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVz
c2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOwor
ICAgICAgICBsb2NrQWNxdWlyZWQgPSB0cnVlOworICAgIH1dOworCisgICAgLy8gUmVxdWVzdGlu
ZyB0aGUgc2FtZSBsb2NrIG5hbWUgYXMgd2ViVmlldzEgc28gdGhlIHJlcXVlc3Qgc2hvdWxkIGdl
dCBxdWV1ZWQgdW50aWwgd2ViVmlldzEgcmVsZWFzZXMgaXQuCisgICAgW3dlYlZpZXcyIGV2YWx1
YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsg
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQn
KTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRs
ZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGxvY2tBY3F1aXJlZCk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAg
W3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVz
c2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMSBwZW5kaW5nIGxvY2ssIGFuZCAx
IGhlbGQgb25lLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIxLTEiKTsKKyAg
ICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNj
cmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVu
ZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBs
ZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBF
Q1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4o
TlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAi
QUNRVUlSRUQiKTsKKyAgICAgICAgbG9ja0FjcXVpcmVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAg
IC8vIE5vdyBjbG9zZSB0aGUgd2ViVmlldzEuIFRoaXMgc2hvdWxkIHJlbGVhc2UgdGhlICdmb28n
IGxvY2sgYW5kIGFsbG93IHdlYlZpZXcyIHRvIGFjcXVpcmUgaXQuCisgICAgW3dlYlZpZXcxIF9j
bG9zZV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmxvY2tBY3F1aXJlZCk7CisK
KyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0Fu
eU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQg
YmUgMCBwZW5kaW5nIGxvY2tzLCBhbmQgMSBoZWxkIG9uZS4KKyAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKG1lc3NhZ2UsIEAiMC0xIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAg
IFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50
aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0
TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVs
ZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkK
</data>
<flag name="commit-queue"
          id="470867"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445634</attachid>
            <date>2021-12-01 16:51:29 -0800</date>
            <delta_ts>2021-12-01 17:36:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201165128.patch</filename>
            <type>text/plain</type>
            <size>123523</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCmluZGV4IGJmODk1NjE4MmJmYzIyMTNlNTRiYWMzMzA0OTQ1ZTNiNmIy
MjRlYzQuLjQ1M2QxMjIxOGFlMjgzZmE4OGY1ZDAzOTU5Y2E5ZmZlMmM5ZjY0ZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQpAQCAtMTgyLDYgKzE4MiwxMSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKIAorICAgIE1vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5oCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja0lkZW50aWZp
ZXIuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKwogICAgIE1vZHVsZXMv
d2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAogICAgIE1vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAK
aW5kZXggN2U1YjU1MTQ4NWFjNjU1MWRkNWYwYzE5MDQxYjNlMjkzZjFiNmNlZC4uOWQ0ZjZmNmMw
MThhMjkyNDQ5MThhNmI5N2NiYzAxNzhjZTE5Y2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAtMzEsMTEgKzMxLDE0
IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNXZWJMb2NrTWFuYWdl
clNuYXBzaG90LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYkxvY2suaCIKICNp
bmNsdWRlICJXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldv
cmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CkBAIC01Myw2ICs1Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xp
ZW50T3JpZ2luRnJvbUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJM
b2NrTWFuYWdlcjo6TG9ja1JlcXVlc3QgewogICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwog
ICAgIFN0cmluZyBuYW1lOwogICAgIFdlYkxvY2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhj
bHVzaXZlIH07CiAgICAgUmVmUHRyPFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxs
YmFjazsKQEAgLTEzNywxNCArMTQxLDE1IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25zJiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmll
ciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZN
b3ZlKGdyYW50ZWRDYWxsYmFjayksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1
dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRl
ZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9j
a09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUg
eworICAgIHJlcXVlc3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwg
bmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlm
aWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAg
ICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwg
c3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVu
dGlmaWVyXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9t
aXNlKGxvY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBB
Ym9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAg
ICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2Miw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENv
bXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAK
ICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAm
JiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAg
ICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlm
aWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIApAQCAtMTY1LDE1ICsxNzAsMTUgQEAgdm9pZCBXZWJMb2Nr
TWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllciwgYm8KICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2Fs
bGJhY2stPmhhbmRsZUV2ZW50KGxvY2sucHRyKCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVBy
b21pc2U+IHdhaXRpbmdQcm9taXNlID0gcmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5
cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAg
ICAgICAgICAgaWYgKCF3YWl0aW5nUHJvbWlzZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7Cisg
ICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRp
ZmllciwgcmVxdWVzdC5jbGllbnRJRCwgcmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBz
ZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBF
eGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQo
d2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgp
LCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSBy
ZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBuYW1lID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlz
ZV0geworICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGlu
Z1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhp
cywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0
LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCA9IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1
ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNlXSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwog
ICAgICAgICAgICAgICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0
aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9IGVsc2UgewpAQCAtMTg4LDMzICsxOTMsMzMgQEAgdm9pZCBX
ZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBs
b2NrSWRlbnRpZmllciwgYm8KICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYg
b3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChb
Y29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIo
KSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUg
PSBjcm9zc1RocmVhZENvcHkobmFtZSksIG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0
aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUgPSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRp
ZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhh
bmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9j
ayhsb2NrSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUo
Z3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRp
ZmllciwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3Nd
KGF1dG8mKSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGll
bnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3Nz
VGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0
ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxl
ciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7
CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwg
Z3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2Vzcykg
bXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNv
bnRleHRUaHJlYWQoY2xpZW50SUQsIFtncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhh
bmRsZXIpLCBzdWNjZXNzXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRl
ZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCByZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNl
cHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFz
ZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJl
YWRDb3B5KGV4Y2VwdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxv
Y2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJl
YWQoY2xpZW50SUQsIFtsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIo
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJM
b2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJl
bGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBu
YW1lKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpXSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmln
aW4oY2xpZW50T3JpZ2luKS0+cmVsZWFzZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAg
IGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2Ns
aWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFk
Q29weShuYW1lKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxv
Y2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0p
OwogfQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFk
KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
ZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1f
Y2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFt
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50
T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0
byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9j
a1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtj
bGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Ym9vbCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTIyMyw4ICsyMjgsOCBAQCB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5
KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+c25hcHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNu
YXBzaG90KSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlm
aWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdp
biA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7Cisg
ICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90KGNsaWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVy
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hv
dCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJl
YWRDb3B5KHNuYXBzaG90KV0oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNob3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAy
LDExICszMDcsMjkgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQog
ICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xl
YXIoKTsKIAotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0
SWRlbnRpZmllcik7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAg
ICAgcmVnaXN0cnkuY2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRp
Zmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRo
cmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0
byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkp
OworCisgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8g
cGFnZSA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAg
dGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnkoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQ
cm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250
ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3Ry
eSgpKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1Jl
cXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9yZWxlYXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXgg
ZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5YzNkNTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1
NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7
CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENhbGxiYWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5Owog
CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBA
IC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01h
bmFnZXIoTmF2aWdhdG9yQmFzZSYpOwogCi0gICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwg
RnVuY3Rpb248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFp
blRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1h
aW5UaHJlYWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcy
LDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdl
YkxvY2tJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2
b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYm
IHRhc2spOworCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFs
OwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaAppbmRleCA3ZjUzM2MzY2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEw
ZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNlZjdhYzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJT
bmFwc2hvdC5oCkBAIC0zOCwxMiArMzgsNTUgQEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3QgewogICAgICAgICBTdHJpbmcgY2xpZW50SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENv
cHkoKSBjb25zdCB7IHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElk
Lmlzb2xhdGVkQ29weSgpIH07IH0KKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBt
b2RlIDw8IGNsaWVudElkOyB9CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZl
Y3RvcjxJbmZvPiBoZWxkOwogICAgIFZlY3RvcjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9j
a01hbmFnZXJTbmFwc2hvdCBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhy
ZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJlYWRDb3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsg
ZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVj
b2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2Vi
TG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbz4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5h
bWU7CisgICAgZGVjb2RlciA+PiBuYW1lOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7Cisg
ICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlmICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNv
ZGVyID4+IGNsaWVudElkOworICAgIGlmICghY2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92
ZSgqY2xpZW50SWQpIH0gfTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IGhlbGQ7CisgICAgZGVjb2RlciA+PiBoZWxkOworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5k
aW5nOworICAgIGRlY29kZXIgPj4gcGVuZGluZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBX
VEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2
YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1MDI5ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2
Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja01vZGUuaApAQCAtMjYsNiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9ja01vZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51
bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJvb2wgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3YmJkMzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi45NzRj
ZWJmYjM0OWM3YjM5MDQ1NjgyNjI5MDlkMzYwNmMzY2JiMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2
ICszMyw5MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0
cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKLSAgICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiByZWxlYXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJP
cmlnaW5SZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGVyT3JpZ2luUmVnaXN0
cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOwor
ICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOworCisgICAgc3RydWN0IExvY2tJbmZvIHsKKyAgICAg
ICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiByZWdpc3RyeTsKKyAgICAgICAgV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElEOworICAgICAgICBXZWJMb2NrTW9kZSBtb2RlOworICAgICAgICBGdW5j
dGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworICAgIH07CisKKyAgICB2b2lkIHJlcXVl
c3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxv
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVx
dWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRzQXJl
R29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xp
ZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJPcmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdp
c3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisgICAgc3RydWN0IExvY2tSZXF1ZXN0IDog
TG9ja0luZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZChi
b29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgfTsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3RyeTo6
TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0gICAgU3RyaW5nIG5hbWU7Ci0gICAgRnVuY3Rpb248
dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgdm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RR
dWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYpOworICAgIGJvb2wg
aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKKworICAgIFdlYWtQdHI8TG9j
YWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFsUmVnaXN0cnk7CisgICAgQ2xpZW50T3JpZ2luIG1f
Y2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1f
bG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZv
Pj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0aWMgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxv
Y2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgpCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojp+TG9j
YWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+Cit7CisgICAgaWYgKGF1dG8gZXhpc3RpbmdS
ZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKSkKKyAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworCisgICAgcmV0dXJuIFBlck9yaWdpblJlZ2lz
dHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9yaWdpbik7Cit9CisKK2F1dG8gTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4KIHsKLSAgICBB
U1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1h
cDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+PiByZWdpc3RyeU1hcDsKLSAgICByZXR1
cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJuIG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xp
ZW50T3JpZ2luKTsKIH0KIAotUmVmPFdlYkxvY2tSZWdpc3RyeT4gV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKK1JlZjxMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk+IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQ
ZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdp
c3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8g
ZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5TWFwKCkuZ2V0KG9yaWdpbikpCi0gICAgICAgIHJl
dHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmln
aW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwgY2xpZW50T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVnaXN0cnkob3JpZ2luKSk7CitMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmln
aW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5KQorICAgICwgbV9jbGll
bnRPcmlnaW4oY2xpZW50T3JpZ2luKQoreworICAgIGdsb2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2lu
UmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2luLCB0aGlzKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5
OjpXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29y
aWdpbihvcmlnaW4pCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5Q
ZXJPcmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAgcmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRo
aXMpOworICAgIGlmIChtX2dsb2JhbFJlZ2lzdHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5
LT5tX3Blck9yaWdpblJlZ2lzdHJpZXMucmVtb3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2Vi
TG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBz
dGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFu
ZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8q
IHJlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5V
U0VEKHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9y
aWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciks
IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI3JlcXVlc3QtYS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVx
dWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVh
c2VIYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhh
bmRsZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RG
TW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhp
cywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5k
bGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFs
KSB7CiAgICAgICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBp
ZiAoaXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9j
a0luZm8gOiBpdC0+dmFsdWUpCi0gICAgICAgICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRs
ZXIoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJl
cXVlc3QiIH0pOworICAgICAgICAgICAgICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7
CiAgICAgICAgICAgICBtX2hlbGRMb2Nrcy5yZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChpZkF2YWlsYWJsZSAmJiAhaXNHcmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDgg
KzEzMywxNCBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVz
dFF1ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxv
Y2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L3dlYi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVhc2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6
OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6
cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKIHsKICAgICBhdXRvIGl0ID0gbV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBp
ZiAoaXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkpCkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nCiAgICAgICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1
ZXVlSXRlcmF0b3ItPnZhbHVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAgICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1Jl
cXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1
ZXN0Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdp
c3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0
b3IgPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVy
YXRvciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAg
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIGNvbnN0IFMKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93
ZWItbG9ja3MvI2dyYW50YWJsZQotYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNv
bnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1
ZXN0KSBjb25zdAogewogICAgIGF1dG8gcXVldWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1
ZU1hcC5maW5kKHJlcXVlc3QubmFtZSk7CiAgICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2Nr
UmVxdWVzdFF1ZXVlTWFwLmVuZCgpICYmICZxdWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9
ICZyZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dy
YW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1
ZQotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0
cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25z
dCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUg
KCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJz
dCgpKSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBB
U1NFUlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwgcmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAK
K3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkp
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnkt
PnNuYXBzaG90KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3NuYXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdl
YkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFu
YWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYg
cGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9j
a01hbmFnZXI6OlNuYXBzaG90JiYKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBz
aG90KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5
KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVu
dHNBcmVHb2luZ0F3YXkoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0lu
Zm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdyYXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5Ojpj
bGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRz
QXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNo
Q2xpZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBv
cHRpbWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNo
IGNsaWVudHMuCiAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8m
IHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVNYXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVl
LnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVx
dWVzdC5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5y
ZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVudCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0
UmVxdWVzdHMuYXBwZW5kKHBhaXIua2V5KTsKQEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SQogCiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAg
ICAgZm9yIChhdXRvJiBwYWlyIDogbV9oZWxkTG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJu
IGxvY2tJbmZvLmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRMb2Nrcy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdl
YkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SQogICAgIH0KIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
Y2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikK
K3sKKyAgICBWZWN0b3I8Q2xpZW50T3JpZ2luPiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9y
KG1fcGVyT3JpZ2luUmVnaXN0cmllcy5rZXlzKCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3Jp
Z2luIDogY2xpZW50T3JpZ2lucykgeworICAgICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0
aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5
LT5jbGllbnRzQXJlR29pbmdBd2F5KFtwcm9jZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8p
IHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vz
c0lkZW50aWZpZXI7IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApp
bmRleCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRjNzc2MzI0ZWVhZGQ5NDNhMDZjLi44YjYzMTRlOGIx
MWJlMmE1ZDMwYmE3OTI4MTgwMmFjYjVjZjc3NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxvY2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRpb247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFw
c2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9j
a1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwotICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2
aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2Vi
TG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2Vw
dGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2Nr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNv
bnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRP
cmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3By
b3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBM
b2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkpOyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9y
aWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50
T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYm
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0
IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50
aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJbmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAot
ICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lk
IHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1Jl
cXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3JpZ2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdp
blJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsK
KyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4o
Y29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9v
cmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hl
bGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBt
X3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjBlNDI4ODM5NzU2OGQ0NTBkMTJmMTg1YjhmNmZlYTYwNjY0ZTE3OC4uMGYwYzhjOTU3ZTRjZDVm
ZGYzNzFhNDZkYWJkMDgwNzMwMDFlOTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxMSwxMCArMTMxMSwxMiBAQAogCQk0
NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2
QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjI3M0NBRjI2MEU1OUVGMDA2
RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2MEU1OURGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9y
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc4MDJCMjI3NDcxMTg1MDBE
QTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJFNEM1MDI2MTZBODExMDAzQTJDNjcgLyogU2NyaXB0
QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYzNEM3MkMyNzU3REFCMjAwMjZB
ODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIwMjc0NzExN0IwMERBOUZCNiAvKiBXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM1MjFBQTIwODEw
OTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKLQkJNDY0
NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxv
Y2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjQ0RjdGODI3MkExQzFGMDA1NTU5
OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUUyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tH
cmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdl
YkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01hbmFnZXIuaCAqLzsgfTsK
IAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlFIC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0YzMjcyQTFDMTYwMDU1NTk5RSAv
KiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU1Miw3ICszNzU1NCw5IEBACiAJCQkJMEZDRjMzMkYw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
QTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3
RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQwMEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjM0QzcyQzI3NTdEQUIyMDAyNkE4MTUgLyog
V2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjcyNzJB
MUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjRDQUYw
OTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9ja1JlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAz
YTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEyZTdmZjJlZTk2YjM1Li5jMDg3ODVhZjhmYzkyNGUz
NTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlZp
c2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExNzAsNiArMTE3MSwyMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9Owog
CitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0
cnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlXZWJMb2NrUmVnaXN0cnk+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVdlYkxvY2tSZWdp
c3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9ja01vZGUsIGJvb2wsIGJvb2wsIEZ1bmN0aW9uPHZv
aWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdm9pZCByZWxlYXNlTG9j
ayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgc25hcHNob3QoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBz
aG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9y
aWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSB7IH0KK307CisKIFBhZ2VD
b25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRp
b24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIEVt
cHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSwKKyAgICAgICAgRW1wdHlXZWJM
b2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAgICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVy
OjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2MjhmYjliYjJjNDk4NjUzNWM2MzJkOWQyZGFjOTEz
ZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdkZWI0ZWE1YTA4ODBmZjBkOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVk
TGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQog
ICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkpKQogICAgICwgbV9zZXNzaW9u
SUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lvbklEKQogI2lmIEVOQUJMRShWSURFTykKICAgICAs
IG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lcigqdGhpcywgJlBhZ2U6OnBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjFl
MDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3MWRhNGVkMzg1Ni4uNzc5ZDkzYTI0NTkwNTJjMTIz
MGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2Nyw2ICsxNjcsNyBA
QCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFz
cyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFzcyBX
aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAgLTI5OCw2ICsyOTksOCBAQCBwdWJsaWM6CiAgICAg
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJl
dHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2ViS2l0TGVnYWN5LgogCisgICAgV2ViTG9ja1JlZ2lz
dHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeTsgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZm9yRWFjaFBhZ2UoY29uc3QgRnVuY3Rpb248
dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG5vblV0
aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEzMiw2ICsxMTM1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxW
aXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxv
Y2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0
TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAgICAgV2Vha0hhc2hTZXQ8QWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMTk3Yzc4ZTRm
ZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4ZWM3YS4uYWU0MjdiN2QyY2ZlN2IyMjJhNTVkODVl
OTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4u
aCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0
ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpZiBFTkFCTEUo
V0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNlbmRpZgpAQCAtNjMsNyAr
NjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNv
bnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJv
dmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIs
IFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8
TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQorUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBz
b2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1By
b3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIs
IFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29r
aWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlh
UmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYgd2ViTG9ja1JlZ2lzdHJ5
LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1
ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQ
bGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAg
LCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTc1LDYgKzc2LDcg
QEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdU
Rk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgdXNlckNvbnRlbnRQcm92aWRlcihX
VEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAsIHdlYkxvY2tSZWdp
c3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJl
Y29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogICAgICwgcGVy
bWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShwZXJtaXNzaW9uQ29udHJvbGxlcikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggN2ZiMzM0NjU3ZTMxMjBjNWFkYmQy
ZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZiMmY1ZTYxZDQxN2ZmOWM1ODRjZGE0OGJiNDY5ZTlk
MDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsMTEg
Kzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVU
cmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
biB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFBlcm1pc3Npb25D
b250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9k
ZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9y
YWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJlZjxXZWJMb2NrUmVnaXN0cnk+
JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRl
cj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25m
aWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgogICAgIFJlZjxVc2Vy
Q29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVk
TGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5
PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CmluZGV4IDgyYWE1ZjIyZGQ3MjBjMTkxODQ2YTk0MmEzOTE0Y2JmZWFjODZjN2UuLjUyMTRm
MjE3YjBiMjQ4ZTAwNGZhNWRlYzFhZDA5NTgwMTFkOTE1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApA
QCAtMjI5LDYgKzIyOSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkKKyAg
ICBVSVByb2Nlc3MvV2ViTG9ja01hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkKICAgICBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sCkBAIC0zMDcsNiArMzA4LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxF
UwogCiAgICAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIK
IAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5CiAg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVj
dGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
aW5kZXggYTc4OTdiOTYxYTM5ZGFmOTI3YzU0ZDEyZWZhM2M4OTcxNDk3YjAyZi4uODU5MmQ5OWQy
ZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVlZWY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTUzLDYgKzE1Myw3IEBAICQoUFJPSkVD
VF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dl
YkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUGFz
dGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTIxNyw2ICsyMTgsNyBAQCAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IDkzYTYxNDZkNmIxMzljYjhhMTZhMTcxYmI3N2Q0NGJkM2I1OGI2NWIuLmE1OWU2
MjNiMDllNmE5N2VmZmVkNGY5YzUyZjU3MzYzNjQ1ZWFjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMzg3LDYgKzM4Nyw5IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3Bl
Y3RvclVJTWVzc2FnZXNSZXBsaWVzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5z
cGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5oCkBAIC01
MjYsNiArNTI5LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlcy5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJN
ZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ1NzQzODY1
YTRhYzgzMmQzZTVkYmQ0YWZkNDM4YmQ3NTMyY2Q5MjMuLjE5MzM4ODQ5NjFiNGJjMzA0ZjA4OWIw
YjU0ZTE0ODkxYjVjMzQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE2OCw2
ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvaW9zL1NtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogCVVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eSBc
CiAJVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IFwKKwlVSVByb2Nlc3MvV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
IFwKIAlVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IFwKQEAgLTIx
OCw2ICsyMTksNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTURO
U1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29sdmVyIFwK
KwlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeSBcCiAJV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNzZj
MmRlYmFmZDkxZDE2ZjhkNzcwODkzZjQ4ODk2OTAwZGZlMjZkMi4uMmM4MzlhOWU5YmNkOGU5ZjEy
MWRmODkzMGZmNDJmYzYwY2IyN2QwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CkBAIC0zMTIsNiArMzEyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zv
cndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlNvdXJjZUJ1ZmZlckFwcGVuZE1v
ZGUnLAogICAgICAgICAnV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uQ2xpZW50
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRlbnRpZmll
cicsCisgICAgICAgICdXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0
ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDNlNDNkM2UxM2E3Njc4
ZjgxNGNiNmM0NzQxMjcwOWEzMzNkNzk1NGIuLmZlNjA0MTJjMmExNTJhYjVjNDJlZmFmYzBiYjhi
YTI0YTQ3ODlmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDM1LDYgKzQzNSw3IEBAIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
CiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2Vi
R2VvbG9jYXRpb25Qcm92aWRlci5jcHAKK1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5j
cHAKIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwCiBVSVByb2Nlc3MvV2ViT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuY3BwCkBAIC03ODEsNiArNzgyLDcgQEAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVu
dC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKIAorV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1NoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtODQ3LDggKzg0OSw2IEBAIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1NZXNzYWdl
UmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCi1X
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0KIFJlbW90ZUFk
YXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVCaW5kR3JvdXBNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC04NzEsMyAr
ODcxLDYgQEAgUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVNoYWRlck1v
ZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVdlYkxvY2tSZWdp
c3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeU1lc3Nh
Z2VSZWNlaXZlci5jcHAKK1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY1NTViZjdjYTk1MTdjZDIzMTY5ZDcxMTExYWJlZDFlNjdhOTM0YmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94
eS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eS5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkxvY2tJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnku
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRp
b24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1fcHJvY2Vzcy5jb25uZWN0aW9uKCkp
CisKK1dlYkxvY2tSZWdpc3RyeVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKKyAgICBtX3Byb2Nl
c3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1dlYkxvY2tSZWdpc3RyeVByb3h5Ojp+
V2ViTG9ja1JlZ2lzdHJ5UHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpyZXF1ZXN0TG9jayhXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVy
IGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUs
IGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCit7CisgICAgTUVTU0FHRV9DSEVDSyhsb2Nr
SWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lk
ZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRpZmll
cigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisKKyAgICBtX3Byb2Nl
c3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnJlcXVlc3RMb2NrKFdURk1v
dmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3ZlKG5hbWUp
LCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXShib29sIHN1Y2Nlc3MpIHsKKyAgICAgICAg
aWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkRpZENvbXBsZXRlTG9ja1JlcXVlc3QobG9ja0lk
ZW50aWZpZXIsIGNsaWVudElELCBzdWNjZXNzKSwgMCk7CisgICAgfSwgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRF0geworICAgICAgICBpZiAo
d2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkU3RlYWxMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGll
bnRJRCksIDApOworICAgIH0pOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpyZWxl
YXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSkKK3sKKyAgICBNRVNTQUdF
X0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNv
cmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nl
c3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAg
ICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnJlbGVhc2VM
b2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZN
b3ZlKG5hbWUpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVx
dWVzdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxv
Y2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNz
SWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlm
aWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nl
c3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmFib3J0TG9ja1JlcXVlc3Qo
V1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUo
bmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJMb2NrUmVn
aXN0cnlQcm94eTo6c25hcHNob3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3Rv
cmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5zbmFwc2hvdChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94
eTo6Y2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2lu
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sK
KyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9j
ZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFT
dG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmNsaWVudElzR29pbmdBd2F5KFdURk1vdmUoY2xpZW50
T3JpZ2luKSwgY2xpZW50SUQpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5Ojpwcm9j
ZXNzRGlkRXhpdCgpCit7CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2Nr
UmVnaXN0cnkoKS5jbGllbnRzQXJlR29pbmdBd2F5KG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50
aWZpZXIoKSk7Cit9CisKKyN1bmRlZiBNRVNTQUdFX0NIRUNLCisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGJhMzFhOWI5MmI3MTYxYzdjYWQ2MDJiZmJhMWI4MzY5OTczMzI3YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVBy
b3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja0lkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tNb2RlLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK3N0cnVjdCBDbGllbnRPcmlnaW47CitzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hv
dDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKKwor
Y2xhc3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxp
Y2l0IFdlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlByb2Nlc3NQcm94eSYpOworICAgIH5XZWJMb2Nr
UmVnaXN0cnlQcm94eSgpOworCisgICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7
CisKK3ByaXZhdGU6CisgICAgLy8gSVBDIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCByZXF1
ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBu
YW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSk7
CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6
V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBTdHJpbmcmJiBuYW1lKTsKKyAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRP
cmlnaW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNu
YXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYmLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisK
KyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0
cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdp
c3RyeVByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYWJjMjU0YzQxZTBlMDE5MTU2Y2E4
MTJjNDZmZTc5MDMwNTE3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBACisj
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkxv
Y2tSZWdpc3RyeVByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFJlcXVlc3RMb2NrKHN0cnVjdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBjbGllbnRJRCwgU3RyaW5nIG5hbWUsIGVudW06Ym9vbCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBt
b2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQorICAgIFJlbGVhc2VMb2NrKHN0cnVj
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpCisgICAgQWJvcnRMb2NrUmVxdWVzdChzdHJ1Y3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKSAtPiAoYm9vbCB3YXNBYm9ydGVkKSBBc3luYworICAg
IFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luKSAtPiAo
c3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Qgc25hcHNob3QpIEFzeW5jCisg
ICAgQ2xpZW50SXNHb2luZ0F3YXkoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRP
cmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElk
KQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MDI4YzhkOGVmMDcxNGM4MmViOTA0Yzk0ZTdlMjk3MWQ4NWJhZWIxMy4uYzE4ZDA3NjYzMmUzOGM2
YTIzZjY4ZjU1ZGU2ZTU1YTcyZGIwOGY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViQmFja0Zv
cndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQ
cm94eS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIK
QEAgLTI0MCw2ICsyNDEsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQ
cm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBtX2NhcHRp
dmVQb3J0YWxNb2RlKGNhcHRpdmVQb3J0YWxNb2RlKQogICAgICwgbV9jcm9zc09yaWdpbk1vZGUo
Y3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9zaHV0ZG93blByZXZlbnRpbmdTY29wZUNvdW50ZXIo
W3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVudCkgeyBpZiAoZXZlbnQgPT0gUmVmQ291bnRlckV2
ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERvd24oKTsgfSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lz
dHJ5KG1ha2VVbmlxdWVSZWY8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+KCp0aGlzKSkKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CiAgICAgV0VCUFJP
Q0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3MsICJjb25zdHJ1Y3RvcjoiKTsKQEAgLTUyOCw2
ICs1MzAsOCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dERvd24oKQogICAgIG1fdXNlcklu
aXRpYXRlZEFjdGlvbk1hcC5jbGVhcigpOwogICAgIG1fc2xlZXBEaXNhYmxlcnMuY2xlYXIoKTsK
IAorICAgIG1fd2ViTG9ja1JlZ2lzdHJ5LT5wcm9jZXNzRGlkRXhpdCgpOworCiAjaWYgRU5BQkxF
KFJPVVRJTkdfQVJCSVRSQVRJT04pCiAgICAgbV9yb3V0aW5nQXJiaXRyYXRvci0+cHJvY2Vzc0Rp
ZFRlcm1pbmF0ZSgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IGRhNmRjNjhlZWJjZWNiNDIzNjI3ZWM5ODlkNmJjYWE4MDE1NzQ5NzMuLmNk
MzMwODY0OTQ0M2I1ZTNlZDJiNGY3MWEyMjcxZjZmZTU3MDhhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC05Myw2ICs5Myw3IEBAIGNsYXNzIFZpc2l0
ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhOwogY2xhc3MgV2ViRnJhbWVQcm94eTsKK2NsYXNzIFdl
YkxvY2tSZWdpc3RyeVByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVBy
b3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CkBAIC02NzQsNiArNjc1LDcgQEAgcHJpdmF0ZToK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CiAjZW5kaWYKKyAgICBVbmlxdWVS
ZWY8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGZjMWQ5YWU5ODkzZGQ5MTAxNjcz
ZjdjOGRhZTZmM2I5YmE4ZTM5YzcuLjkwOTc5M2UzNzU2OGMwNDJiMTAwMmEyNmFhMDI3NDc4NGE5
MWU0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dy
ZWdhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CkBAIC0xMzAsNiArMTMxLDcgQEAgV2Vic2l0ZURhdGFT
dG9yZTo6V2Vic2l0ZURhdGFTdG9yZShSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+
JiYgY29uZmlndXIKICNpZiBIQVZFKEFQUF9TU08pCiAgICAgLCBtX3NvQXV0aG9yaXphdGlvbkNv
b3JkaW5hdG9yKG1ha2VVbmlxdWVSZWY8U09BdXRob3JpemF0aW9uQ29vcmRpbmF0b3I+KCkpCiAj
ZW5kaWYKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpjcmVhdGUoKSkKIHsKICAgICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZp
bGVnZXMoKSk7CiAgICAgcmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5k
ZXggNjE5NjI4MGY3NmRhMTIwMjk4ZTJiN2FiMTY0MDVkMmYwYmEyODkyMy4uMWRlMjVhNjYwNTdm
MmQ2NmM2Mjk5ZTVlYmJiODE0NmJlZTliODFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNzUsNiArNzUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBS
ZWdpc3RyYWJsZURvbWFpbjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgTG9jYWxXZWJM
b2NrUmVnaXN0cnk7CiAKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
OwogfQpAQCAtMzE3LDYgKzMxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENsaWVudChVbmlx
dWVSZWY8V2Vic2l0ZURhdGFTdG9yZUNsaWVudD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZN
b3ZlKGNsaWVudCk7IH0KIAogICAgIEFQSTo6SFRUUENvb2tpZVN0b3JlJiBjb29raWVTdG9yZSgp
OworICAgIFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7
IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeS5nZXQoKTsgfQogCiAgICAgdm9pZCByZW5hbWVPcmln
aW5JbldlYnNpdGVEYXRhKFVSTCYmLCBVUkwmJiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKQEAgLTQ3MSw2ICs0NzMsNyBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIG11
dGFibGUgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
PiBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7IC8vIExhemlseSBjb21wdXRlZC4KICNl
bmRpZgorICAgIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVn
aXN0cnk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMTIwNGUzYzQzYmI4NmFlZDQ2YjNjNTExMDM1MzhlYTU3MmI4ZDgw
Li5hNDUxMTVmNDg5YWEyY2NiYzliZWM0Y2UxN2RmNjA3YmUyODViNTI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwOCw2ICs5MDgs
NyBAQAogCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25S
ZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
M0ZENDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgy
MUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEy
OTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBC
MkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VE
QjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLzsgfTsKKwkJNDY1RkE3MjYyNzU3
RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyog
V2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLzsgfTsKIAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMx
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNDY3MUZGMUYyMzIxN0VGRjAw
MUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNDY3RTQzRTgyMjQzRkY3RDAwQjEzOTI0
IC8qIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjdFNDNFNzIyNDNGRjZEMDBCMTM5MjQgLyogV2Vi
UHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsKQEAgLTQxNzYsNiArNDE3Nyw5IEBA
CiAJCTQ2NUY0RTAyMjMwNzU5RDUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2NUY0RTAzMjMwNzYwNEUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJ
ZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8q
IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1l
c3BhY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzIz
Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJMb2NrUmVnaXN0cnlQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0
cnlQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjZCQzAzQTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC00MTg2LDYgKzQxOTAsOCBAQAogCQk0NjgwOUE3QjIzRDkyMjUzMDBDMjk3RDAgLyog
V2ViQ29va2llQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQ29va2llQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5
QTIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlzaW9uYWxQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvdmlzaW9uYWxQYWdlUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2OUIyMUU4MUNDNzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFs
UGFnZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3Zp
c2lvbmFsUGFnZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5
MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjlERTgwMjI3M0VDQzVEMDA5MzAyNzYgLyogUHJvY2Vzc0xh
dW5jaGVyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZB
MkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5k
UHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NkEyQjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25z
aXZlbmVzc1RpbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91
bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDIwNCw2ICs0MjEwLDggQEAKIAkJNDZDRTNCMTAyM0Q4QzgzRDAwMTZBOTZBIC8qIFdl
YkJhY2tGb3J3YXJkTGlzdENvdW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZERjA2MzkxRjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1By
ZWZsaWdodENoZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYz
QTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcg
LyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZFOTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1v
dGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2RUUyODQ3MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4
NDgyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NEEyNjlFMDUxNzAwREQ0OEFC
IC8qIE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTM4LDYgKzEwNTQ2LDkgQEAKIAkJ
CQlDRDYxNzgxMTFFNkRFOTgwMDBGREE1N0QgLyogY29jb2EgKi8sCiAJCQkJMkQyOEYzREYxODg1
Q0NCNDAwNEI5RUFFIC8qIGlvcyAqLywKIAkJCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyog
bWFjICovLAorCQkJCTQ2ODlCOTEwMjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVn
aXN0cnkuY3BwICovLAorCQkJCTQ2ODlCOTBGMjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJM
b2NrUmVnaXN0cnkuaCAqLywKKwkJCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyogUmVtb3Rl
V2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFBNzI4NDQ0MTk1OUVEMTAwMDA3
QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCAqLywKIAkJCQkxQTcyODQ0NTE5NTlF
RDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5oICovLAogCQkJCUY0M0E5Q0RF
MjVENzJFMkQwMDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwICovLApAQCAt
MTA1NDUsNiArMTA1NTYsNyBAQAogCQkJCUNFREExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCAqLywKIAkJCQk0NkVFMjg0NzI2OUUwNDlCMDBERDQ4QUIg
LyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk0NkVFMjg0ODI2OUUw
NDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggKi8sCisJCQkJNDZF
OTc2MEEyNzU3RjZDOTAwQUNERDM3IC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNz
YWdlcy5pbiAqLywKIAkJCQlFM0E4NkZCQzI2OTU4RTMzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblBy
ZWZlcmVuY2VzRGVsZWdhdGUuY3BwICovLAogCQkJCUUzQTg2RkJCMjY5NThEODMwMDU5MjY0RCAv
KiBXZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oICovLAogCQkJCUJDMTExQTUzMTEyRjRG
QkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGllbnQuY3BwICovLApAQCAtMTA4MjgsNiArMTA4NDAs
OSBAQAogCQkJCUJDMUJFMUYxMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmNwcCAqLywKIAkJCQlCQzFCRTFGMDEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRp
b25Qcm92aWRlci5oICovLAogCQkJCTUxQzhFMTlCMUYyMTYxNzIwMEJGNzMxQiAvKiBXZWJJY29u
RGF0YWJhc2UuaCAqLywKKwkJCQk0NjVGQTcyNTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1Jl
Z2lzdHJ5UHJveHkuY3BwICovLAorCQkJCTQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJM
b2NrUmVnaXN0cnlQcm94eS5oICovLAorCQkJCTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBX
ZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkyRDNFRjQ0MDE5MTc2NDYz
MDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLywKIAkJCQkyRDNFRjQ0
MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggKi8sCiAJCQkJ
N0NDQ0M4RjgxQTVGNTBGRDAwOEZCMERBIC8qIFdlYk5hdmlnYXRpb25TdGF0ZS5jcHAgKi8sCkBA
IC0xMjQ0OSw4ICsxMjQ2NCw4IEBACiAJCQkJNTE2MEU5NUUyNzRDMkEwMzAwNTY3Mzg4IC8qIE1v
Y2tBcHBCdW5kbGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MEU5NTkyNzRDMEQ4
OTAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjdCQjdC
Mjc0NEM1MDcwMEM0NUE3MiAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNTE3QjVGMkYyNzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9u
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OUYyNzIzMzkzQTAwRjdG
OEVDIC8qIFdlYlB1c2hEYWVtb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0I1RjJGMjc1NzM4
MkIwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMTMzMzQsNiArMTMzNDksNyBAQAogCQkJCUJDQjYzNDc4MTE2QkYxMDYw
MDYwMzIxNSAvKiBXZWJLaXQyX0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUJBNTA1MTY5N0M0
NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2
MjgwQzcxOTE5OTUwQzAwNkFEOUY5IC8qIFdlYktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQ2NUZBNzI2Mjc1N0Q5M0QwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBQ0MwN0I3MjVDODFEMzQwMERD
NjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1
QkVDMjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICov
LApAQCAtMTMzOTgsNiArMTM0MTQsNyBAQAogCQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAv
KiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlE
MTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxMkNENjk4MjcyMUVGQzgwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGMkUyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2
OUEyNzIxRjBBOTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25zdGFudHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdl
YlJlc291cmNlSW50ZXJjZXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzU0OCw3
ICsxMzU2NSw2IEBACiAJCQkJNUM3OTVENzAyMjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1l
bnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM3OTVENzEyMjlGMzc1NzAwM0ZG
MUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxQTU1NUY2MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNTE3QjVGMkUyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25D
b25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU2MDExMjhD
NkQ5MjAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUExRUEwMjM4MURBQkZGN0UwMDk2MDIxRiAvKiBXS0NvbnRleHRNZW51TGlzdGVuZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQzkzOEUxMTE4MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAppbmRleCBhYTc0M2M2MmUzZjNiNTU0M2NhN2NmYzdiNTJlMmUzMGFkOTkxOWNkLi5mOWI4NTI0
NmRmNWI2YjIzOWFmMGRhOGNiZjA5NTI4NTU1NDc3ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKKyNpbmNs
dWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25E
YXRhLmgiCiAjaW5jbHVkZSAiV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgiCkBAIC0xNDgs
NiArMTQ5LDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNl
cnZpY2VXb3JrZXIoU2VydmljZVdvcmtlckNvbnRleHREYXQKICAgICBwYWdlQ29uZmlndXJhdGlv
bi5kYXRhYmFzZVByb3ZpZGVyID0gV2ViRGF0YWJhc2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9w
YWdlR3JvdXBJRCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc29ja2V0UHJvdmlkZXIgPSBXZWJT
b2NrZXRQcm92aWRlcjo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5SUQpOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLndlYkxv
Y2tSZWdpc3RyeSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpOwog
ICAgIHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50
Q29udHJvbGxlcjsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5s
aWJXZWJSVENQcm92aWRlciA9IG1ha2VVbmlxdWVSZWY8U2VydmljZVdvcmtlckxpYldlYlJUQ1By
b3ZpZGVyPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZWFmMDllZTZiMzc1OWNlZDQyNzI3ZjJmZmYwZTViM2Q5Mzk4ZThjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tS
ZWdpc3RyeS5jcHAKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJS
ZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3Ry
eVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdHJ1Y3QgTG9ja0luZm8geworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0
b2xlbkhhbmRsZXI7Cit9OworCitzdHJ1Y3QgTG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7CisgICAg
RnVuY3Rpb248dm9pZChib29sKT4gbG9ja0dyYW50ZWRIYW5kbGVyOworfTsKKworc3RydWN0IFJl
bW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdCB7CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpXZWJMb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3Q+IHBlbmRpbmdSZXF1ZXN0czsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBMb2NrSW5mbz4gaGVsZExvY2tzOwor
CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gcGVuZGluZ1JlcXVlc3RzLmlzRW1w
dHkoKSAmJiBoZWxkTG9ja3MuaXNFbXB0eSgpOyB9Cit9OworCitSZW1vdGVXZWJMb2NrUmVnaXN0
cnk6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeShXZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIHBy
b2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitSZW1vdGVXZWJMb2NrUmVnaXN0
cnk6On5SZW1vdGVXZWJMb2NrUmVnaXN0cnkoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlIGxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29s
IGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5j
dGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCit7CisgICAgTG9ja1JlcXVlc3QgcmVx
dWVzdCB7IHsgV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcikgfSwgV1RGTW92ZShncmFudGVkSGFu
ZGxlcikgfTsKKyAgICBhdXRvJiBzbmFwc2hvdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5l
bnN1cmUoY2xpZW50SUQsIFtdIHsgcmV0dXJuIExvY2tzU25hcHNob3QgeyB9OyB9KS5pdGVyYXRv
ci0+dmFsdWU7CisgICAgc25hcHNob3QucGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmll
ciwgV1RGTW92ZShyZXF1ZXN0KSk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5k
KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6UmVxdWVzdExvY2soY2xpZW50T3JpZ2lu
LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFp
bGFibGUpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2Nr
KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBhdXRv
IGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChp
dCAhPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpIHsKKyAgICAgICAgaXQtPnZhbHVl
LmhlbGRMb2Nrcy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOworICAgICAgICBpZiAoaXQtPnZhbHVl
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUo
aXQpOworICAgIH0KKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6
OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZWxlYXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVu
dGlmaWVyLCBjbGllbnRJRCwgbmFtZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6YWJvcnRMb2NrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJp
bmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6QWJvcnRMb2NrUmVxdWVzdChjbGllbnRPcmln
aW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSksIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgZGlkQWJvcnQpIG11dGFibGUgeworICAg
ICAgICBpZiAod2Vha1RoaXMgJiYgZGlkQWJvcnQpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSB3
ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgICAg
ICAgICAgaWYgKGl0ICE9IHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkp
IHsKKyAgICAgICAgICAgICAgICBpdC0+dmFsdWUucGVuZGluZ1JlcXVlc3RzLnJlbW92ZShsb2Nr
SWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVt
b3ZlKGl0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihkaWRBYm9ydCk7CisgICAgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5OjpzbmFwc2hvdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlNuYXBzaG90
KGNsaWVudE9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwKTsKK30KKwordm9p
ZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQu
cmVtb3ZlKGNsaWVudElEKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6Q2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2lu
LCBjbGllbnRJRCksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkQ29t
cGxldGVMb2NrUmVxdWVzdChXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJv
b2wgc3VjY2VzcykKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZp
bmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5k
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3QgPSBpdC0+dmFs
dWUucGVuZGluZ1JlcXVlc3RzLnRha2UobG9ja0lkZW50aWZpZXIpOworICAgIGlmICghcGVuZGlu
Z1JlcXVlc3QubG9ja0dyYW50ZWRIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
IGxvY2tHcmFudGVkSGFuZGxlciA9IFdURk1vdmUocGVuZGluZ1JlcXVlc3QubG9ja0dyYW50ZWRI
YW5kbGVyKTsKKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nrcy5h
ZGQobG9ja0lkZW50aWZpZXIsIFdURk1vdmUocGVuZGluZ1JlcXVlc3QpKTsKKyAgICBlbHNlIHsK
KyAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2xvY2tzU25h
cHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKyAgICB9CisKKyAgICBsb2NrR3JhbnRlZEhhbmRs
ZXIoc3VjY2Vzcyk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpkaWRTdGVhbExv
Y2soV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIGF1dG8gaXQg
PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09
IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byBsb2NrSW5mbyA9IGl0LT52YWx1ZS5oZWxkTG9ja3MudGFrZShsb2NrSWRlbnRpZmllcik7
CisgICAgaWYgKCFsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIG1fbG9ja3NTbmFwc2hvdFBl
ckNsaWVudC5yZW1vdmUoaXQpOworCisgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTE1YjFhYWZjNTRjOGEyMTU3YzUyZmYwY2RhOTY4MzQzNmNiMWFhZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9S
ZW1vdGVXZWJMb2NrUmVnaXN0cnkuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnku
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUHJvY2VzczsKKworY2xhc3MgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeSwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4gY3JlYXRl
KFdlYlByb2Nlc3MmIHByb2Nlc3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5KHByb2Nlc3MpKTsgfQorICAgIH5SZW1vdGVXZWJMb2NrUmVnaXN0cnkoKTsKKwor
ICAgIC8vIFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeS4KKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwg
RnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYm
IGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBm
aW5hbDsKKyAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgc25hcHNob3QoY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFu
YWdlclNuYXBzaG90JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
ZmluYWw7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdl
YlByb2Nlc3MmKTsKKworICAgIC8vIElQQyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgZGlk
Q29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9p
ZCBkaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKKworICAgIHN0cnVjdCBMb2Nrc1NuYXBzaG90
OworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IExvY2tzU25hcHNob3Q+IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTZhN2FlYTJiZDRiZDc3MmEyZGFkZWQ0YzZmN2VjMjcxZmY0YWVk
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21lc3NhZ2VzIC0+IFJlbW90ZVdlYkxvY2tSZWdpc3RyeSB7CisgICAgRGlk
Q29tcGxldGVMb2NrUmVxdWVzdChXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQs
IGJvb2wgc3VjY2Vzcyk7CisgICAgRGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJRCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDVjM2NmZDQyMzg3OGI2Y2M1NTIwMzUyZmFkMDQ1Y2NmNTlmMGNiMDAu
LjNiZGZhN2M5ZDkzM2JkOWRlMDBiZjcyMGZkNDc1MWM3MDg2YjdmOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAj
aW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaCIKICNpbmNsdWRlICJSZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Vzc2lv
blN0YXRlLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUg
IlNoYXJlYWJsZUJpdG1hcC5oIgpAQCAtNTczLDYgKzU3NCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVy
PihtX2lkZW50aWZpZXIpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4oKnRoaXMpLAogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkoKSwKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9j
a1JlZ2lzdHJ5KCksCiAgICAgICAgIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKnRo
aXMpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJNb2RlbFBsYXllclByb3ZpZGVyPigqdGhpcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA5NDMwNGI3MTFmZDRmYWVhM2IyMGU3
MzljOTk2YTQ3YjhjNzJhZDM0Li5mNmU4NzYyNDZiZmRkNmFhZDAwNzlkMGVlY2EzYmY3M2RiZTcw
ZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00OSw2ICs0
OSw3IEBACiAjaW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVS
ZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnku
aCIKICNpbmNsdWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpA
QCAtMjc5LDYgKzI4MCw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgICwgbV93ZWJM
b2FkZXJTdHJhdGVneSgqbmV3IFdlYkxvYWRlclN0cmF0ZWd5KQogICAgICwgbV9jYWNoZVN0b3Jh
Z2VQcm92aWRlcihXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeShXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0
ZSgpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjcmVh
dGUoKnRoaXMpKQogICAgICwgbV9jb29raWVKYXIoV2ViQ29va2llSmFyOjpjcmVhdGUoKSkKICAg
ICAsIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUoUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU6OmNy
ZWF0ZSgpKQogICAgICwgbV9kbnNQcmVmZXRjaEh5c3RlcmVyaXMoW3RoaXNdKFBBTDo6SHlzdGVy
ZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3Rv
cHBlZCkgbV9kbnNQcmVmZXRjaGVkSG9zdHMuY2xlYXIoKTsgfSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlhZGUzYzAwNWFmMmUyMjcxYWZjYWJmZmQ2ODE1MjM2NzZl
ZmI3MGEuLjE0Y2RmNzUxNWM2MmM0NWRhYjlmOWRiODE2ZmRjYjJkODg1Y2YzM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTMyLDYgKzEzMiw3IEBAIGNsYXNzIFBy
b2Nlc3NBc3NlcnRpb247CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTGVn
YWN5Q0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnk7CitjbGFzcyBSZW1vdGVXZWJMb2NrUmVnaXN0cnk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlcklu
aXRpYWxpemF0aW9uRGF0YTsKIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwogY2xhc3MgVXNlckRhdGE7
CkBAIC0zNDAsNiArMzQxLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQcm92aWRl
ci5nZXQoKTsgfQogICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSYgYnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuZ2V0KCk7
IH0KKyAgICBSZW1vdGVXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJu
IG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9CiAgICAgV2ViQ29va2llSmFyJiBjb29raWVKYXIo
KSB7IHJldHVybiBtX2Nvb2tpZUphci5nZXQoKTsgfQogICAgIFdlYlNvY2tldENoYW5uZWxNYW5h
Z2VyJiB3ZWJTb2NrZXRDaGFubmVsTWFuYWdlcigpIHsgcmV0dXJuIG1fd2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXI7IH0KICAgICBXZWJDb3JlOjpSZXBvcnRpbmdFbmRwb2ludHNDYWNoZSYgcmVwb3J0
aW5nRW5kcG9pbnRzQ2FjaGUoKSB7IHJldHVybiBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmdl
dCgpOyB9CkBAIC02NzYsNiArNjc4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDYWNoZVN0
b3JhZ2VQcm92aWRlcj4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKICAgICBSZWY8V2ViQnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWY8V2ViQ29v
a2llSmFyPiBtX2Nvb2tpZUphcjsKICAgICBSZWY8V2ViQ29yZTo6UmVwb3J0aW5nRW5kcG9pbnRz
Q2FjaGU+IG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU7CiAgICAgV2ViU29ja2V0Q2hhbm5lbE1h
bmFnZXIgbV93ZWJTb2NrZXRDaGFubmVsTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAwYzc0NGRkY2ViMzMyNmQwNjcxNDdhMDZlYjkxMjFm
YjEwZTU3ZjQ1Li41NjY0MmMyMjJkNmJjNTQzYWY5ZTc1OWI2MzkzMmFhNmVkODM4Njg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzEsNiArMjMx
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZp
ZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYlZpZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+CkBAIC0xNDM4LDYgKzE0
MzksMTggQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVj
ZXNzYXJ5KCkKIH0KICNlbmRpZgogCitzdGF0aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5PiBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShib29sIGlzUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpM
b2NhbFdlYkxvY2tSZWdpc3RyeT4+IGRlZmF1bHRSZWdpc3RyeTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IHByaXZhdGVS
ZWdpc3RyeTsKKyAgICBhdXRvJiBleGlzdGluZ1JlZ2lzdHJ5ID0gaXNQcml2YXRlQnJvd3NpbmdF
bmFibGVkID8gcHJpdmF0ZVJlZ2lzdHJ5IDogZGVmYXVsdFJlZ2lzdHJ5OworICAgIGlmIChleGlz
dGluZ1JlZ2lzdHJ5LmdldCgpKQorICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnkuZ2V0
KCk7CisgICAgYXV0byByZWdpc3RyeSA9IFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojpj
cmVhdGUoKTsKKyAgICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CisgICAgcmV0
dXJuIHJlZ2lzdHJ5OworfQorCiAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFt
ZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdHJpbmcgKilncm91cE5h
bWUKIHsKICAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZFR3bygpOwpAQCAtMTU0
Myw2ICsxNTU2LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1l
OihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3QKICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAg
ICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJl
bmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxv
Y2tSZWdpc3RyeShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwK
ICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigp
CkBAIC0xODI0LDYgKzE4MzgsNyBAQCAtIChpZClpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0
eWxlOihOU1N0cmluZyAqKXN0eWxlIGZyYW1lOihDR1JlY3QpZnJhbWUgcHJlZgogICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwK
ICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCks
CiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxm
IHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3Jl
YXRlV2ViTG9ja1JlZ2lzdHJ5KFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZF0pLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVh
dGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRl
cj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJv
dmlkZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggZjQ2MzA3OWQ5ODFi
ZmUyYTU4YzJhMjRiMmZmNTEwOWMyNDJkNmYwOC4uNGZmY2RlOWM1MzI3MDJkOTM0ZDNjN2MxMzU1
MzdjZWIyNjE1ZjExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTE3Myw2
ICsxNzMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dlYkNvcmVKSVRPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJD
b3JlVGV4dFJlbmRlcmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAjaW5jbHVkZSA8Y29tZGVmLmg+CkBAIC0yOTkyLDYg
KzI5OTMsMTYgQEAgYm9vbCBXZWJWaWV3OjpzaG91bGRJbml0aWFsaXplVHJhY2tQb2ludEhhY2so
KQogICAgIHJldHVybiBzaG91bGRDcmVhdGVTY3JvbGxiYXJzOwogfQogCitzdGF0aWMgUmVmPFdl
YkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJM
b2NrUmVnaXN0cnk+PiBleGlzdGluZ1JlZ2lzdHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lzdHJ5
LmdldCgpKQorICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAgYXV0
byByZWdpc3RyeSA9IFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsKKyAg
ICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lzdHJ5
OworfQorCiBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBC
U1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTmFtZSkKIHsKICAgICBIUkVTVUxUIGhyID0g
U19PSzsKQEAgLTMwNjUsNiArMzA3Niw3IEBAIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFt
ZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAg
ICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2Vi
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShmYWxzZSksCisgICAgICAgIGdl
dE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KCksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlz
c2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
OkR1bW15U3RvcmFnZVByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE2Yjc5NjQ3NDIxMWJlNjRkYmMxNzYxOThmNTg3NmQy
ZWQ5ZTM4MjguLmFjNjcxM2FlYzNjMjhhZGQ4YWZkNTIzMDRiNzcwNjRkY2IxZjI1MGMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nl
c3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
NzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29j
b2EudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV2ViTG9ja3MubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIEFQSSB0ZXN0IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29h
LnR4dAppbmRleCAwZmE3M2FlNjNkMTVhMTE2ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyLi40OWZi
OTI2NmRiNDM2MzYxY2Y0MzNiYjQzMDkyNTU3ZjE3ZGVjY2M1IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9T
b3VyY2VzQ29jb2EudHh0CkBAIC0yOTMsNiArMjkzLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvV0tX
ZWJzaXRlRGF0YXN0b3JlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0Rp
ZFRlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCiBU
ZXN0cy9XZWJLaXRDb2NvYS9XZWJHTFBvbGljeS5tbQorVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9j
a3MubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2Ev
V2ViUHVzaERhZW1vbi5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ODBmMWJmOTA4MjJk
OGZmMDQ2MDJhMzY2NzJmNjJhZDY4ZjYzMmZjLi4yMTAzMDc0MjkxYzQxZTdlMjA1Mjc4MTFmYTQ1
N2E5NTUxMDVhOWRkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTkzMyw2ICsxOTMzLDcg
QEAKIAkJNDRDREU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVHlwZUNhc3RzQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0Q0YzMUZCMjQ5OTNGNjYwMDlDQjZDQiAvKiBD
b250ZXh0TWVudUFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb250ZXh0TWVudUFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
RDUwMDhEMjZGRTlFRDYwMDBFQjEyRiAvKiBSZXRhaW5QdHJBUkMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXRhaW5QdHJBUkMubW07IHBhdGggPSBucy9SZXRh
aW5QdHJBUkMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MDYxNTQ1Mjc1ODI0
QjQwMEFCNjEzRCAvKiBXZWJMb2Nrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkxvY2tz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjBDMkZDODI3MDM5RDdEMDA0N0VG
MTEgLyogU2VydmljZVdvcmtlclBhZ2VQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNl
V29ya2VyUGFnZVByb3RvY29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTJD
MkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRoZW5SZWxvYWQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkRmlsZVRoZW5SZWxvYWQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MjhDOEU4MjM2N0FCQkMwMEIwNzNGMCAvKiBXS1Nl
Y3VyaXR5T3JpZ2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdL
U2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU3Miw2
ICszNTczLDcgQEAKIAkJCQk4MzBGMkUwQjIwOUE2QTc0MDBEMzZGRjEgLyogV2ViQ29udGVudFBy
b2Nlc3NEaWRUZXJtaW5hdGUubW0gKi8sCiAJCQkJNTdBNzk4NTYyMjRBQjM0RTAwQTdGNkYxIC8q
IFdlYkNyeXB0b01hc3RlcktleS5tbSAqLywKIAkJCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcg
LyogV2ViR0xQb2xpY3kubW0gKi8sCisJCQkJNDYwNjE1NDUyNzU4MjRCNDAwQUI2MTNEIC8qIFdl
YkxvY2tzLm1tICovLAogCQkJCTUxNzE0RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNz
S2lsbElEQkNsZWFudXAubW0gKi8sCiAJCQkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdl
YlByb2Nlc3NUZXJtaW5hdGUubW0gKi8sCiAJCQkJNUMxNTdBMDIyNzE3QzNCMTAwRUQ1MjgwIC8q
IFdlYlB1c2hEYWVtb24ubW0gKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmE5NTQ0NjYxMGRjZmNlNWJjZjYw
ZmY4MDlmMDM3ZTM3N2M1ZTAxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgorCituYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV2ViTG9ja3MsIFNuYXBzaG90QWNyb3NzUHJvY2Vzc2Vz
KQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAi
LyIsIHsgImZvbyIgfSB9CisgICAgfSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24xID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1l
bnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmlu
ZzpAIldlYkxvY2tzQVBJRW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24x
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0
dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byB3
ZWJWaWV3MSA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjEuZ2V0
KCldKTsKKyAgICBbd2ViVmlldzEgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1
ZXN0KCldOworCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CisgICAgRVhQRUNUX05FKHBpZDEsIDApOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldzEgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5T
U3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFD
UVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBl
dmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9
PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJ
UkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25I
YW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsK
KworICAgIGF1dG8gY29uZmlndXJhdGlvbjIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLnByb2Nlc3NQb29s
ID0gW2NvbmZpZ3VyYXRpb24xIHByb2Nlc3NQb29sXTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVz
XSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tz
QVBJRW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24yIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGF1dG8gd2ViVmlldzIgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dl
YlZpZXcyIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAg
IGF1dG8gcGlkMiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVD
VF9ORShwaWQxLCBwaWQyKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVy
Zm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworCisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5h
dmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdiYXInLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9t
aXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcg
Km1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2Nrcywg
YW5kIDIgaGVsZCBvbmVzLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTIi
KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRl
SmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNo
b3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEi
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFm
dGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8v
IFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4KKyAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUgPSB0cnVl
OworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3Iu
bG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0n
ICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1Qo
V2ViTG9ja3MsIExvY2tSZXF1ZXN0V2FpdGluZ09uQW5vdGhlclByb2Nlc3MpCit7CisgICAgVGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9vIiB9
IH0KKyAgICB9KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFs
RmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNd
KSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NB
UElFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbjEgcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3
ZWJWaWV3MSBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAg
ICBhdXRvIHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfTkUocGlkMSwgMCk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3
ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3Nh
Z2UpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAg
ICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNj
cmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJu
IG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCBy
ZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAg
ICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBj
b25maWd1cmF0aW9uMiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7CisgICAgY29uZmlndXJhdGlvbjIuZ2V0KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJh
dGlvbjEgcHJvY2Vzc1Bvb2xdOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVh
dHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAg
IGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0p
IHsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbjIgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
OllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hy
b25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQyID0g
W3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBp
ZDIpOworCisgICAgX19ibG9jayBib29sIGxvY2tBY3F1aXJlZCA9IGZhbHNlOworICAgIFt3ZWJW
aWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2Up
IHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAg
ICAgbG9ja0FjcXVpcmVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIC8vIFJlcXVlc3RpbmcgdGhl
IHNhbWUgbG9jayBuYW1lIGFzIHdlYlZpZXcxIHNvIHRoZSByZXF1ZXN0IHNob3VsZCBnZXQgcXVl
dWVkIHVudGlsIHdlYlZpZXcxIHJlbGVhc2VzIGl0LgorICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJl
dHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4o
aWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOworICAgIEVY
UEVDVF9GQUxTRShsb2NrQWNxdWlyZWQpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2Up
IHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDEgcGVuZGluZyBsb2NrLCBhbmQgMSBoZWxk
IG9uZS4KKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMS0xIik7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6
QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcu
bGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3Ry
aW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJ
UkVEIik7CisgICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBO
b3cgY2xvc2UgdGhlIHdlYlZpZXcxLiBUaGlzIHNob3VsZCByZWxlYXNlIHRoZSAnZm9vJyBsb2Nr
IGFuZCBhbGxvdyB3ZWJWaWV3MiB0byBhY3F1aXJlIGl0LgorICAgIFt3ZWJWaWV3MSBfY2xvc2Vd
OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZsb2NrQWNxdWlyZWQpOworCisgICAg
ZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNz
YWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAg
cGVuZGluZyBsb2NrcywgYW5kIDEgaGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUSht
ZXNzYWdlLCBAIjAtMSIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2Vi
VmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihz
bmFwc2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoJycgKyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVu
Z3RoKTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJCg==
</data>
<flag name="commit-queue"
          id="470875"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445647</attachid>
            <date>2021-12-01 17:32:28 -0800</date>
            <delta_ts>2021-12-01 21:34:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201173227.patch</filename>
            <type>text/plain</type>
            <size>123524</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCmluZGV4IGJmODk1NjE4MmJmYzIyMTNlNTRiYWMzMzA0OTQ1ZTNiNmIy
MjRlYzQuLjQ1M2QxMjIxOGFlMjgzZmE4OGY1ZDAzOTU5Y2E5ZmZlMmM5ZjY0ZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQpAQCAtMTgyLDYgKzE4MiwxMSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKIAorICAgIE1vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5oCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja0lkZW50aWZp
ZXIuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKwogICAgIE1vZHVsZXMv
d2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAogICAgIE1vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAK
aW5kZXggN2U1YjU1MTQ4NWFjNjU1MWRkNWYwYzE5MDQxYjNlMjkzZjFiNmNlZC4uOWQ0ZjZmNmMw
MThhMjkyNDQ5MThhNmI5N2NiYzAxNzhjZTE5Y2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAtMzEsMTEgKzMxLDE0
IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNXZWJMb2NrTWFuYWdl
clNuYXBzaG90LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYkxvY2suaCIKICNp
bmNsdWRlICJXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldv
cmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CkBAIC01Myw2ICs1Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xp
ZW50T3JpZ2luRnJvbUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJM
b2NrTWFuYWdlcjo6TG9ja1JlcXVlc3QgewogICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwog
ICAgIFN0cmluZyBuYW1lOwogICAgIFdlYkxvY2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhj
bHVzaXZlIH07CiAgICAgUmVmUHRyPFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxs
YmFjazsKQEAgLTEzNywxNCArMTQxLDE1IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25zJiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmll
ciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZN
b3ZlKGdyYW50ZWRDYWxsYmFjayksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1
dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRl
ZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9j
a09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUg
eworICAgIHJlcXVlc3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwg
bmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlm
aWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAg
ICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwg
c3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVu
dGlmaWVyXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9t
aXNlKGxvY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBB
Ym9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAg
ICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2Miw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENv
bXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAK
ICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAm
JiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAg
ICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlm
aWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIApAQCAtMTY1LDE1ICsxNzAsMTUgQEAgdm9pZCBXZWJMb2Nr
TWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllciwgYm8KICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2Fs
bGJhY2stPmhhbmRsZUV2ZW50KGxvY2sucHRyKCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVBy
b21pc2U+IHdhaXRpbmdQcm9taXNlID0gcmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5
cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAg
ICAgICAgICAgaWYgKCF3YWl0aW5nUHJvbWlzZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7Cisg
ICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRp
ZmllciwgcmVxdWVzdC5jbGllbnRJRCwgcmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBz
ZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBF
eGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQo
d2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgp
LCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSBy
ZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBuYW1lID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlz
ZV0geworICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGlu
Z1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhp
cywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0
LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCA9IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1
ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNlXSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwog
ICAgICAgICAgICAgICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0
aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9IGVsc2UgewpAQCAtMTg4LDMzICsxOTMsMzMgQEAgdm9pZCBX
ZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBs
b2NrSWRlbnRpZmllciwgYm8KICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYg
b3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChb
Y29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIo
KSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUg
PSBjcm9zc1RocmVhZENvcHkobmFtZSksIG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0
aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUgPSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRp
ZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhh
bmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9j
ayhsb2NrSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUo
Z3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRp
ZmllciwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3Nd
KGF1dG8mKSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGll
bnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3Nz
VGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0
ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxl
ciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7
CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwg
Z3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2Vzcykg
bXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNv
bnRleHRUaHJlYWQoY2xpZW50SUQsIFtncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhh
bmRsZXIpLCBzdWNjZXNzXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRl
ZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCByZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNl
cHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFz
ZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJl
YWRDb3B5KGV4Y2VwdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxv
Y2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJl
YWQoY2xpZW50SUQsIFtsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIo
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJM
b2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJl
bGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBu
YW1lKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpXSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmln
aW4oY2xpZW50T3JpZ2luKS0+cmVsZWFzZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAg
IGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2Ns
aWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFk
Q29weShuYW1lKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxv
Y2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0p
OwogfQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFk
KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
ZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1f
Y2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFt
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50
T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0
byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9j
a1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtj
bGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Ym9vbCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTIyMyw4ICsyMjgsOCBAQCB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5
KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+c25hcHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNu
YXBzaG90KSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlm
aWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdp
biA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7Cisg
ICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90KGNsaWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVy
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hv
dCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJl
YWRDb3B5KHNuYXBzaG90KV0oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNob3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAy
LDExICszMDcsMjkgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQog
ICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xl
YXIoKTsKIAotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0
SWRlbnRpZmllcik7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAg
ICAgcmVnaXN0cnkuY2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRp
Zmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRo
cmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0
byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkp
OworCisgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8g
cGFnZSA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAg
dGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnkoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQ
cm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250
ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3Ry
eSgpKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1Jl
cXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9yZWxlYXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXgg
ZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5YzNkNTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1
NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7
CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENhbGxiYWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5Owog
CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBA
IC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01h
bmFnZXIoTmF2aWdhdG9yQmFzZSYpOwogCi0gICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwg
RnVuY3Rpb248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFp
blRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1h
aW5UaHJlYWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcy
LDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdl
YkxvY2tJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2
b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYm
IHRhc2spOworCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFs
OwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaAppbmRleCA3ZjUzM2MzY2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEw
ZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNlZjdhYzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJT
bmFwc2hvdC5oCkBAIC0zOCwxMiArMzgsNTUgQEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3QgewogICAgICAgICBTdHJpbmcgY2xpZW50SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENv
cHkoKSBjb25zdCB7IHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElk
Lmlzb2xhdGVkQ29weSgpIH07IH0KKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBt
b2RlIDw8IGNsaWVudElkOyB9CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZl
Y3RvcjxJbmZvPiBoZWxkOwogICAgIFZlY3RvcjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9j
a01hbmFnZXJTbmFwc2hvdCBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhy
ZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJlYWRDb3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsg
ZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVj
b2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2Vi
TG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbz4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5h
bWU7CisgICAgZGVjb2RlciA+PiBuYW1lOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7Cisg
ICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlmICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNv
ZGVyID4+IGNsaWVudElkOworICAgIGlmICghY2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92
ZSgqY2xpZW50SWQpIH0gfTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IGhlbGQ7CisgICAgZGVjb2RlciA+PiBoZWxkOworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5k
aW5nOworICAgIGRlY29kZXIgPj4gcGVuZGluZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBX
VEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2
YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1MDI5ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2
Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja01vZGUuaApAQCAtMjYsNiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9ja01vZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51
bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJvb2wgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3YmJkMzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi45NzRj
ZWJmYjM0OWM3YjM5MDQ1NjgyNjI5MDlkMzYwNmMzY2JiMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2
ICszMyw5MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0
cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKLSAgICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiByZWxlYXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJP
cmlnaW5SZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGVyT3JpZ2luUmVnaXN0
cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOwor
ICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOworCisgICAgc3RydWN0IExvY2tJbmZvIHsKKyAgICAg
ICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiByZWdpc3RyeTsKKyAgICAgICAgV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElEOworICAgICAgICBXZWJMb2NrTW9kZSBtb2RlOworICAgICAgICBGdW5j
dGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworICAgIH07CisKKyAgICB2b2lkIHJlcXVl
c3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxv
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVx
dWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRzQXJl
R29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xp
ZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJPcmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdp
c3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisgICAgc3RydWN0IExvY2tSZXF1ZXN0IDog
TG9ja0luZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZChi
b29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgfTsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3RyeTo6
TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0gICAgU3RyaW5nIG5hbWU7Ci0gICAgRnVuY3Rpb248
dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgdm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RR
dWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYpOworICAgIGJvb2wg
aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKKworICAgIFdlYWtQdHI8TG9j
YWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFsUmVnaXN0cnk7CisgICAgQ2xpZW50T3JpZ2luIG1f
Y2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1f
bG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZv
Pj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0aWMgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxv
Y2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgpCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojp+TG9j
YWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+Cit7CisgICAgaWYgKGF1dG8gZXhpc3RpbmdS
ZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKSkKKyAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworCisgICAgcmV0dXJuIFBlck9yaWdpblJlZ2lz
dHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9yaWdpbik7Cit9CisKK2F1dG8gTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4KIHsKLSAgICBB
U1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1h
cDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+PiByZWdpc3RyeU1hcDsKLSAgICByZXR1
cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJuIG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xp
ZW50T3JpZ2luKTsKIH0KIAotUmVmPFdlYkxvY2tSZWdpc3RyeT4gV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKK1JlZjxMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk+IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQ
ZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdp
c3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8g
ZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5TWFwKCkuZ2V0KG9yaWdpbikpCi0gICAgICAgIHJl
dHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmln
aW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwgY2xpZW50T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVnaXN0cnkob3JpZ2luKSk7CitMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmln
aW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5KQorICAgICwgbV9jbGll
bnRPcmlnaW4oY2xpZW50T3JpZ2luKQoreworICAgIGdsb2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2lu
UmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2luLCB0aGlzKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5
OjpXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29y
aWdpbihvcmlnaW4pCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5Q
ZXJPcmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAgcmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRo
aXMpOworICAgIGlmIChtX2dsb2JhbFJlZ2lzdHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5
LT5tX3Blck9yaWdpblJlZ2lzdHJpZXMucmVtb3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2Vi
TG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBz
dGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFu
ZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8q
IHJlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5V
U0VEKHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9y
aWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciks
IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI3JlcXVlc3QtYS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVx
dWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVh
c2VIYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhh
bmRsZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RG
TW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhp
cywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5k
bGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFs
KSB7CiAgICAgICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBp
ZiAoaXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9j
a0luZm8gOiBpdC0+dmFsdWUpCi0gICAgICAgICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRs
ZXIoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJl
cXVlc3QiIH0pOworICAgICAgICAgICAgICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7
CiAgICAgICAgICAgICBtX2hlbGRMb2Nrcy5yZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChpZkF2YWlsYWJsZSAmJiAhaXNHcmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDgg
KzEzMywxNCBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVz
dFF1ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxv
Y2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L3dlYi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVhc2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6
OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6
cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKIHsKICAgICBhdXRvIGl0ID0gbV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBp
ZiAoaXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkpCkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nCiAgICAgICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1
ZXVlSXRlcmF0b3ItPnZhbHVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAgICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1Jl
cXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1
ZXN0Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdp
c3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0
b3IgPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVy
YXRvciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAg
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIGNvbnN0IFMKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93
ZWItbG9ja3MvI2dyYW50YWJsZQotYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNv
bnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1
ZXN0KSBjb25zdAogewogICAgIGF1dG8gcXVldWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1
ZU1hcC5maW5kKHJlcXVlc3QubmFtZSk7CiAgICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2Nr
UmVxdWVzdFF1ZXVlTWFwLmVuZCgpICYmICZxdWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9
ICZyZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dy
YW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1
ZQotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0
cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25z
dCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUg
KCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJz
dCgpKSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBB
U1NFUlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwgcmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAK
K3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkp
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnkt
PnNuYXBzaG90KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3NuYXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdl
YkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFu
YWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYg
cGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9j
a01hbmFnZXI6OlNuYXBzaG90JiYKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBz
aG90KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5
KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVu
dHNBcmVHb2luZ0F3YXkoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0lu
Zm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdyYXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5Ojpj
bGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRz
QXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNo
Q2xpZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBv
cHRpbWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNo
IGNsaWVudHMuCiAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8m
IHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVNYXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVl
LnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVx
dWVzdC5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5y
ZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVudCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0
UmVxdWVzdHMuYXBwZW5kKHBhaXIua2V5KTsKQEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SQogCiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAg
ICAgZm9yIChhdXRvJiBwYWlyIDogbV9oZWxkTG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJu
IGxvY2tJbmZvLmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRMb2Nrcy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdl
YkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SQogICAgIH0KIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
Y2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikK
K3sKKyAgICBWZWN0b3I8Q2xpZW50T3JpZ2luPiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9y
KG1fcGVyT3JpZ2luUmVnaXN0cmllcy5rZXlzKCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3Jp
Z2luIDogY2xpZW50T3JpZ2lucykgeworICAgICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0
aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5
LT5jbGllbnRzQXJlR29pbmdBd2F5KFtwcm9jZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8p
IHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vz
c0lkZW50aWZpZXI7IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApp
bmRleCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRjNzc2MzI0ZWVhZGQ5NDNhMDZjLi44YjYzMTRlOGIx
MWJlMmE1ZDMwYmE3OTI4MTgwMmFjYjVjZjc3NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxvY2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRpb247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFw
c2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9j
a1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwotICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2
aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2Vi
TG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2Vw
dGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2Nr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNv
bnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRP
cmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3By
b3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBM
b2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkpOyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9y
aWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50
T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYm
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0
IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50
aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJbmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAot
ICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lk
IHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1Jl
cXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3JpZ2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdp
blJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsK
KyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4o
Y29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9v
cmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hl
bGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBt
X3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjBlNDI4ODM5NzU2OGQ0NTBkMTJmMTg1YjhmNmZlYTYwNjY0ZTE3OC4uMGYwYzhjOTU3ZTRjZDVm
ZGYzNzFhNDZkYWJkMDgwNzMwMDFlOTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxMSwxMCArMTMxMSwxMiBAQAogCQk0
NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2
QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjI3M0NBRjI2MEU1OUVGMDA2
RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2MEU1OURGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9y
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc4MDJCMjI3NDcxMTg1MDBE
QTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJFNEM1MDI2MTZBODExMDAzQTJDNjcgLyogU2NyaXB0
QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYzNEM3MkMyNzU3REFCMjAwMjZB
ODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIwMjc0NzExN0IwMERBOUZCNiAvKiBXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM1MjFBQTIwODEw
OTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKLQkJNDY0
NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxv
Y2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjQ0RjdGODI3MkExQzFGMDA1NTU5
OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUUyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tH
cmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdl
YkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01hbmFnZXIuaCAqLzsgfTsK
IAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlFIC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0YzMjcyQTFDMTYwMDU1NTk5RSAv
KiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU1Miw3ICszNzU1NCw5IEBACiAJCQkJMEZDRjMzMkYw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
QTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3
RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQwMEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjM0QzcyQzI3NTdEQUIyMDAyNkE4MTUgLyog
V2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjcyNzJB
MUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjRDQUYw
OTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9ja1JlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAz
YTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEyZTdmZjJlZTk2YjM1Li5jMDg3ODVhZjhmYzkyNGUz
NTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlZp
c2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExNzAsNiArMTE3MSwyMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9Owog
CitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0
cnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlXZWJMb2NrUmVnaXN0cnk+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVdlYkxvY2tSZWdp
c3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9ja01vZGUsIGJvb2wsIGJvb2wsIEZ1bmN0aW9uPHZv
aWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdm9pZCByZWxlYXNlTG9j
ayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgc25hcHNob3QoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBz
aG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9y
aWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSB7IH0KK307CisKIFBhZ2VD
b25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRp
b24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIEVt
cHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSwKKyAgICAgICAgRW1wdHlXZWJM
b2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAgICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVy
OjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2MjhmYjliYjJjNDk4NjUzNWM2MzJkOWQyZGFjOTEz
ZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdkZWI0ZWE1YTA4ODBmZjBkOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVk
TGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQog
ICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkpKQogICAgICwgbV9zZXNzaW9u
SUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lvbklEKQogI2lmIEVOQUJMRShWSURFTykKICAgICAs
IG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lcigqdGhpcywgJlBhZ2U6OnBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjFl
MDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3MWRhNGVkMzg1Ni4uNzc5ZDkzYTI0NTkwNTJjMTIz
MGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2Nyw2ICsxNjcsNyBA
QCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFz
cyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFzcyBX
aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAgLTI5OCw2ICsyOTksOCBAQCBwdWJsaWM6CiAgICAg
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJl
dHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2ViS2l0TGVnYWN5LgogCisgICAgV2ViTG9ja1JlZ2lz
dHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeTsgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZm9yRWFjaFBhZ2UoY29uc3QgRnVuY3Rpb248
dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG5vblV0
aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEzMiw2ICsxMTM1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxW
aXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxv
Y2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0
TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAgICAgV2Vha0hhc2hTZXQ8QWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMTk3Yzc4ZTRm
ZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4ZWM3YS4uYWU0MjdiN2QyY2ZlN2IyMjJhNTVkODVl
OTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4u
aCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0
ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpZiBFTkFCTEUo
V0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNlbmRpZgpAQCAtNjMsNyAr
NjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNv
bnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJv
dmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIs
IFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8
TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQorUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBz
b2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1By
b3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIs
IFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29r
aWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlh
UmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYgd2ViTG9ja1JlZ2lzdHJ5
LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1
ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQ
bGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAg
LCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTc1LDYgKzc2LDcg
QEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdU
Rk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgdXNlckNvbnRlbnRQcm92aWRlcihX
VEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAsIHdlYkxvY2tSZWdp
c3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJl
Y29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogICAgICwgcGVy
bWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShwZXJtaXNzaW9uQ29udHJvbGxlcikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggN2ZiMzM0NjU3ZTMxMjBjNWFkYmQy
ZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZiMmY1ZTYxZDQxN2ZmOWM1ODRjZGE0OGJiNDY5ZTlk
MDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsMTEg
Kzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVU
cmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
biB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFBlcm1pc3Npb25D
b250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9k
ZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9y
YWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJlZjxXZWJMb2NrUmVnaXN0cnk+
JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRl
cj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25m
aWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgogICAgIFJlZjxVc2Vy
Q29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVk
TGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5
PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CmluZGV4IDgyYWE1ZjIyZGQ3MjBjMTkxODQ2YTk0MmEzOTE0Y2JmZWFjODZjN2UuLmU4ZWFk
NjAyNzNiNzUxODk0MDE2NjJkNGRmYTBiMzE3M2IyMmM4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApA
QCAtMjI5LDYgKzIyOSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkKKyAg
ICBVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5CiAgICAgVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbApAQCAtMzA3LDYgKzMwOCw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKIAogICAgIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
CiAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeQog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IGE3ODk3Yjk2MWEzOWRhZjkyN2M1NGQxMmVmYTNjODk3MTQ5N2IwMmYuLjg1OTJkOTlk
MmUzNmFmYzllZjg1ZGNjMWMzZjU3NGVjMTk1ZWVmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1Myw2ICsxNTMsNyBAQCAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLm1lc3NhZ2VzLmluCkBAIC0yMTcsNiArMjE4LDcgQEAgJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCA5M2E2MTQ2ZDZiMTM5Y2I4YTE2YTE3MWJiNzdkNDRiZDNiNThiNjViLi5hNTll
NjIzYjA5ZTZhOTdlZmZlZDRmOWM1MmY1NzM2MzY0NWVhYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTM4Nyw2ICszODcsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VzUmVwbGllcwogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxv
Y2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdp
c3RyeU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGxpZXMuaApAQCAt
NTI2LDYgKzUyOSw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJ
bnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVy
TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NTc0Mzg2
NWE0YWM4MzJkM2U1ZGJkNGFmZDQzOGJkNzUzMmNkOTIzLi4xOTMzODg0OTYxYjRiYzMwNGYwODli
MGI1NGUxNDg5MWI1YzM0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNjgs
NiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL2lvcy9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyIFwKIAlVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkg
XAogCVVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSBcCisJVUlQcm9jZXNzL1dl
YkxvY2tSZWdpc3RyeVByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSBcCiAJVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBcCkBAIC0y
MTgsNiArMjE5LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJSVENNb25pdG9yIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1E
TlNSZWdpc3RlciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBc
CisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IFwKIAlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2
YzJkZWJhZmQ5MWQxNmY4ZDc3MDg5M2Y0ODg5NjkwMGRmZTI2ZDIuLjJjODM5YTllOWJjZDhlOWYx
MjFkZjg5MzBmZjQyZmM2MGNiMjdkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtMzEyLDYgKzMxMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTb3VyY2VCdWZmZXJBcHBlbmRN
b2RlJywKICAgICAgICAgJ1dlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdElkZW50aWZp
ZXInLAorICAgICAgICAnV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXInLAogICAgICAgICAnV2Vi
Q29yZTo6V2ViU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAzZTQzZDNlMTNhNzY3
OGY4MTRjYjZjNDc0MTI3MDlhMzMzZDc5NTRiLi5mZTYwNDEyYzJhMTUyYWI1YzQyZWZhZmMwYmI4
YmEyNGE0Nzg5ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQzNSw2ICs0MzUsNyBAQCBVSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cAogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCitVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
Y3BwCiBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcAogVUlQcm9jZXNzL1dlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcApAQCAtNzgxLDYgKzc4Miw3IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKK1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9TaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTg0Nyw4ICs4NDksNiBAQCBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAot
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAotCiBSZW1vdGVB
ZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVy
LmNwcAogUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtODcxLDMg
Kzg3MSw2IEBAIFJlbW90ZVNhbXBsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVTaGFkZXJN
b2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNw
cAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVXZWJMb2NrUmVn
aXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCitXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NTU1YmY3Y2E5NTE3Y2QyMzE2OWQ3MTExMWFiZWQxZTY3YTkzNGJlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJMb2NrSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0
aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBtX3Byb2Nlc3MuY29ubmVjdGlvbigp
KQorCitXZWJMb2NrUmVnaXN0cnlQcm94eTo6V2ViTG9ja1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7CisgICAgbV9wcm9j
ZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitXZWJMb2NrUmVnaXN0cnlQcm94eTo6
fldlYkxvY2tSZWdpc3RyeVByb3h5KCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2soV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlIGxvY2tNb2Rl
LCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobG9j
a0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJ
ZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZp
ZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworCisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5yZXF1ZXN0TG9jayhXVEZN
b3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RGTW92ZShuYW1l
KSwgbG9ja01vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRF0oYm9vbCBzdWNjZXNzKSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJ
ZGVudGlmaWVyLCBjbGllbnRJRCwgc3VjY2VzcyksIDApOworICAgIH0sIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdIHsKKyAgICAgICAgaWYg
KHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkRpZFN0ZWFsTG9jayhsb2NrSWRlbnRpZmllciwgY2xp
ZW50SUQpLCAwKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVs
ZWFzZUxvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUpCit7CisgICAgTUVTU0FH
RV9DSEVDSyhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5j
b3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9j
ZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7Cisg
ICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5yZWxlYXNl
TG9jayhXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RG
TW92ZShuYW1lKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OmFib3J0TG9ja1Jl
cXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgTUVTU0FHRV9DSEVDSyhs
b2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRp
ZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5hYm9ydExvY2tSZXF1ZXN0
KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1Jl
Z2lzdHJ5UHJveHk6OnNuYXBzaG90KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0
b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuc25hcHNob3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6OmNsaWVudElzR29pbmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdp
biwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7
CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJv
Y2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRh
U3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRJc0dvaW5nQXdheShXVEZNb3ZlKGNsaWVu
dE9yaWdpbiksIGNsaWVudElEKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cHJv
Y2Vzc0RpZEV4aXQoKQoreworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9j
a1JlZ2lzdHJ5KCkuY2xpZW50c0FyZUdvaW5nQXdheShtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVu
dGlmaWVyKCkpOworfQorCisjdW5kZWYgTUVTU0FHRV9DSEVDSworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBiYTMxYTliOTJiNzE2MWM3Y2FkNjAyYmZiYTFiODM2OTk3MzMyN2MKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tJZGVudGlm
aWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrTW9kZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOworc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeVByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBXZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB+V2ViTG9j
a1JlZ2lzdHJ5UHJveHkoKTsKKworICAgIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIC8vIElQQyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgcmVx
dWVzdExvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nJiYg
bmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUp
OworICAgIHZvaWQgcmVsZWFzZUxvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgU3RyaW5nJiYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJT
bmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwor
CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmFiYzI1NGM0MWUwZTAxOTE1NmNh
ODEyYzQ2ZmU3OTAzMDUxN2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJM
b2NrUmVnaXN0cnlQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBSZXF1ZXN0TG9jayhzdHJ1Y3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2ViTG9ja01vZGUg
bW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKKyAgICBSZWxlYXNlTG9jayhzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKQorICAgIEFib3J0TG9ja1JlcXVlc3Qoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkgLT4gKGJvb2wgd2FzQWJvcnRlZCkgQXN5bmMKKyAg
ICBTbmFwc2hvdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbikgLT4g
KHN0cnVjdCBXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90IHNuYXBzaG90KSBBc3luYwor
ICAgIENsaWVudElzR29pbmdBd2F5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50
T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
ZCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDAyOGM4ZDhlZjA3MTRjODJlYjkwNGM5NGU3ZTI5NzFkODViYWViMTMuLmMxOGQwNzY2MzJlMzhj
NmEyM2Y2OGY1NWRlNmU1NWE3MmRiMDhmNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tG
b3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5
UHJveHkuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgi
CkBAIC0yNDAsNiArMjQxLDcgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV9jYXB0
aXZlUG9ydGFsTW9kZShjYXB0aXZlUG9ydGFsTW9kZSkKICAgICAsIG1fY3Jvc3NPcmlnaW5Nb2Rl
KGNyb3NzT3JpZ2luTW9kZSkKICAgICAsIG1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudGVy
KFt0aGlzXShSZWZDb3VudGVyRXZlbnQgZXZlbnQpIHsgaWYgKGV2ZW50ID09IFJlZkNvdW50ZXJF
dmVudDo6RGVjcmVtZW50KSBtYXliZVNodXREb3duKCk7IH0pCisgICAgLCBtX3dlYkxvY2tSZWdp
c3RyeShtYWtlVW5pcXVlUmVmPFdlYkxvY2tSZWdpc3RyeVByb3h5PigqdGhpcykpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkpOwogICAgIFdFQlBS
T0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzLCAiY29uc3RydWN0b3I6Iik7CkBAIC01Mjgs
NiArNTMwLDggQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKICAgICBtX3VzZXJJ
bml0aWF0ZWRBY3Rpb25NYXAuY2xlYXIoKTsKICAgICBtX3NsZWVwRGlzYWJsZXJzLmNsZWFyKCk7
CiAKKyAgICBtX3dlYkxvY2tSZWdpc3RyeS0+cHJvY2Vzc0RpZEV4aXQoKTsKKwogI2lmIEVOQUJM
RShST1VUSU5HX0FSQklUUkFUSU9OKQogICAgIG1fcm91dGluZ0FyYml0cmF0b3ItPnByb2Nlc3NE
aWRUZXJtaW5hdGUoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCBkYTZkYzY4ZWViY2VjYjQyMzYyN2VjOTg5ZDZiY2FhODAxNTc0OTczLi5j
ZDMzMDg2NDk0NDNiNWUzZWQyYjRmNzFhMjI3MWY2ZmU1NzA4YWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtOTMsNiArOTMsNyBAQCBjbGFzcyBWaXNp
dGVkTGlua1N0b3JlOwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBX
ZWJMb2NrUmVnaXN0cnlQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwpAQCAtNjc0LDYgKzY3NSw3IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOwogI2VuZGlmCisgICAgVW5pcXVl
UmVmPFdlYkxvY2tSZWdpc3RyeVByb3h5PiBtX3dlYkxvY2tSZWdpc3RyeTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBmYzFkOWFlOTg5M2RkOTEwMTY3
M2Y3YzhkYWU2ZjNiOWJhOGUzOWM3Li45MDk3OTNlMzc1NjhjMDQyYjEwMDJhMjZhYTAyNzQ3ODRh
OTFlNGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdn
cmVnYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9Dcm9zc1RocmVhZENvcGllci5oPgpAQCAtMTMwLDYgKzEzMSw3IEBAIFdlYnNpdGVEYXRh
U3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
PiYmIGNvbmZpZ3VyCiAjaWYgSEFWRShBUFBfU1NPKQogICAgICwgbV9zb0F1dGhvcml6YXRpb25D
b29yZGluYXRvcihtYWtlVW5pcXVlUmVmPFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yPigpKQog
I2VuZGlmCisgICAgLCBtX3dlYkxvY2tSZWdpc3RyeShXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdp
c3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2
aWxlZ2VzKCkpOwogICAgIHJlZ2lzdGVyV2l0aFNlc3Npb25JRE1hcCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmlu
ZGV4IDYxOTYyODBmNzZkYTEyMDI5OGUyYjdhYjE2NDA1ZDJmMGJhMjg5MjMuLjFkZTI1YTY2MDU3
ZjJkNjZjNjI5OWU1ZWJiYjgxNDZiZWU5YjgxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTc1LDYgKzc1
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3Mg
UmVnaXN0cmFibGVEb21haW47CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIExvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OwogCiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlv
bjsKIH0KQEAgLTMxNyw2ICszMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQoVW5p
cXVlUmVmPFdlYnNpdGVEYXRhU3RvcmVDbGllbnQ+JiYgY2xpZW50KSB7IG1fY2xpZW50ID0gV1RG
TW92ZShjbGllbnQpOyB9CiAKICAgICBBUEk6OkhUVFBDb29raWVTdG9yZSYgY29va2llU3RvcmUo
KTsKKyAgICBXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkg
eyByZXR1cm4gbV93ZWJMb2NrUmVnaXN0cnkuZ2V0KCk7IH0KIAogICAgIHZvaWQgcmVuYW1lT3Jp
Z2luSW5XZWJzaXRlRGF0YShVUkwmJiwgVVJMJiYsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCkBAIC00NzEsNiArNDczLDcgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBt
dXRhYmxlIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZT4gbV90aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOyAvLyBMYXppbHkgY29tcHV0ZWQuCiAj
ZW5kaWYKKyAgICBSZWY8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1Jl
Z2lzdHJ5OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYjEyMDRlM2M0M2JiODZhZWQ0NmIzYzUxMTAzNTM4ZWE1NzJiOGQ4
MC4uYTQ1MTE1ZjQ4OWFhMmNjYmM5YmVjNGNlMTdkZjYwN2JlMjg1YjUyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MDgsNiArOTA4
LDcgQEAKIAkJNDYzRkQ0ODAxRUI5NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNGRDQ4
MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0RUFEMDBB
Mjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IH07CiAJCTQ2NUY0RTA2MjMw
QjJFOTUwMDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1RjRFMDUyMzBCMkU3QzAwM0NF
REI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggKi87IH07CisJCTQ2NUZBNzI2Mjc1
N0Q5M0QwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8q
IFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi87IH07CiAJCTQ2NkJDMDNDMUZBMjY2REEwMDJGQTlD
MSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi87IH07CiAJCTQ2NzFGRjFGMjMyMTdFRkYw
MDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3IC8qIFdl
YlJlc291cmNlTG9hZE9ic2VydmVyLmggKi87IH07CiAJCTQ2N0U0M0U4MjI0M0ZGN0QwMEIxMzky
NCAvKiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3RTQzRTcyMjQzRkY2RDAwQjEzOTI0IC8qIFdl
YlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi87IH07CkBAIC00MTc2LDYgKzQxNzcsOSBA
QAogCQk0NjVGNEUwMjIzMDc1OUQ1MDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJZGVudGlmaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjVGNEUwMzIzMDc2MDRFMDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJbXBs
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NUY0RTA1MjMwQjJFN0MwMDNDRURCNyAv
KiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFt
ZXNwYWNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcy
MzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDY1RkE3MjQyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NjVGQTcyNTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lz
dHJ5UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY2QkMwM0ExRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDE4Niw2ICs0MTkwLDggQEAKIAkJNDY4MDlBN0IyM0Q5MjI1MzAwQzI5N0QwIC8q
IFdlYkNvb2tpZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkNvb2tpZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2
OUEyMUU4MUNDNzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFsUGFnZVByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3Zpc2lvbmFsUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM1NjlCMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25h
bFBhZ2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm92
aXNpb25hbFBhZ2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODlC
OTBGMjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2ODlCOTEwMjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY5REU4MDIyNzNFQ0M1RDAwOTMwMjc2IC8qIFByb2Nlc3NM
YXVuY2hlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UHJvY2Vzc0xhdW5jaGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFja2dyb3Vu
ZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDZBMkI2MDcxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9u
c2l2ZW5lc3NUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrZ3Jv
dW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQyMDQsNiArNDIxMCw4IEBACiAJCTQ2Q0UzQjEwMjNEOEM4M0QwMDE2QTk2QSAvKiBX
ZWJCYWNrRm9yd2FyZExpc3RDb3VudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2REYwNjM5MUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2
M0ExRjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDZFOTc2MEEyNzU3RjZDOTAwQUNERDM3
IC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBSZW1v
dGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NkVFMjg0NzI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUy
ODQ4MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUyODRBMjY5RTA1MTcwMERENDhB
QiAvKiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDUzOCw2ICsxMDU0Niw5IEBACiAJ
CQkJQ0Q2MTc4MTExRTZERTk4MDAwRkRBNTdEIC8qIGNvY29hICovLAogCQkJCTJEMjhGM0RGMTg4
NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFCIC8q
IG1hYyAqLywKKwkJCQk0Njg5QjkxMDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5LmNwcCAqLywKKwkJCQk0Njg5QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmggKi8sCisJCQkJNDZFOTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAw
N0JDRTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAgKi8sCiAJCQkJMUE3Mjg0NDUxOTU5
RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uaCAqLywKIAkJCQlGNDNBOUNE
RTI1RDcyRTJEMDA5OTBFMjYgLyogU2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcCAqLywKQEAg
LTEwNTQ1LDYgKzEwNTU2LDcgQEAKIAkJCQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2Vi
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggKi8sCiAJCQkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFC
IC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAgKi8sCiAJCQkJNDZFRTI4NDgyNjlF
MDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oICovLAorCQkJCTQ2
RTk3NjBBMjc1N0Y2QzkwMEFDREQzNyAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVz
c2FnZXMuaW4gKi8sCiAJCQkJRTNBODZGQkMyNjk1OEUzMzAwNTkyNjREIC8qIFdlYkNhcHRpb25Q
cmVmZXJlbmNlc0RlbGVnYXRlLmNwcCAqLywKIAkJCQlFM0E4NkZCQjI2OTU4RDgzMDA1OTI2NEQg
LyogV2ViQ2FwdGlvblByZWZlcmVuY2VzRGVsZWdhdGUuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0
RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21lQ2xpZW50LmNwcCAqLywKQEAgLTEwODI4LDYgKzEwODQw
LDkgQEAKIAkJCQlCQzFCRTFGMTEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92
aWRlci5jcHAgKi8sCiAJCQkJQkMxQkUxRjAxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0
aW9uUHJvdmlkZXIuaCAqLywKIAkJCQk1MUM4RTE5QjFGMjE2MTcyMDBCRjczMUIgLyogV2ViSWNv
bkRhdGFiYXNlLmggKi8sCisJCQkJNDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcCAqLywKKwkJCQk0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkuaCAqLywKKwkJCQk0NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyog
V2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQzRUY0NDAxOTE3NjQ2
MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAgKi8sCiAJCQkJMkQzRUY0
NDExOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oICovLAogCQkJ
CTdDQ0NDOEY4MUE1RjUwRkQwMDhGQjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuY3BwICovLApA
QCAtMTI0NDksOCArMTI0NjQsOCBAQAogCQkJCTUxNjBFOTVFMjc0QzJBMDMwMDU2NzM4OCAvKiBN
b2NrQXBwQnVuZGxlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjBFOTU5Mjc0QzBE
ODkwMDU2NzM4OCAvKiBQdXNoQXBwQnVuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY3QkI3
QjI3NDRDNTA3MDBDNDVBNzIgLyogUHVzaENsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
LAotCQkJCTUxN0I1RjJGMjc1NzM4MkIwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlv
bkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNENjlGMjcyMzM5M0EwMEY3
RjhFQyAvKiBXZWJQdXNoRGFlbW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRjI3NTcz
ODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTEzMzM0LDYgKzEzMzQ5LDcgQEAKIAkJCQlCQ0I2MzQ3ODExNkJGMTA2
MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlCQTUwNTE2OTdD
NDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NjI4MEM3MTkxOTk1MEMwMDZBRDlGOSAvKiBXZWJLaXRQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0NjVGQTcyNjI3NTdEOTNEMDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QUNDMDdCNzI1QzgxRDM0MDBE
QzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlC
NUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAq
LywKQEAgLTEzMzk4LDYgKzEzNDE0LDcgQEAKIAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBEMkRDNDkg
LyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5
RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2ViUHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTJDRDY5ODI3MjFFRkM4MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0I1RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNo
RGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNE
NjlBMjcyMUYwQTkwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uQ29uc3RhbnRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NjFDQ0NBNjIzMTQ4NUFBMDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBX
ZWJSZXNvdXJjZUludGVyY2VwdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTM1NDgs
NyArMTM1NjUsNiBAQAogCQkJCTVDNzk1RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRN
ZW51RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNzk1RDcxMjI5RjM3NTcwMDNG
RjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUE1NTVGNjEyOEM2QzQ3MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTUxN0I1RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9u
Q29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTU1NjAxMTI4
QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMUVBMDIzODFEQUJGRjdFMDA5NjAyMUYgLyogV0tDb250ZXh0TWVudUxpc3RlbmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0M5MzhFMTExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAKaW5kZXggYWE3NDNjNjJlM2YzYjU1NDNjYTdjZmM3YjUyZTJlMzBhZDk5MTljZC4uZjliODUy
NDZkZjViNmIyMzlhZjBkYThjYmYwOTUyODU1NTQ3N2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZl
dGNoVGFza01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9u
RGF0YS5oIgogI2luY2x1ZGUgIldlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgpAQCAtMTQ4
LDYgKzE0OSw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxT
ZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uZGF0YWJhc2VQcm92aWRlciA9IFdlYkRhdGFiYXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1f
cGFnZUdyb3VwSUQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnNvY2tldFByb3ZpZGVyID0gV2Vi
U29ja2V0UHJvdmlkZXI6OmNyZWF0ZShtX3dlYlBhZ2VQcm94eUlEKTsKICAgICBwYWdlQ29uZmln
dXJhdGlvbi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi53ZWJM
b2NrUmVnaXN0cnkgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2NrUmVnaXN0cnkoKTsK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVu
dENvbnRyb2xsZXI7CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24u
bGliV2ViUlRDUHJvdmlkZXIgPSBtYWtlVW5pcXVlUmVmPFNlcnZpY2VXb3JrZXJMaWJXZWJSVENQ
cm92aWRlcj4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWVhZjA5ZWU2YjM3NTljZWQ0MjcyN2YyZmZmMGU1YjNkOTM5OGU4YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnkuY3BwCkBAIC0wLDAgKzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgorCisjaW5jbHVkZSAi
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0
cnlQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RydWN0IExvY2tJbmZvIHsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tT
dG9sZW5IYW5kbGVyOworfTsKKworc3RydWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAg
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+IGxvY2tHcmFudGVkSGFuZGxlcjsKK307CisKK3N0cnVjdCBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkxvY2tzU25hcHNob3QgeworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0PiBwZW5kaW5nUmVxdWVzdHM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgTG9ja0luZm8+IGhlbGRMb2NrczsK
KworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0cy5pc0Vt
cHR5KCkgJiYgaGVsZExvY2tzLmlzRW1wdHkoKTsgfQorfTsKKworUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnkoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBw
cm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKK30KKworUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5Ojp+UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoKnRoaXMpOworfQorCit2b2lkIFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeTo6cmVxdWVzdExvY2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGll
bnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBsb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9v
bCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVu
Y3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQoreworICAgIExvY2tSZXF1ZXN0IHJl
cXVlc3QgeyB7IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpIH0sIFdURk1vdmUoZ3JhbnRlZEhh
bmRsZXIpIH07CisgICAgYXV0byYgc25hcHNob3QgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQu
ZW5zdXJlKGNsaWVudElELCBbXSB7IHJldHVybiBMb2Nrc1NuYXBzaG90IHsgfTsgfSkuaXRlcmF0
b3ItPnZhbHVlOworICAgIHNuYXBzaG90LnBlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZp
ZXIsIFdURk1vdmUocmVxdWVzdCkpOworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vu
ZChNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlJlcXVlc3RMb2NrKGNsaWVudE9yaWdp
biwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZh
aWxhYmxlKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9j
ayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0
byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAo
aXQgIT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKSB7CisgICAgICAgIGl0LT52YWx1
ZS5oZWxkTG9ja3MucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKGl0LT52YWx1
ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3Zl
KGl0KTsKKyAgICB9CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6UmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG5hbWUpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVn
aXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGll
bnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OkFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3Jp
Z2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpLCBbd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIGRpZEFib3J0KSBtdXRhYmxlIHsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzICYmIGRpZEFib3J0KSB7CisgICAgICAgICAgICBhdXRvIGl0ID0g
d2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICAg
ICAgICAgIGlmIChpdCAhPSB3ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgp
KSB7CisgICAgICAgICAgICAgICAgaXQtPnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy5yZW1vdmUobG9j
a0lkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJl
bW92ZShpdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZGlkQWJvcnQpOworICAgIH0sIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6c25hcHNob3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpTbmFwc2hv
dChjbGllbnRPcmlnaW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCk7Cit9CisKK3Zv
aWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7CisgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50
LnJlbW92ZShjbGllbnRJRCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNz
YWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OkNsaWVudElzR29pbmdBd2F5KGNsaWVudE9yaWdp
biwgY2xpZW50SUQpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZENv
bXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBi
b29sIHN1Y2Nlc3MpCit7CisgICAgYXV0byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5m
aW5kKGNsaWVudElEKTsKKyAgICBpZiAoaXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVu
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0ID0gaXQtPnZh
bHVlLnBlbmRpbmdSZXF1ZXN0cy50YWtlKGxvY2tJZGVudGlmaWVyKTsKKyAgICBpZiAoIXBlbmRp
bmdSZXF1ZXN0LmxvY2tHcmFudGVkSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byBsb2NrR3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKHBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVk
SGFuZGxlcik7CisgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3Mu
YWRkKGxvY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHBlbmRpbmdSZXF1ZXN0KSk7CisgICAgZWxzZSB7
CisgICAgICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1Nu
YXBzaG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisgICAgfQorCisgICAgbG9ja0dyYW50ZWRIYW5k
bGVyKHN1Y2Nlc3MpOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkU3RlYWxM
b2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBhdXRvIGl0
ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9
PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gbG9ja0luZm8gPSBpdC0+dmFsdWUuaGVsZExvY2tzLnRha2UobG9ja0lkZW50aWZpZXIp
OworICAgIGlmICghbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICBtX2xvY2tzU25hcHNob3RQ
ZXJDbGllbnQucmVtb3ZlKGl0KTsKKworICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmExNWIxYWFmYzU0YzhhMjE1N2M1MmZmMGNkYTk2ODM0MzZjYjFhYWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Qcm9jZXNzUXVhbGlmaWVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnksIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IGNyZWF0
ZShXZWJQcm9jZXNzJiBwcm9jZXNzKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeShwcm9jZXNzKSk7IH0KKyAgICB+UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KCk7CisK
KyAgICAvLyBXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnkuCisgICAgdm9pZCByZXF1ZXN0TG9jayhj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUs
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4m
JiBsb2NrU3RvbGVuSGFuZGxlcikgZmluYWw7CisgICAgdm9pZCByZWxlYXNlTG9jayhjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkg
ZmluYWw7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHNuYXBzaG90KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXJTbmFwc2hvdCYmKT4mJikgZmluYWw7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcikgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IGZpbmFsOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShX
ZWJQcm9jZXNzJik7CisKKyAgICAvLyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIGRp
ZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBib29sIHN1Y2Nlc3MpOworICAgIHZv
aWQgZGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisKKyAgICBzdHJ1Y3QgTG9ja3NTbmFwc2hv
dDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBMb2Nrc1NuYXBzaG90PiBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQ7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2YTdhZWEyYmQ0YmQ3NzJhMmRhZGVkNGM2ZjdlYzI3MWZmNGFl
ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittZXNzYWdlcyAtPiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgeworICAgIERp
ZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
LCBib29sIHN1Y2Nlc3MpOworICAgIERpZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA1YzNjZmQ0MjM4NzhiNmNjNTUyMDM1MmZhZDA0NWNjZjU5ZjBjYjAw
Li4zYmRmYTdjOWQ5MzNiZDlkZTAwYmY3MjBmZDQ3NTFjNzA4NmI3ZjhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90
ZVdlYkluc3BlY3RvclVJLmgiCiAjaW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlc3Np
b25TdGF0ZS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKQEAgLTU3Myw2ICs1NzQsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRl
cj4obV9pZGVudGlmaWVyKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJv
dmlkZXI+KCp0aGlzKSwKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5KCksCisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxv
Y2tSZWdpc3RyeSgpLAogICAgICAgICBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCp0
aGlzKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8V2ViTW9kZWxQbGF5ZXJQcm92aWRlcj4oKnRoaXMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTQzMDRiNzExZmQ0ZmFlYTNiMjBl
NzM5Yzk5NmE0N2I4YzcyYWQzNC4uZjZlODc2MjQ2YmZkZDZhYWQwMDc5ZDBlZWNhM2JmNzNkYmU3
MGZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDksNiAr
NDksNyBAQAogI2luY2x1ZGUgIlJlbW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
UmVtb3RlQ29tbWFuZExpc3RlbmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIK
QEAgLTI3OSw2ICsyODAsNyBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fd2Vi
TG9hZGVyU3RyYXRlZ3koKm5ldyBXZWJMb2FkZXJTdHJhdGVneSkKICAgICAsIG1fY2FjaGVTdG9y
YWdlUHJvdmlkZXIoV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpKQogICAgICwgbV9i
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVh
dGUoKSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y3Jl
YXRlKCp0aGlzKSkKICAgICAsIG1fY29va2llSmFyKFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkpCiAg
ICAgLCBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlKFJlcG9ydGluZ0VuZHBvaW50c0NhY2hlOjpj
cmVhdGUoKSkKICAgICAsIG1fZG5zUHJlZmV0Y2hIeXN0ZXJlcmlzKFt0aGlzXShQQUw6Okh5c3Rl
cmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0
b3BwZWQpIG1fZG5zUHJlZmV0Y2hlZEhvc3RzLmNsZWFyKCk7IH0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5YWRlM2MwMDVhZjJlMjI3MWFmY2FiZmZkNjgxNTIzNjc2
ZWZiNzBhLi4xNGNkZjc1MTVjNjJjNDVkYWI5ZjlkYjgxNmZkY2IyZDg4NWNmMzNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBjbGFzcyBQ
cm9jZXNzQXNzZXJ0aW9uOwogY2xhc3MgUmVtb3RlQ0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90ZUxl
Z2FjeUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5OworY2xhc3MgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Owogc3RydWN0IFNlcnZpY2VXb3JrZXJJ
bml0aWFsaXphdGlvbkRhdGE7CiBjbGFzcyBTdG9yYWdlQXJlYU1hcDsKIGNsYXNzIFVzZXJEYXRh
OwpAQCAtMzQwLDYgKzM0MSw3IEBAIHB1YmxpYzoKIAogICAgIFdlYkNhY2hlU3RvcmFnZVByb3Zp
ZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlcigpIHsgcmV0dXJuIG1fY2FjaGVTdG9yYWdlUHJvdmlk
ZXIuZ2V0KCk7IH0KICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeSgpIHsgcmV0dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmdldCgp
OyB9CisgICAgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVy
biBtX3dlYkxvY2tSZWdpc3RyeS5nZXQoKTsgfQogICAgIFdlYkNvb2tpZUphciYgY29va2llSmFy
KCkgeyByZXR1cm4gbV9jb29raWVKYXIuZ2V0KCk7IH0KICAgICBXZWJTb2NrZXRDaGFubmVsTWFu
YWdlciYgd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIoKSB7IHJldHVybiBtX3dlYlNvY2tldENoYW5u
ZWxNYW5hZ2VyOyB9CiAgICAgV2ViQ29yZTo6UmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUmIHJlcG9y
dGluZ0VuZHBvaW50c0NhY2hlKCkgeyByZXR1cm4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZS5n
ZXQoKTsgfQpAQCAtNjc2LDYgKzY3OCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXI+IG1fY2FjaGVTdG9yYWdlUHJvdmlkZXI7CiAgICAgUmVmPFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVm
PFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmPFdlYkNv
b2tpZUphcj4gbV9jb29raWVKYXI7CiAgICAgUmVmPFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50
c0NhY2hlPiBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlOwogICAgIFdlYlNvY2tldENoYW5uZWxN
YW5hZ2VyIG1fd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMGM3NDRkZGNlYjMzMjZkMDY3MTQ3YTA2ZWI5MTIx
ZmIxMGU1N2Y0NS4uNTY2NDJjMjIyZDZiYzU0M2FmOWU3NTliNjM5MzJhYTZlZDgzODY4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjMxLDYgKzIz
MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVKSVRPcGVyYXRpb25zLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVW
aWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJWaWV3VmlzdWFsSWRlbnRpZmljYXRpb25PdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dpZGdldC5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTS5oPgpAQCAtMTQzOCw2ICsx
NDM5LDE4IEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5l
Y2Vzc2FyeSgpCiB9CiAjZW5kaWYKIAorc3RhdGljIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tS
ZWdpc3RyeT4gZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoYm9vbCBpc1ByaXZhdGVCcm93c2lu
Z0VuYWJsZWQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6
TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBkZWZhdWx0UmVnaXN0cnk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBwcml2YXRl
UmVnaXN0cnk7CisgICAgYXV0byYgZXhpc3RpbmdSZWdpc3RyeSA9IGlzUHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCA/IHByaXZhdGVSZWdpc3RyeSA6IGRlZmF1bHRSZWdpc3RyeTsKKyAgICBpZiAoZXhp
c3RpbmdSZWdpc3RyeS5nZXQoKSkKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5Lmdl
dCgpOworICAgIGF1dG8gcmVnaXN0cnkgPSBXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
Y3JlYXRlKCk7CisgICAgZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSA9IHJlZ2lzdHJ5OworICAgIHJl
dHVybiByZWdpc3RyeTsKK30KKwogLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJh
bWVOYW1lOihOU1N0cmluZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3RyaW5nICopZ3JvdXBO
YW1lCiB7CiAgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRUd28oKTsKQEAgLTE1
NDMsNiArMTU1Niw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0CiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAg
ICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShbW3NlbGYgcHJlZmVy
ZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKKyAgICAgICAgZ2V0T3JDcmVhdGVXZWJM
b2NrUmVnaXN0cnkoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSks
CiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3RvcmFnZVByb3ZpZGVyPigpLAog
ICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpAQCAtMTgyNCw2ICsxODM4LDcgQEAgLSAoaWQpaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhT
dHlsZTooTlNTdHJpbmcgKilzdHlsZSBmcmFtZTooQ0dSZWN0KWZyYW1lIHByZWYKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigp
LAogICAgICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKFtbc2Vs
ZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAorICAgICAgICBnZXRPckNy
ZWF0ZVdlYkxvY2tSZWdpc3RyeShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWRdKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3Jl
YXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlk
ZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclBy
b3ZpZGVyPigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGY0NjMwNzlkOTgx
YmZlMmE1OGMyYTI0YjJmZjUxMDljMjQyZDZmMDguLjRmZmNkZTljNTMyNzAyZDkzNGQzYzdjMTM1
NTM3Y2ViMjYxNWYxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xNzMs
NiArMTczLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
Q29yZVRleHRSZW5kZXJlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd3NUb3VjaC5oPgogI2luY2x1ZGUgPGNvbWRlZi5oPgpAQCAtMjk5Miw2
ICsyOTkzLDE2IEBAIGJvb2wgV2ViVmlldzo6c2hvdWxkSW5pdGlhbGl6ZVRyYWNrUG9pbnRIYWNr
KCkKICAgICByZXR1cm4gc2hvdWxkQ3JlYXRlU2Nyb2xsYmFyczsKIH0KIAorc3RhdGljIFJlZjxX
ZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnko
KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2Vi
TG9ja1JlZ2lzdHJ5Pj4gZXhpc3RpbmdSZWdpc3RyeTsKKyAgICBpZiAoZXhpc3RpbmdSZWdpc3Ry
eS5nZXQoKSkKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5LmdldCgpOworICAgIGF1
dG8gcmVnaXN0cnkgPSBXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCk7Cisg
ICAgZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSA9IHJlZ2lzdHJ5OworICAgIHJldHVybiByZWdpc3Ry
eTsKK30KKwogSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8g
QlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE5hbWUpCiB7CiAgICAgSFJFU1VMVCBociA9
IFNfT0s7CkBAIC0zMDY1LDYgKzMwNzYsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJh
bWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAg
ICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIFdl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoZmFsc2UpLAorICAgICAgICBn
ZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSgpLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1p
c3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3Jl
OjpEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3Jl
OjpEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNmI3OTY0NzQyMTFiZTY0ZGJjMTc2MTk4ZjU4NzZk
MmVkOWUzODI4Li5hYzY3MTNhZWMzYzI4YWRkOGFmZDUyMzA0Yjc3MDY0ZGNiMWYyNTBjIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBbV0syXSBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9j
ZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MzcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dlYkxvY2tzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CiAyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBBUEkgdGVzdCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1NvdXJjZXNDb2NvYS50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggMGZhNzNhZTYzZDE1YTExNmYxOGI0OTgxZTRlNzA4OGYwZTQxODRiMi4uNDlm
YjkyNjZkYjQzNjM2MWNmNDMzYmI0MzA5MjU1N2YxN2RlY2NjNSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
U291cmNlc0NvY29hLnR4dApAQCAtMjkzLDYgKzI5Myw3IEBAIFRlc3RzL1dlYktpdENvY29hL1dL
V2Vic2l0ZURhdGFzdG9yZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFByb2Nlc3NE
aWRUZXJtaW5hdGUubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQog
VGVzdHMvV2ViS2l0Q29jb2EvV2ViR0xQb2xpY3kubW0KK1Rlc3RzL1dlYktpdENvY29hL1dlYkxv
Y2tzLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0KIFRl
c3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NUZXJtaW5hdGUubW0KIFRlc3RzL1dlYktpdENvY29h
L1dlYlB1c2hEYWVtb24ubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzgwZjFiZjkwODIy
ZDhmZjA0NjAyYTM2NjcyZjYyYWQ2OGY2MzJmYy4uMjEwMzA3NDI5MWM0MWU3ZTIwNTI3ODExZmE0
NTdhOTU1MTA1YTlkZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5MzMsNiArMTkzMyw3
IEBACiAJCTQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFR5cGVDYXN0c0NvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NENGMzFGQjI0OTkzRjY2MDA5Q0I2Q0IgLyog
Q29udGV4dE1lbnVBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ29udGV4dE1lbnVBY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NEQ1MDA4RDI2RkU5RUQ2MDAwRUIxMkYgLyogUmV0YWluUHRyQVJDLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmV0YWluUHRyQVJDLm1tOyBwYXRoID0gbnMvUmV0
YWluUHRyQVJDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjA2MTU0NTI3NTgy
NEI0MDBBQjYxM0QgLyogV2ViTG9ja3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJMb2Nr
cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwQzJGQzgyNzAzOUQ3RDAwNDdF
RjExIC8qIFNlcnZpY2VXb3JrZXJQYWdlUHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vydmlj
ZVdvcmtlclBhZ2VQcm90b2NvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjEy
QzJCODIxMEE2QUJGMDBCNzg4QTYgLyogTG9hZEZpbGVUaGVuUmVsb2FkLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEZpbGVUaGVuUmVsb2FkLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjI4QzhFODIzNjdBQkJDMDBCMDczRjAgLyogV0tT
ZWN1cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S1NlY3VyaXR5T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzIs
NiArMzU3Myw3IEBACiAJCQkJODMwRjJFMEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQ
cm9jZXNzRGlkVGVybWluYXRlLm1tICovLAogCQkJCTU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAv
KiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi8sCiAJCQkJNUM5NzNGNUIxRjU4RUYwQTAwMzU5QzI3
IC8qIFdlYkdMUG9saWN5Lm1tICovLAorCQkJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBX
ZWJMb2Nrcy5tbSAqLywKIAkJCQk1MTcxNEVCNjFDRjhDN0E0MDA0NzIzQzQgLyogV2ViUHJvY2Vz
c0tpbGxJREJDbGVhbnVwLm1tICovLAogCQkJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBX
ZWJQcm9jZXNzVGVybWluYXRlLm1tICovLAogCQkJCTVDMTU3QTAyMjcxN0MzQjEwMEVENTI4MCAv
KiBXZWJQdXNoRGFlbW9uLm1tICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZhOTU0NDY2MTBkY2ZjZTViY2Y2
MGZmODA5ZjAzN2UzNzdjNWUwMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KQEAgLTAsMCArMSwyMDggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiSFRUUFNlcnZlci5oIgorI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRl
c3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIlV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KKworbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYkxvY2tzLCBTbmFwc2hvdEFjcm9zc1Byb2Nlc3Nl
cykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsg
Ii8iLCB7ICJmb28iIH0gfQorICAgIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFk
b3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChf
V0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmlt
ZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJp
bmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9u
MSBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVh
dHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8g
d2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24xLmdl
dCgpXSk7CisgICAgW3dlYlZpZXcxIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVx
dWVzdCgpXTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihO
U1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJB
Q1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sg
PT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FV
SVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05V
TEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9jZXNzUG9v
bCA9IFtjb25maWd1cmF0aW9uMSBwcm9jZXNzUG9vbF07CisgICAgZm9yIChfV0tFeHBlcmltZW50
YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJl
c10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nr
c0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBhdXRvIHdlYlZpZXcyID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMi5nZXQoKV0pOworICAgIFt3
ZWJWaWV3MiBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAg
ICBhdXRvIHBpZDIgPSBbd2ViVmlldzIgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBF
Q1RfTkUocGlkMSwgcGlkMik7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBl
cmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25l
ID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJu
YXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnYmFyJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJv
bWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldzEgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5n
ICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3Ms
IGFuZCAyIGhlbGQgb25lcy4KKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0y
Iik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsg
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBz
aG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAx
IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1B
ZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAv
LyBUaGVyZSBzaG91bGQgYmUgMCBwZW5kaW5nIGxvY2tzLCBhbmQgMiBoZWxkIG9uZXMuCisgICAg
ICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIjAtMiIpOworICAgICAgICBkb25lID0gdHJ1
ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9y
LmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICct
JyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6Xihp
ZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsK
KyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCitURVNU
KFdlYkxvY2tzLCBMb2NrUmVxdWVzdFdhaXRpbmdPbkFub3RoZXJQcm9jZXNzKQoreworICAgIFRl
c3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgImZvbyIg
fSB9CisgICAgfSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24xID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVz
XSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tz
QVBJRW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24xIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byB3ZWJWaWV3MSA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjEuZ2V0KCldKTsKKyAgICBb
d2ViVmlldzEgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisg
ICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQ
RUNUX05FKHBpZDEsIDApOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBb
d2ViVmlldzEgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNz
YWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVy
biBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQg
cmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8g
Y29uZmlndXJhdGlvbjIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLnByb2Nlc3NQb29sID0gW2NvbmZpZ3Vy
YXRpb24xIHByb2Nlc3NQb29sXTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZl
YXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAg
ICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tzQVBJRW5hYmxlZCJd
KSB7CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24yIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxl
ZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5bmNo
cm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMiA9
IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCBw
aWQyKTsKKworICAgIF9fYmxvY2sgYm9vbCBsb2NrQWNxdWlyZWQgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdl
KSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAg
ICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBSZXF1ZXN0aW5nIHRo
ZSBzYW1lIGxvY2sgbmFtZSBhcyB3ZWJWaWV3MSBzbyB0aGUgcmVxdWVzdCBzaG91bGQgZ2V0IHF1
ZXVlZCB1bnRpbCB3ZWJWaWV3MSByZWxlYXNlcyBpdC4KKyAgICBbd2ViVmlldzIgZXZhbHVhdGVK
YXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJr
aXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyBy
ZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpe
KGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3Ip
OworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICBF
WFBFQ1RfRkFMU0UobG9ja0FjcXVpcmVkKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdl
KSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAxIHBlbmRpbmcgbG9jaywgYW5kIDEgaGVs
ZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIjEtMSIpOworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0
OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9PiB7IHdlYmtpdC5tZXNz
YWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBzbmFwc2hvdC5wZW5kaW5n
Lmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkgJiYgMSIgY29tcGxldGlv
bkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9O
VUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworCisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0
cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FV
SVJFRCIpOworICAgICAgICBsb2NrQWNxdWlyZWQgPSB0cnVlOworICAgIH1dOworCisgICAgLy8g
Tm93IGNsb3NlIHRoZSB3ZWJWaWV3MS4gVGhpcyBzaG91bGQgcmVsZWFzZSB0aGUgJ2ZvbycgbG9j
ayBhbmQgYWxsb3cgd2ViVmlldzIgdG8gYWNxdWlyZSBpdC4KKyAgICBbd2ViVmlldzEgX2Nsb3Nl
XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbG9ja0FjcXVpcmVkKTsKKworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVz
c2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAw
IHBlbmRpbmcgbG9ja3MsIGFuZCAxIGhlbGQgb25lLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
bWVzc2FnZSwgQCIwLTEiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dl
YlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4o
c25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNz
YWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxl
bmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445668</attachid>
            <date>2021-12-01 21:34:52 -0800</date>
            <delta_ts>2021-12-01 21:46:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201213451.patch</filename>
            <type>text/plain</type>
            <size>123557</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCmluZGV4IGJmODk1NjE4MmJmYzIyMTNlNTRiYWMzMzA0OTQ1ZTNiNmIy
MjRlYzQuLjQ1M2QxMjIxOGFlMjgzZmE4OGY1ZDAzOTU5Y2E5ZmZlMmM5ZjY0ZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQpAQCAtMTgyLDYgKzE4MiwxMSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKIAorICAgIE1vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5oCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja0lkZW50aWZp
ZXIuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKwogICAgIE1vZHVsZXMv
d2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAogICAgIE1vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAK
aW5kZXggN2U1YjU1MTQ4NWFjNjU1MWRkNWYwYzE5MDQxYjNlMjkzZjFiNmNlZC4uOWQ0ZjZmNmMw
MThhMjkyNDQ5MThhNmI5N2NiYzAxNzhjZTE5Y2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAtMzEsMTEgKzMxLDE0
IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNXZWJMb2NrTWFuYWdl
clNuYXBzaG90LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYkxvY2suaCIKICNp
bmNsdWRlICJXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldv
cmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CkBAIC01Myw2ICs1Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xp
ZW50T3JpZ2luRnJvbUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJM
b2NrTWFuYWdlcjo6TG9ja1JlcXVlc3QgewogICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwog
ICAgIFN0cmluZyBuYW1lOwogICAgIFdlYkxvY2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhj
bHVzaXZlIH07CiAgICAgUmVmUHRyPFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxs
YmFjazsKQEAgLTEzNywxNCArMTQxLDE1IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25zJiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmll
ciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZN
b3ZlKGdyYW50ZWRDYWxsYmFjayksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1
dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRl
ZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9j
a09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUg
eworICAgIHJlcXVlc3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwg
bmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlm
aWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAg
ICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwg
c3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVu
dGlmaWVyXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9t
aXNlKGxvY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBB
Ym9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAg
ICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2Miw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENv
bXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAK
ICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAm
JiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAg
ICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlm
aWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIApAQCAtMTY1LDE1ICsxNzAsMTUgQEAgdm9pZCBXZWJMb2Nr
TWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllciwgYm8KICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2Fs
bGJhY2stPmhhbmRsZUV2ZW50KGxvY2sucHRyKCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVBy
b21pc2U+IHdhaXRpbmdQcm9taXNlID0gcmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5
cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAg
ICAgICAgICAgaWYgKCF3YWl0aW5nUHJvbWlzZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7Cisg
ICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRp
ZmllciwgcmVxdWVzdC5jbGllbnRJRCwgcmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBz
ZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBF
eGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQo
d2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgp
LCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSBy
ZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBuYW1lID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlz
ZV0geworICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGlu
Z1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhp
cywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0
LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCA9IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1
ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNlXSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwog
ICAgICAgICAgICAgICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0
aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9IGVsc2UgewpAQCAtMTg4LDMzICsxOTMsMzMgQEAgdm9pZCBX
ZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBs
b2NrSWRlbnRpZmllciwgYm8KICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYg
b3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChb
Y29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIo
KSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUg
PSBjcm9zc1RocmVhZENvcHkobmFtZSksIG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0
aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUgPSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRp
ZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhh
bmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9j
ayhsb2NrSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUo
Z3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRp
ZmllciwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3Nd
KGF1dG8mKSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGll
bnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3Nz
VGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0
ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxl
ciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7
CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwg
Z3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2Vzcykg
bXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNv
bnRleHRUaHJlYWQoY2xpZW50SUQsIFtncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhh
bmRsZXIpLCBzdWNjZXNzXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRl
ZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCByZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNl
cHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFz
ZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJl
YWRDb3B5KGV4Y2VwdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxv
Y2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJl
YWQoY2xpZW50SUQsIFtsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIo
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJM
b2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJl
bGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBu
YW1lKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpXSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmln
aW4oY2xpZW50T3JpZ2luKS0+cmVsZWFzZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAg
IGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2Ns
aWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFk
Q29weShuYW1lKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxv
Y2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0p
OwogfQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFk
KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
ZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1f
Y2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFt
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50
T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0
byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9j
a1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtj
bGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Ym9vbCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTIyMyw4ICsyMjgsOCBAQCB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5
KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+c25hcHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNu
YXBzaG90KSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlm
aWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdp
biA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7Cisg
ICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90KGNsaWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVy
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hv
dCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJl
YWRDb3B5KHNuYXBzaG90KV0oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNob3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAy
LDExICszMDcsMjkgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQog
ICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xl
YXIoKTsKIAotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0
SWRlbnRpZmllcik7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAg
ICAgcmVnaXN0cnkuY2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRp
Zmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRo
cmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0
byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkp
OworCisgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8g
cGFnZSA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAg
dGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnkoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQ
cm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250
ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3Ry
eSgpKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1Jl
cXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9yZWxlYXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXgg
ZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5YzNkNTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1
NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7
CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENhbGxiYWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5Owog
CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBA
IC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01h
bmFnZXIoTmF2aWdhdG9yQmFzZSYpOwogCi0gICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwg
RnVuY3Rpb248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFp
blRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1h
aW5UaHJlYWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcy
LDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdl
YkxvY2tJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2
b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYm
IHRhc2spOworCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFs
OwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaAppbmRleCA3ZjUzM2MzY2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEw
ZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNlZjdhYzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJT
bmFwc2hvdC5oCkBAIC0zOCwxMiArMzgsNTUgQEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3QgewogICAgICAgICBTdHJpbmcgY2xpZW50SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENv
cHkoKSBjb25zdCB7IHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElk
Lmlzb2xhdGVkQ29weSgpIH07IH0KKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBt
b2RlIDw8IGNsaWVudElkOyB9CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZl
Y3RvcjxJbmZvPiBoZWxkOwogICAgIFZlY3RvcjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9j
a01hbmFnZXJTbmFwc2hvdCBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhy
ZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJlYWRDb3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsg
ZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVj
b2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2Vi
TG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbz4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5h
bWU7CisgICAgZGVjb2RlciA+PiBuYW1lOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7Cisg
ICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlmICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNv
ZGVyID4+IGNsaWVudElkOworICAgIGlmICghY2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92
ZSgqY2xpZW50SWQpIH0gfTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IGhlbGQ7CisgICAgZGVjb2RlciA+PiBoZWxkOworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5k
aW5nOworICAgIGRlY29kZXIgPj4gcGVuZGluZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBX
VEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2
YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1MDI5ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2
Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja01vZGUuaApAQCAtMjYsNiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9ja01vZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51
bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJvb2wgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3YmJkMzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi45NzRj
ZWJmYjM0OWM3YjM5MDQ1NjgyNjI5MDlkMzYwNmMzY2JiMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2
ICszMyw5MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0
cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKLSAgICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiByZWxlYXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJP
cmlnaW5SZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGVyT3JpZ2luUmVnaXN0
cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOwor
ICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOworCisgICAgc3RydWN0IExvY2tJbmZvIHsKKyAgICAg
ICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiByZWdpc3RyeTsKKyAgICAgICAgV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElEOworICAgICAgICBXZWJMb2NrTW9kZSBtb2RlOworICAgICAgICBGdW5j
dGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworICAgIH07CisKKyAgICB2b2lkIHJlcXVl
c3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxv
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVx
dWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRzQXJl
R29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xp
ZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJPcmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdp
c3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisgICAgc3RydWN0IExvY2tSZXF1ZXN0IDog
TG9ja0luZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZChi
b29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgfTsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3RyeTo6
TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0gICAgU3RyaW5nIG5hbWU7Ci0gICAgRnVuY3Rpb248
dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgdm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RR
dWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYpOworICAgIGJvb2wg
aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKKworICAgIFdlYWtQdHI8TG9j
YWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFsUmVnaXN0cnk7CisgICAgQ2xpZW50T3JpZ2luIG1f
Y2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1f
bG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZv
Pj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0aWMgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxv
Y2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgpCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojp+TG9j
YWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+Cit7CisgICAgaWYgKGF1dG8gZXhpc3RpbmdS
ZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKSkKKyAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworCisgICAgcmV0dXJuIFBlck9yaWdpblJlZ2lz
dHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9yaWdpbik7Cit9CisKK2F1dG8gTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4KIHsKLSAgICBB
U1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1h
cDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+PiByZWdpc3RyeU1hcDsKLSAgICByZXR1
cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJuIG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xp
ZW50T3JpZ2luKTsKIH0KIAotUmVmPFdlYkxvY2tSZWdpc3RyeT4gV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKK1JlZjxMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk+IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQ
ZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdp
c3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8g
ZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5TWFwKCkuZ2V0KG9yaWdpbikpCi0gICAgICAgIHJl
dHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmln
aW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwgY2xpZW50T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVnaXN0cnkob3JpZ2luKSk7CitMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmln
aW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5KQorICAgICwgbV9jbGll
bnRPcmlnaW4oY2xpZW50T3JpZ2luKQoreworICAgIGdsb2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2lu
UmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2luLCB0aGlzKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5
OjpXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29y
aWdpbihvcmlnaW4pCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5Q
ZXJPcmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAgcmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRo
aXMpOworICAgIGlmIChtX2dsb2JhbFJlZ2lzdHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5
LT5tX3Blck9yaWdpblJlZ2lzdHJpZXMucmVtb3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2Vi
TG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBz
dGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFu
ZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8q
IHJlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5V
U0VEKHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9y
aWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciks
IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI3JlcXVlc3QtYS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVx
dWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVh
c2VIYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhh
bmRsZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RG
TW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhp
cywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5k
bGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFs
KSB7CiAgICAgICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBp
ZiAoaXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9j
a0luZm8gOiBpdC0+dmFsdWUpCi0gICAgICAgICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRs
ZXIoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJl
cXVlc3QiIH0pOworICAgICAgICAgICAgICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7
CiAgICAgICAgICAgICBtX2hlbGRMb2Nrcy5yZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChpZkF2YWlsYWJsZSAmJiAhaXNHcmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDgg
KzEzMywxNCBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVz
dFF1ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxv
Y2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L3dlYi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVhc2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6
OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6
cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKIHsKICAgICBhdXRvIGl0ID0gbV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBp
ZiAoaXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkpCkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nCiAgICAgICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1
ZXVlSXRlcmF0b3ItPnZhbHVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAgICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1Jl
cXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1
ZXN0Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdp
c3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0
b3IgPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVy
YXRvciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAg
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIGNvbnN0IFMKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93
ZWItbG9ja3MvI2dyYW50YWJsZQotYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNv
bnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1
ZXN0KSBjb25zdAogewogICAgIGF1dG8gcXVldWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1
ZU1hcC5maW5kKHJlcXVlc3QubmFtZSk7CiAgICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2Nr
UmVxdWVzdFF1ZXVlTWFwLmVuZCgpICYmICZxdWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9
ICZyZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dy
YW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1
ZQotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0
cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25z
dCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUg
KCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJz
dCgpKSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBB
U1NFUlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwgcmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAK
K3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkp
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnkt
PnNuYXBzaG90KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3NuYXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdl
YkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFu
YWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYg
cGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9j
a01hbmFnZXI6OlNuYXBzaG90JiYKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBz
aG90KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5
KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVu
dHNBcmVHb2luZ0F3YXkoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0lu
Zm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdyYXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5Ojpj
bGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRz
QXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNo
Q2xpZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBv
cHRpbWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNo
IGNsaWVudHMuCiAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8m
IHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVNYXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVl
LnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVx
dWVzdC5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5y
ZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVudCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0
UmVxdWVzdHMuYXBwZW5kKHBhaXIua2V5KTsKQEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SQogCiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAg
ICAgZm9yIChhdXRvJiBwYWlyIDogbV9oZWxkTG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJu
IGxvY2tJbmZvLmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRMb2Nrcy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdl
YkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SQogICAgIH0KIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
Y2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikK
K3sKKyAgICBWZWN0b3I8Q2xpZW50T3JpZ2luPiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9y
KG1fcGVyT3JpZ2luUmVnaXN0cmllcy5rZXlzKCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3Jp
Z2luIDogY2xpZW50T3JpZ2lucykgeworICAgICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0
aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5
LT5jbGllbnRzQXJlR29pbmdBd2F5KFtwcm9jZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8p
IHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vz
c0lkZW50aWZpZXI7IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApp
bmRleCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRjNzc2MzI0ZWVhZGQ5NDNhMDZjLi44YjYzMTRlOGIx
MWJlMmE1ZDMwYmE3OTI4MTgwMmFjYjVjZjc3NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxvY2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRpb247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFw
c2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9j
a1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwotICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2
aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2Vi
TG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2Vw
dGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2Nr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNv
bnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRP
cmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3By
b3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBM
b2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkpOyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9y
aWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50
T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYm
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0
IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50
aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJbmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAot
ICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lk
IHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1Jl
cXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3JpZ2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdp
blJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsK
KyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4o
Y29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9v
cmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hl
bGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBt
X3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjBlNDI4ODM5NzU2OGQ0NTBkMTJmMTg1YjhmNmZlYTYwNjY0ZTE3OC4uMGYwYzhjOTU3ZTRjZDVm
ZGYzNzFhNDZkYWJkMDgwNzMwMDFlOTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxMSwxMCArMTMxMSwxMiBAQAogCQk0
NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2
QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjI3M0NBRjI2MEU1OUVGMDA2
RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2MEU1OURGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9y
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc4MDJCMjI3NDcxMTg1MDBE
QTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJFNEM1MDI2MTZBODExMDAzQTJDNjcgLyogU2NyaXB0
QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYzNEM3MkMyNzU3REFCMjAwMjZB
ODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIwMjc0NzExN0IwMERBOUZCNiAvKiBXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM1MjFBQTIwODEw
OTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKLQkJNDY0
NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxv
Y2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjQ0RjdGODI3MkExQzFGMDA1NTU5
OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUUyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tH
cmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdl
YkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01hbmFnZXIuaCAqLzsgfTsK
IAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlFIC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0YzMjcyQTFDMTYwMDU1NTk5RSAv
KiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU1Miw3ICszNzU1NCw5IEBACiAJCQkJMEZDRjMzMkYw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
QTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3
RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQwMEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjM0QzcyQzI3NTdEQUIyMDAyNkE4MTUgLyog
V2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjcyNzJB
MUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjRDQUYw
OTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9ja1JlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAz
YTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEyZTdmZjJlZTk2YjM1Li5jMDg3ODVhZjhmYzkyNGUz
NTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlZp
c2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExNzAsNiArMTE3MSwyMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9Owog
CitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0
cnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlXZWJMb2NrUmVnaXN0cnk+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVdlYkxvY2tSZWdp
c3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9ja01vZGUsIGJvb2wsIGJvb2wsIEZ1bmN0aW9uPHZv
aWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdm9pZCByZWxlYXNlTG9j
ayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgc25hcHNob3QoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBz
aG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9y
aWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSB7IH0KK307CisKIFBhZ2VD
b25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRp
b24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIEVt
cHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSwKKyAgICAgICAgRW1wdHlXZWJM
b2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAgICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVy
OjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2MjhmYjliYjJjNDk4NjUzNWM2MzJkOWQyZGFjOTEz
ZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdkZWI0ZWE1YTA4ODBmZjBkOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVk
TGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQog
ICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkpKQogICAgICwgbV9zZXNzaW9u
SUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lvbklEKQogI2lmIEVOQUJMRShWSURFTykKICAgICAs
IG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lcigqdGhpcywgJlBhZ2U6OnBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjFl
MDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3MWRhNGVkMzg1Ni4uNzc5ZDkzYTI0NTkwNTJjMTIz
MGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2Nyw2ICsxNjcsNyBA
QCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFz
cyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFzcyBX
aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAgLTI5OCw2ICsyOTksOCBAQCBwdWJsaWM6CiAgICAg
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJl
dHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2ViS2l0TGVnYWN5LgogCisgICAgV2ViTG9ja1JlZ2lz
dHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeTsgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZm9yRWFjaFBhZ2UoY29uc3QgRnVuY3Rpb248
dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG5vblV0
aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEzMiw2ICsxMTM1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxW
aXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxv
Y2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0
TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAgICAgV2Vha0hhc2hTZXQ8QWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMTk3Yzc4ZTRm
ZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4ZWM3YS4uYWU0MjdiN2QyY2ZlN2IyMjJhNTVkODVl
OTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4u
aCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0
ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpZiBFTkFCTEUo
V0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNlbmRpZgpAQCAtNjMsNyAr
NjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNv
bnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJv
dmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIs
IFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8
TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQorUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBz
b2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1By
b3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIs
IFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29r
aWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlh
UmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYgd2ViTG9ja1JlZ2lzdHJ5
LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1
ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQ
bGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAg
LCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTc1LDYgKzc2LDcg
QEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdU
Rk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgdXNlckNvbnRlbnRQcm92aWRlcihX
VEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAsIHdlYkxvY2tSZWdp
c3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJl
Y29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogICAgICwgcGVy
bWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShwZXJtaXNzaW9uQ29udHJvbGxlcikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggN2ZiMzM0NjU3ZTMxMjBjNWFkYmQy
ZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZiMmY1ZTYxZDQxN2ZmOWM1ODRjZGE0OGJiNDY5ZTlk
MDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsMTEg
Kzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVU
cmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
biB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFBlcm1pc3Npb25D
b250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9k
ZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9y
YWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJlZjxXZWJMb2NrUmVnaXN0cnk+
JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRl
cj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25m
aWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgogICAgIFJlZjxVc2Vy
Q29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVk
TGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5
PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CmluZGV4IDgyYWE1ZjIyZGQ3MjBjMTkxODQ2YTk0MmEzOTE0Y2JmZWFjODZjN2UuLmU4ZWFk
NjAyNzNiNzUxODk0MDE2NjJkNGRmYTBiMzE3M2IyMmM4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApA
QCAtMjI5LDYgKzIyOSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkKKyAg
ICBVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5CiAgICAgVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbApAQCAtMzA3LDYgKzMwOCw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKIAogICAgIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
CiAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeQog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IGE3ODk3Yjk2MWEzOWRhZjkyN2M1NGQxMmVmYTNjODk3MTQ5N2IwMmYuLjg1OTJkOTlk
MmUzNmFmYzllZjg1ZGNjMWMzZjU3NGVjMTk1ZWVmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1Myw2ICsxNTMsNyBAQCAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLm1lc3NhZ2VzLmluCkBAIC0yMTcsNiArMjE4LDcgQEAgJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCA5M2E2MTQ2ZDZiMTM5Y2I4YTE2YTE3MWJiNzdkNDRiZDNiNThiNjViLi5hNTll
NjIzYjA5ZTZhOTdlZmZlZDRmOWM1MmY1NzM2MzY0NWVhYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTM4Nyw2ICszODcsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VzUmVwbGllcwogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxv
Y2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdp
c3RyeU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGxpZXMuaApAQCAt
NTI2LDYgKzUyOSw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJ
bnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVy
TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NTc0Mzg2
NWE0YWM4MzJkM2U1ZGJkNGFmZDQzOGJkNzUzMmNkOTIzLi4xOTMzODg0OTYxYjRiYzMwNGYwODli
MGI1NGUxNDg5MWI1YzM0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNjgs
NiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL2lvcy9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyIFwKIAlVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkg
XAogCVVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSBcCisJVUlQcm9jZXNzL1dl
YkxvY2tSZWdpc3RyeVByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSBcCiAJVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBcCkBAIC0y
MTgsNiArMjE5LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJSVENNb25pdG9yIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1E
TlNSZWdpc3RlciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBc
CisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IFwKIAlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2
YzJkZWJhZmQ5MWQxNmY4ZDc3MDg5M2Y0ODg5NjkwMGRmZTI2ZDIuLjJjODM5YTllOWJjZDhlOWYx
MjFkZjg5MzBmZjQyZmM2MGNiMjdkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtMzEyLDYgKzMxMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTb3VyY2VCdWZmZXJBcHBlbmRN
b2RlJywKICAgICAgICAgJ1dlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdElkZW50aWZp
ZXInLAorICAgICAgICAnV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXInLAogICAgICAgICAnV2Vi
Q29yZTo6V2ViU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAzZTQzZDNlMTNhNzY3
OGY4MTRjYjZjNDc0MTI3MDlhMzMzZDc5NTRiLi5mZTYwNDEyYzJhMTUyYWI1YzQyZWZhZmMwYmI4
YmEyNGE0Nzg5ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQzNSw2ICs0MzUsNyBAQCBVSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cAogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCitVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
Y3BwCiBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcAogVUlQcm9jZXNzL1dlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcApAQCAtNzgxLDYgKzc4Miw3IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKK1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9TaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTg0Nyw4ICs4NDksNiBAQCBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAot
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAotCiBSZW1vdGVB
ZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVy
LmNwcAogUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtODcxLDMg
Kzg3MSw2IEBAIFJlbW90ZVNhbXBsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVTaGFkZXJN
b2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNw
cAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVXZWJMb2NrUmVn
aXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCitXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NTU1YmY3Y2E5NTE3Y2QyMzE2OWQ3MTExMWFiZWQxZTY3YTkzNGJlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJMb2NrSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0
aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBtX3Byb2Nlc3MuY29ubmVjdGlvbigp
KQorCitXZWJMb2NrUmVnaXN0cnlQcm94eTo6V2ViTG9ja1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7CisgICAgbV9wcm9j
ZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitXZWJMb2NrUmVnaXN0cnlQcm94eTo6
fldlYkxvY2tSZWdpc3RyeVByb3h5KCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2soV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlIGxvY2tNb2Rl
LCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobG9j
a0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJ
ZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZp
ZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworCisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5yZXF1ZXN0TG9jayhXVEZN
b3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RGTW92ZShuYW1l
KSwgbG9ja01vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRF0oYm9vbCBzdWNjZXNzKSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJ
ZGVudGlmaWVyLCBjbGllbnRJRCwgc3VjY2VzcyksIDApOworICAgIH0sIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdIHsKKyAgICAgICAgaWYg
KHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkRpZFN0ZWFsTG9jayhsb2NrSWRlbnRpZmllciwgY2xp
ZW50SUQpLCAwKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVs
ZWFzZUxvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUpCit7CisgICAgTUVTU0FH
RV9DSEVDSyhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5j
b3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9j
ZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7Cisg
ICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5yZWxlYXNl
TG9jayhXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RG
TW92ZShuYW1lKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OmFib3J0TG9ja1Jl
cXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgTUVTU0FHRV9DSEVDSyhs
b2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRp
ZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5hYm9ydExvY2tSZXF1ZXN0
KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1Jl
Z2lzdHJ5UHJveHk6OnNuYXBzaG90KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0
b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuc25hcHNob3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6OmNsaWVudElzR29pbmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdp
biwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7
CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJv
Y2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRh
U3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRJc0dvaW5nQXdheShXVEZNb3ZlKGNsaWVu
dE9yaWdpbiksIGNsaWVudElEKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cHJv
Y2Vzc0RpZEV4aXQoKQoreworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9j
a1JlZ2lzdHJ5KCkuY2xpZW50c0FyZUdvaW5nQXdheShtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVu
dGlmaWVyKCkpOworfQorCisjdW5kZWYgTUVTU0FHRV9DSEVDSworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBiYTMxYTliOTJiNzE2MWM3Y2FkNjAyYmZiYTFiODM2OTk3MzMyN2MKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tJZGVudGlm
aWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrTW9kZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOworc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeVByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBXZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB+V2ViTG9j
a1JlZ2lzdHJ5UHJveHkoKTsKKworICAgIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIC8vIElQQyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgcmVx
dWVzdExvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nJiYg
bmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUp
OworICAgIHZvaWQgcmVsZWFzZUxvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgU3RyaW5nJiYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJT
bmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwor
CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmFiYzI1NGM0MWUwZTAxOTE1NmNh
ODEyYzQ2ZmU3OTAzMDUxN2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJM
b2NrUmVnaXN0cnlQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBSZXF1ZXN0TG9jayhzdHJ1Y3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2ViTG9ja01vZGUg
bW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKKyAgICBSZWxlYXNlTG9jayhzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKQorICAgIEFib3J0TG9ja1JlcXVlc3Qoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkgLT4gKGJvb2wgd2FzQWJvcnRlZCkgQXN5bmMKKyAg
ICBTbmFwc2hvdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbikgLT4g
KHN0cnVjdCBXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90IHNuYXBzaG90KSBBc3luYwor
ICAgIENsaWVudElzR29pbmdBd2F5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50
T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
ZCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDAyOGM4ZDhlZjA3MTRjODJlYjkwNGM5NGU3ZTI5NzFkODViYWViMTMuLjIxNzE2YmIyNjI5ZTQ3
Y2Q0NjY4ZWEzNTM3OWQ3MGU5NjFjMjU0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tG
b3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5
UHJveHkuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgi
CkBAIC0yNDAsNiArMjQxLDcgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV9jYXB0
aXZlUG9ydGFsTW9kZShjYXB0aXZlUG9ydGFsTW9kZSkKICAgICAsIG1fY3Jvc3NPcmlnaW5Nb2Rl
KGNyb3NzT3JpZ2luTW9kZSkKICAgICAsIG1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudGVy
KFt0aGlzXShSZWZDb3VudGVyRXZlbnQgZXZlbnQpIHsgaWYgKGV2ZW50ID09IFJlZkNvdW50ZXJF
dmVudDo6RGVjcmVtZW50KSBtYXliZVNodXREb3duKCk7IH0pCisgICAgLCBtX3dlYkxvY2tSZWdp
c3RyeShtYWtlVW5pcXVlUmVmPFdlYkxvY2tSZWdpc3RyeVByb3h5PigqdGhpcykpCiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkpOwogICAgIFdFQlBS
T0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzLCAiY29uc3RydWN0b3I6Iik7CkBAIC01Mjgs
NiArNTMwLDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKICAgICBtX3VzZXJJ
bml0aWF0ZWRBY3Rpb25NYXAuY2xlYXIoKTsKICAgICBtX3NsZWVwRGlzYWJsZXJzLmNsZWFyKCk7
CiAKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBtX3dlYkxvY2tSZWdpc3Ry
eS0+cHJvY2Vzc0RpZEV4aXQoKTsKKwogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQog
ICAgIG1fcm91dGluZ0FyYml0cmF0b3ItPnByb2Nlc3NEaWRUZXJtaW5hdGUoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBkYTZkYzY4ZWVi
Y2VjYjQyMzYyN2VjOTg5ZDZiY2FhODAxNTc0OTczLi5jZDMzMDg2NDk0NDNiNWUzZWQyYjRmNzFh
MjI3MWY2ZmU1NzA4YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaApAQCAtOTMsNiArOTMsNyBAQCBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnlQcm94eTsKIGNs
YXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwpAQCAtNjc0LDYgKzY3NSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyOwogI2VuZGlmCisgICAgVW5pcXVlUmVmPFdlYkxvY2tSZWdpc3RyeVByb3h5
PiBtX3dlYkxvY2tSZWdpc3RyeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcAppbmRleCBmYzFkOWFlOTg5M2RkOTEwMTY3M2Y3YzhkYWU2ZjNiOWJhOGUzOWM3Li45
MDk3OTNlMzc1NjhjMDQyYjEwMDJhMjZhYTAyNzQ3ODRhOTFlNGNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lz
dHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGllci5o
PgpAQCAtMTMwLDYgKzEzMSw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUo
UmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgSEFWRShB
UFBfU1NPKQogICAgICwgbV9zb0F1dGhvcml6YXRpb25Db29yZGluYXRvcihtYWtlVW5pcXVlUmVm
PFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yPigpKQogI2VuZGlmCisgICAgLCBtX3dlYkxvY2tS
ZWdpc3RyeShXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAg
V1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIHJlZ2lzdGVy
V2l0aFNlc3Npb25JRE1hcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDYxOTYyODBmNzZkYTEyMDI5OGUy
YjdhYjE2NDA1ZDJmMGJhMjg5MjMuLjFkZTI1YTY2MDU3ZjJkNjZjNjI5OWU1ZWJiYjgxNDZiZWU5
YjgxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTc1LDYgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgUmVnaXN0cmFibGVEb21haW47CiBjbGFz
cyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OwogCiBzdHJ1Y3Qg
TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIH0KQEAgLTMxNyw2ICszMTgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQoVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3RvcmVD
bGllbnQ+JiYgY2xpZW50KSB7IG1fY2xpZW50ID0gV1RGTW92ZShjbGllbnQpOyB9CiAKICAgICBB
UEk6OkhUVFBDb29raWVTdG9yZSYgY29va2llU3RvcmUoKTsKKyAgICBXZWJDb3JlOjpMb2NhbFdl
YkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkgeyByZXR1cm4gbV93ZWJMb2NrUmVnaXN0
cnkuZ2V0KCk7IH0KIAogICAgIHZvaWQgcmVuYW1lT3JpZ2luSW5XZWJzaXRlRGF0YShVUkwmJiwg
VVJMJiYsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCkBAIC00NzEsNiArNDczLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5URUxM
SUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gbV90aGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlOyAvLyBMYXppbHkgY29tcHV0ZWQuCiAjZW5kaWYKKyAgICBSZWY8V2ViQ29yZTo6
TG9jYWxXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjEyMDRl
M2M0M2JiODZhZWQ0NmIzYzUxMTAzNTM4ZWE1NzJiOGQ4MC4uYTQ1MTE1ZjQ4OWFhMmNjYmM5YmVj
NGNlMTdkZjYwN2JlMjg1YjUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MDgsNiArOTA4LDcgQEAKIAkJNDYzRkQ0ODAxRUI5NDU5
NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4MkMg
LyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uLmggKi87IH07CiAJCTQ2NUY0RTA2MjMwQjJFOTUwMDNDRURCNyAvKiBTdG9yYWdl
TmFtZXNwYWNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyLmggKi87IH07CisJCTQ2NUZBNzI2Mjc1N0Q5M0QwMDcyMzYyQiAvKiBXZWJMb2Nr
UmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lmgg
Ki87IH07CiAJCTQ2NkJDMDNDMUZBMjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmggKi87IH07CiAJCTQ2NzFGRjFGMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmgg
Ki87IH07CiAJCTQ2N0U0M0U4MjI0M0ZGN0QwMEIxMzkyNCAvKiBXZWJQcm9jZXNzRGF0YVN0b3Jl
UGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY3RTQzRTcyMjQzRkY2RDAwQjEzOTI0IC8qIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzLmggKi87IH07CkBAIC00MTc2LDYgKzQxNzcsOSBAQAogCQk0NjVGNEUwMjIzMDc1OUQ1MDAz
Q0VEQjcgLyogU3RvcmFnZUFyZWFJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VB
cmVhSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwMzIz
MDc2MDRFMDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2NUY0RTA1MjMwQjJFN0MwMDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2Vi
TG9ja1JlZ2lzdHJ5UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjQyNzU3RDkxODAwNzIzNjJC
IC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkxvY2tSZWdpc3Ry
eVByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcy
NTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwM0ExRkEy
NjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE4Niw2ICs0MTkwLDgg
QEAKIAkJNDY4MDlBN0IyM0Q5MjI1MzAwQzI5N0QwIC8qIFdlYkNvb2tpZUNhY2hlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZUNhY2hlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2OUEyMUU4MUNDNzAwNkUyN0EzIC8qIFBy
b3Zpc2lvbmFsUGFnZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBy
b3Zpc2lvbmFsUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM1
NjlCMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODlCOTBGMjc1NkQxNDMwMDA3QzY1MSAvKiBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODlCOTEwMjc1NkQxNDMwMDA3
QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY5
REU4MDIyNzNFQ0M1RDAwOTMwMjc2IC8qIFByb2Nlc3NMYXVuY2hlckNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAv
KiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDcxRTU2NzVBMjAw
QzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyMDQsNiArNDIxMCw4IEBA
CiAJCTQ2Q0UzQjEwMjNEOEM4M0QwMDE2QTk2QSAvKiBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQmFja0ZvcndhcmRMaXN0Q291
bnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REYwNjM5MUYzOTA1RTUwMDE5
ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2M0ExRjM5MDVFNTAwMTk4MEJCIC8qIE5l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDZFOTc2MEEyNzU3RjZDOTAwQUNERDM3IC8qIFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0NzI2OUUwNDlCMDBE
RDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUyODQ4MjY5RTA0OUIwMERENDhBQiAvKiBX
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2RUUyODRBMjY5RTA1MTcwMERENDhBQiAvKiBOZXR3b3JrQnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDUzOCw2ICsxMDU0Niw5IEBACiAJCQkJQ0Q2MTc4MTExRTZERTk4MDAwRkRB
NTdEIC8qIGNvY29hICovLAogCQkJCTJEMjhGM0RGMTg4NUNDQjQwMDRCOUVBRSAvKiBpb3MgKi8s
CiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk0Njg5QjkxMDI3
NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCAqLywKKwkJCQk0Njg5
QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggKi8sCisJCQkJ
NDZFOTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdl
cy5pbiAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRlQ29u
dmVyc2lvbi5jcHAgKi8sCiAJCQkJMUE3Mjg0NDUxOTU5RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25T
dGF0ZUNvbnZlcnNpb24uaCAqLywKIAkJCQlGNDNBOUNERTI1RDcyRTJEMDA5OTBFMjYgLyogU2hh
cmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcCAqLywKQEAgLTEwNTQ1LDYgKzEwNTU2LDcgQEAKIAkJ
CQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmgg
Ki8sCiAJCQkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeS5jcHAgKi8sCiAJCQkJNDZFRTI4NDgyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBBMjc1N0Y2QzkwMEFDREQzNyAv
KiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJRTNBODZG
QkMyNjk1OEUzMzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmNwcCAq
LywKIAkJCQlFM0E4NkZCQjI2OTU4RDgzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVuY2Vz
RGVsZWdhdGUuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hyb21l
Q2xpZW50LmNwcCAqLywKQEAgLTEwODI4LDYgKzEwODQwLDkgQEAKIAkJCQlCQzFCRTFGMTEyRDU0
REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAgKi8sCiAJCQkJQkMxQkUx
RjAxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCAqLywKIAkJCQk1
MUM4RTE5QjFGMjE2MTcyMDBCRjczMUIgLyogV2ViSWNvbkRhdGFiYXNlLmggKi8sCisJCQkJNDY1
RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmNwcCAqLywKKwkJ
CQk0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLywK
KwkJCQk0NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVz
c2FnZXMuaW4gKi8sCiAJCQkJMkQzRUY0NDAxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVBy
ZXNzdXJlSGFuZGxlci5jcHAgKi8sCiAJCQkJMkQzRUY0NDExOTE3NjQ2MzAwMDM0MTg0IC8qIFdl
Yk1lbW9yeVByZXNzdXJlSGFuZGxlci5oICovLAogCQkJCTdDQ0NDOEY4MUE1RjUwRkQwMDhGQjBE
QSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuY3BwICovLApAQCAtMTI0NDksOCArMTI0NjQsOCBAQAog
CQkJCTUxNjBFOTVFMjc0QzJBMDMwMDU2NzM4OCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNjBFOTU5Mjc0QzBEODkwMDU2NzM4OCAvKiBQdXNoQXBwQnVu
ZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY3QkI3QjI3NDRDNTA3MDBDNDVBNzIgLyogUHVz
aENsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0I1RjJGMjc1NzM4MkIw
MDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMkNENjlGMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERh
ZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTEzMzM0LDYg
KzEzMzQ5LDcgQEAKIAkJCQlCQ0I2MzQ3ODExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzlCQTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0Mklu
aXRpYWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjI4MEM3MTkxOTk1MEMwMDZBRDlGOSAv
KiBXZWJLaXRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjVGQTcyNjI3NTdEOTNEMDA3
MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMDAz
QTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAv
KiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzk4LDYgKzEzNDE0LDcg
QEAKIAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyogV2Vi
UHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5ODI3MjFFRkM4MDBG
N0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUx
N0I1RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNENjlBMjcyMUYwQTkwMEY3RjhFQyAvKiBX
ZWJQdXNoRGFlbW9uQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjFDQ0NBNjIzMTQ4
NUFBMDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTM1NDgsNyArMTM1NjUsNiBAQAogCQkJCTVDNzk1
RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDNzk1RDcxMjI5RjM3NTcwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxl
bWVudEluZm9Qcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTVGNjEyOEM2QzQ3MDA5
QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0I1RjJF
Mjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTU1NjAxMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRl
eHRNZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUVBMDIzODFEQUJGRjdFMDA5
NjAyMUYgLyogV0tDb250ZXh0TWVudUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M5
MzhFMTExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggYWE3NDNjNjJlM2YzYjU1
NDNjYTdjZmM3YjUyZTJlMzBhZDk5MTljZC4uZjliODUyNDZkZjViNmIyMzlhZjBkYThjYmYwOTUy
ODU1NTQ3N2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUlRD
RGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIldlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgpAQCAtMTQ4LDYgKzE0OSw3IEBAIHZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRlciA9IFdl
YkRhdGFiYXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3VwSUQpOwogICAgIHBhZ2VD
b25maWd1cmF0aW9uLnNvY2tldFByb3ZpZGVyID0gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSht
X3dlYlBhZ2VQcm94eUlEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5icm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJMb2NrUmVnaXN0cnkoKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi51
c2VyQ29udGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CiAjaWYgRU5BQkxF
KFdFQl9SVEMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIgPSBtYWtl
VW5pcXVlUmVmPFNlcnZpY2VXb3JrZXJMaWJXZWJSVENQcm92aWRlcj4oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVn
aXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90
ZVdlYkxvY2tSZWdpc3RyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVhZjA5ZWU2YjM3NTljZWQ0MjcyN2Yy
ZmZmMGU1YjNkOTM5OGU4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCkBAIC0wLDAgKzEs
MTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oIgorCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IExvY2tJ
bmZvIHsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworfTsKKworc3Ry
dWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCk+IGxv
Y2tHcmFudGVkSGFuZGxlcjsKK307CisKK3N0cnVjdCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6Okxv
Y2tzU25hcHNob3QgeworICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIExv
Y2tSZXF1ZXN0PiBwZW5kaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciwgTG9ja0luZm8+IGhlbGRMb2NrczsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNv
bnN0IHsgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkgJiYgaGVsZExvY2tzLmlzRW1w
dHkoKTsgfQorfTsKKworUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpSZW1vdGVXZWJMb2NrUmVnaXN0
cnkoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBwcm9jZXNzLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
ICp0aGlzKTsKK30KKworUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoKnRoaXMpOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2so
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpXZWJM
b2NrTW9kZSBsb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9s
ZW5IYW5kbGVyKQoreworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7IFdURk1vdmUobG9ja1N0
b2xlbkhhbmRsZXIpIH0sIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CisgICAgYXV0byYgc25h
cHNob3QgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5zdXJlKGNsaWVudElELCBbXSB7IHJl
dHVybiBMb2Nrc1NuYXBzaG90IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIHNuYXBzaG90
LnBlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCkpOwor
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViTG9ja1JlZ2lz
dHJ5UHJveHk6OlJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVu
dElELCBuYW1lLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlKSwgMCk7Cit9CisKK3ZvaWQg
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
LCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBl
ckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAoaXQgIT0gbV9sb2Nrc1NuYXBzaG90UGVy
Q2xpZW50LmVuZCgpKSB7CisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3MucmVtb3ZlKGxvY2tJ
ZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKyAgICB9CisKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6
UmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUp
LCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qo
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5
UHJveHk6OkFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xp
ZW50SUQsIG5hbWUpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShib29sIGRpZEFib3J0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzICYmIGRp
ZEFib3J0KSB7CisgICAgICAgICAgICBhdXRvIGl0ID0gd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hv
dFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICAgICAgICAgIGlmIChpdCAhPSB3ZWFrVGhp
cy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKSB7CisgICAgICAgICAgICAgICAgaXQt
PnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOworICAgICAgICAg
ICAgICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB3ZWFr
VGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZGlkQWJvcnQpOworICAgIH0s
IDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpTbmFwc2hvdChjbGllbnRPcmlnaW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
OjpjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9y
aWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQp
Cit7CisgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShjbGllbnRJRCk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6OkNsaWVudElzR29pbmdBd2F5KGNsaWVudE9yaWdpbiwgY2xpZW50SUQpLCAwKTsKK30KKwor
dm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBib29sIHN1Y2Nlc3MpCit7CisgICAgYXV0
byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAo
aXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0ID0gaXQtPnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy50YWtl
KGxvY2tJZGVudGlmaWVyKTsKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVkSGFu
ZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsb2NrR3JhbnRlZEhhbmRsZXIgPSBX
VEZNb3ZlKHBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVkSGFuZGxlcik7CisgICAgaWYgKHN1Y2Nl
c3MpCisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3MuYWRkKGxvY2tJZGVudGlmaWVyLCBXVEZN
b3ZlKHBlbmRpbmdSZXF1ZXN0KSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChpdC0+dmFsdWUu
aXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShp
dCk7CisgICAgfQorCisgICAgbG9ja0dyYW50ZWRIYW5kbGVyKHN1Y2Nlc3MpOworfQorCit2b2lk
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9PSBtX2xvY2tzU25hcHNob3RQZXJDbGll
bnQuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbG9ja0luZm8gPSBpdC0+dmFs
dWUuaGVsZExvY2tzLnRha2UobG9ja0lkZW50aWZpZXIpOworICAgIGlmICghbG9ja0luZm8ubG9j
a1N0b2xlbkhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpdC0+dmFsdWUuaXNF
bXB0eSgpKQorICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKwor
ICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNWIxYWFmYzU0
YzhhMjE1N2M1MmZmMGNkYTk2ODM0MzZjYjFhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgK
QEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzUXVhbGlmaWVkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNz
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnksIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNzKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShwcm9jZXNzKSk7IH0K
KyAgICB+UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KCk7CisKKyAgICAvLyBXZWJDb3JlOjpXZWJMb2Nr
UmVnaXN0cnkuCisgICAgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01v
ZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Z3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikgZmlu
YWw7CisgICAgdm9pZCByZWxlYXNlTG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBX
ZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkgZmluYWw7CisgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsK
KyAgICB2b2lkIHNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikgZmlu
YWw7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWw7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShXZWJQcm9jZXNzJik7CisKKyAgICAvLyBJ
UEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIGRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBib29sIHN1Y2Nlc3MpOworICAgIHZvaWQgZGlkU3RlYWxMb2NrKFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcik7CisKKyAgICBzdHJ1Y3QgTG9ja3NTbmFwc2hvdDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBMb2Nrc1NuYXBzaG90PiBtX2xvY2tz
U25hcHNob3RQZXJDbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YTdh
ZWEyYmQ0YmQ3NzJhMmRhZGVkNGM2ZjdlYzI3MWZmNGFlZDgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittZXNzYWdlcyAt
PiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgeworICAgIERpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBib29sIHN1Y2Nlc3MpOworICAgIERp
ZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YzNjZmQ0
MjM4NzhiNmNjNTUyMDM1MmZhZDA0NWNjZjU5ZjBjYjAwLi4zYmRmYTdjOWQ5MzNiZDlkZTAwYmY3
MjBmZDQ3NTFjNzA4NmI3ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJLmgiCiAjaW5j
bHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZVdl
YkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNl
c3Npb25TdGF0ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKQEAg
LTU3Myw2ICs1NzQsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4obV9pZGVudGlmaWVyKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCp0aGlzKSwKICAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCksCisgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpLAogICAgICAgICBX
ZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgbWFrZVVuaXF1
ZVJlZjxXZWJTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViTW9k
ZWxQbGF5ZXJQcm92aWRlcj4oKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggOTQzMDRiNzExZmQ0ZmFlYTNiMjBlNzM5Yzk5NmE0N2I4YzcyYWQzNC4uZjZl
ODc2MjQ2YmZkZDZhYWQwMDc5ZDBlZWNhM2JmNzNkYmU3MGZiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbW90
ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyLmgi
CisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU3BlZWNoUmVj
b2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTI3OSw2ICsyODAsNyBAQCBXZWJQ
cm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fd2ViTG9hZGVyU3RyYXRlZ3koKm5ldyBXZWJM
b2FkZXJTdHJhdGVneSkKICAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoV2ViQ2FjaGVTdG9y
YWdlUHJvdmlkZXI6OmNyZWF0ZSgpKQogICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnko
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSkKKyAgICAsIG1fd2ViTG9ja1Jl
Z2lzdHJ5KFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fY29v
a2llSmFyKFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkpCiAgICAgLCBtX3JlcG9ydGluZ0VuZHBvaW50
c0NhY2hlKFJlcG9ydGluZ0VuZHBvaW50c0NhY2hlOjpjcmVhdGUoKSkKICAgICAsIG1fZG5zUHJl
ZmV0Y2hIeXN0ZXJlcmlzKFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAo
c3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIG1fZG5zUHJlZmV0Y2hlZEhv
c3RzLmNsZWFyKCk7IH0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5
YWRlM2MwMDVhZjJlMjI3MWFmY2FiZmZkNjgxNTIzNjc2ZWZiNzBhLi4xNGNkZjc1MTVjNjJjNDVk
YWI5ZjlkYjgxNmZkY2IyZDg4NWNmMzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOwogY2xhc3Mg
UmVtb3RlQ0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk7CiBjbGFzcyBS
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OworY2xhc3MgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5Owogc3RydWN0IFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGE7CiBjbGFz
cyBTdG9yYWdlQXJlYU1hcDsKIGNsYXNzIFVzZXJEYXRhOwpAQCAtMzQwLDYgKzM0MSw3IEBAIHB1
YmxpYzoKIAogICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRl
cigpIHsgcmV0dXJuIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIuZ2V0KCk7IH0KICAgICBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpIHsgcmV0dXJu
IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmdldCgpOyB9CisgICAgUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeS5nZXQo
KTsgfQogICAgIFdlYkNvb2tpZUphciYgY29va2llSmFyKCkgeyByZXR1cm4gbV9jb29raWVKYXIu
Z2V0KCk7IH0KICAgICBXZWJTb2NrZXRDaGFubmVsTWFuYWdlciYgd2ViU29ja2V0Q2hhbm5lbE1h
bmFnZXIoKSB7IHJldHVybiBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOyB9CiAgICAgV2ViQ29y
ZTo6UmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUmIHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKCkgeyBy
ZXR1cm4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZS5nZXQoKTsgfQpAQCAtNjc2LDYgKzY3OCw3
IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI+IG1fY2FjaGVT
dG9yYWdlUHJvdmlkZXI7CiAgICAgUmVmPFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gbV9i
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4g
bV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmPFdlYkNvb2tpZUphcj4gbV9jb29raWVKYXI7CiAg
ICAgUmVmPFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlPiBtX3JlcG9ydGluZ0VuZHBv
aW50c0NhY2hlOwogICAgIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyIG1fd2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggMGM3NDRkZGNlYjMzMjZkMDY3MTQ3YTA2ZWI5MTIxZmIxMGU1N2Y0NS4uNTY2NDJjMjIyZDZi
YzU0M2FmOWU3NTliNjM5MzJhYTZlZDgzODY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjMxLDYgKzIzMSw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVKSVRPcGVyYXRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0
cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1dlYkxvY2tSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJWaWV3VmlzdWFsSWRlbnRp
ZmljYXRpb25PdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9ydCA8
V2ViS2l0TGVnYWN5L0RPTS5oPgpAQCAtMTQzOCw2ICsxNDM5LDE4IEBAIHN0YXRpYyB2b2lkIFdl
YktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiB9CiAjZW5kaWYKIAor
c3RhdGljIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gZ2V0T3JDcmVhdGVXZWJM
b2NrUmVnaXN0cnkoYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBk
ZWZhdWx0UmVnaXN0cnk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBwcml2YXRlUmVnaXN0cnk7CisgICAgYXV0byYgZXhp
c3RpbmdSZWdpc3RyeSA9IGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA/IHByaXZhdGVSZWdpc3Ry
eSA6IGRlZmF1bHRSZWdpc3RyeTsKKyAgICBpZiAoZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSkKKyAg
ICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5LmdldCgpOworICAgIGF1dG8gcmVnaXN0cnkg
PSBXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCk7CisgICAgZXhpc3RpbmdS
ZWdpc3RyeS5nZXQoKSA9IHJlZ2lzdHJ5OworICAgIHJldHVybiByZWdpc3RyeTsKK30KKwogLSAo
dm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZyYW1l
TmFtZSBncm91cE5hbWU6KE5TU3RyaW5nICopZ3JvdXBOYW1lCiB7CiAgICAgV2ViQ29yZVRocmVh
ZFZpb2xhdGlvbkNoZWNrUm91bmRUd28oKTsKQEAgLTE1NDMsNiArMTU1Niw3IEBAIC0gKHZvaWQp
X2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUg
Z3JvdXBOYW1lOihOU1N0CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6
Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5OjpnZXRPckNyZWF0ZShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWRdKSwKKyAgICAgICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHByZWZl
cmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15
UGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdl
YkNvcmU6OkR1bW15U3RvcmFnZVByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdl
YkNvcmU6OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4oKQpAQCAtMTgyNCw2ICsxODM4LDcgQEAg
LSAoaWQpaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHlsZSBm
cmFtZTooQ0dSZWN0KWZyYW1lIHByZWYKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpE
dW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8
V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShbW3Nl
bGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKICAgICAgICAgV2ViQ29y
ZTo6RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwCmluZGV4IGY0NjMwNzlkOTgxYmZlMmE1OGMyYTI0YjJmZjUxMDljMjQy
ZDZmMDguLjRmZmNkZTljNTMyNzAyZDkzNGQzYzdjMTM1NTM3Y2ViMjYxNWYxMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSklUT3Bl
cmF0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZVRleHRSZW5kZXJlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5k
b3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NUb3VjaC5o
PgogI2luY2x1ZGUgPGNvbWRlZi5oPgpAQCAtMjk5Miw2ICsyOTkzLDE2IEBAIGJvb2wgV2ViVmll
dzo6c2hvdWxkSW5pdGlhbGl6ZVRyYWNrUG9pbnRIYWNrKCkKICAgICByZXR1cm4gc2hvdWxkQ3Jl
YXRlU2Nyb2xsYmFyczsKIH0KIAorc3RhdGljIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdp
c3RyeT4gZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gZXhpc3RpbmdS
ZWdpc3RyeTsKKyAgICBpZiAoZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSkKKyAgICAgICAgcmV0dXJu
ICpleGlzdGluZ1JlZ2lzdHJ5LmdldCgpOworICAgIGF1dG8gcmVnaXN0cnkgPSBXZWJDb3JlOjpM
b2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCk7CisgICAgZXhpc3RpbmdSZWdpc3RyeS5nZXQo
KSA9IHJlZ2lzdHJ5OworICAgIHJldHVybiByZWdpc3RyeTsKK30KKwogSFJFU1VMVCBXZWJWaWV3
Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNU
UiBncm91cE5hbWUpCiB7CiAgICAgSFJFU1VMVCBociA9IFNfT0s7CkBAIC0zMDY1LDYgKzMwNzYs
NyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RS
IGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRp
YVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eTo6Z2V0T3JDcmVhdGUoZmFsc2UpLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3Ry
eSgpLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUo
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlk
ZXI+KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAxNmI3OTY0NzQyMTFiZTY0ZGJjMTc2MTk4ZjU4NzZkMmVkOWUzODI4Li5hYzY3MTNhZWMzYzI4
YWRkOGFmZDUyMzA0Yjc3MDY0ZGNiMWYyNTBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTItMDEgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNYWtlIFdlYiBMb2Nr
IEFQSSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcxOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tOiBBZGRlZC4K
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTEyLTAxICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBBUEkgdGVzdCBidWls
ZCBmaXguCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMGZhNzNhZTYzZDE1
YTExNmYxOGI0OTgxZTRlNzA4OGYwZTQxODRiMi4uNDlmYjkyNjZkYjQzNjM2MWNmNDMzYmI0MzA5
MjU1N2YxN2RlY2NjNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dApAQCAtMjkz
LDYgKzI5Myw3IEBAIFRlc3RzL1dlYktpdENvY29hL1dLV2Vic2l0ZURhdGFzdG9yZS5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0KIFRlc3RzL1dl
YktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViR0xQ
b2xpY3kubW0KK1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tCiBUZXN0cy9XZWJLaXRDb2Nv
YS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYlByb2Nl
c3NUZXJtaW5hdGUubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYlB1c2hEYWVtb24ubW0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNzgwZjFiZjkwODIyZDhmZjA0NjAyYTM2NjcyZjYyYWQ2OGY2
MzJmYy4uMjEwMzA3NDI5MWM0MWU3ZTIwNTI3ODExZmE0NTdhOTU1MTA1YTlkZCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE5MzMsNiArMTkzMyw3IEBACiAJCTQ0Q0RFNEQzMjZFRTZFNDEw
MDlGNkFDQiAvKiBUeXBlQ2FzdHNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFR5cGVDYXN0c0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NENGMzFGQjI0OTkzRjY2MDA5Q0I2Q0IgLyogQ29udGV4dE1lbnVBY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dE1lbnVBY3Rpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEQ1MDA4RDI2RkU5RUQ2MDAwRUIxMkYg
LyogUmV0YWluUHRyQVJDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gUmV0YWluUHRyQVJDLm1tOyBwYXRoID0gbnMvUmV0YWluUHRyQVJDLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NjA2MTU0NTI3NTgyNEI0MDBBQjYxM0QgLyogV2ViTG9ja3Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJMb2Nrcy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDYwQzJGQzgyNzAzOUQ3RDAwNDdFRjExIC8qIFNlcnZpY2VXb3JrZXJQYWdl
UHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclBhZ2VQcm90b2NvbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjEyQzJCODIxMEE2QUJGMDBCNzg4QTYgLyog
TG9hZEZpbGVUaGVuUmVsb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gTG9hZEZpbGVUaGVuUmVsb2FkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NjI4QzhFODIzNjdBQkJDMDBCMDczRjAgLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1NlY3VyaXR5T3JpZ2luLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzIsNiArMzU3Myw3IEBACiAJCQkJODMwRjJF
MEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICov
LAogCQkJCTU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBXZWJDcnlwdG9NYXN0ZXJLZXkubW0g
Ki8sCiAJCQkJNUM5NzNGNUIxRjU4RUYwQTAwMzU5QzI3IC8qIFdlYkdMUG9saWN5Lm1tICovLAor
CQkJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJMb2Nrcy5tbSAqLywKIAkJCQk1MTcx
NEVCNjFDRjhDN0E0MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tICovLAog
CQkJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQcm9jZXNzVGVybWluYXRlLm1tICov
LAogCQkJCTVDMTU3QTAyMjcxN0MzQjEwMEVENTI4MCAvKiBXZWJQdXNoRGFlbW9uLm1tICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nr
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjZhOTU0NDY2MTBkY2ZjZTViY2Y2MGZmODA5ZjAzN2UzNzdjNWUwMQotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
TG9ja3MubW0KQEAgLTAsMCArMSwyMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKworI2ltcG9ydCAiSFRUUFNlcnZlci5oIgorI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQg
IlV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNU
KFdlYkxvY2tzLCBTbmFwc2hvdEFjcm9zc1Byb2Nlc3NlcykKK3sKKyAgICBUZXN0V2ViS2l0QVBJ
OjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7ICJmb28iIH0gfQorICAgIH0p
OworCisgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQi
XSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMSBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24xLmdldCgpXSk7CisgICAgW3dlYlZpZXcxIHN5
bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlk
MSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQx
LCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIHBl
cmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25l
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2
aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21p
c2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRp
b24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAg
ICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9jZXNzUG9vbCA9IFtjb25maWd1cmF0aW9uMSBwcm9j
ZXNzUG9vbF07CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtX
S1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0
dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAg
ICAgICAgW1tjb25maWd1cmF0aW9uMiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKyAgICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uMi5nZXQoKV0pOworICAgIFt3ZWJWaWV3MiBzeW5jaHJvbm91c2x5TG9h
ZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldzIg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisKKyAg
ICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1l
c3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVz
c2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAg
IFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgn
YmFyJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEi
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzEgcGVyZm9ybUFm
dGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8v
IFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4KKyAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUgPSB0cnVl
OworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3Iu
bG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0n
ICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBkb25l
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6
XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMCBwZW5k
aW5nIGxvY2tzLCBhbmQgMiBoZWxkIG9uZXMuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNz
YWdlLCBAIjAtMiIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmll
dzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFw
c2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
JycgKyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3Ro
KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9y
KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYkxvY2tzLCBMb2NrUmVxdWVzdFdh
aXRpbmdPbkFub3RoZXJQcm9jZXNzKQoreworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIg
c2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgImZvbyIgfSB9CisgICAgfSk7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24xID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dL
UHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1
cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tzQVBJRW5hYmxlZCJdKSB7CisgICAgICAg
ICAgICBbW2NvbmZpZ3VyYXRpb24xIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorCisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbjEuZ2V0KCldKTsKKyAgICBbd2ViVmlldzEgc3luY2hyb25vdXNseUxv
YWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcx
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIDApOworCisgICAg
X19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzEgcGVyZm9ybUFmdGVyUmVj
ZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9X
S19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAg
IH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3Mu
cmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRs
ZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7
IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikg
eworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjIgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRp
b24yLmdldCgpLnByb2Nlc3NQb29sID0gW2NvbmZpZ3VyYXRpb24xIHByb2Nlc3NQb29sXTsKKyAg
ICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMg
X2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1
YWxUb1N0cmluZzpAIldlYkxvY2tzQVBJRW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW2NvbmZp
Z3VyYXRpb24yIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAg
IGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2
ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIF9fYmxvY2sgYm9v
bCBsb2NrQWNxdWlyZWQgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19T
VFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7
CisgICAgfV07CisKKyAgICAvLyBSZXF1ZXN0aW5nIHRoZSBzYW1lIGxvY2sgbmFtZSBhcyB3ZWJW
aWV3MSBzbyB0aGUgcmVxdWVzdCBzaG91bGQgZ2V0IHF1ZXVlZCB1bnRpbCB3ZWJWaWV3MSByZWxl
YXNlcyBpdC4KKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxv
Y2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RI
YW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4g
e30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJy
b3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworCisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UobG9ja0FjcXVpcmVk
KTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNo
b3VsZCBiZSAxIHBlbmRpbmcgbG9jaywgYW5kIDEgaGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9X
S19TVFJFUShtZXNzYWdlLCBAIjEtMSIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5
KCkudGhlbihzbmFwc2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoJycgKyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90
LmhlbGQubGVuZ3RoKTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgW3dlYlZpZXcyIHBlcmZv
cm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBsb2NrQWNx
dWlyZWQgPSB0cnVlOworICAgIH1dOworCisgICAgLy8gTm93IGNsb3NlIHRoZSB3ZWJWaWV3MS4g
VGhpcyBzaG91bGQgcmVsZWFzZSB0aGUgJ2ZvbycgbG9jayBhbmQgYWxsb3cgd2ViVmlldzIgdG8g
YWNxdWlyZSBpdC4KKyAgICBbd2ViVmlldzEgX2Nsb3NlXTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmbG9ja0FjcXVpcmVkKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2Vi
VmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdl
KSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAxIGhl
bGQgb25lLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTEiKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlw
dDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGlu
Zy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRp
b25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1Rf
TlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445670</attachid>
            <date>2021-12-01 21:46:51 -0800</date>
            <delta_ts>2021-12-02 09:29:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211201214651.patch</filename>
            <type>text/plain</type>
            <size>124141</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxZjExMDU3ZjIyYjQw
YTAzZjFlMWM4MTAxNDk2ZDQzOWVjOTVkNC4uMzVjNTU1NTg2NjU4MTc3YjM2OWNhMjY4ZTE3ZjBh
ZDVkNTFmZDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFj
cm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMuIFRvIGFjaGlldmUgdGhpcywgV2ViTG9ja1JlZ2lz
dHJ5IGlzIG5vdworICAgICAgICBhbiBpbnRlcmZhY2Ugd2l0aCAyIGNvbmNyZXRlIHN1YmNsYXNz
ZXM6CisgICAgICAgIC0gTG9jYWxXZWJMb2NrUmVnaXN0cnk6IEluIGNoYXJnZSBvZiB0aGUgYWN0
dWFsIHN0b3JhZ2Ugb2YgdGhlIGxvY2sgcmVnaXN0cmF0aW9ucy4gVGhpcyBpcworICAgICAgICAg
IGJhc2ljYWxseSBhIHJlbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCB1c2VkIHRvIGJlIG5hbWVkIFdl
YkxvY2tSZWdpc3RyeS4gSW4gdGhlIFdlYktpdExlZ2FjeQorICAgICAgICAgIGNhc2UsIHdlIHVz
ZSBhIGdsb2JhbCBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3IgcmVndWxhciBicm93c2luZyB2aWV3
cyBhbmQgYW5vdGhlciBnbG9iYWwKKyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBmb3Ig
cHJpdmF0ZSBicm93c2luZyB2aWV3cy4gSW4gdGhlIG1vZGVybiBXZWJLaXQgY2FzZSwgdGhlCisg
ICAgICAgICAgTG9jYWxXZWJMb2NrUmVnaXN0cnkgaXMgaGVsZCBpbiB0aGUgVUlQcm9jZXNzIGJ5
IHRoZSBXZWJzaXRlRGF0YVN0b3JlLiBJdCBpcyBoZWxkIGJ5IHRoZQorICAgICAgICAgIFdlYnNp
dGVEYXRhU3RvcmUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGRpZmZlcmVudCBzZXNzaW9ucyB0byBz
aGFyZSBsb2Nrcy4gSXQgbGl2ZXMgaW4gdGhlCisgICAgICAgICAgVUlQcm9jZXNzIGJlY2F1c2Ug
aXQgbmVlZHMgdG8gYmUgc2hhcmVkIGJ5IHNldmVyYWwgV2ViUHJvY2Vzc2VzLiBUaGUgTmV0d29y
a1Byb2Nlc3MgbWF5CisgICAgICAgICAgaGF2ZSBiZWVuIHN1aXRhYmxlIHRvbyBidXQgaXQgd291
bGQgaGF2ZSBtZWFudCBkZWFsaW5nIHdpdGggY3Jhc2ggcmVjb3ZlcnkuCisgICAgICAgIC0gUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OiBJdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlIGhhcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeSBidXQgbWVyZWx5IHByb3hpZXMKKyAgICAgICAgICBjYWxscyB0byB0aGUg
VUlQcm9jZXNzIHZpYSBJUEMuCisKKyAgICAgICAgSW4gdGhlIFVJUHJvY2VzcywgZWFjaCBXZWJQ
cm9jZXNzUHJveHkgaGFzIGEgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgaW5zdGFuY2Ugd2hpY2ggbGlz
dGVucyBmb3IKKyAgICAgICAgSVBDIGZyb20gdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0
aGUgV2ViUHJvY2Vzcy4gVXBvbiByZWNlaXZpbmcgSVBDLCBpdCB2YWxpZGF0ZXMgdGhlCisgICAg
ICAgIHBhcmFtZXRlcnMgKHNpbmNlIHRoZSBXZWJQcm9jZXNzZXMgYXJlIG5vdCB0cnVzdGVkKSBh
bmQgY2FsbHMgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb25zIG9uCisgICAgICAgIHRoZSBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBoZWxkIGJ5IHRoZSBXZWJQcm9jZXNzUHJveHkncyBXZWJzaXRlRGF0
YVN0b3JlLiBUaGUgV2ViTG9ja1JlZ2lzdHJ5UHJveHkKKyAgICAgICAgaXMgYWxzbyBpbiBjaGFy
Z2Ugb2Ygbm90aWZ5aW5nIHRoZSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgaW4gdGhlIFdlYlByb2Nl
c3Mgd2hlbmV2ZXIgYSBsb2NrCisgICAgICAgIHJlcXVlc3QgY29tcGxldGVzIGFuZCB3aGVuZXZl
ciBhIGhlbGQgbG9jayBnZXRzIHN0b2xlbi4KKworICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpy
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9j
a09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6cmVsZWFz
ZUxvY2tPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmFi
b3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdl
cjo6ZW5zdXJlT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Q6Oklu
Zm86OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFw
c2hvdDo6SW5mbzo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1Jl
Z2lzdHJ5Rm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5Ojp+UGVyT3JpZ2luUmVnaXN0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVsZWFzZUxvY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNz
TG9ja1JlcXVlc3RRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5KToK
KyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdB
d2F5KToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVn
aXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tSZWdpc3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9j
a1JlcXVlc3RRdWV1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6OnNuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5
Ojp+V2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMpOgorICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBw
YWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OndlYkxvY2tSZWdpc3RyeSk6Cisg
ICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaDoKKwogMjAyMS0xMi0wMSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAg
PGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzLCBl
YXJseSBEZWNlbWJlciAyMDIxIGVkaXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggY2M2YTI3MzFjODY3MmFkYWI0
ZDZmYzE5Mzc2M2Q0YWU2NjRhOTE0ZC4uY2Q5NTIxYmFhYWQ5NjJkMzc4ODBjZTE1ZWE3NGI1YmE1
YmQ5ZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJ
IHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODYw
MzcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4
NWMwNWI1NTA0MjNhYmZlMTBhMy4uMWQ1YmMyMzUyMWY5NThhNDIzMDdiZGU4NTlmYTEzNTQwZjEx
YmQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIx
LTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0g
TWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWUgV2ViQ29yZSBj
aGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRp
YWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5h
bWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJyb2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkg
Zm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFh
NzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJiNjBhYy4uNWFmNmFjNjYxZDQyNzI3MTkwYjll
ZDA1NjcwMzEzNGNiZDA4ZDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2Vi
UHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9yIEFYSUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCmluZGV4IGJmODk1NjE4MmJmYzIyMTNlNTRiYWMzMzA0OTQ1ZTNiNmIy
MjRlYzQuLjljMzVhMWEyMjM0MjNjYTcyZmY3MWNmYzc2ZDdlMDQ3MjY2NmRjN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQpAQCAtMTgyLDYgKzE4MiwxMSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2luay5oCiAg
ICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKIAorICAgIE1vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tJZGVudGlmaWVyLmgKKyAgICBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlclNuYXBzaG90LmgKKyAgICBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0
cnkuaAorICAgIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKwogICAgIE1vZHVsZXMv
d2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAogICAgIE1vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAK
aW5kZXggN2U1YjU1MTQ4NWFjNjU1MWRkNWYwYzE5MDQxYjNlMjkzZjFiNmNlZC4uOWQ0ZjZmNmMw
MThhMjkyNDQ5MThhNmI5N2NiYzAxNzhjZTE5Y2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAtMzEsMTEgKzMxLDE0
IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNXZWJMb2NrTWFuYWdl
clNuYXBzaG90LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYkxvY2suaCIKICNp
bmNsdWRlICJXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgorI2luY2x1ZGUgIldv
cmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CkBAIC01Myw2ICs1Niw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xp
ZW50T3JpZ2luRnJvbUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJM
b2NrTWFuYWdlcjo6TG9ja1JlcXVlc3QgewogICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwog
ICAgIFN0cmluZyBuYW1lOwogICAgIFdlYkxvY2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhj
bHVzaXZlIH07CiAgICAgUmVmUHRyPFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxs
YmFjazsKQEAgLTEzNywxNCArMTQxLDE1IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3Qo
Y29uc3QgU3RyaW5nJiBuYW1lLCBPcHRpb25zJiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmll
ciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZN
b3ZlKGdyYW50ZWRDYWxsYmFjayksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1
dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9j
a0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRl
ZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9j
a09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUg
eworICAgIHJlcXVlc3RMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwg
bmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlm
aWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAg
ICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwg
c3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVu
dGlmaWVyXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9t
aXNlKGxvY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBB
Ym9ydEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAg
ICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2Miw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENv
bXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAK
ICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAm
JiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRlZCgpKSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAg
ICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlm
aWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIApAQCAtMTY1LDE1ICsxNzAsMTUgQEAgdm9pZCBXZWJMb2Nr
TWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllciwgYm8KICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2Fs
bGJhY2stPmhhbmRsZUV2ZW50KGxvY2sucHRyKCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVBy
b21pc2U+IHdhaXRpbmdQcm9taXNlID0gcmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5
cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAg
ICAgICAgICAgaWYgKCF3YWl0aW5nUHJvbWlzZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7Cisg
ICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRp
ZmllciwgcmVxdWVzdC5jbGllbnRJRCwgcmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBz
ZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBF
eGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQo
d2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgp
LCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSBy
ZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBuYW1lID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlz
ZV0geworICAgICAgICAgICAgRE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGlu
Z1Byb21pc2UtPmdsb2JhbE9iamVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhp
cywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0
LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCA9IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1
ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNlXSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VM
b2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwog
ICAgICAgICAgICAgICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0
aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9IGVsc2UgewpAQCAtMTg4LDMzICsxOTMsMzMgQEAgdm9pZCBX
ZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBs
b2NrSWRlbnRpZmllciwgYm8KICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVx
dWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYg
b3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChb
Y29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIo
KSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUg
PSBjcm9zc1RocmVhZENvcHkobmFtZSksIG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0
aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUgPSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRp
ZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhh
bmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9j
ayhsb2NrSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBp
ZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUo
Z3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRp
ZmllciwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3Nd
KGF1dG8mKSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGll
bnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3Nz
VGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0
ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxl
ciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7
CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwg
Z3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2Vzcykg
bXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNv
bnRleHRUaHJlYWQoY2xpZW50SUQsIFtncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhh
bmRsZXIpLCBzdWNjZXNzXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRl
ZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCByZWxlYXNlSGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNl
cHRpb24mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFz
ZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJl
YWRDb3B5KGV4Y2VwdGlvbildKGF1dG8mKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxl
YXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2VwdGlvbikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxv
Y2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJl
YWQoY2xpZW50SUQsIFtsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRs
ZXIpXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIo
KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJM
b2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJl
bGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBu
YW1lKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpXSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmln
aW4oY2xpZW50T3JpZ2luKS0+cmVsZWFzZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAg
IGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2Ns
aWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFk
Q29weShuYW1lKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxv
Y2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0p
OwogfQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFk
KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
ZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1f
Y2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFt
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50
T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJ
ZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShib29sIHdhc0Fib3J0ZWQpIG11dGFibGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0
byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJl
YWRDb3B5KG5hbWUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9j
a1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtj
bGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
Ym9vbCB3YXNBYm9ydGVkKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTIyMyw4ICsyMjgsOCBAQCB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaQogCiB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5
KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+c25hcHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNu
YXBzaG90KSBtdXRhYmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlm
aWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdp
biA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7Cisg
ICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90KGNsaWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVy
LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hv
dCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJl
YWRDb3B5KHNuYXBzaG90KV0oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNob3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAy
LDExICszMDcsMjkgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQog
ICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xl
YXIoKTsKIAotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJl
YWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0
SWRlbnRpZmllcik7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAg
ICAgcmVnaXN0cnkuY2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRp
Zmllcik7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRo
cmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0
byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkp
OworCisgICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8g
cGFnZSA9IGRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAg
dGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnkoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93
bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQ
cm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIoW3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250
ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNv
bnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAgICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3Ry
eSgpKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0
dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1Jl
cXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9yZWxlYXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXgg
ZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5YzNkNTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1
NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7
CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENhbGxiYWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5Owog
CiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBA
IC02Miw4ICs2Myw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01h
bmFnZXIoTmF2aWdhdG9yQmFzZSYpOwogCi0gICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVh
ZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwg
RnVuY3Rpb248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVs
ZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFp
blRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCBy
ZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExv
Y2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1h
aW5UaHJlYWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcy
LDYgKzczLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdl
YkxvY2tJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2
b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYm
IHRhc2spOworCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFs
OwogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
U25hcHNob3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaAppbmRleCA3ZjUzM2MzY2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEw
ZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNlZjdhYzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJT
bmFwc2hvdC5oCkBAIC0zOCwxMiArMzgsNTUgQEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3QgewogICAgICAgICBTdHJpbmcgY2xpZW50SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENv
cHkoKSBjb25zdCB7IHJldHVybiB7IG5hbWUuaXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElk
Lmlzb2xhdGVkQ29weSgpIH07IH0KKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBt
b2RlIDw8IGNsaWVudElkOyB9CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRlY29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZl
Y3RvcjxJbmZvPiBoZWxkOwogICAgIFZlY3RvcjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9j
a01hbmFnZXJTbmFwc2hvdCBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhy
ZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJlYWRDb3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsg
ZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRpbmc7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVj
b2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2Vi
TG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbz4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5h
bWU7CisgICAgZGVjb2RlciA+PiBuYW1lOworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7Cisg
ICAgZGVjb2RlciA+PiBtb2RlOworICAgIGlmICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNv
ZGVyID4+IGNsaWVudElkOworICAgIGlmICghY2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92
ZSgqY2xpZW50SWQpIH0gfTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0
aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+
IGhlbGQ7CisgICAgZGVjb2RlciA+PiBoZWxkOworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5k
aW5nOworICAgIGRlY29kZXIgPj4gcGVuZGluZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBX
VEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2
YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1MDI5ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2
Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja01vZGUuaApAQCAtMjYsNiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9ja01vZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51
bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJvb2wgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3YmJkMzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi45NzRj
ZWJmYjM0OWM3YjM5MDQ1NjgyNjI5MDlkMzYwNmMzY2JiMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2
ICszMyw5MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0
cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKLSAgICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0
aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiByZWxlYXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJP
cmlnaW5SZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UGVyT3JpZ2luUmVnaXN0
cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOwor
ICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOworCisgICAgc3RydWN0IExvY2tJbmZvIHsKKyAgICAg
ICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiByZWdpc3RyeTsKKyAgICAgICAgV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElEOworICAgICAgICBXZWJMb2NrTW9kZSBtb2RlOworICAgICAgICBGdW5j
dGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworICAgIH07CisKKyAgICB2b2lkIHJlcXVl
c3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxv
Y2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVx
dWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRzQXJl
R29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xp
ZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJPcmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdp
c3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisgICAgc3RydWN0IExvY2tSZXF1ZXN0IDog
TG9ja0luZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZChi
b29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgfTsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3RyeTo6
TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0gICAgU3RyaW5nIG5hbWU7Ci0gICAgRnVuY3Rpb248
dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgdm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RR
dWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYpOworICAgIGJvb2wg
aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKKworICAgIFdlYWtQdHI8TG9j
YWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFsUmVnaXN0cnk7CisgICAgQ2xpZW50T3JpZ2luIG1f
Y2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1f
bG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZv
Pj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0aWMgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxv
Y2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgpCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5Ojp+TG9j
YWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+Cit7CisgICAgaWYgKGF1dG8gZXhpc3RpbmdS
ZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKSkKKyAgICAg
ICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworCisgICAgcmV0dXJuIFBlck9yaWdpblJlZ2lz
dHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9yaWdpbik7Cit9CisKK2F1dG8gTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0cjxQZXJPcmlnaW5SZWdpc3RyeT4KIHsKLSAgICBB
U1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1h
cDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+PiByZWdpc3RyeU1hcDsKLSAgICByZXR1
cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJuIG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xp
ZW50T3JpZ2luKTsKIH0KIAotUmVmPFdlYkxvY2tSZWdpc3RyeT4gV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKK1JlZjxMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk+IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQ
ZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdp
c3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8g
ZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5TWFwKCkuZ2V0KG9yaWdpbikpCi0gICAgICAgIHJl
dHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmln
aW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwgY2xpZW50T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVnaXN0cnkob3JpZ2luKSk7CitMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9j
a1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmln
aW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5KGdsb2JhbFJlZ2lzdHJ5KQorICAgICwgbV9jbGll
bnRPcmlnaW4oY2xpZW50T3JpZ2luKQoreworICAgIGdsb2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2lu
UmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2luLCB0aGlzKTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5
OjpXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29y
aWdpbihvcmlnaW4pCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5Q
ZXJPcmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAgcmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRo
aXMpOworICAgIGlmIChtX2dsb2JhbFJlZ2lzdHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5
LT5tX3Blck9yaWdpblJlZ2lzdHJpZXMucmVtb3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2Vi
TG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBz
dGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFu
ZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8q
IHJlZ2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5V
U0VEKHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9y
aWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQs
IG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciks
IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI3JlcXVlc3QtYS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVx
dWVzdExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tN
b2RlIG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9v
bCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVh
c2VIYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhh
bmRsZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RG
TW92ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhp
cywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5k
bGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFs
KSB7CiAgICAgICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBp
ZiAoaXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9j
a0luZm8gOiBpdC0+dmFsdWUpCi0gICAgICAgICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRs
ZXIoRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJl
cXVlc3QiIH0pOworICAgICAgICAgICAgICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7
CiAgICAgICAgICAgICBtX2hlbGRMb2Nrcy5yZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChpZkF2YWlsYWJsZSAmJiAhaXNHcmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDgg
KzEzMywxNCBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVz
dFF1ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdp
c3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxv
Y2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L3dlYi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVhc2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6
OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6
cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKIHsKICAgICBhdXRvIGl0ID0gbV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBp
ZiAoaXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkpCkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nCiAgICAgICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1
ZXVlSXRlcmF0b3ItPnZhbHVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAgICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1Jl
cXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1
ZXN0Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdp
c3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0
b3IgPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVy
YXRvciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAg
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIGNvbnN0IFMKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93
ZWItbG9ja3MvI2dyYW50YWJsZQotYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNv
bnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1
ZXN0KSBjb25zdAogewogICAgIGF1dG8gcXVldWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1
ZU1hcC5maW5kKHJlcXVlc3QubmFtZSk7CiAgICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2Nr
UmVxdWVzdFF1ZXVlTWFwLmVuZCgpICYmICZxdWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9
ICZyZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dy
YW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6
Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1
ZQotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0
cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25z
dCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUg
KCFxdWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJz
dCgpKSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBB
U1NFUlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwgcmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAK
K3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFw
c2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhp
c3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkp
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnkt
PnNuYXBzaG90KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3NuYXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdl
YkxvY2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFu
YWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9j
a1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYg
cGFpciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9j
a01hbmFnZXI6OlNuYXBzaG90JiYKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBz
aG90KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5
KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVu
dHNBcmVHb2luZ0F3YXkoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0lu
Zm8uY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdyYXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5Ojpj
bGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRz
QXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNo
Q2xpZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBv
cHRpbWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNo
IGNsaWVudHMuCiAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8m
IHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVNYXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVl
LnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVx
dWVzdC5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5y
ZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVudCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0
UmVxdWVzdHMuYXBwZW5kKHBhaXIua2V5KTsKQEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SQogCiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAg
ICAgZm9yIChhdXRvJiBwYWlyIDogbV9oZWxkTG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJu
IGxvY2tJbmZvLmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZh
bHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dp
dGhvdXRMb2Nrcy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdl
YkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SQogICAgIH0KIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
Y2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikK
K3sKKyAgICBWZWN0b3I8Q2xpZW50T3JpZ2luPiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9y
KG1fcGVyT3JpZ2luUmVnaXN0cmllcy5rZXlzKCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3Jp
Z2luIDogY2xpZW50T3JpZ2lucykgeworICAgICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0
aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5
LT5jbGllbnRzQXJlR29pbmdBd2F5KFtwcm9jZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8p
IHsgcmV0dXJuIGxvY2tJbmZvLmNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vz
c0lkZW50aWZpZXI7IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApp
bmRleCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRjNzc2MzI0ZWVhZGQ5NDNhMDZjLi44YjYzMTRlOGIx
MWJlMmE1ZDMwYmE3OTI4MTgwMmFjYjVjZjc3NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2Nr
TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkxvY2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRpb247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFw
c2hvdDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9j
a1JlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3Jp
Z2luKGNvbnN0IENsaWVudE9yaWdpbiYpOwotICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2
aXJ0dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2Vi
TG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2Vw
dGlvbiYmKT4mJiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2Nr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2lu
Z0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNv
bnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRP
cmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3By
b3RlY3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBM
b2NhbFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkpOyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
KCk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9y
aWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2
YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248
dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5h
bDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50
T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYm
KSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0
IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50
aWZpZXIpOwogCi0gICAgc3RydWN0IExvY2tJbmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsK
K3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAot
ICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lk
IHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1Jl
cXVlc3Q+Jik7CisgICAgY2xhc3MgUGVyT3JpZ2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdp
blJlZ2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsK
KyAgICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4o
Y29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9v
cmlnaW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hl
bGRMb2NrczsKKyAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgUGVyT3JpZ2luUmVnaXN0cnkqPiBt
X3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NjBlNDI4ODM5NzU2OGQ0NTBkMTJmMTg1YjhmNmZlYTYwNjY0ZTE3OC4uMGYwYzhjOTU3ZTRjZDVm
ZGYzNzFhNDZkYWJkMDgwNzMwMDFlOTE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxMSwxMCArMTMxMSwxMiBAQAogCQk0
NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGlnaFJlc1RpbWVTdGFt
cC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFMDE2
QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjI3M0NBRjI2MEU1OUVGMDA2
RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2MEU1OURGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9y
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc4MDJCMjI3NDcxMTg1MDBE
QTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJFNEM1MDI2MTZBODExMDAzQTJDNjcgLyogU2NyaXB0
QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYzNEM3MkMyNzU3REFCMjAwMjZB
ODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIwMjc0NzExN0IwMERBOUZCNiAvKiBXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIyIC8qIFdpbmRvd1Byb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM1MjFBQTIwODEw
OTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29s
bGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKLQkJNDY0
NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxv
Y2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjQ0RjdGODI3MkExQzFGMDA1NTU5
OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUUyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tH
cmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdl
YkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01hbmFnZXIuaCAqLzsgfTsK
IAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlFIC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0YzMjcyQTFDMTYwMDU1NTk5RSAv
KiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU1Miw3ICszNzU1NCw5IEBACiAJCQkJMEZDRjMzMkYw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
QTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3
RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQwMEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlFIC8qIFdlYkxvY2tN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjM0QzcyQzI3NTdEQUIyMDAyNkE4MTUgLyog
V2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjcyNzJB
MUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjRDQUYw
OTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9ja1JlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0aWVzQ29jb2EuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAz
YTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEyZTdmZjJlZTk2YjM1Li5jMDg3ODVhZjhmYzkyNGUz
NTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgIlRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgogI2luY2x1ZGUgIlZp
c2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExNzAsNiArMTE3MSwyMCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29u
c3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWwgeyB9CiB9Owog
CitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0
cnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlXZWJMb2NrUmVnaXN0cnk+IGNyZWF0
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVdlYkxvY2tSZWdp
c3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVu
dE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9ja01vZGUsIGJvb2wsIGJvb2wsIEZ1bmN0aW9uPHZv
aWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdm9pZCByZWxlYXNlTG9j
ayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAgIHZvaWQgYWJv
cnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgc25hcHNob3QoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBz
aG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9y
aWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSB7IH0KK307CisKIFBhZ2VD
b25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRp
b24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3Vy
YXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIEVt
cHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSwKKyAgICAgICAgRW1wdHlXZWJM
b2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAgICAgICBEdW1teVBlcm1pc3Npb25Db250cm9sbGVy
OjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVN0b3JhZ2VQcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2MjhmYjliYjJjNDk4NjUzNWM2MzJkOWQyZGFjOTEz
ZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdkZWI0ZWE1YTA4ODBmZjBkOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fdXNlckNvbnRlbnRQcm92aWRlcihXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgbV92aXNpdGVk
TGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRMaW5rU3RvcmUpKQog
ICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlv
bi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkpKQogICAgICwgbV9zZXNzaW9u
SUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lvbklEKQogI2lmIEVOQUJMRShWSURFTykKICAgICAs
IG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lcigqdGhpcywgJlBhZ2U6OnBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXJGaXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjFl
MDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3MWRhNGVkMzg1Ni4uNzc5ZDkzYTI0NTkwNTJjMTIz
MGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2Nyw2ICsxNjcsNyBA
QCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247
CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CitjbGFz
cyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFzcyBX
aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAgLTI5OCw2ICsyOTksOCBAQCBwdWJsaWM6CiAgICAg
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJl
dHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2ViS2l0TGVnYWN5LgogCisgICAgV2ViTG9ja1JlZ2lz
dHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeTsgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZm9yRWFjaFBhZ2UoY29uc3QgRnVuY3Rpb248
dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVuc2lnbmVkIG5vblV0
aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEzMiw2ICsxMTM1LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZjxW
aXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxv
Y2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmUHRyPFdoZWVsRXZlbnRUZXN0
TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAgICAgV2Vha0hhc2hTZXQ8QWN0aXZp
dHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcnM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggMTk3Yzc4ZTRm
ZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4ZWM3YS4uYWU0MjdiN2QyY2ZlN2IyMjJhNTVkODVl
OTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4u
aCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0
ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKICNpZiBFTkFCTEUo
V0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNlbmRpZgpAQCAtNjMsNyAr
NjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNv
bnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJv
dmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIs
IFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8
TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQorUGFnZUNvbmZpZ3Vy
YXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVl
UmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBz
b2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1By
b3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIs
IFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29r
aWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNv
Z25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlh
UmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNh
c3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYgd2ViTG9ja1JlZ2lzdHJ5
LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRyb2xsZXIsIFVuaXF1
ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlxdWVSZWY8TW9kZWxQ
bGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQogICAgIDogc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNsaWVudCkpCiAgICAg
LCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAgLTc1LDYgKzc2LDcg
QEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNhY2hlU3RvcmFnZVByb3ZpZGVyKFdU
Rk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgdXNlckNvbnRlbnRQcm92aWRlcihX
VEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAsIHdlYkxvY2tSZWdp
c3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBzcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAgICAgLCBtZWRpYVJl
Y29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIpKQogICAgICwgcGVy
bWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShwZXJtaXNzaW9uQ29udHJvbGxlcikpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggN2ZiMzM0NjU3ZTMxMjBjNWFkYmQy
ZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZiMmY1ZTYxZDQxN2ZmOWM1ODRjZGE0OGJiNDY5ZTlk
MDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNzQsMTEg
Kzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNzIFZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVU
cmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBjbGFzcyBQYWdlQ29uZmlndXJhdGlv
biB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRpb24pOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFBlcm1pc3Npb25D
b250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9k
ZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9y
YWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0Zvcndh
cmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJD
bGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+
JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJlZjxXZWJMb2NrUmVnaXN0cnk+
JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRl
cj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlkZXI+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0aW9uKFBhZ2VDb25m
aWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgogICAgIFJlZjxVc2Vy
Q29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVk
TGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8V2ViTG9ja1JlZ2lzdHJ5
PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CmluZGV4IDgyYWE1ZjIyZGQ3MjBjMTkxODQ2YTk0MmEzOTE0Y2JmZWFjODZjN2UuLmU4ZWFk
NjAyNzNiNzUxODk0MDE2NjJkNGRmYTBiMzE3M2IyMmM4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApA
QCAtMjI5LDYgKzIyOSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBVSVBy
b2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5CiAgICAgVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkKKyAg
ICBVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5CiAgICAgVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbApAQCAtMzA3LDYgKzMwOCw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKIAogICAgIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
CiAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeQog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5l
Y3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CmluZGV4IGE3ODk3Yjk2MWEzOWRhZjkyN2M1NGQxMmVmYTNjODk3MTQ5N2IwMmYuLjg1OTJkOTlk
MmUzNmFmYzllZjg1ZGNjMWMzZjU3NGVjMTk1ZWVmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE1Myw2ICsxNTMsNyBAQCAkKFBST0pF
Q1RfRElSKS9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9X
ZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLm1lc3NhZ2VzLmluCkBAIC0yMTcsNiArMjE4LDcgQEAgJChQUk9KRUNUX0RJUikv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50
Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxl
bGlzdAppbmRleCA5M2E2MTQ2ZDZiMTM5Y2I4YTE2YTE3MWJiNzdkNDRiZDNiNThiNjViLi5hNTll
NjIzYjA5ZTZhOTdlZmZlZDRmOWM1MmY1NzM2MzY0NWVhYzVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTM4Nyw2ICszODcsOSBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VzUmVwbGllcwogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxv
Y2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkxvY2tSZWdp
c3RyeU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGxpZXMuaApAQCAt
NTI2LDYgKzUyOSw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJ
bnNwZWN0b3JVSVByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVyTWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTUROU1JlZ2lzdGVy
TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0NTc0Mzg2
NWE0YWM4MzJkM2U1ZGJkNGFmZDQzOGJkNzUzMmNkOTIzLi4xOTMzODg0OTYxYjRiYzMwNGYwODli
MGI1NGUxNDg5MWI1YzM0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xNjgs
NiArMTY4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJVUlQcm9jZXNzL2lvcy9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyIFwKIAlVSVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkg
XAogCVVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSBcCisJVUlQcm9jZXNzL1dl
YkxvY2tSZWdpc3RyeVByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvUGxheWJhY2tTZXNzaW9uTWFu
YWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSBcCiAJVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBcCkBAIC0y
MTgsNiArMjE5LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJSVENNb25pdG9yIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1E
TlNSZWdpc3RlciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENSZXNvbHZlciBc
CisJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkgXAogCVdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5IFwKIAlX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25u
ZWN0aW9uIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDc2
YzJkZWJhZmQ5MWQxNmY4ZDc3MDg5M2Y0ODg5NjkwMGRmZTI2ZDIuLjJjODM5YTllOWJjZDhlOWYx
MjFkZjg5MzBmZjQyZmM2MGNiMjdkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtMzEyLDYgKzMxMiw3IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9m
b3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpTb3VyY2VCdWZmZXJBcHBlbmRN
b2RlJywKICAgICAgICAgJ1dlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVu
dElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdElkZW50aWZp
ZXInLAorICAgICAgICAnV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXInLAogICAgICAgICAnV2Vi
Q29yZTo6V2ViU29ja2V0SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVySW50ZXJuYWxVbml0SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAzZTQzZDNlMTNhNzY3
OGY4MTRjYjZjNDc0MTI3MDlhMzMzZDc5NTRiLi5mZTYwNDEyYzJhMTUyYWI1YzQyZWZhZmMwYmI4
YmEyNGE0Nzg5ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQzNSw2ICs0MzUsNyBAQCBVSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNw
cAogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL1dl
Ykdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCitVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
Y3BwCiBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcAogVUlQcm9jZXNzL1dlYk9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViUGFnZURpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LmNwcApAQCAtNzgxLDYgKzc4Miw3IEBAIFdlYlByb2Nlc3MvVXNlckNvbnRl
bnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKK1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9TaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHAKQEAgLTg0Nyw4ICs4NDksNiBAQCBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTE1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAot
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAotCiBSZW1vdGVB
ZGFwdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlQmluZEdyb3VwTWVzc2FnZVJlY2VpdmVy
LmNwcAogUmVtb3RlQmluZEdyb3VwTGF5b3V0TWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtODcxLDMg
Kzg3MSw2IEBAIFJlbW90ZVNhbXBsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVTaGFkZXJN
b2R1bGVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlTWVzc2FnZVJlY2VpdmVyLmNw
cAogUmVtb3RlVGV4dHVyZVZpZXdNZXNzYWdlUmVjZWl2ZXIuY3BwCitSZW1vdGVXZWJMb2NrUmVn
aXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCitXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNz
YWdlUmVjZWl2ZXIuY3BwCitXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NTU1YmY3Y2E5NTE3Y2QyMzE2OWQ3MTExMWFiZWQxZTY3YTkzNGJlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJMb2NrSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0
aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBtX3Byb2Nlc3MuY29ubmVjdGlvbigp
KQorCitXZWJMb2NrUmVnaXN0cnlQcm94eTo6V2ViTG9ja1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7CisgICAgbV9wcm9j
ZXNzLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitXZWJMb2NrUmVnaXN0cnlQcm94eTo6
fldlYkxvY2tSZWdpc3RyeVByb3h5KCkKK3sKKyAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2soV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlIGxvY2tNb2Rl
LCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobG9j
a0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJ
ZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZp
ZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworCisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5yZXF1ZXN0TG9jayhXVEZN
b3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RGTW92ZShuYW1l
KSwgbG9ja01vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRF0oYm9vbCBzdWNjZXNzKSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNz
YWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpEaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJ
ZGVudGlmaWVyLCBjbGllbnRJRCwgc3VjY2VzcyksIDApOworICAgIH0sIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SURdIHsKKyAgICAgICAgaWYg
KHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkRpZFN0ZWFsTG9jayhsb2NrSWRlbnRpZmllciwgY2xp
ZW50SUQpLCAwKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVs
ZWFzZUxvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpX
ZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUpCit7CisgICAgTUVTU0FH
RV9DSEVDSyhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5j
b3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9j
ZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7Cisg
ICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5yZWxlYXNl
TG9jayhXVEZNb3ZlKGNsaWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RG
TW92ZShuYW1lKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OmFib3J0TG9ja1Jl
cXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgTUVTU0FHRV9DSEVDSyhs
b2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRp
ZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgbV9wcm9j
ZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5hYm9ydExvY2tSZXF1ZXN0
KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3Zl
KG5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1Jl
Z2lzdHJ5UHJveHk6OnNuYXBzaG90KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0
b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuc25hcHNob3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6OmNsaWVudElzR29pbmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdp
biwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7
CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJv
Y2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRh
U3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRJc0dvaW5nQXdheShXVEZNb3ZlKGNsaWVu
dE9yaWdpbiksIGNsaWVudElEKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6cHJv
Y2Vzc0RpZEV4aXQoKQoreworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9j
a1JlZ2lzdHJ5KCkuY2xpZW50c0FyZUdvaW5nQXdheShtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVu
dGlmaWVyKCkpOworfQorCisjdW5kZWYgTUVTU0FHRV9DSEVDSworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3Ry
eVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBiYTMxYTliOTJiNzE2MWM3Y2FkNjAyYmZiYTFiODM2OTk3MzMyN2MKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tJZGVudGlm
aWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrTW9kZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOworc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNo
b3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzUHJveHk7CisK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeVByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBXZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKKyAgICB+V2ViTG9j
a1JlZ2lzdHJ5UHJveHkoKTsKKworICAgIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIC8vIElQQyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgcmVx
dWVzdExvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlm
aWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nJiYg
bmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUp
OworICAgIHZvaWQgcmVsZWFzZUxvY2soV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgU3RyaW5nJiYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc25hcHNob3QoV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJT
bmFwc2hvdCYmKT4mJik7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwor
CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmFiYzI1NGM0MWUwZTAxOTE1NmNh
ODEyYzQ2ZmU3OTAzMDUxN2UxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAor
IyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJM
b2NrUmVnaXN0cnlQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBSZXF1ZXN0TG9jayhzdHJ1Y3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2ViTG9ja01vZGUg
bW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSkKKyAgICBSZWxlYXNlTG9jayhzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKQorICAgIEFib3J0TG9ja1JlcXVlc3Qoc3RydWN0
IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElELCBTdHJpbmcgbmFtZSkgLT4gKGJvb2wgd2FzQWJvcnRlZCkgQXN5bmMKKyAg
ICBTbmFwc2hvdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbikgLT4g
KHN0cnVjdCBXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90IHNuYXBzaG90KSBBc3luYwor
ICAgIENsaWVudElzR29pbmdBd2F5KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50
T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
ZCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDAyOGM4ZDhlZjA3MTRjODJlYjkwNGM5NGU3ZTI5NzFkODViYWViMTMuLjY2NTZlMmRkZGQzYjQy
Y2M3MDdlOGEyOGI1ZGE5YWRhNzA4MDk5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYkJhY2tG
b3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5
UHJveHkuaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAi
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgi
CkBAIC0yNDAsNiArMjQxLDcgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKgogICAgICwgbV9jYXB0
aXZlUG9ydGFsTW9kZShjYXB0aXZlUG9ydGFsTW9kZSkKICAgICAsIG1fY3Jvc3NPcmlnaW5Nb2Rl
KGNyb3NzT3JpZ2luTW9kZSkKICAgICAsIG1fc2h1dGRvd25QcmV2ZW50aW5nU2NvcGVDb3VudGVy
KFt0aGlzXShSZWZDb3VudGVyRXZlbnQgZXZlbnQpIHsgaWYgKGV2ZW50ID09IFJlZkNvdW50ZXJF
dmVudDo6RGVjcmVtZW50KSBtYXliZVNodXREb3duKCk7IH0pCisgICAgLCBtX3dlYkxvY2tSZWdp
c3RyeSh3ZWJzaXRlRGF0YVN0b3JlID8gbWFrZVVuaXF1ZTxXZWJMb2NrUmVnaXN0cnlQcm94eT4o
KnRoaXMpIDogbnVsbHB0cikKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNo
ZWNrRGlzYWJsZWQoKSk7CiAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3Ms
ICJjb25zdHJ1Y3RvcjoiKTsKQEAgLTM0NSw2ICszNDcsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnNldFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlKQogI2Vu
ZGlmCiAgICAgdXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFTdG9yZSgpOwogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3M6OlNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKHByb2Nlc3NQ
b29sKCkud2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMoKnRoaXMsIGRhdGFTdG9yZSkpLCAw
KTsKKworICAgIC8vIERlbGF5IGNvbnN0cnVjdGlvbiBvZiB0aGUgV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkgdW50aWwgdGhlIFdlYlByb2Nlc3NQcm94eSBoYXMgYSBkYXRhIHN0b3JlIHNpbmNlIHRoZSBk
YXRhIHN0b3JlIGhvbGRzIHRoZQorICAgIC8vIExvY2FsV2ViTG9ja1JlZ2lzdHJ5LgorICAgIG1f
d2ViTG9ja1JlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJMb2NrUmVnaXN0cnlQcm94eT4oKnRoaXMp
OwogfQogCiBib29sIFdlYlByb2Nlc3NQcm94eTo6aXNEdW1teVByb2Nlc3NQcm94eSgpIGNvbnN0
CkBAIC01MjgsNiArNTM0LDkgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKICAg
ICBtX3VzZXJJbml0aWF0ZWRBY3Rpb25NYXAuY2xlYXIoKTsKICAgICBtX3NsZWVwRGlzYWJsZXJz
LmNsZWFyKCk7CiAKKyAgICBpZiAobV93ZWJMb2NrUmVnaXN0cnkpCisgICAgICAgIG1fd2ViTG9j
a1JlZ2lzdHJ5LT5wcm9jZXNzRGlkRXhpdCgpOworCiAjaWYgRU5BQkxFKFJPVVRJTkdfQVJCSVRS
QVRJT04pCiAgICAgbV9yb3V0aW5nQXJiaXRyYXRvci0+cHJvY2Vzc0RpZFRlcm1pbmF0ZSgpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGRh
NmRjNjhlZWJjZWNiNDIzNjI3ZWM5ODlkNmJjYWE4MDE1NzQ5NzMuLmY3NDQ4MGZmYTdjYzlmMTgw
NjUyMWU1YmIwNTUxZjQ0NjZiZTU3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC05Myw2ICs5Myw3IEBAIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBj
bGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhOwogY2xhc3MgV2ViRnJhbWVQcm94eTsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeVBy
b3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2Vi
UHJvY2Vzc1Bvb2w7CkBAIC02NzQsNiArNjc1LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyPiBtX3NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI7CiAjZW5kaWYKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViTG9j
a1JlZ2lzdHJ5UHJveHk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGZjMWQ5YWU5ODkzZGQ5MTAxNjczZjdjOGRhZTZm
M2I5YmE4ZTM5YzcuLjkwOTc5M2UzNzU2OGMwNDJiMTAwMmEyNmFhMDI3NDc4NGE5MWU0Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvQ2FsbGJhY2tBZ2dyZWdhdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3Nz
VGhyZWFkQ29waWVyLmg+CkBAIC0xMzAsNiArMTMxLDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6V2Vi
c2l0ZURhdGFTdG9yZShSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+JiYgY29uZmln
dXIKICNpZiBIQVZFKEFQUF9TU08pCiAgICAgLCBtX3NvQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9y
KG1ha2VVbmlxdWVSZWY8U09BdXRob3JpemF0aW9uQ29vcmRpbmF0b3I+KCkpCiAjZW5kaWYKKyAg
ICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVh
dGUoKSkKIHsKICAgICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7
CiAgICAgcmVnaXN0ZXJXaXRoU2Vzc2lvbklETWFwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNjE5NjI4
MGY3NmRhMTIwMjk4ZTJiN2FiMTY0MDVkMmYwYmEyODkyMy4uMWRlMjVhNjYwNTdmMmQ2NmM2Mjk5
ZTVlYmJiODE0NmJlZTliODFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNzUsNiArNzUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBSZWdpc3RyYWJs
ZURvbWFpbjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgTG9jYWxXZWJMb2NrUmVnaXN0
cnk7CiAKIHN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwogfQpAQCAt
MzE3LDYgKzMxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENsaWVudChVbmlxdWVSZWY8V2Vi
c2l0ZURhdGFTdG9yZUNsaWVudD4mJiBjbGllbnQpIHsgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVu
dCk7IH0KIAogICAgIEFQSTo6SFRUUENvb2tpZVN0b3JlJiBjb29raWVTdG9yZSgpOworICAgIFdl
YkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBt
X3dlYkxvY2tSZWdpc3RyeS5nZXQoKTsgfQogCiAgICAgdm9pZCByZW5hbWVPcmlnaW5JbldlYnNp
dGVEYXRhKFVSTCYmLCBVUkwmJiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAKQEAgLTQ3MSw2ICs0NzMsNyBAQCBwcml2YXRlOgogI2lm
IEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQogICAgIG11dGFibGUgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlPiBtX3RoaXJk
UGFydHlDb29raWVCbG9ja2luZ01vZGU7IC8vIExhemlseSBjb21wdXRlZC4KICNlbmRpZgorICAg
IFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBiMTIwNGUzYzQzYmI4NmFlZDQ2YjNjNTExMDM1MzhlYTU3MmI4ZDgwLi5hNDUxMTVm
NDg5YWEyY2NiYzliZWM0Y2UxN2RmNjA3YmUyODViNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkwOCw2ICs5MDgsNyBAQAogCQk0
NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDdGMUVC
OTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVCOTRFQzAw
MEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgyQyAvKiBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgfTsKIAkJNDY1RjRFMDYyMzBCMkU5NTAwM0NF
REI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyogU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLzsgfTsKKwkJNDY1RkE3MjYyNzU3RDkzRDAwNzIz
NjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1Jl
Z2lzdHJ5UHJveHkuaCAqLzsgfTsKIAkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNDY3MUZGMUYyMzIxN0VGRjAwMUI2NEM3IC8q
IFdlYlJlc291cmNlTG9hZE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjcxRkYxRDIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VM
b2FkT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJNDY3RTQzRTgyMjQzRkY3RDAwQjEzOTI0IC8qIFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjdFNDNFNzIyNDNGRjZEMDBCMTM5MjQgLyogV2ViUHJvY2Vzc0Rh
dGFTdG9yZVBhcmFtZXRlcnMuaCAqLzsgfTsKQEAgLTQxNzYsNiArNDE3Nyw5IEBACiAJCTQ2NUY0
RTAyMjMwNzU5RDUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RvcmFnZUFyZWFJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2NUY0RTAzMjMwNzYwNEUwMDNDRURCNyAvKiBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8qIFN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZBNzIzMjc1N0Q5MTgw
MDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJMb2Nr
UmVnaXN0cnlQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcyNDI3
NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NjZCQzAzQTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
MTg2LDYgKzQxOTAsOCBAQAogCQk0NjgwOUE3QjIzRDkyMjUzMDBDMjk3RDAgLyogV2ViQ29va2ll
Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29va2ll
Q2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QTIxRTgxQ0M3
MDA2RTI3QTMgLyogUHJvdmlzaW9uYWxQYWdlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUHJvdmlzaW9uYWxQYWdlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDY4MzU2OUIyMUU4MUNDNzAwNkUyN0EzIC8qIFByb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5MEYyNzU2RDE0
MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVXZWJMb2NrUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY4OUI5
MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjlERTgwMjI3M0VDQzVEMDA5MzAyNzYgLyogUHJvY2Vzc0xhdW5jaGVyQ29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzTGF1
bmNoZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2
NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jl
c3BvbnNpdmVuZXNzVGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEy
QjYwNzFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1Rp
bWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNz
UmVzcG9uc2l2ZW5lc3NUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIw
NCw2ICs0MjEwLDggQEAKIAkJNDZDRTNCMTAyM0Q4QzgzRDAwMTZBOTZBIC8qIFdlYkJhY2tGb3J3
YXJkTGlzdENvdW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCYWNr
Rm9yd2FyZExpc3RDb3VudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2
MzkxRjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzQTFGMzkwNUU1
MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDZFOTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90ZVdlYkxvY2tS
ZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVXZWJMb2Nr
UmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUy
ODQ3MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NDgyNjlFMDQ5
QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NEEyNjlFMDUxNzAwREQ0OEFCIC8qIE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTM4LDYgKzEwNTQ2LDkgQEAKIAkJCQlDRDYxNzgx
MTFFNkRFOTgwMDBGREE1N0QgLyogY29jb2EgKi8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5
RUFFIC8qIGlvcyAqLywKIAkJCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLAor
CQkJCTQ2ODlCOTEwMjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3Bw
ICovLAorCQkJCTQ2ODlCOTBGMjc1NkQxNDMwMDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0
cnkuaCAqLywKKwkJCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyogUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFBNzI4NDQ0MTk1OUVEMTAwMDA3QkNFNSAvKiBT
ZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCAqLywKIAkJCQkxQTcyODQ0NTE5NTlFRDEwMDAwN0JD
RTUgLyogU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5oICovLAogCQkJCUY0M0E5Q0RFMjVENzJFMkQw
MDk5MEUyNiAvKiBTaGFyZWFibGVCaXRtYXBVdGlsaXRpZXMuY3BwICovLApAQCAtMTA1NDUsNiAr
MTA1NTYsNyBAQAogCQkJCUNFREExMkRFMTUyQ0NBRTgwMEQ5RTA4RCAvKiBXZWJBbHRlcm5hdGl2
ZVRleHRDbGllbnQuaCAqLywKIAkJCQk0NkVFMjg0NzI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk0NkVFMjg0ODI2OUUwNDlCMDBERDQ4
QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggKi8sCisJCQkJNDZFOTc2MEEyNzU3
RjZDOTAwQUNERDM3IC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAq
LywKIAkJCQlFM0E4NkZCQzI2OTU4RTMzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVuY2Vz
RGVsZWdhdGUuY3BwICovLAogCQkJCUUzQTg2RkJCMjY5NThEODMwMDU5MjY0RCAvKiBXZWJDYXB0
aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5oICovLAogCQkJCUJDMTExQTUzMTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJDaHJvbWVDbGllbnQuY3BwICovLApAQCAtMTA4MjgsNiArMTA4NDAsOSBAQAogCQkJ
CUJDMUJFMUYxMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcCAq
LywKIAkJCQlCQzFCRTFGMDEyRDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRl
ci5oICovLAogCQkJCTUxQzhFMTlCMUYyMTYxNzIwMEJGNzMxQiAvKiBXZWJJY29uRGF0YWJhc2Uu
aCAqLywKKwkJCQk0NjVGQTcyNTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuY3BwICovLAorCQkJCTQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0
cnlQcm94eS5oICovLAorCQkJCTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkyRDNFRjQ0MDE5MTc2NDYzMDAwMzQxODQg
LyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCAqLywKIAkJCQkyRDNFRjQ0MTE5MTc2NDYz
MDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggKi8sCiAJCQkJN0NDQ0M4Rjgx
QTVGNTBGRDAwOEZCMERBIC8qIFdlYk5hdmlnYXRpb25TdGF0ZS5jcHAgKi8sCkBAIC0xMjQ0OSw4
ICsxMjQ2NCw4IEBACiAJCQkJNTE2MEU5NUUyNzRDMkEwMzAwNTY3Mzg4IC8qIE1vY2tBcHBCdW5k
bGVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MEU5NTkyNzRDMEQ4OTAwNTY3Mzg4
IC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjdCQjdCMjc0NEM1MDcw
MEM0NUE3MiAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE3
QjVGMkYyNzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OUYyNzIzMzkzQTAwRjdGOEVDIC8qIFdl
YlB1c2hEYWVtb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0I1RjJGMjc1NzM4MkIwMDJEQzIy
RCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMTMzMzQsNiArMTMzNDksNyBAQAogCQkJCUJDQjYzNDc4MTE2QkYxMDYwMDYwMzIxNSAv
KiBXZWJLaXQyX0MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0NDYx
NiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcxOTE5
OTUwQzAwNkFEOUY5IC8qIFdlYktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NUZB
NzI2Mjc1N0Q5M0QwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBQ0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBX
ZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMjYyNDAw
RjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLApAQCAtMTMz
OTgsNiArMTM0MTQsNyBAQAogCQkJCTFBMUUwOTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9n
cmVzc1RyYWNrZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgw
MDYyOTUzMCAvKiBXZWJQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNE
Njk4MjcyMUVGQzgwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTE3QjVGMkUyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25u
ZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OUEyNzIxRjBB
OTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25zdGFudHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTU4NjBFNzEyMzBGNjdGQzAwNDYxQUFFIC8qIFdlYlJlc291cmNl
SW50ZXJjZXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzU0OCw3ICsxMzU2NSw2
IEBACiAJCQkJNUM3OTVENzAyMjlGMzczRjAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM3OTVENzEyMjlGMzc1NzAwM0ZGMUM0IC8qIFdL
Q29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTU1
NUY2MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNTE3QjVGMkUyNzU3MzgyQTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9u
Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU2MDExMjhDNkQ5MjAwOUFC
Q0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRUEw
MjM4MURBQkZGN0UwMDk2MDIxRiAvKiBXS0NvbnRleHRNZW51TGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQzkzOEUxMTE4MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBh
YTc0M2M2MmUzZjNiNTU0M2NhN2NmYzdiNTJlMmUzMGFkOTkxOWNkLi5mOWI4NTI0NmRmNWI2YjIz
OWFmMGRhOGNiZjA5NTI4NTU1NDc3ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1v
dGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhLmgiCiAj
aW5jbHVkZSAiV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmgiCkBAIC0xNDgsNiArMTQ5LDcg
QEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3Jr
ZXIoU2VydmljZVdvcmtlckNvbnRleHREYXQKICAgICBwYWdlQ29uZmlndXJhdGlvbi5kYXRhYmFz
ZVByb3ZpZGVyID0gV2ViRGF0YWJhc2VQcm92aWRlcjo6Z2V0T3JDcmVhdGUobV9wYWdlR3JvdXBJ
RCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uc29ja2V0UHJvdmlkZXIgPSBXZWJTb2NrZXRQcm92
aWRlcjo6Y3JlYXRlKG1fd2ViUGFnZVByb3h5SUQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeSgpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3Ry
eSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpOwogICAgIHBhZ2VD
b25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIgPSBtX3VzZXJDb250ZW50Q29udHJvbGxl
cjsKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5saWJXZWJSVENQ
cm92aWRlciA9IG1ha2VVbmlxdWVSZWY8U2VydmljZVdvcmtlckxpYldlYlJUQ1Byb3ZpZGVyPigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Jl
bW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWFmMDllZTZi
Mzc1OWNlZDQyNzI3ZjJmZmYwZTViM2Q5Mzk4ZThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5j
cHAKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCisKKyNpbmNsdWRlICJSZW1vdGVXZWJM
b2NrUmVnaXN0cnlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitzdHJ1Y3QgTG9ja0luZm8geworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbG9ja1N0b2xlbkhhbmRs
ZXI7Cit9OworCitzdHJ1Y3QgTG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248
dm9pZChib29sKT4gbG9ja0dyYW50ZWRIYW5kbGVyOworfTsKKworc3RydWN0IFJlbW90ZVdlYkxv
Y2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdCB7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciwgTG9ja1JlcXVlc3Q+IHBlbmRpbmdSZXF1ZXN0czsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBMb2NrSW5mbz4gaGVsZExvY2tzOworCisgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSAmJiBo
ZWxkTG9ja3MuaXNFbXB0eSgpOyB9Cit9OworCitSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OlJlbW90
ZVdlYkxvY2tSZWdpc3RyeShXZWJQcm9jZXNzJiBwcm9jZXNzKQoreworICAgIHByb2Nlc3MuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgKnRoaXMpOworfQorCitSZW1vdGVXZWJMb2NrUmVnaXN0cnk6On5SZW1v
dGVXZWJMb2NrUmVnaXN0cnkoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcigqdGhpcyk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
OjpyZXF1ZXN0TG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwg
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkNvcmU6OldlYkxvY2tNb2RlIGxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lk
KCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCit7CisgICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsg
V1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcikgfSwgV1RGTW92ZShncmFudGVkSGFuZGxlcikgfTsK
KyAgICBhdXRvJiBzbmFwc2hvdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbnN1cmUoY2xp
ZW50SUQsIFtdIHsgcmV0dXJuIExvY2tzU25hcHNob3QgeyB9OyB9KS5pdGVyYXRvci0+dmFsdWU7
CisgICAgc25hcHNob3QucGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92
ZShyZXF1ZXN0KSk7CisKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6UmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG5hbWUsIGxvY2tNb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUpLCAw
KTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKGNvbnN0IFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRp
ZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBhdXRvIGl0ID0gbV9s
b2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCAhPSBtX2xv
Y2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpIHsKKyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nr
cy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAg
IH0KKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6OldlYkxvY2tS
ZWdpc3RyeVByb3h5OjpSZWxlYXNlTG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBj
bGllbnRJRCwgbmFtZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6YWJv
cnRMb2NrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwg
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6QWJvcnRMb2NrUmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJ
ZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKGJvb2wgZGlkQWJvcnQpIG11dGFibGUgeworICAgICAgICBpZiAo
d2Vha1RoaXMgJiYgZGlkQWJvcnQpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSB3ZWFrVGhpcy0+
bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgICAgICAgICAgaWYg
KGl0ICE9IHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpIHsKKyAgICAg
ICAgICAgICAgICBpdC0+dmFsdWUucGVuZGluZ1JlcXVlc3RzLnJlbW92ZShsb2NrSWRlbnRpZmll
cik7CisgICAgICAgICAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgICAgIHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihkaWRB
Ym9ydCk7CisgICAgfSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpzbmFw
c2hvdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlNuYXBzaG90KGNsaWVudE9y
aWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwKTsKK30KKwordm9pZCBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBjbGllbnRJRCkKK3sKKyAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGNs
aWVudElEKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6Q2xpZW50SXNHb2luZ0F3YXkoY2xpZW50T3JpZ2luLCBjbGllbnRJ
RCksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkQ29tcGxldGVMb2Nr
UmVxdWVzdChXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJvb2wgc3VjY2Vz
cykKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmZpbmQoY2xpZW50
SUQpOworICAgIGlmIChpdCA9PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5kKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8gcGVuZGluZ1JlcXVlc3QgPSBpdC0+dmFsdWUucGVuZGlu
Z1JlcXVlc3RzLnRha2UobG9ja0lkZW50aWZpZXIpOworICAgIGlmICghcGVuZGluZ1JlcXVlc3Qu
bG9ja0dyYW50ZWRIYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGxvY2tHcmFu
dGVkSGFuZGxlciA9IFdURk1vdmUocGVuZGluZ1JlcXVlc3QubG9ja0dyYW50ZWRIYW5kbGVyKTsK
KyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgaXQtPnZhbHVlLmhlbGRMb2Nrcy5hZGQobG9ja0lk
ZW50aWZpZXIsIFdURk1vdmUocGVuZGluZ1JlcXVlc3QpKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
aWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJD
bGllbnQucmVtb3ZlKGl0KTsKKyAgICB9CisKKyAgICBsb2NrR3JhbnRlZEhhbmRsZXIoc3VjY2Vz
cyk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpkaWRTdGVhbExvY2soV2ViQ29y
ZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tz
U25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NT
bmFwc2hvdFBlckNsaWVudC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsb2Nr
SW5mbyA9IGl0LT52YWx1ZS5oZWxkTG9ja3MudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYg
KCFsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5y
ZW1vdmUoaXQpOworCisgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTE1YjFhYWZjNTRjOGEyMTU3YzUyZmYwY2RhOTY4MzQzNmNiMWFhZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJM
b2NrUmVnaXN0cnkuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nl
c3NRdWFsaWZpZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KKyNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJv
Y2VzczsKKworY2xhc3MgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OldlYkxvY2tSZWdpc3RyeSwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVdlYkxvY2tSZWdpc3RyeT4gY3JlYXRlKFdlYlByb2Nl
c3MmIHByb2Nlc3MpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
KHByb2Nlc3MpKTsgfQorICAgIH5SZW1vdGVXZWJMb2NrUmVnaXN0cnkoKTsKKworICAgIC8vIFdl
YkNvcmU6OldlYkxvY2tSZWdpc3RyeS4KKyAgICB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJD
b3JlOjpXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9s
ZW5IYW5kbGVyKSBmaW5hbDsKKyAgICB2b2lkIHJlbGVhc2VMb2NrKGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5hbDsKKyAg
ICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIGZpbmFsOworICAgIHZvaWQgc25hcHNob3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNuYXBz
aG90JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3Mm
KTsKKworICAgIC8vIElQQyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgZGlkQ29tcGxldGVM
b2NrUmVxdWVzdChXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGJvb2wgc3VjY2Vzcyk7CisgICAgdm9pZCBkaWRTdGVh
bExvY2soV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyKTsKKworICAgIHN0cnVjdCBMb2Nrc1NuYXBzaG90OworICAgIEhh
c2hNYXA8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIExvY2tzU25h
cHNob3Q+IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTZhN2FlYTJiZDRiZDc3MmEyZGFkZWQ0YzZmN2VjMjcxZmY0YWVkOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1v
dGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21lc3NhZ2VzIC0+IFJlbW90ZVdlYkxvY2tSZWdpc3RyeSB7CisgICAgRGlkQ29tcGxldGVM
b2NrUmVxdWVzdChXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGJvb2wgc3Vj
Y2Vzcyk7CisgICAgRGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGll
bnRJRCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDVjM2NmZDQyMzg3OGI2Y2M1NTIwMzUyZmFkMDQ1Y2NmNTlmMGNiMDAuLjNiZGZhN2M5
ZDkzM2JkOWRlMDBiZjcyMGZkNDc1MWM3MDg2YjdmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVj
dG9yVUkuaCIKICNpbmNsdWRlICJSZW1vdGVXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgi
CiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZUJpdG1hcC5oIgpAQCAtNTczLDYgKzU3NCw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPihtX2lkZW50
aWZpZXIpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKnRo
aXMpLAogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkoKSwKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5
KCksCiAgICAgICAgIFdlYlBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKnRoaXMpLAogICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYlN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJNb2RlbFBsYXllclByb3ZpZGVyPigqdGhpcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA5NDMwNGI3MTFmZDRmYWVhM2IyMGU3MzljOTk2YTQ3
YjhjNzJhZDM0Li5mNmU4NzYyNDZiZmRkNmFhZDAwNzlkMGVlY2EzYmY3M2RiZTcwZmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAj
aW5jbHVkZSAiUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVSZW1vdGVDb21t
YW5kTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJTcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKICNpbmNsdWRlICJVc2VyRGF0YS5oIgpAQCAtMjc5LDYg
KzI4MCw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgICwgbV93ZWJMb2FkZXJTdHJh
dGVneSgqbmV3IFdlYkxvYWRlclN0cmF0ZWd5KQogICAgICwgbV9jYWNoZVN0b3JhZ2VQcm92aWRl
cihXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcjo6Y3JlYXRlKCkpCiAgICAgLCBtX2Jyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeShXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpKQorICAg
ICwgbV93ZWJMb2NrUmVnaXN0cnkoUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKnRoaXMp
KQogICAgICwgbV9jb29raWVKYXIoV2ViQ29va2llSmFyOjpjcmVhdGUoKSkKICAgICAsIG1fcmVw
b3J0aW5nRW5kcG9pbnRzQ2FjaGUoUmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU6OmNyZWF0ZSgpKQog
ICAgICwgbV9kbnNQcmVmZXRjaEh5c3RlcmVyaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRl
IHN0YXRlKSB7IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgbV9k
bnNQcmVmZXRjaGVkSG9zdHMuY2xlYXIoKTsgfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCmluZGV4IDlhZGUzYzAwNWFmMmUyMjcxYWZjYWJmZmQ2ODE1MjM2NzZlZmI3MGEuLjE0
Y2RmNzUxNWM2MmM0NWRhYjlmOWRiODE2ZmRjYjJkODg1Y2YzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTMyLDYgKzEzMiw3IEBAIGNsYXNzIFByb2Nlc3NBc3Nl
cnRpb247CiBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFj
dG9yeTsKIGNsYXNzIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk7CitjbGFz
cyBSZW1vdGVXZWJMb2NrUmVnaXN0cnk7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckluaXRpYWxpemF0
aW9uRGF0YTsKIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwogY2xhc3MgVXNlckRhdGE7CkBAIC0zNDAs
NiArMzQxLDcgQEAgcHVibGljOgogCiAgICAgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hl
U3RvcmFnZVByb3ZpZGVyKCkgeyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlci5nZXQoKTsg
fQogICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSYgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5KCkgeyByZXR1cm4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuZ2V0KCk7IH0KKyAgICBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9j
a1JlZ2lzdHJ5LmdldCgpOyB9CiAgICAgV2ViQ29va2llSmFyJiBjb29raWVKYXIoKSB7IHJldHVy
biBtX2Nvb2tpZUphci5nZXQoKTsgfQogICAgIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyJiB3ZWJT
b2NrZXRDaGFubmVsTWFuYWdlcigpIHsgcmV0dXJuIG1fd2ViU29ja2V0Q2hhbm5lbE1hbmFnZXI7
IH0KICAgICBXZWJDb3JlOjpSZXBvcnRpbmdFbmRwb2ludHNDYWNoZSYgcmVwb3J0aW5nRW5kcG9p
bnRzQ2FjaGUoKSB7IHJldHVybiBtX3JlcG9ydGluZ0VuZHBvaW50c0NhY2hlLmdldCgpOyB9CkBA
IC02NzYsNiArNjc4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZjxXZWJDYWNoZVN0b3JhZ2VQcm92
aWRlcj4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKICAgICBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWY8V2ViQ29va2llSmFyPiBt
X2Nvb2tpZUphcjsKICAgICBSZWY8V2ViQ29yZTo6UmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU+IG1f
cmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGU7CiAgICAgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIgbV93
ZWJTb2NrZXRDaGFubmVsTWFuYWdlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCAwYzc0NGRkY2ViMzMyNmQwNjcxNDdhMDZlYjkxMjFmYjEwZTU3ZjQ1
Li41NjY0MmMyMjJkNmJjNTQzYWY5ZTc1OWI2MzkzMmFhNmVkODM4Njg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzEsNiArMjMxLDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZpZXcuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlZp
ZXdWaXN1YWxJZGVudGlmaWNhdGlvbk92ZXJsYXkuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lkZ2V0
Lmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NLmg+CkBAIC0xNDM4LDYgKzE0MzksMTggQEAg
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVwYWRQcm92aWRlcklmTmVjZXNzYXJ5KCkK
IH0KICNlbmRpZgogCitzdGF0aWMgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBn
ZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeT4+IGRlZmF1bHRSZWdpc3RyeTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IHByaXZhdGVSZWdpc3RyeTsK
KyAgICBhdXRvJiBleGlzdGluZ1JlZ2lzdHJ5ID0gaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkID8g
cHJpdmF0ZVJlZ2lzdHJ5IDogZGVmYXVsdFJlZ2lzdHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lz
dHJ5LmdldCgpKQorICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAg
YXV0byByZWdpc3RyeSA9IFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsK
KyAgICBleGlzdGluZ1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lz
dHJ5OworfQorCiAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5T
U3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdHJpbmcgKilncm91cE5hbWUKIHsKICAg
ICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZFR3bygpOwpAQCAtMTU0Myw2ICsxNTU2
LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmlu
ZyAqKWZyYW1lTmFtZSBncm91cE5hbWU6KE5TU3QKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJD
b3JlOjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlx
dWVSZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJlbmNlc10gcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3Ry
eShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKICAgICAgICAg
V2ViQ29yZTo6RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1h
a2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1h
a2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCkBAIC0xODI0
LDYgKzE4MzgsNyBAQCAtIChpZClpbml0U2ltcGxlSFRNTERvY3VtZW50V2l0aFN0eWxlOihOU1N0
cmluZyAqKXN0eWxlIGZyYW1lOihDR1JlY3QpZnJhbWUgcHJlZgogICAgICAgICBtYWtlVW5pcXVl
UmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAg
IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxmIHByZWZlcmVu
Y2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3JlYXRlV2ViTG9j
a1JlZ2lzdHJ5KFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAog
ICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggZjQ2MzA3OWQ5ODFiZmUyYTU4YzJh
MjRiMmZmNTEwOWMyNDJkNmYwOC4uNGZmY2RlOWM1MzI3MDJkOTM0ZDNjN2MxMzU1MzdjZWIyNjE1
ZjExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTE3Myw2ICsxNzMsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkNvcmVKSVRPcGVyYXRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlVGV4dFJl
bmRlcmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2luZG93c1RvdWNoLmg+CiAjaW5jbHVkZSA8Y29tZGVmLmg+CkBAIC0yOTkyLDYgKzI5OTMsMTYg
QEAgYm9vbCBXZWJWaWV3OjpzaG91bGRJbml0aWFsaXplVHJhY2tQb2ludEhhY2soKQogICAgIHJl
dHVybiBzaG91bGRDcmVhdGVTY3JvbGxiYXJzOwogfQogCitzdGF0aWMgUmVmPFdlYkNvcmU6Okxv
Y2FsV2ViTG9ja1JlZ2lzdHJ5PiBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0
cnk+PiBleGlzdGluZ1JlZ2lzdHJ5OworICAgIGlmIChleGlzdGluZ1JlZ2lzdHJ5LmdldCgpKQor
ICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVnaXN0cnkuZ2V0KCk7CisgICAgYXV0byByZWdpc3Ry
eSA9IFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjcmVhdGUoKTsKKyAgICBleGlzdGlu
Z1JlZ2lzdHJ5LmdldCgpID0gcmVnaXN0cnk7CisgICAgcmV0dXJuIHJlZ2lzdHJ5OworfQorCiBI
UkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBCU1RSIGZyYW1l
TmFtZSwgX0luXyBCU1RSIGdyb3VwTmFtZSkKIHsKICAgICBIUkVTVUxUIGhyID0gU19PSzsKQEAg
LTMwNjUsNiArMzA3Niw3IEBAIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZy
YW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtl
VW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShmYWxzZSksCisgICAgICAgIGdldE9yQ3JlYXRl
V2ViTG9ja1JlZ2lzdHJ5KCksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRy
b2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3Rv
cmFnZVByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9k
ZWxQbGF5ZXJQcm92aWRlcj4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDE2Yjc5NjQ3NDIxMWJlNjRkYmMxNzYxOThmNTg3NmQyZWQ5ZTM4Mjgu
LmFjNjcxM2FlYzNjMjhhZGQ4YWZkNTIzMDRiNzcwNjRkY2IxZjI1MGMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAy
MS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJd
IE1ha2UgV2ViIExvY2sgQVBJIHdvcmsgYWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0
IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9j
a3MubW06IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTIt
MDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEFQSSB0ZXN0IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291
cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRl
eCAwZmE3M2FlNjNkMTVhMTE2ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyLi40OWZiOTI2NmRiNDM2
MzYxY2Y0MzNiYjQzMDkyNTU3ZjE3ZGVjY2M1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29j
b2EudHh0CkBAIC0yOTMsNiArMjkzLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0
YXN0b3JlLm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0
ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCiBUZXN0cy9XZWJL
aXRDb2NvYS9XZWJHTFBvbGljeS5tbQorVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KIFRl
c3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQogVGVzdHMvV2ViS2l0
Q29jb2EvV2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERh
ZW1vbi5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ODBmMWJmOTA4MjJkOGZmMDQ2MDJh
MzY2NzJmNjJhZDY4ZjYzMmZjLi4yMTAzMDc0MjkxYzQxZTdlMjA1Mjc4MTFmYTQ1N2E5NTUxMDVh
OWRkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTkzMyw2ICsxOTMzLDcgQEAKIAkJNDRD
REU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVHlwZUNhc3RzQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0Q0YzMUZCMjQ5OTNGNjYwMDlDQjZDQiAvKiBDb250ZXh0TWVu
dUFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0
TWVudUFjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RDUwMDhEMjZG
RTlFRDYwMDBFQjEyRiAvKiBSZXRhaW5QdHJBUkMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBSZXRhaW5QdHJBUkMubW07IHBhdGggPSBucy9SZXRhaW5QdHJBUkMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEz
RCAvKiBXZWJMb2Nrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkxvY2tzLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjBDMkZDODI3MDM5RDdEMDA0N0VGMTEgLyogU2Vy
dmljZVdvcmtlclBhZ2VQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUGFn
ZVByb3RvY29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTJDMkI4MjEwQTZB
QkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRoZW5SZWxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkRmlsZVRoZW5SZWxvYWQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2MjhDOEU4MjM2N0FCQkMwMEIwNzNGMCAvKiBXS1NlY3VyaXR5T3Jp
Z2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VjdXJpdHlP
cmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU3Miw2ICszNTczLDcg
QEAKIAkJCQk4MzBGMkUwQjIwOUE2QTc0MDBEMzZGRjEgLyogV2ViQ29udGVudFByb2Nlc3NEaWRU
ZXJtaW5hdGUubW0gKi8sCiAJCQkJNTdBNzk4NTYyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0
b01hc3RlcktleS5tbSAqLywKIAkJCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQ
b2xpY3kubW0gKi8sCisJCQkJNDYwNjE1NDUyNzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1t
ICovLAogCQkJCTUxNzE0RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNs
ZWFudXAubW0gKi8sCiAJCQkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NU
ZXJtaW5hdGUubW0gKi8sCiAJCQkJNUMxNTdBMDIyNzE3QzNCMTAwRUQ1MjgwIC8qIFdlYlB1c2hE
YWVtb24ubW0gKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dlYkxvY2tzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJMb2Nrcy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmE5NTQ0NjYxMGRjZmNlNWJjZjYwZmY4MDlmMDM3
ZTM3N2M1ZTAxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpAQCAtMCwwICsxLDIwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCisjaW1wb3J0ICJQbGF0
Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmll
dy5oIgorI2ltcG9ydCAiVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktp
dEFQSSB7CisKK1RFU1QoV2ViTG9ja3MsIFNuYXBzaG90QWNyb3NzUHJvY2Vzc2VzKQoreworICAg
IFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgImZv
byIgfSB9CisgICAgfSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24xID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBmb3IgKF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1
cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxv
Y2tzQVBJRW5hYmxlZCJdKSB7CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24xIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byB3ZWJWaWV3MSA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjEuZ2V0KCldKTsKKyAg
ICBbd2ViVmlldzEgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOwor
CisgICAgYXV0byBwaWQxID0gW3dlYlZpZXcxIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAg
RVhQRUNUX05FKHBpZDEsIDApOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAg
ICBbd2ViVmlldzEgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICpt
ZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7
CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtp
dC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJl
dHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4o
aWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1
dG8gY29uZmlndXJhdGlvbjIgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLnByb2Nlc3NQb29sID0gW2NvbmZp
Z3VyYXRpb24xIHByb2Nlc3NQb29sXTsKKyAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
KmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2V4cGVyaW1lbnRhbEZlYXR1cmVzXSkgeworICAg
ICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIldlYkxvY2tzQVBJRW5hYmxl
ZCJdKSB7CisgICAgICAgICAgICBbW2NvbmZpZ3VyYXRpb24yIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTpmZWF0dXJlXTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5
bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlk
MiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQx
LCBwaWQyKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVy
UmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVD
VF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgIH1dOworCisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5s
b2Nrcy5yZXF1ZXN0KCdiYXInLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+
IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJW
aWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2Up
IHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDIgaGVs
ZCBvbmVzLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTIiKTsKKyAgICAg
ICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlw
dDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGlu
Zy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRp
b25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1Rf
TlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNo
b3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4KKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1d
OworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVl
cnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxl
ci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNo
b3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViTG9ja3Ms
IExvY2tSZXF1ZXN0V2FpdGluZ09uQW5vdGhlclByb2Nlc3MpCit7CisgICAgVGVzdFdlYktpdEFQ
STo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9vIiB9IH0KKyAgICB9
KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
ZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAg
ICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVk
Il0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbjEgcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3ZWJWaWV3MSBz
eW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBp
ZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlk
MSwgMCk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgZG9u
ZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5h
dmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9t
aXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5T
RXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBjb25maWd1cmF0
aW9uMiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Cisg
ICAgY29uZmlndXJhdGlvbjIuZ2V0KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJhdGlvbjEgcHJv
Y2Vzc1Bvb2xdOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBb
V0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVh
dHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAg
ICAgICAgIFtbY29uZmlndXJhdGlvbjIgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxv
YWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcy
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05FKHBpZDEsIHBpZDIpOworCisg
ICAgX19ibG9jayBib29sIGxvY2tBY3F1aXJlZCA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJm
b3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgbG9ja0Fj
cXVpcmVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIC8vIFJlcXVlc3RpbmcgdGhlIHNhbWUgbG9j
ayBuYW1lIGFzIHdlYlZpZXcxIHNvIHRoZSByZXF1ZXN0IHNob3VsZCBnZXQgcXVldWVkIHVudGls
IHdlYlZpZXcxIHJlbGVhc2VzIGl0LgorICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6
QCJuYXZpZ2F0b3IubG9ja3MucmVxdWVzdCgnZm9vJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdl
SGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcg
UHJvbWlzZSgoKSA9PiB7fSk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjUpOworICAgIEVYUEVDVF9GQUxT
RShsb2NrQWNxdWlyZWQpOworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MiBwZXJm
b3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAg
ICAgLy8gVGhlcmUgc2hvdWxkIGJlIDEgcGVuZGluZyBsb2NrLCBhbmQgMSBoZWxkIG9uZS4KKyAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMS0xIik7CisgICAgICAgIGRvbmUgPSB0
cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0
b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3RoICsg
Jy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpe
KGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3Ip
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBb
d2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNz
YWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7Cisg
ICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBOb3cgY2xvc2Ug
dGhlIHdlYlZpZXcxLiBUaGlzIHNob3VsZCByZWxlYXNlIHRoZSAnZm9vJyBsb2NrIGFuZCBhbGxv
dyB3ZWJWaWV3MiB0byBhY3F1aXJlIGl0LgorICAgIFt3ZWJWaWV3MSBfY2xvc2VdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZsb2NrQWNxdWlyZWQpOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3MiBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNT
dHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBs
b2NrcywgYW5kIDEgaGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBA
IjAtMSIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIgZXZh
bHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9
PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBz
bmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkg
JiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445727</attachid>
            <date>2021-12-02 09:29:46 -0800</date>
            <delta_ts>2021-12-02 10:25:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211202092945.patch</filename>
            <type>text/plain</type>
            <size>125433</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzVhM2RjNzg4NmIwNzk0
ODk0MTM2YTY4MzE4YmZlMWM2MjU2YjM3Yi4uY2U4ZTZhNzllYmViNDgwMWUzZjkyODkwYTJiNzc5
ODY1NjkzMDE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsg
YWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3Nlcy4gVG8gYWNoaWV2ZSB0aGlzLCBXZWJMb2NrUmVn
aXN0cnkgaXMgbm93CisgICAgICAgIGFuIGludGVyZmFjZSB3aXRoIDIgY29uY3JldGUgc3ViY2xh
c3NlczoKKyAgICAgICAgLSBMb2NhbFdlYkxvY2tSZWdpc3RyeTogSW4gY2hhcmdlIG9mIHRoZSBh
Y3R1YWwgc3RvcmFnZSBvZiB0aGUgbG9jayByZWdpc3RyYXRpb25zLiBUaGlzIGlzCisgICAgICAg
ICAgYmFzaWNhbGx5IGEgcmVuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IHVzZWQgdG8gYmUgbmFtZWQg
V2ViTG9ja1JlZ2lzdHJ5LiBJbiB0aGUgV2ViS2l0TGVnYWN5CisgICAgICAgICAgY2FzZSwgd2Ug
dXNlIGEgZ2xvYmFsIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZvciByZWd1bGFyIGJyb3dzaW5nIHZp
ZXdzIGFuZCBhbm90aGVyIGdsb2JhbAorICAgICAgICAgIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZv
ciBwcml2YXRlIGJyb3dzaW5nIHZpZXdzLiBJbiB0aGUgbW9kZXJuIFdlYktpdCBjYXNlLCB0aGUK
KyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBpcyBoZWxkIGluIHRoZSBVSVByb2Nlc3Mg
YnkgdGhlIFdlYnNpdGVEYXRhU3RvcmUuIEl0IGlzIGhlbGQgYnkgdGhlCisgICAgICAgICAgV2Vi
c2l0ZURhdGFTdG9yZSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgZGlmZmVyZW50IHNlc3Npb25zIHRv
IHNoYXJlIGxvY2tzLiBJdCBsaXZlcyBpbiB0aGUKKyAgICAgICAgICBVSVByb2Nlc3MgYmVjYXVz
ZSBpdCBuZWVkcyB0byBiZSBzaGFyZWQgYnkgc2V2ZXJhbCBXZWJQcm9jZXNzZXMuIFRoZSBOZXR3
b3JrUHJvY2VzcyBtYXkKKyAgICAgICAgICBoYXZlIGJlZW4gc3VpdGFibGUgdG9vIGJ1dCBpdCB3
b3VsZCBoYXZlIG1lYW50IGRlYWxpbmcgd2l0aCBjcmFzaCByZWNvdmVyeS4KKyAgICAgICAgLSBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6IEl0IGhhcyB0aGUgc2FtZSBpbnRlcmZhY2UgaGFzIExvY2Fs
V2ViTG9ja1JlZ2lzdHJ5IGJ1dCBtZXJlbHkgcHJveGllcworICAgICAgICAgIGNhbGxzIHRvIHRo
ZSBVSVByb2Nlc3MgdmlhIElQQy4KKworICAgICAgICBJbiB0aGUgVUlQcm9jZXNzLCBlYWNoIFdl
YlByb2Nlc3NQcm94eSBoYXMgYSBXZWJMb2NrUmVnaXN0cnlQcm94eSBpbnN0YW5jZSB3aGljaCBs
aXN0ZW5zIGZvcgorICAgICAgICBJUEMgZnJvbSB0aGUgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IGlu
IHRoZSBXZWJQcm9jZXNzLiBVcG9uIHJlY2VpdmluZyBJUEMsIGl0IHZhbGlkYXRlcyB0aGUKKyAg
ICAgICAgcGFyYW1ldGVycyAoc2luY2UgdGhlIFdlYlByb2Nlc3NlcyBhcmUgbm90IHRydXN0ZWQp
IGFuZCBjYWxscyB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbnMgb24KKyAgICAgICAgdGhlIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5IGhlbGQgYnkgdGhlIFdlYlByb2Nlc3NQcm94eSdzIFdlYnNpdGVE
YXRhU3RvcmUuIFRoZSBXZWJMb2NrUmVnaXN0cnlQcm94eQorICAgICAgICBpcyBhbHNvIGluIGNo
YXJnZSBvZiBub3RpZnlpbmcgdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0aGUgV2ViUHJv
Y2VzcyB3aGVuZXZlciBhIGxvY2sKKyAgICAgICAgcmVxdWVzdCBjb21wbGV0ZXMgYW5kIHdoZW5l
dmVyIGEgaGVsZCBsb2NrIGdldHMgc3RvbGVuLgorCisgICAgICAgICogTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6
OnJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmRpZENvbXBsZXRl
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnJlcXVlc3RM
b2NrT25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZWxl
YXNlTG9ja09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6
YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2Nr
TWFuYWdlcjo6cXVlcnlPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OmNsaWVudElzR29pbmdBd2F5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjplbnN1cmVPbk1haW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dl
YkxvY2tNYW5hZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6
SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNu
YXBzaG90OjpJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJT
bmFwc2hvdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9k
ZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6ZW5zdXJlUmVnaXN0cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk6On5QZXJPcmlnaW5SZWdpc3RyeSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJD
b3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZWxlYXNlTG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk6OmFib3J0TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojppc0dyYW50YWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nl
c3NMb2NrUmVxdWVzdFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
UGVyT3JpZ2luUmVnaXN0cnk6OnNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNsaWVudHNBcmVHb2luZ0F3YXkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudHNBcmVHb2lu
Z0F3YXkpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tS
ZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V2ViTG9ja1JlZ2lzdHJ5OjpXZWJMb2NrUmVnaXN0cnkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50YWJsZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdp
c3RyeTo6c25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRJc0dvaW5nQXdheSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja1JlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6On5XZWJMb2NrUmVnaXN0cnkpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICog
cGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAq
IHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViTG9ja1JlZ2lzdHJ5KToK
KyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIxLTEyLTAyICBBbmRyZXUgQm90ZWxsYSAgPGFuZHJl
dUBhbmRyZXVib3RlbGxhLmNvbT4KIAogICAgICAgICBGaWxlIGlucHV0cyBpbiBub24tbXVsdGlw
YXJ0IGZvcm0gc3VibWlzc2lvbnMgc2hvdyB1cCBhcyBzdHJpbmcgdmFsdWVzIGluIHRoZSBmb3Jt
ZGF0YSBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MzczMjZiYTA4NWUzOTMyYTk1YTM5NWZiNWViYzc3MTZi
ZjgzNWJmLi4yNmRkMTc3NmZjZTQwMzhlMWRhZjY2ZDI1ODFiYmE1ZmI3OGFmNzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDYxIEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVs
dGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2Vu
LgorCisgICAgICAgIFNlZSBXZWJDb3JlIGNoYW5nZWxvZy4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6V2ViTG9j
a1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6
fldlYkxvY2tSZWdpc3RyeVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9ja1JlZ2lzdHJ5
UHJveHk6OnJlcXVlc3RMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9ja1JlZ2lzdHJ5UHJv
eHk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6
OmFib3J0TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6c25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6Y2xp
ZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6
cHJvY2Vzc0RpZEV4aXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94
eS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVz
c2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjptX3dlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQcm94eTo6c2h1dERvd24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OndlYkxvY2tSZWdpc3RyeSk6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2
aWNlV29ya2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdl
YkxvY2tSZWdpc3RyeS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2Nr
UmVnaXN0cnk6OkxvY2tzU25hcHNob3Q6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6flJlbW90ZVdlYkxvY2tSZWdpc3RyeSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZENvbXBsZXRlTG9ja1Jl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZFN0ZWFs
TG9jayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnkuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9S
ZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9hcHBIaWdobGln
aHRzVmlzaWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYkxvY2tSZWdp
c3RyeSk6CisKIDIwMjEtMTItMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIEFkZCBzb21lIGxvZ2dpbmcgdG8gTmV0d29ya1JUQ1Byb3ZpZGVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODZlNWQ5OTU4YzY1MmE1YWYzZjc4NWMwNWI1NTA0MjNh
YmZlMTBhMy4uMGFkNzAwYzg4OGIwZTEzYzVjNTE0ZDJhYzY4MTM1Mzk2MjVhNTBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFNlZSBXZWJDb3JlIGNoYW5nZWxvZy4K
KworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKGdldE9yQ3JlYXRlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25X
aXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpbml0U2ltcGxl
SFRNTERvY3VtZW50V2l0aFN0eWxlOmZyYW1lOnByZWZlcmVuY2VzOmdyb3VwTmFtZTpdKToKKwog
MjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
Z3Jlc3Npb24ocjI4MzkxMikgQnJva2UgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgU3dpZnQg
YmluZGluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBjYWQ2MWE3N2EwMTBjZGQ4
NzBmMGE1YzY3ZDIxMzk2OTY2YmI2MGFjLi5lMzE2NjU2M2E4NGVlNTdhMzYwZjRkZDQ1N2MwMTRk
Yjc3NjI4YTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBb
V0syXSBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcxOQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgU2VlIFdl
YkNvcmUgQ2hhbmdlbG9nLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChnZXRP
ckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1l
KToKKwogMjAyMS0xMS0xOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgQVg6IFVzZSBPYmplY3RJZGVudGlmaWVyIGZvciBBWElECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCA5NTE5OWNjZDgzNjg2ZjFiOWQ5YmZlYWM2YjYwOTUzYjQwYzFiNzllLi45
NWE1NjQ5ZDQ1MjVjNDJmOTVjOGEwOTQyOGViMTRiN2RiNzgxNzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTMxMiw2ICszMTIsMTEgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNpbmsuaAogICAgIE1vZHVs
ZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCiAKKyAgICBNb2R1bGVzL3dlYi1sb2Nr
cy9XZWJMb2NrSWRlbnRpZmllci5oCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaAorICAgIE1v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCisKICAgICBNb2R1bGVzL3dlYmF1dGhu
L0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaAogICAgIE1vZHVsZXMvd2ViYXV0aG4v
QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmgKICAgICBNb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDdl
NWI1NTE0ODVhYzY1NTFkZDVmMGMxOTA0MWIzZTI5M2YxYjZjZWQuLjlkNGY2ZjZjMDE4YTI5MjQ0
OTE4YTZiOTdjYmMwMTc4Y2UxOWNiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKQEAgLTMxLDExICszMSwxNCBAQAogI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2luY2x1ZGUgIkpTV2ViTG9ja01hbmFnZXJTbmFwc2hv
dC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJhc2UuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJMb2NrLmgiCiAjaW5jbHVkZSAi
V2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkxvY2tNYW5hZ2VyU25hcHNo
b3QuaCIKICNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJXb3JrZXJHbG9i
YWxTY29wZS5oIgorI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIApAQCAtNTMs
NiArNTYsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxDbGllbnRPcmlnaW4+IGNsaWVudE9yaWdp
bkZyb21Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleAogCiBzdHJ1Y3QgV2ViTG9ja01hbmFn
ZXI6OkxvY2tSZXF1ZXN0IHsKICAgICBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcjsK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKICAgICBTdHJp
bmcgbmFtZTsKICAgICBXZWJMb2NrTW9kZSBtb2RlIHsgV2ViTG9ja01vZGU6OkV4Y2x1c2l2ZSB9
OwogICAgIFJlZlB0cjxXZWJMb2NrR3JhbnRlZENhbGxiYWNrPiBncmFudGVkQ2FsbGJhY2s7CkBA
IC0xMzcsMTQgKzE0MSwxNSBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1ZXN0KGNvbnN0IFN0
cmluZyYgbmFtZSwgT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxXZWJMb2NrRwogICAgICAgICB9KTsK
ICAgICB9CiAKLSAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIExvY2tS
ZXF1ZXN0IHsgbG9ja0lkZW50aWZpZXIsIG5hbWUsIG9wdGlvbnMubW9kZSwgV1RGTW92ZShncmFu
dGVkQ2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSB9KTsKKyAgICBhdXRvIGNsaWVu
dElEID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCk7CisgICAgbV9wZW5k
aW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdCB7IGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRCwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZNb3ZlKGdyYW50ZWRDYWxsYmFj
ayksIFdURk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOwogCi0gICAgcmVxdWVzdExvY2tPbk1haW5U
aHJlYWQobG9ja0lkZW50aWZpZXIsIG5hbWUsIG9wdGlvbnMsIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oYm9vbCBzdWNjZXNzKSBtdXRhYmxlIHsKKyAgICBy
ZXF1ZXN0TG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG9w
dGlvbnMsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0oYm9v
bCBzdWNjZXNzKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAg
d2Vha1RoaXMtPmRpZENvbXBsZXRlTG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIHN1Y2Nlc3Mp
OwotICAgIH0sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2NrSWRlbnRpZmllcl0o
RXhjZXB0aW9uJiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKKyAgICB9LCBbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3
ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtUaGlzLT5zZXR0bGVSZWxlYXNlUHJvbWlzZShsb2Nr
SWRlbnRpZmllciwgV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5z
ZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJv
ciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJlcXVlc3QiX3MgfSk7CiAgICAgfSk7CiB9
CiAKQEAgLTE1Nyw3ICsxNjIsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxv
Y2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBibwogCiAgICAgICAg
IGlmIChzdWNjZXNzKSB7CiAgICAgICAgICAgICBpZiAocmVxdWVzdC5zaWduYWwgJiYgcmVxdWVz
dC5zaWduYWwtPmFib3J0ZWQoKSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWlu
VGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7CisgICAgICAgICAg
ICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVx
dWVzdC5jbGllbnRJRCwgcmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB9CiAKQEAgLTE2NSwxNSArMTcwLDE1IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6
OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIs
IGJvCiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHJlcXVlc3QuZ3JhbnRlZENhbGxiYWNrLT5o
YW5kbGVFdmVudChsb2NrLnB0cigpKTsKICAgICAgICAgICAgIFJlZlB0cjxET01Qcm9taXNlPiB3
YWl0aW5nUHJvbWlzZSA9IHJlc3VsdC50eXBlKCkgPT0gQ2FsbGJhY2tSZXN1bHRUeXBlOjpTdWNj
ZXNzID8gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpIDogbnVsbHB0cjsKICAgICAgICAgICAg
IGlmICghd2FpdGluZ1Byb21pc2UpIHsKLSAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFp
blRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0Lm5hbWUpOworICAgICAgICAg
ICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIHJl
cXVlc3QuY2xpZW50SUQsIHJlcXVlc3QubmFtZSk7CiAgICAgICAgICAgICAgICAgc2V0dGxlUmVs
ZWFzZVByb21pc2UocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgRXhpc3RpbmdF
eGNlcHRpb25FcnJvciB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIERPTVByb21pc2U6OndoZW5Qcm9taXNlSXNTZXR0bGVkKHdhaXRpbmdQ
cm9taXNlLT5nbG9iYWxPYmplY3QoKSwgd2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSwgW3RoaXMs
IHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGxvY2tJZGVudGlmaWVyID0gcmVxdWVzdC5s
b2NrSWRlbnRpZmllciwgbmFtZSA9IHJlcXVlc3QubmFtZSwgd2FpdGluZ1Byb21pc2VdIHsKKyAg
ICAgICAgICAgIERPTVByb21pc2U6OndoZW5Qcm9taXNlSXNTZXR0bGVkKHdhaXRpbmdQcm9taXNl
LT5nbG9iYWxPYmplY3QoKSwgd2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSwgW3RoaXMsIHdlYWtU
aGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGxvY2tJZGVudGlmaWVyID0gcmVxdWVzdC5sb2NrSWRl
bnRpZmllciwgY2xpZW50SUQgPSByZXF1ZXN0LmNsaWVudElELCBuYW1lID0gcmVxdWVzdC5uYW1l
LCB3YWl0aW5nUHJvbWlzZV0gewogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFp
blRocmVhZChsb2NrSWRlbnRpZmllciwgbmFtZSk7CisgICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKTsKICAgICAgICAg
ICAgICAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgc3RhdGljX2Nhc3Q8
SlNDOjpKU1ZhbHVlPih3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpKSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTE4OCwzMyArMTkzLDMzIEBAIHZvaWQgV2ViTG9ja01h
bmFnZXI6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50
aWZpZXIsIGJvCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3RMb2Nr
T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Z3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5k
bGVyKQordm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVxdWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9j
a0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMs
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4m
JiBsb2NrU3RvbGVuSGFuZGxlcikKIHsKLSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJ
ZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVu
dE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBuYW1lID0gY3Jvc3NU
aHJlYWRDb3B5KG5hbWUpLCBtb2RlID0gb3B0aW9ucy5tb2RlLCBzdGVhbCA9IG9wdGlvbnMuc3Rl
YWwsIGlmQXZhaWxhYmxlID0gb3B0aW9ucy5pZkF2YWlsYWJsZSwgbG9ja0lkZW50aWZpZXIsIGdy
YW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIHJlbGVhc2VIYW5kbGVyID0g
V1RGTW92ZShyZWxlYXNlSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tSZWdp
c3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+cmVxdWVzdExvY2sobG9ja0lk
ZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyLCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFpbGFi
bGUsIFtjb250ZXh0SWRlbnRpZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRI
YW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBzdWNjZXNzXShhdXRvJikg
bXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRJRCwgY2xpZW50T3JpZ2lu
ID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENv
cHkobmFtZSksIG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0aW9ucy5zdGVhbCwgaWZB
dmFpbGFibGUgPSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRpZmllciwgZ3JhbnRlZEhh
bmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgbG9ja1N0b2xlbkhhbmRsZXIgPSBXVEZN
b3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oYXV0byYgcmVnaXN0cnkpIG11dGFibGUgeworICAgICAg
ICByZWdpc3RyeS5yZXF1ZXN0TG9jayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGll
bnRJRCwgbmFtZSwgbW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBbY2xpZW50SUQsIGdyYW50ZWRI
YW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUg
eworICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhy
ZWFkKGNsaWVudElELCBbZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwg
c3VjY2Vzc10oYXV0byYpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGdyYW50ZWRIYW5kbGVy
KHN1Y2Nlc3MpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sIFtjb250ZXh0SWRlbnRpZmll
ciwgcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKV0oRXhjZXB0aW9uJiYg
ZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW3JlbGVhc2VIYW5kbGVy
ID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlciksIGV4Y2VwdGlvbiA9IGNyb3NzVGhyZWFkQ29weShl
eGNlcHRpb24pXShhdXRvJikgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUhhbmRs
ZXIoV1RGTW92ZShleGNlcHRpb24pKTsKKyAgICAgICAgfSwgW2NsaWVudElELCBsb2NrU3RvbGVu
SGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAg
ICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNsaWVu
dElELCBbbG9ja1N0b2xlbkhhbmRsZXIgPSBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oYXV0
byYpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGxvY2tTdG9sZW5IYW5kbGVyKCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViTG9ja01hbmFn
ZXI6OnJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZWxlYXNlTG9j
a09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsK
LSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgq
bV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShu
YW1lKV0gewotICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVu
dE9yaWdpbiktPnJlbGVhc2VMb2NrKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKKyAgICBlbnN1cmVP
bk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmln
aW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFt
ZSldKGF1dG8mIHJlZ2lzdHJ5KSB7CisgICAgICAgIHJlZ2lzdHJ5LnJlbGVhc2VMb2NrKGNsaWVu
dE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKTsKICAgICB9KTsKIH0KIAog
dm9pZCBXZWJMb2NrTWFuYWdlcjo6YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZChXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGVuc3VyZU9u
TWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9y
aWdpbiksIGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewot
ICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikt
PmFib3J0TG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFtjb250ZXh0SWRlbnRpZmll
ciwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCB3
YXNBYm9ydGVkKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OmVuc3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRh
YmxlIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElEID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgq
bV9jbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShu
YW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byYgcmVnaXN0cnkpIG11dGFibGUgeworICAgICAgICByZWdpc3RyeS5hYm9ydExvY2tSZXF1ZXN0
KGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBbY2xpZW50SUQs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGJvb2wgd2Fz
QWJvcnRlZCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpl
bnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCB3YXNBYm9ydGVkXShhdXRvJikgbXV0YWJsZSB7CiAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2FzQWJvcnRlZCk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CkBAIC0yMjMsOCArMjI4LDggQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6
YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmkKIAogdm9pZCBXZWJMb2NrTWFuYWdlcjo6cXVlcnlPbk1haW5UaHJlYWQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBlbnN1
cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGll
bnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSgpIG11dGFibGUgewotICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2lu
KGNsaWVudE9yaWdpbiktPnNuYXBzaG90KFtjb250ZXh0SWRlbnRpZmllciwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU25hcHNob3QmJiBzbmFwc2hvdCkg
bXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9z
c1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYgcmVnaXN0cnkpIG11dGFibGUgeworICAgICAgICBy
ZWdpc3RyeS5zbmFwc2hvdChjbGllbnRPcmlnaW4sIFtjb250ZXh0SWRlbnRpZmllciwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU25hcHNob3QmJiBzbmFw
c2hvdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1
cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzbmFwc2hvdCA9IGNyb3NzVGhyZWFkQ29weShz
bmFwc2hvdCldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHNuYXBzaG90KSk7CiAgICAgICAgICAgICB9KTsKQEAgLTMwMiwxMSArMzA3
LDI5IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmNsaWVudElzR29pbmdBd2F5KCkKICAgICBtX3Bl
bmRpbmdSZXF1ZXN0cy5jbGVhcigpOwogICAgIG1fcmVsZWFzZVByb21pc2VzLmNsZWFyKCk7CiAK
LSAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgq
bV9jbGllbnRPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aWRlbnRpZmllcigpXSB7Ci0gICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+Y2xpZW50SXNHb2luZ0F3YXkoY29udGV4dElkZW50aWZp
ZXIpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRD
b3B5KCptX2NsaWVudE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5pZGVudGlmaWVyKCldKGF1dG8mIHJlZ2lzdHJ5KSB7CisgICAgICAgIHJlZ2lz
dHJ5LmNsaWVudElzR29pbmdBd2F5KGNsaWVudE9yaWdpbiwgY29udGV4dElkZW50aWZpZXIpOwog
ICAgIH0pOwogfQogCit2b2lkIFdlYkxvY2tNYW5hZ2VyOjplbnN1cmVPbk1haW5UaHJlYWQoRnVu
Y3Rpb248dm9pZChXZWJMb2NrUmVnaXN0cnkmKT4mJiB0YXNrKQoreworICAgIGF1dG8qIGNvbnRl
eHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAg
ICByZXR1cm47CisgICAgQVNTRVJUKGNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKKworICAg
IGlmIChpczxEb2N1bWVudD4oKmNvbnRleHQpKSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBk
b3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpLnBhZ2UoKSkKKyAgICAgICAgICAgIHRhc2socGFn
ZS0+d2ViTG9ja1JlZ2lzdHJ5KCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkudGhyZWFkKCkud29ya2VyTG9hZGVyUHJveHkoKS5w
b3N0VGFza1RvTG9hZGVyKFt0YXNrID0gV1RGTW92ZSh0YXNrKV0oYXV0byYgY29udGV4dCkgewor
ICAgICAgICAgICAgaWYgKGF1dG8gcGFnZSA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5w
YWdlKCkpCisgICAgICAgICAgICAgICAgdGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0cnkoKSk7Cisg
ICAgICAgIH0pOworICAgIH0KK30KKwogYm9vbCBXZWJMb2NrTWFuYWdlcjo6dmlydHVhbEhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFtX3BlbmRpbmdSZXF1ZXN0cy5p
c0VtcHR5KCkgfHwgIW1fcmVsZWFzZVByb21pc2VzLmlzRW1wdHkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCmluZGV4IGZlY2M0MDkz
ODMzOWMxNzJmZTk2N2JhOWMzZDU5MDNmZjAzN2I3ODkuLjk2ODI2NjIyNGNkZmVlNTQxZmI3OWZi
MGJkYjUwOTkxNDI2MGVkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
LWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja01hbmFnZXIuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CiBjbGFzcyBOYXZpZ2F0b3JCYXNlOwogY2xhc3Mg
V2ViTG9ja0dyYW50ZWRDYWxsYmFjazsKK2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIAogc3RydWN0
IENsaWVudE9yaWdpbjsKIHN0cnVjdCBXZWJMb2NrTWFuYWdlclNuYXBzaG90OwpAQCAtNjIsOCAr
NjMsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkxvY2tNYW5hZ2VyKE5h
dmlnYXRvckJhc2UmKTsKIAotICAgIHZvaWQgcmVxdWVzdExvY2tPbk1haW5UaHJlYWQoV2ViTG9j
a0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYsIEZ1bmN0aW9u
PHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VIYW5k
bGVyKTsKLSAgICB2b2lkIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIHZvaWQgcmVxdWVzdExvY2tPbk1haW5UaHJlYWQo
V2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmLCBG
dW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpOworICAgIHZvaWQgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVz
dE9uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHF1ZXJ5T25NYWluVGhyZWFk
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU25hcHNob3QmJik+JiYpOwogCkBAIC03Miw2ICs3Myw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaWduYWxUb0Fib3J0VGhlUmVxdWVzdChXZWJMb2NrSWRl
bnRpZmllcik7CiAgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheSgpOwogCisgICAgdm9pZCBlbnN1
cmVPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZChXZWJMb2NrUmVnaXN0cnkmKT4mJiB0YXNrKTsK
KwogICAgIC8vIEFjdGl2ZURPTU9iamVjdC4KICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBz
aG90LmgKaW5kZXggN2Y1MzNjM2NjNzAwMjhkMTZhYTQyNzA0ZjJjNDgxYjJmNDIxMGQxZS4uNDQy
YzMwM2QyYTg3NGUyOTQzZWY3YWM1ZjYyZmNlMzYwMGYyZTc1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3Qu
aApAQCAtMzgsMTIgKzM4LDU1IEBAIHN0cnVjdCBXZWJMb2NrTWFuYWdlclNuYXBzaG90IHsKICAg
ICAgICAgU3RyaW5nIGNsaWVudElkOwogCiAgICAgICAgIEluZm8gaXNvbGF0ZWRDb3B5KCkgY29u
c3QgeyByZXR1cm4geyBuYW1lLmlzb2xhdGVkQ29weSgpLCBtb2RlLCBjbGllbnRJZC5pc29sYXRl
ZENvcHkoKSB9OyB9CisKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QgeyBlbmNvZGVyIDw8IG5hbWUgPDwgbW9kZSA8PCBj
bGllbnRJZDsgfQorICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwogICAgIH07CiAKICAgICBWZWN0b3I8SW5m
bz4gaGVsZDsKICAgICBWZWN0b3I8SW5mbz4gcGVuZGluZzsKIAogICAgIFdlYkxvY2tNYW5hZ2Vy
U25hcHNob3QgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBjcm9zc1RocmVhZENvcHko
aGVsZCksIGNyb3NzVGhyZWFkQ29weShwZW5kaW5nKSB9OyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIg
PDwgaGVsZCA8PCBwZW5kaW5nOyB9CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdD4gZGVjb2RlKERlY29kZXImKTsK
IH07CiAKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFdlYkxvY2tNYW5h
Z2VyU25hcHNob3Q6OkluZm8+IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q6OkluZm86OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBuYW1lOworICAg
IGRlY29kZXIgPj4gbmFtZTsKKyAgICBpZiAoIW5hbWUpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkxvY2tNb2RlPiBtb2RlOworICAgIGRlY29k
ZXIgPj4gbW9kZTsKKyAgICBpZiAoIW1vZGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gY2xpZW50SWQ7CisgICAgZGVjb2RlciA+PiBj
bGllbnRJZDsKKyAgICBpZiAoIWNsaWVudElkKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpuYW1lKSwgKm1vZGUsIFdURk1vdmUoKmNsaWVu
dElkKSB9IH07Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFdl
YkxvY2tNYW5hZ2VyU25hcHNob3Q+IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBoZWxkOwor
ICAgIGRlY29kZXIgPj4gaGVsZDsKKyAgICBpZiAoIWhlbGQpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJbmZvPj4gcGVuZGluZzsKKyAg
ICBkZWNvZGVyID4+IHBlbmRpbmc7CisgICAgaWYgKCFwZW5kaW5nKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpoZWxkKSwgV1RGTW92ZSgq
cGVuZGluZykgfSB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaAppbmRleCA5MzQzNmMyODQ2YjIx
NDJjZjBiYWFiNmY0NjAwNTAyOWUxMzZmZWZiLi5lZmIwNDE3ZjM3NmE2NWU1MjY2NmI4Nzk4MTJi
YWY1ODUxZDc3OTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nr
cy9XZWJMb2NrTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dl
YkxvY2tNb2RlLmgKQEAgLTI2LDYgKzI2LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1l
bnVtIGNsYXNzIFdlYkxvY2tNb2RlIHsgU2hhcmVkLCBFeGNsdXNpdmUgfTsKK2VudW0gY2xhc3Mg
V2ViTG9ja01vZGUgOiBib29sIHsgU2hhcmVkLCBFeGNsdXNpdmUgfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKaW5k
ZXggODJmMTAyMGFmZDI2N2JiZDM5Mjc5ZDdhOThiNDY0M2ZhZGFmNDFiZi4uMTNhNDkwYWE2MTI3
MjMxYmI0MmQ5YTc3MTZmZDk1YTJjZDIwODQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwCkBAIC0zMyw1NiArMzMsOTIg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgV2ViTG9ja1JlZ2lzdHJ5OjpMb2Nr
SW5mbyB7Ci0gICAgUmVmPFdlYkxvY2tSZWdpc3RyeT4gcmVnaXN0cnk7Ci0gICAgV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXI7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SUQ7Ci0gICAgV2ViTG9ja01vZGUgbW9kZTsKLSAgICBGdW5jdGlvbjx2b2lk
KEV4Y2VwdGlvbiYmKT4gcmVsZWFzZUhhbmRsZXI7Ci19OworY2xhc3MgTG9jYWxXZWJMb2NrUmVn
aXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8UGVyT3JpZ2luUmVn
aXN0cnk+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiBjcmVhdGUoTG9jYWxXZWJMb2Nr
UmVnaXN0cnkmLCBjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAgICB+UGVyT3JpZ2luUmVnaXN0cnko
KTsKKworICAgIHN0cnVjdCBMb2NrSW5mbyB7CisgICAgICAgIFJlZjxQZXJPcmlnaW5SZWdpc3Ry
eT4gcmVnaXN0cnk7CisgICAgICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOwor
ICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRDsKKyAgICAg
ICAgV2ViTG9ja01vZGUgbW9kZTsKKyAgICAgICAgRnVuY3Rpb248dm9pZCgpPiBsb2NrU3RvbGVu
SGFuZGxlcjsKKyAgICB9OworCisgICAgdm9pZCByZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmll
ciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQo
Ym9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFu
ZGxlcik7CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lKTsKKyAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25h
cHNob3QmJik+JiYpOworICAgIHZvaWQgY2xpZW50c0FyZUdvaW5nQXdheShjb25zdCBGdW5jdGlv
bjxib29sKGNvbnN0IExvY2tJbmZvJik+JiBtYXRjaENsaWVudCk7CisKK3ByaXZhdGU6CisgICAg
UGVyT3JpZ2luUmVnaXN0cnkoTG9jYWxXZWJMb2NrUmVnaXN0cnkmLCBjb25zdCBDbGllbnRPcmln
aW4mKTsKKworICAgIHN0cnVjdCBMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsKKyAgICAgICAgU3Ry
aW5nIG5hbWU7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCk+IGdyYW50ZWRIYW5kbGVyOwor
ICAgIH07CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0cnk6OkxvY2tSZXF1ZXN0IDogTG9ja0luZm8g
ewotICAgIFN0cmluZyBuYW1lOwotICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCk+IGdyYW50ZWRIYW5k
bGVyOworICAgIHZvaWQgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1l
LCBEZXF1ZTxMb2NrUmVxdWVzdD4mKTsKKyAgICBib29sIGlzR3JhbnRhYmxlKGNvbnN0IExvY2tS
ZXF1ZXN0JikgY29uc3Q7CisKKyAgICBXZWFrUHRyPExvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBtX2ds
b2JhbFJlZ2lzdHJ5OworICAgIENsaWVudE9yaWdpbiBtX2NsaWVudE9yaWdpbjsKKyAgICBIYXNo
TWFwPFN0cmluZywgRGVxdWU8TG9ja1JlcXVlc3Q+PiBtX2xvY2tSZXF1ZXN0UXVldWVNYXA7Cisg
ICAgSGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxMb2NrSW5mbz4+IG1faGVsZExvY2tzOwogfTsKIAot
c3RhdGljIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBXZWJMb2NrUmVnaXN0cnkqPiYgcmVnaXN0cnlN
YXAoKQorTG9jYWxXZWJMb2NrUmVnaXN0cnk6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5KCkgPSBkZWZh
dWx0OworCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6fkxvY2FsV2ViTG9ja1JlZ2lzdHJ5KCkgPSBk
ZWZhdWx0OworCithdXRvIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjplbnN1cmVSZWdpc3RyeUZvck9y
aWdpbihjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikgLT4gUmVmPFBlck9yaWdpblJl
Z2lzdHJ5PgoreworICAgIGlmIChhdXRvIGV4aXN0aW5nUmVnaXN0cnkgPSBtX3Blck9yaWdpblJl
Z2lzdHJpZXMuZ2V0KGNsaWVudE9yaWdpbikpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdp
c3RyeTsKKworICAgIHJldHVybiBQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKCp0aGlzLCBjbGll
bnRPcmlnaW4pOworfQorCithdXRvIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpleGlzdGluZ1JlZ2lz
dHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKSBjb25zdCAtPiBS
ZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+CiB7Ci0gICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBXZWJMb2Nr
UmVnaXN0cnkqPj4gcmVnaXN0cnlNYXA7Ci0gICAgcmV0dXJuIHJlZ2lzdHJ5TWFwOworICAgIHJl
dHVybiBtX3Blck9yaWdpblJlZ2lzdHJpZXMuZ2V0KGNsaWVudE9yaWdpbikuZ2V0KCk7CiB9CiAK
LVJlZjxXZWJMb2NrUmVnaXN0cnk+IFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4o
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCitSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBl
ck9yaWdpblJlZ2lzdHJ5PiBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6
OmNyZWF0ZShMb2NhbFdlYkxvY2tSZWdpc3RyeSYgZ2xvYmFsUmVnaXN0cnksIGNvbnN0IENsaWVu
dE9yaWdpbiYgY2xpZW50T3JpZ2luKQogewotICAgIGlmIChhdXRvIGV4aXN0aW5nUmVnaXN0cnkg
PSByZWdpc3RyeU1hcCgpLmdldChvcmlnaW4pKQotICAgICAgICByZXR1cm4gKmV4aXN0aW5nUmVn
aXN0cnk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUGVyT3JpZ2luUmVnaXN0cnkoZ2xvYmFs
UmVnaXN0cnksIGNsaWVudE9yaWdpbikpOworfQogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViTG9ja1JlZ2lzdHJ5KG9yaWdpbikpOworTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdp
blJlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeShMb2NhbFdlYkxvY2tSZWdpc3RyeSYgZ2xvYmFs
UmVnaXN0cnksIGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKQorICAgIDogbV9nbG9i
YWxSZWdpc3RyeShnbG9iYWxSZWdpc3RyeSkKKyAgICAsIG1fY2xpZW50T3JpZ2luKGNsaWVudE9y
aWdpbikKK3sKKyAgICBnbG9iYWxSZWdpc3RyeS5tX3Blck9yaWdpblJlZ2lzdHJpZXMuYWRkKGNs
aWVudE9yaWdpbiwgV2Vha1B0ciB7ICogdGhpcyB9KTsKIH0KIAotV2ViTG9ja1JlZ2lzdHJ5OjpX
ZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4pCi0gICAgOiBtX29yaWdp
bihvcmlnaW4pCitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6On5QZXJP
cmlnaW5SZWdpc3RyeSgpCiB7Ci0gICAgcmVnaXN0cnlNYXAoKS5hZGQobV9vcmlnaW4sIHRoaXMp
OworICAgIGlmIChtX2dsb2JhbFJlZ2lzdHJ5KQorICAgICAgICBtX2dsb2JhbFJlZ2lzdHJ5LT5t
X3Blck9yaWdpblJlZ2lzdHJpZXMucmVtb3ZlKG1fY2xpZW50T3JpZ2luKTsKIH0KIAotV2ViTG9j
a1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KCkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6
OnJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
Y2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVh
bCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxl
ciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKQogewotICAgIGF1dG8qIHJl
Z2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS50YWtlKG1fb3JpZ2luKTsKLSAgICBBU1NFUlRfVU5VU0VE
KHJlZ2lzdHJ5LCByZWdpc3RyeSA9PSB0aGlzKTsKKyAgICBlbnN1cmVSZWdpc3RyeUZvck9yaWdp
bihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5h
bWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgV1RGTW92ZShncmFudGVkSGFuZGxlciksIFdU
Rk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpKTsKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5p
by93ZWItbG9ja3MvI3JlcXVlc3QtYS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVz
dExvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2Rl
IG1vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VI
YW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnJl
cXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2Nr
TW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRs
ZXIpCiB7Ci0gICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsgKnRoaXMsIGxvY2tJZGVudGlmaWVy
LCBjbGllbnRJRCwgbW9kZSwgV1RGTW92ZShyZWxlYXNlSGFuZGxlcikgfSwgbmFtZSwgV1RGTW92
ZShncmFudGVkSGFuZGxlcikgfTsKKyAgICBMb2NrUmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywg
bG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBtb2RlLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVy
KSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSB9OwogCiAgICAgaWYgKHN0ZWFsKSB7
CiAgICAgICAgIGF1dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgICAgICBpZiAo
aXQgIT0gbV9oZWxkTG9ja3MuZW5kKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgbG9ja0lu
Zm8gOiBpdC0+dmFsdWUpCi0gICAgICAgICAgICAgICAgbG9ja0luZm8ucmVsZWFzZUhhbmRsZXIo
RXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgd2FzIHN0b2xlbiBieSBhbm90aGVyIHJlcXVl
c3QiIH0pOworICAgICAgICAgICAgICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7CiAg
ICAgICAgICAgICBtX2hlbGRMb2Nrcy5yZW1vdmUoaXQpOwogICAgICAgICB9CiAgICAgfSBlbHNl
IGlmIChpZkF2YWlsYWJsZSAmJiAhaXNHcmFudGFibGUocmVxdWVzdCkpIHsKQEAgLTk3LDggKzEz
MywxNCBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dAogICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1
ZXVlKG5hbWUsIHF1ZXVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFz
ZUxvY2soY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlmaWVy
IGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lKQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3Ry
eUZvck9yaWdpbihjbGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+cmVsZWFzZUxvY2so
bG9ja0lkZW50aWZpZXIsIG5hbWUpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dl
Yi1sb2Nrcy8jYWxnb3JpdGhtLXJlbGVhc2UtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnJl
bGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVs
ZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSkKIHsKICAgICBhdXRvIGl0ID0gbV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICBpZiAo
aXQgPT0gbV9oZWxkTG9ja3MuZW5kKCkpCkBAIC0xMTQsOCArMTU2LDE3IEBAIHZvaWQgV2ViTG9j
a1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nCiAgICAgICAgIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKG5hbWUsIHF1ZXVl
SXRlcmF0b3ItPnZhbHVlKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRM
b2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVnaXN0cnlGb3JP
cmlnaW4oY2xpZW50T3JpZ2luKTsKKyAgICBpZiAoIXJlZ2lzdHJ5KQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworCisgICAgcmVnaXN0cnktPmFib3J0TG9ja1JlcXVl
c3QobG9ja0lkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30K
KwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI2Fib3J0LXRoZS1yZXF1ZXN0
Ci12b2lkIFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmll
ciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3Ry
eTo6UGVyT3JpZ2luUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0b3Ig
PSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZmluZChuYW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRv
ciA9PSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5kKCkpCkBAIC0xMzcsNyArMTg4LDcgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXIsIGNvbnN0IFMKIH0KIAogLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby93ZWIt
bG9ja3MvI2dyYW50YWJsZQotYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0
IExvY2tSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAorYm9vbCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
UGVyT3JpZ2luUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JiByZXF1ZXN0
KSBjb25zdAogewogICAgIGF1dG8gcXVldWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RRdWV1ZU1h
cC5maW5kKHJlcXVlc3QubmFtZSk7CiAgICAgaWYgKHF1ZXVlSXRlcmF0b3IgIT0gbV9sb2NrUmVx
dWVzdFF1ZXVlTWFwLmVuZCgpICYmICZxdWV1ZUl0ZXJhdG9yLT52YWx1ZS5maXJzdCgpICE9ICZy
ZXF1ZXN0KQpAQCAtMTU0LDcgKzIwNSw3IEBAIGJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50
YWJsZShjb25zdCBMb2NrUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKIH0KIAogLy8gaHR0cHM6Ly93
aWNnLmdpdGh1Yi5pby93ZWItbG9ja3MvI3Byb2Nlc3MtdGhlLWxvY2stcmVxdWVzdC1xdWV1ZQot
dm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKK3ZvaWQgTG9jYWxXZWJMb2NrUmVn
aXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBT
dHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYgcXVldWUpCiB7CiAgICAgd2hpbGUgKCFx
dWV1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKCFpc0dyYW50YWJsZShxdWV1ZS5maXJzdCgp
KSkKQEAgLTE2OSw4ICsyMjAsMTcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NMb2Nr
UmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXUKICAgICBBU1NF
UlRfVU5VU0VEKHJlbW92ZWRRdWV1ZSwgcmVtb3ZlZFF1ZXVlLmlzRW1wdHkoKSk7CiB9CiAKK3Zv
aWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdpbiYgY2xp
ZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hv
dCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3Rp
bmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmlnaW4pOworICAgIGlmICghcmVnaXN0cnkpCisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgcmVnaXN0cnktPnNu
YXBzaG90KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogLy8gaHR0cHM6Ly93aWNn
LmdpdGh1Yi5pby93ZWItbG9ja3MvI3NuYXBzaG90LXRoZS1sb2NrLXN0YXRlCi12b2lkIFdlYkxv
Y2tSZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdl
cjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90IHNuYXBzaG90OwogICAgIGZvciAoYXV0byYgcGFp
ciA6IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcCkgewpAQCAtMTg1LDE0ICsyNDUsMjEgQEAgdm9pZCBX
ZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01h
bmFnZXI6OlNuYXBzaG90JiYKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNuYXBzaG90
KSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KGNv
bnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5nUmVn
aXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmVnaXN0cnktPmNsaWVudHNB
cmVHb2luZ0F3YXkoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0luZm8u
Y2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlv
L3dlYi1sb2Nrcy8jYWdlbnQtaW50ZWdyYXRpb24KLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGll
bnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCkK
K3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjbGllbnRzQXJl
R29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9ja0luZm8mKT4mIG1hdGNoQ2xp
ZW50KQogeworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGluZWZmaWNpZW50LiBXZSBjb3VsZCBvcHRp
bWl6ZSB0aGlzIGJ5IGtlZXBpbmcgdHJhY2sgb2Ygd2hpY2ggbG9ja3MgbWFwIHRvIHdoaWNoIGNs
aWVudHMuCiAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVzT2ZRdWV1ZXNUb1Byb2Nlc3M7CiAKICAg
ICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRSZXF1ZXN0czsKICAgICBmb3IgKGF1dG8mIHBh
aXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVNYXApIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJl
bW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgcmVxdWVzdCkgeyByZXR1cm4gcmVxdWVz
dC5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSkpCisgICAgICAgIGlmICghcGFpci52YWx1ZS5yZW1v
dmVBbGxNYXRjaGluZyhtYXRjaENsaWVudCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbmFtZXNXaXRob3V0UmVx
dWVzdHMuYXBwZW5kKHBhaXIua2V5KTsKQEAgLTIwNCw3ICsyNzEsNyBAQCB2b2lkIFdlYkxvY2tS
ZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgY2xpZW50SQogCiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNXaXRob3V0TG9ja3M7CiAgICAg
Zm9yIChhdXRvJiBwYWlyIDogbV9oZWxkTG9ja3MpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVl
LnJlbW92ZUFsbE1hdGNoaW5nKFtjbGllbnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJuIGxv
Y2tJbmZvLmNsaWVudElEID09IGNsaWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZhbHVl
LnJlbW92ZUFsbE1hdGNoaW5nKG1hdGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBpZiAocGFpci52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dpdGhv
dXRMb2Nrcy5hcHBlbmQocGFpci5rZXkpOwpAQCAtMjIwLDQgKzI4NywxMyBAQCB2b2lkIFdlYkxv
Y2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SQogICAgIH0KIH0KIAordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xp
ZW50c0FyZUdvaW5nQXdheShQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikKK3sK
KyAgICBWZWN0b3I8Q2xpZW50T3JpZ2luPiBjbGllbnRPcmlnaW5zID0gY29weVRvVmVjdG9yKG1f
cGVyT3JpZ2luUmVnaXN0cmllcy5rZXlzKCkpOworICAgIGZvciAoYXV0byYgY2xpZW50T3JpZ2lu
IDogY2xpZW50T3JpZ2lucykgeworICAgICAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgICAgIHJlZ2lzdHJ5LT5j
bGllbnRzQXJlR29pbmdBd2F5KFtwcm9jZXNzSWRlbnRpZmllcl0oYXV0byYgbG9ja0luZm8pIHsg
cmV0dXJuIGxvY2tJbmZvLmNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcHJvY2Vzc0lk
ZW50aWZpZXI7IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAppbmRl
eCBhNmU4ZDAzNTNiZGMyMDk5YTA5MjRjNzc2MzI0ZWVhZGQ5NDNhMDZjLi44MjljZjVmNjgyNGU5
OTJlNzU2ODc0ZmEyMDUzOThiOTZlMDBhNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaApAQCAtMjUsOSArMjUsOSBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKKyNpbmNsdWRlICJQcm9jZXNz
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiV2ViTG9ja0lkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJMb2NrTWFu
YWdlci5oIgogI2luY2x1ZGUgIldlYkxvY2tNb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQwLDI5ICs0MCw0MCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBFeGNlcHRpb247CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hv
dDsKIAotY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1Jl
Z2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYkxvY2tSZWdpc3RyeT4geworY2xhc3Mg
V2ViTG9ja1JlZ2lzdHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTG9ja1JlZ2lzdHJ5PiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5Rm9yT3JpZ2lu
KGNvbnN0IENsaWVudE9yaWdpbiYpOwotICAgIH5XZWJMb2NrUmVnaXN0cnkoKTsKKyAgICB2aXJ0
dWFsIH5XZWJMb2NrUmVnaXN0cnkoKSB7IH0KIAotICAgIHZvaWQgcmVxdWVzdExvY2soV2ViTG9j
a0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlv
biYmKT4mJiByZWxlYXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9jayhXZWJMb2NrSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3Qo
V2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpOwotICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3
YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01v
ZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYg
Z3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJM
b2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0
IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRPcmln
aW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCi1wcml2YXRlOgot
ICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeShjb25zdCBDbGllbnRPcmlnaW4mKTsKK3Byb3Rl
Y3RlZDoKKyAgICBXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7Cit9OworCitjbGFzcyBMb2Nh
bFdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJMb2NrUmVnaXN0cnksIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTG9jYWxXZWJMb2NrUmVnaXN0cnkpOyB9CisgICAgfkxvY2FsV2ViTG9ja1JlZ2lzdHJ5KCk7
CisKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0IENsaWVudE9yaWdp
biYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWls
YWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9p
ZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZp
bmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2lu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSBm
aW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENs
aWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50aWZp
ZXIpOwogCi0gICAgc3RydWN0IExvY2tJbmZvOwotICAgIHN0cnVjdCBMb2NrUmVxdWVzdDsKK3By
aXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgTG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKIAotICAg
IGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lkIHBy
b2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVl
c3Q+Jik7CisgICAgY2xhc3MgUGVyT3JpZ2luUmVnaXN0cnk7CisgICAgUmVmPFBlck9yaWdpblJl
Z2lzdHJ5PiBlbnN1cmVSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsKKyAg
ICBSZWZQdHI8UGVyT3JpZ2luUmVnaXN0cnk+IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29u
c3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAKLSAgICBjb25zdCBDbGllbnRPcmlnaW4gbV9vcmln
aW47Ci0gICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVxdWVz
dFF1ZXVlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hlbGRM
b2NrczsKKyAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgV2Vha1B0cjxQZXJPcmlnaW5SZWdpc3Ry
eT4+IG1fcGVyT3JpZ2luUmVnaXN0cmllczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjOGMxZTM3ZmQ0NDViYWRiNTRlNGNlYzM4NjQ3YWE2OTI4OGU0ZWFlLi41MjQ1ZDIzYzRj
NjQ5NzUzOTg5NjgxZWY4NDUwMzdkMTc4NzJiYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzEzLDEwICsxMzEzLDEyIEBA
CiAJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NjVFREQ5RjIyMkY0RUMzMDBCNDZFMTYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTQ2MjE4QUNCMUY3MkQ2NEUwMDU3NEZCRSAvKiBET01IaWdoUmVzVGlt
ZVN0YW1wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkUwMTZBRDFGNzJENjFFMDAyODJCMkMgLyogRE9NSGlnaFJlc1RpbWVTdGFtcC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MjczQ0FGMjYwRTU5
RUYwMDZGQUE5MSAvKiBTV1NjcmlwdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjczQ0FDMjYwRTU5REYwMDZGQUE5MSAvKiBTV1Njcmlw
dFN0b3JhZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk0NjJDN0Y0MTI3NTZEQkU0MDBEMDgzQzggLyogV2ViTG9ja0lkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIyMjc0NzEx
ODUwMERBOUZCNiAvKiBXZWJMb2NrSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2MkU0QzUwMjYxNkE4MTEwMDNBMkM2NyAvKiBT
Y3JpcHRCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2MkU0QzREMjYxNkE4MDEwMDNBMkM2NyAvKiBTY3JpcHRCdWZmZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0NjM0QzcyQzI3NTdEQUIy
MDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3ODAyQjAyNzQ3MTE3QjAwREE5RkI2IC8qIFdl
YkxvY2tNYW5hZ2VyU25hcHNob3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0NjM1MjFBRDIwODEwOTJBMDBDMjg5MjIgLyogV2luZG93UHJveHku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzUyMUFB
MjA4MTA5MEIwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0VCNjIzMUI4Nzg5RTAwMDk2RUQ1MSAvKiBU
YWdDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjNFQjYyMTFCODc4OUNCMDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovOyB9Owot
CQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5
RSAvKiBXZWJMb2NrTW9kZS5oICovOyB9OworCQk0NjQ0RjdGNzI3MkExQzFCMDA1NTU5OUUgLyog
V2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NDRGN0VCMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2NDRGN0Y4MjcyQTFDMUYw
MDU1NTk5RSAvKiBXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFRTI3MkExQzE2MDA1NTU5OUUgLyogV2Vi
TG9ja0dyYW50ZWRDYWxsYmFjay5oICovOyB9OwogCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUg
LyogV2ViTG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NDRGN0YwMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrTWFuYWdlci5oICov
OyB9OwogCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RjMyNzJBMUMxNjAwNTU1
OTlFIC8qIFdlYkxvY2suaCAqLzsgfTsKQEAgLTM3NTcyLDcgKzM3NTc0LDkgQEAKIAkJCQkwRkNG
MzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NDRGN0ZBMjcyQTFDMjUwMDU1NTk5RSAvKiBXZWJMb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjQ0RjdGODI3MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdGOTI3MkExQzIxMDA1NTU5OUUgLyogV2Vi
TG9ja01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MzRDNzJDMjc1N0RBQjIwMDI2QTgx
NSAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjQ0RjdG
NzI3MkExQzFCMDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2
NENBRjA5Mjc0MzMxQTcwMDNCOUU0MSAvKiBXZWJMb2NrUmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RjVDRkY1MjU4MkE1MUQwMDY2MkVGNSAvKiBXZWJNQXVkaW9VdGlsaXRpZXNDb2Nv
YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmlu
ZGV4IDNhMDY0YmM3MjMxYTM2MDBjYzgzZGM1OGE5YTJlN2ZmMmVlOTZiMzUuLmMwODc4NWFmOGZj
OTI0ZTM1M2ZmZDQ4M2RmN2I5NWRhMjQ0M2FlODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFByb3ZpZGVyLmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTE3MCw2ICsxMTcx
LDIwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZShjb25zdCBDbGllbnRPcmlnaW4m
LCBjb25zdCBTdHJpbmcmLCBCcm9hZGNhc3RDaGFubmVsSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbCB7IH0K
IH07CiAKK2NsYXNzIEVtcHR5V2ViTG9ja1JlZ2lzdHJ5IGZpbmFsIDogcHVibGljIFdlYkxvY2tS
ZWdpc3RyeSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxFbXB0eVdlYkxvY2tSZWdpc3RyeT4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5V2ViTG9j
a1JlZ2lzdHJ5KTsKKyAgICB9Citwcml2YXRlOgorICAgIHZvaWQgcmVxdWVzdExvY2soY29uc3Qg
Q2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBXZWJMb2NrTW9kZSwgYm9vbCwgYm9vbCwgRnVuY3Rp
b248dm9pZChib29sKT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmKSB7IH0KKyAgICB2b2lkIHJlbGVh
c2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgdm9p
ZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWwgeyB9CisgICAgdm9pZCBzbmFwc2hvdChj
b25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2Vy
U25hcHNob3QmJik+JiYpIHsgfQorICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIHsgfQorfTsKKwog
UGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmln
dXJhdGlvbiB7CkBAIC0xMTg2LDYgKzEyMDEsNyBAQCBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxFbXB0eU1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAg
ICAgRW1wdHlCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmNyZWF0ZSgpLAorICAgICAgICBFbXB0
eVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCksCiAgICAgICAgIER1bW15UGVybWlzc2lvbkNvbnRy
b2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15U3RvcmFnZVByb3Zp
ZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPER1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggNTcwNmFkODYyOGZiOWJiMmM0OTg2NTM1YzYzMmQ5ZDJk
YWM5MTNlZi4uZjM3ZDA1OWIwZWI1MjZjNTQ5YzBkN2RlYjRlYTVhMDg4MGZmMGQ4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCkBAIC0zMDYsNiArMzA2LDcgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJh
dGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV91c2VyQ29udGVudFByb3ZpZGVyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBtX3Zp
c2l0ZWRMaW5rU3RvcmUoKldURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24udmlzaXRlZExpbmtTdG9y
ZSkpCiAgICAgLCBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uLmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3Ry
eShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBtX3Nl
c3Npb25JRChwYWdlQ29uZmlndXJhdGlvbi5zZXNzaW9uSUQpCiAjaWYgRU5BQkxFKFZJREVPKQog
ICAgICwgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZVRpbWVyKCp0aGlzLCAmUGFnZTo6
cGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lckZpcmVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCBmMWUwOGJjNGZlYzA3NDkxNmEzNzMzYWRmZjYyMDcxZGE0ZWQzODU2Li43NzlkOTNhMjQ1OTA1
MmMxMjMwYjAzMTMwODgwZDdhNDRiZmY5NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTY3LDYgKzE2
Nyw3IEBAIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeTsKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZpbHRlcjsKIGNs
YXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKIApAQCAtMjk4LDYgKzI5OSw4IEBAIHB1YmxpYzoK
ICAgICBCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgp
IHsgcmV0dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoUmVmPEJyb2FkY2FzdENoYW5uZWxS
ZWdpc3RyeT4mJik7IC8vIE9ubHkgdXNlZCBieSBXZWJLaXRMZWdhY3kuCiAKKyAgICBXZWJMb2Nr
UmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5OyB9
CisKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBmb3JFYWNoUGFnZShjb25zdCBGdW5j
dGlvbjx2b2lkKFBhZ2UmKT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdW5zaWduZWQg
bm9uVXRpbGl0eVBhZ2VDb3VudCgpOwogCkBAIC0xMTMyLDYgKzExMzUsNyBAQCBwcml2YXRlOgog
ICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiBtX3VzZXJDb250ZW50UHJvdmlkZXI7CiAgICAg
UmVmPFZpc2l0ZWRMaW5rU3RvcmU+IG1fdmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8QnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8
V2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKICAgICBSZWZQdHI8V2hlZWxFdmVu
dFRlc3RNb25pdG9yPiBtX3doZWVsRXZlbnRUZXN0TW9uaXRvcjsKICAgICBXZWFrSGFzaFNldDxB
Y3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI+IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVy
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCAxOTdj
NzhlNGZlOTgxZWVmOGMyYWQ0YWZiNjU3NjZjNWIzODhlYzdhLi5hZTQyN2I3ZDJjZmU3YjIyMmE1
NWQ4NWU5ODE4YjA0NDc4NTRjY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0
dGVybi5oIgogI2luY2x1ZGUgIlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
VmlzaXRlZExpbmtTdG9yZS5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgogI2lmIEVO
QUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogI2VuZGlmCkBAIC02
Myw3ICs2NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbmZpZ3VyYXRpb246
OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVk
aXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQcm92aWRlcj4mJiBzb2NrZXRQ
cm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmIGxpYldlYlJUQ1Byb3ZpZGVy
LCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9yYWdlUHJvdmlkZXIsIFJlZjxV
c2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlkZXIsIFJlZjxCYWNrRm9yd2Fy
ZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tpZUphcj4mJiBjb29raWVKYXIs
IFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJvZ3Jlc3NUcmFja2VyQ2xpZW50
LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1l
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiBzcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmIG1lZGlhUmVjb3Jk
ZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiBicm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJv
bGxlciwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1
ZVJlZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCitQYWdlQ29u
ZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
bmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVkaXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVy
PiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2Vi
UlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92
aWRlciwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlciwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tGb3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYm
IGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1Ry
YWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVj
aFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYg
bWVkaWFSZWNvcmRlclByb3ZpZGVyLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmIGJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgUmVmPFdlYkxvY2tSZWdpc3RyeT4mJiB3ZWJMb2NrUmVn
aXN0cnksIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiBwZXJtaXNzaW9uQ29udHJvbGxlciwg
VW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiBzdG9yYWdlUHJvdmlkZXIsIFVuaXF1ZVJlZjxN
b2RlbFBsYXllclByb3ZpZGVyPiYmIG1vZGVsUGxheWVyUHJvdmlkZXIpCiAgICAgOiBzZXNzaW9u
SUQoc2Vzc2lvbklEKQogICAgICwgZWRpdG9yQ2xpZW50KFdURk1vdmUoZWRpdG9yQ2xpZW50KSkK
ICAgICAsIHNvY2tldFByb3ZpZGVyKFdURk1vdmUoc29ja2V0UHJvdmlkZXIpKQpAQCAtNzUsNiAr
NzYsNyBAQCBQYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQwogICAgICwgY2FjaGVTdG9yYWdlUHJvdmlk
ZXIoV1RGTW92ZShjYWNoZVN0b3JhZ2VQcm92aWRlcikpCiAgICAgLCB1c2VyQ29udGVudFByb3Zp
ZGVyKFdURk1vdmUodXNlckNvbnRlbnRQcm92aWRlcikpCiAgICAgLCBicm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoV1RGTW92ZShicm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgd2ViTG9j
a1JlZ2lzdHJ5KFdURk1vdmUod2ViTG9ja1JlZ2lzdHJ5KSkKICAgICAsIHNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXIoV1RGTW92ZShzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyKSkKICAgICAsIG1l
ZGlhUmVjb3JkZXJQcm92aWRlcihXVEZNb3ZlKG1lZGlhUmVjb3JkZXJQcm92aWRlcikpCiAgICAg
LCBwZXJtaXNzaW9uQ29udHJvbGxlcihXVEZNb3ZlKHBlcm1pc3Npb25Db250cm9sbGVyKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA3ZmIzMzQ2NTdlMzEyMGM1
YWRiZDJkNGQyYWZmYjYwMGFiMjliYjJmLi5iYWM2ZmIyZjVlNjFkNDE3ZmY5YzU4NGNkYTQ4YmI0
NjllOWQwNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC03
NCwxMSArNzQsMTIgQEAgY2xhc3MgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOwogY2xhc3MgVmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xT
dGF0ZVRyYWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiAKIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ29uZmlndXJhdGlvbik7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VD
b25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBS
ZWY8U29ja2V0UHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiwgUmVm
PEJhY2tGb3J3YXJkQ2xpZW50PiYmLCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50PiYmLCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1
ZVJlZjxTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRl
clByb3ZpZGVyPiYmLCBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmLCBSZWY8UGVybWlz
c2lvbkNvbnRyb2xsZXI+JiYsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYsIFVuaXF1ZVJl
ZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uZmln
dXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiwgUmVmPFNv
Y2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYsIFJlZjxDYWNo
ZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+JiYsIFJlZjxCYWNr
Rm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVmPFByb2dyZXNzVHJh
Y2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmLCBVbmlxdWVSZWY8
U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92
aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVmPFdlYkxvY2tSZWdp
c3RyeT4mJiwgUmVmPFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVBy
b3ZpZGVyPiYmLCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgflBhZ2VDb25maWd1cmF0aW9uKCk7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24oUGFn
ZUNvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTEyOCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgUmVm
PFVzZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZp
c2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVmPEJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeT4gYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAgIFJlZjxXZWJMb2NrUmVn
aXN0cnk+IHdlYkxvY2tSZWdpc3RyeTsKICAgICAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKaW5kZXggODJhYTVmMjJkZDcyMGMxOTE4NDZhOTQyYTM5MTRjYmZlYWM4NmM3ZS4u
ZThlYWQ2MDI3M2I3NTE4OTQwMTY2MmQ0ZGZhMGIzMTczYjIyYzhiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMu
dHh0CkBAIC0yMjksNiArMjI5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAg
IFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKICAgICBVSVByb2Nlc3MvV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94
eQorICAgIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5CiAgICAgVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sCkBAIC0zMDcsNiArMzA4LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdFU19J
Tl9GSUxFUwogCiAgICAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRy
b2xsZXIKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9u
Q29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKaW5kZXggYTc4OTdiOTYxYTM5ZGFmOTI3YzU0ZDEyZWZhM2M4OTcxNDk3YjAyZi4uODU5
MmQ5OWQyZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVlZWY1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTUzLDYgKzE1Myw3IEBAICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9j
ZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
V2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTIxNyw2ICsyMTgsNyBAQCAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CmluZGV4IDkzYTYxNDZkNmIxMzljYjhhMTZhMTcxYmI3N2Q0NGJkM2I1OGI2NWIu
LmE1OWU2MjNiMDllNmE5N2VmZmVkNGY5YzUyZjU3MzYzNjQ1ZWFjNWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMzg3LDYgKzM4Nyw5
IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdl
Ykluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
V2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
V2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VSZWNlaXZlci5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzUmVwbGllcy5o
CkBAIC01MjYsNiArNTI5LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdp
c3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlcy5oCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJMb2NrUmVnaXN0cnlQcm94
eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlcy5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVn
aXN0ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDQ1
NzQzODY1YTRhYzgzMmQzZTVkYmQ0YWZkNDM4YmQ3NTMyY2Q5MjMuLjE5MzM4ODQ5NjFiNGJjMzA0
ZjA4OWIwYjU0ZTE0ODkxYjVjMzQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTE2OCw2ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlVSVByb2Nlc3MvaW9zL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogCVVJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Q
cm94eSBcCiAJVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5IFwKKwlVSVByb2Nl
c3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9QbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IFwK
QEAgLTIxOCw2ICsyMTksNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViTUROU1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ1Jlc29s
dmVyIFwKKwlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeSBc
CiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkg
XAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNvZ25pdGlv
bkNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggNzZjMmRlYmFmZDkxZDE2ZjhkNzcwODkzZjQ4ODk2OTAwZGZlMjZkMi4uMmM4MzlhOWU5YmNk
OGU5ZjEyMWRmODkzMGZmNDJmYzYwY2IyN2QwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0zMTIsNiArMzEyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90
X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OlNvdXJjZUJ1ZmZlckFw
cGVuZE1vZGUnLAogICAgICAgICAnV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9u
Q2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0SWRl
bnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6QWN0aXZp
dHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6QXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDNlNDNkM2Ux
M2E3Njc4ZjgxNGNiNmM0NzQxMjcwOWEzMzNkNzk1NGIuLmZlNjA0MTJjMmExNTJhYjVjNDJlZmFm
YzBiYjhiYTI0YTQ3ODlmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDM1LDYgKzQzNSw3IEBAIFVJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nl
c3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKK1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQ
cm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwCiBVSVByb2Nlc3MvV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJQYWdlRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC03ODEsNiArNzgyLDcgQEAgV2ViUHJvY2Vzcy9Vc2Vy
Q29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKIFdlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKIAorV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1NoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApAQCAtODQ3LDggKzg0OSw2
IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFBsYXRmb3JtWFJTeXN0ZW1N
ZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwCi1XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCi0KIFJl
bW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVCaW5kR3JvdXBNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVjZWl2ZXIuY3BwCkBAIC04
NzEsMyArODcxLDYgQEAgUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVNo
YWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKK1JlbW90ZVdlYkxv
Y2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY1NTViZjdjYTk1MTdjZDIzMTY5ZDcxMTExYWJlZDFlNjdhOTM0YmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0
cnlQcm94eS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eS5oIgorCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkxvY2tJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrUmVn
aXN0cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNkZWZpbmUgTUVTU0FHRV9DSEVDSyhh
c3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1fcHJvY2Vzcy5jb25uZWN0
aW9uKCkpCisKK1dlYkxvY2tSZWdpc3RyeVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eShXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKKyAgICBt
X3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1dlYkxvY2tSZWdpc3RyeVBy
b3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkoKQoreworICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpyZXF1ZXN0TG9jayhX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCit7CisgICAgTUVTU0FHRV9DSEVD
Syhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJv
Y2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGllbnRJRC5wcm9jZXNzSWRl
bnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisKKyAgICBt
X3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnJlcXVlc3RMb2Nr
KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBXVEZNb3Zl
KG5hbWUpLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBbd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXShib29sIHN1Y2Nlc3MpIHsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPm1fcHJvY2Vzcy5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkRpZENvbXBsZXRlTG9ja1JlcXVlc3Qo
bG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBzdWNjZXNzKSwgMCk7CisgICAgfSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRF0geworICAgICAg
ICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcm9jZXNzLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkU3RlYWxMb2NrKGxvY2tJZGVudGlmaWVy
LCBjbGllbnRJRCksIDApOworICAgIH0pOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5
OjpyZWxlYXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNv
cmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSkKK3sKKyAgICBN
RVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9j
ZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElE
LnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigp
KTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLnJl
bGVhc2VMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElE
LCBXVEZNb3ZlKG5hbWUpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6YWJvcnRM
b2NrUmVxdWVzdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6
OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBNRVNTQUdFX0NI
RUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQ
cm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJ
ZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBt
X3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmFib3J0TG9ja1Jl
cXVlc3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdU
Rk1vdmUobmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJM
b2NrUmVnaXN0cnlQcm94eTo6c25hcHNob3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wcm9jZXNzLndlYnNpdGVE
YXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5zbmFwc2hvdChXVEZNb3ZlKGNsaWVudE9yaWdp
biksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0
cnlQcm94eTo6Y2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50
T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0g
bV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0
ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmNsaWVudElzR29pbmdBd2F5KFdURk1vdmUo
Y2xpZW50T3JpZ2luKSwgY2xpZW50SUQpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5
Ojpwcm9jZXNzRGlkRXhpdCgpCit7CisgICAgbV9wcm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53
ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRzQXJlR29pbmdBd2F5KG1fcHJvY2Vzcy5jb3JlUHJvY2Vz
c0lkZW50aWZpZXIoKSk7Cit9CisKKyN1bmRlZiBNRVNTQUdFX0NIRUNLCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1Jl
Z2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVBy
b3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGJhMzFhOWI5MmI3MTYxYzdjYWQ2MDJiZmJhMWI4MzY5OTczMzI3
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdp
c3RyeVByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja0lk
ZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tNb2RlLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK3N0cnVjdCBDbGllbnRPcmlnaW47CitzdHJ1Y3QgV2ViTG9ja01hbmFnZXJT
bmFwc2hvdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQcm94
eTsKKworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlByb2Nlc3NQcm94eSYpOworICAgIH5X
ZWJMb2NrUmVnaXN0cnlQcm94eSgpOworCisgICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpOworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
ZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9p
ZCByZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJp
bmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWls
YWJsZSk7CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lKTsKKyAgICB2b2lkIGFib3J0TG9ja1JlcXVlc3QoV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzbmFwc2hvdChXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJMb2NrTWFu
YWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cik7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2Nr
UmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiYWJjMjU0YzQxZTBlMDE5
MTU2Y2E4MTJjNDZmZTc5MDMwNTE3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5
IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+
IFdlYkxvY2tSZWdpc3RyeVByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIFJlcXVlc3RMb2NrKHN0
cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2Nr
SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUsIGVudW06Ym9vbCBXZWJDb3JlOjpXZWJMb2Nr
TW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQorICAgIFJlbGVhc2VMb2Nr
KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpCisgICAgQWJvcnRMb2NrUmVxdWVzdChz
dHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9j
a0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKSAtPiAoYm9vbCB3YXNBYm9ydGVkKSBBc3lu
YworICAgIFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2lu
KSAtPiAoc3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3Qgc25hcHNob3QpIEFz
eW5jCisgICAgQ2xpZW50SXNHb2luZ0F3YXkoc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBj
bGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNs
aWVudElkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
aW5kZXggMDI4YzhkOGVmMDcxNGM4MmViOTA0Yzk0ZTdlMjk3MWQ4NWJhZWIxMy4uNjY1NmUyZGRk
ZDNiNDJjYzcwN2U4YTI4YjVkYTlhZGE3MDgwOTlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2Vi
QmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIK
ICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVn
aXN0cnlQcm94eS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCIKICNpbmNs
dWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3Jv
dXAuaCIKQEAgLTI0MCw2ICsyNDEsNyBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94
eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgLCBt
X2NhcHRpdmVQb3J0YWxNb2RlKGNhcHRpdmVQb3J0YWxNb2RlKQogICAgICwgbV9jcm9zc09yaWdp
bk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9zaHV0ZG93blByZXZlbnRpbmdTY29wZUNv
dW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVudCkgeyBpZiAoZXZlbnQgPT0gUmVmQ291
bnRlckV2ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERvd24oKTsgfSkKKyAgICAsIG1fd2ViTG9j
a1JlZ2lzdHJ5KHdlYnNpdGVEYXRhU3RvcmUgPyBtYWtlVW5pcXVlPFdlYkxvY2tSZWdpc3RyeVBy
b3h5PigqdGhpcykgOiBudWxscHRyKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVh
ZE9yQ2hlY2tEaXNhYmxlZCgpKTsKICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coUHJv
Y2VzcywgImNvbnN0cnVjdG9yOiIpOwpAQCAtMzQ1LDYgKzM0NywxMCBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c2V0V2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUp
CiAjZW5kaWYKICAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCk7CiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMocHJv
Y2Vzc1Bvb2woKS53ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycygqdGhpcywgZGF0YVN0b3Jl
KSksIDApOworCisgICAgLy8gRGVsYXkgY29uc3RydWN0aW9uIG9mIHRoZSBXZWJMb2NrUmVnaXN0
cnlQcm94eSB1bnRpbCB0aGUgV2ViUHJvY2Vzc1Byb3h5IGhhcyBhIGRhdGEgc3RvcmUgc2luY2Ug
dGhlIGRhdGEgc3RvcmUgaG9sZHMgdGhlCisgICAgLy8gTG9jYWxXZWJMb2NrUmVnaXN0cnkuCisg
ICAgbV93ZWJMb2NrUmVnaXN0cnkgPSBtYWtlVW5pcXVlPFdlYkxvY2tSZWdpc3RyeVByb3h5Pigq
dGhpcyk7CiB9CiAKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5Ojppc0R1bW15UHJvY2Vzc1Byb3h5KCkg
Y29uc3QKQEAgLTUyOCw2ICs1MzQsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2h1dERvd24o
KQogICAgIG1fdXNlckluaXRpYXRlZEFjdGlvbk1hcC5jbGVhcigpOwogICAgIG1fc2xlZXBEaXNh
YmxlcnMuY2xlYXIoKTsKIAorICAgIGlmIChtX3dlYkxvY2tSZWdpc3RyeSkKKyAgICAgICAgbV93
ZWJMb2NrUmVnaXN0cnktPnByb2Nlc3NEaWRFeGl0KCk7CisKICNpZiBFTkFCTEUoUk9VVElOR19B
UkJJVFJBVElPTikKICAgICBtX3JvdXRpbmdBcmJpdHJhdG9yLT5wcm9jZXNzRGlkVGVybWluYXRl
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggZGE2ZGM2OGVlYmNlY2I0MjM2MjdlYzk4OWQ2YmNhYTgwMTU3NDk3My4uZjc0NDgwZmZhN2Nj
OWYxODA2NTIxZTViYjA1NTFmNDQ2NmJlNTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDYgKzkzLDcgQEAgY2xhc3MgVmlzaXRlZExpbmtTdG9y
ZTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xhc3MgV2ViTG9ja1JlZ2lz
dHJ5UHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFz
cyBXZWJQcm9jZXNzUG9vbDsKQEAgLTY3NCw2ICs2NzUsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICNlbmRpZgorICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJMb2NrUmVnaXN0cnlQcm94eT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZmMxZDlhZTk4OTNkZDkxMDE2NzNmN2M4
ZGFlNmYzYjliYThlMzljNy4uOTA5NzkzZTM3NTY4YzA0MmIxMDAyYTI2YWEwMjc0Nzg0YTkxZTRj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0
b3IuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYv
Q3Jvc3NUaHJlYWRDb3BpZXIuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCBXZWJzaXRlRGF0YVN0b3Jl
OjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbj4mJiBj
b25maWd1cgogI2lmIEhBVkUoQVBQX1NTTykKICAgICAsIG1fc29BdXRob3JpemF0aW9uQ29vcmRp
bmF0b3IobWFrZVVuaXF1ZVJlZjxTT0F1dGhvcml6YXRpb25Db29yZGluYXRvcj4oKSkKICNlbmRp
ZgorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6
OmNyZWF0ZSgpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxsUHJpdmlsZWdl
cygpKTsKICAgICByZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA2
MTk2MjgwZjc2ZGExMjAyOThlMmI3YWIxNjQwNWQyZjBiYTI4OTIzLi4xZGUyNWE2NjA1N2YyZDY2
YzYyOTllNWViYmI4MTQ2YmVlOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC03NSw2ICs3NSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKIGNsYXNzIFJlZ2lz
dHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTsKIAogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CiB9
CkBAIC0zMTcsNiArMzE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50KFVuaXF1ZVJl
ZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYmIGNsaWVudCkgeyBtX2NsaWVudCA9IFdURk1vdmUo
Y2xpZW50KTsgfQogCiAgICAgQVBJOjpIVFRQQ29va2llU3RvcmUmIGNvb2tpZVN0b3JlKCk7Cisg
ICAgV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tSZWdpc3RyeSgpIHsgcmV0
dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9CiAKICAgICB2b2lkIHJlbmFtZU9yaWdpbklu
V2Vic2l0ZURhdGEoVVJMJiYsIFVSTCYmLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApAQCAtNDcxLDYgKzQ3Myw3IEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAgICAgbXV0YWJs
ZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU+IG1f
dGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsgLy8gTGF6aWx5IGNvbXB1dGVkLgogI2VuZGlm
CisgICAgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3Ry
eTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGIxMjA0ZTNjNDNiYjg2YWVkNDZiM2M1MTEwMzUzOGVhNTcyYjhkODAuLmE0
NTExNWY0ODlhYTJjY2JjOWJlYzRjZTE3ZGY2MDdiZTI4NWI1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTA4LDYgKzkwOCw3IEBA
CiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0
N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzRkQ0ODIxRUI5
NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODExRUI5NEVBRDAwQTI5ODJD
IC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwogCQk0NjVGNEUwNjIzMEIyRTk1
MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUY0RTA1MjMwQjJFN0MwMDNDRURCNyAv
KiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovOyB9OworCQk0NjVGQTcyNjI3NTdEOTNE
MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUZBNzIzMjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJM
b2NrUmVnaXN0cnlQcm94eS5oICovOyB9OwogCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyog
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovOyB9OwogCQk0NjcxRkYxRjIzMjE3RUZGMDAxQjY0
QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFGRjFEMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNv
dXJjZUxvYWRPYnNlcnZlci5oICovOyB9OwogCQk0NjdFNDNFODIyNDNGRjdEMDBCMTM5MjQgLyog
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2N0U0M0U3MjI0M0ZGNkQwMEIxMzkyNCAvKiBXZWJQcm9j
ZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwpAQCAtNDE3Niw2ICs0MTc3LDkgQEAKIAkJ
NDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSWRlbnRpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSW1wbElkZW50
aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwNTIzMEIyRTdDMDAzQ0VEQjcgLyogU3Rv
cmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFj
ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjMyNzU3
RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkxvY2tSZWdpc3RyeVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUZB
NzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTQxODYsNiArNDE5MCw4IEBACiAJCTQ2ODA5QTdCMjNEOTIyNTMwMEMyOTdEMCAvKiBXZWJD
b29raWVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b29raWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2ODM1NjlBMjFF
ODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjgzNTY5QjIxRTgxQ0M3MDA2RTI3QTMgLyogUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvdmlzaW9u
YWxQYWdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0Njg5QjkwRjI3
NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
Njg5QjkxMDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2OURFODAyMjczRUNDNUQwMDkzMDI3NiAvKiBQcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb2Nl
c3NMYXVuY2hlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYw
NjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tncm91bmRQcm9j
ZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja2dyb3VuZFBy
b2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MjA0LDYgKzQyMTAsOCBAQAogCQk0NkNFM0IxMDIzRDhDODNEMDAxNkE5NkEgLyogV2ViQmFj
a0ZvcndhcmRMaXN0Q291bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkJhY2tGb3J3YXJkTGlzdENvdW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REYwNjNBMUYz
OTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTk3NjBBMjc1N0Y2QzkwMEFDREQzNyAvKiBX
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0REMzcgLyogUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZVdl
YkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJCcm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0ODI2
OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0QTI2OUUwNTE3MDBERDQ4QUIgLyog
TmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1MzgsNiArMTA1NDYsOSBAQAogCQkJCUNE
NjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQkyRDI4RjNERjE4ODVDQ0I0
MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEwMDMzN0JBQiAvKiBtYWMg
Ki8sCisJCQkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxvY2tSZWdpc3Ry
eS5jcHAgKi8sCisJCQkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90ZVdlYkxvY2tS
ZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBSZW1vdGVXZWJM
b2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE3Mjg0NDQxOTU5RUQxMDAwMDdCQ0U1
IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFBNzI4NDQ1MTk1OUVEMTAw
MDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJCQkJRjQzQTlDREUyNUQ3
MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAgKi8sCkBAIC0xMDU0
NSw2ICsxMDU1Niw3IEBACiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlFMDhEIC8qIFdlYkFsdGVy
bmF0aXZlVGV4dENsaWVudC5oICovLAogCQkJCTQ2RUUyODQ3MjY5RTA0OUIwMERENDhBQiAvKiBX
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovLAogCQkJCTQ2RUUyODQ4MjY5RTA0OUIw
MERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLywKKwkJCQk0NkU5NzYw
QTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0RCAvKiBXZWJDYXB0aW9uUHJlZmVy
ZW5jZXNEZWxlZ2F0ZS5jcHAgKi8sCiAJCQkJRTNBODZGQkIyNjk1OEQ4MzAwNTkyNjREIC8qIFdl
YkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQkMxMTFBNTMxMTJGNEZCQjAw
MzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCkBAIC0xMDgyOCw2ICsxMDg0MCw5IEBA
CiAJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIu
Y3BwICovLAogCQkJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvblBy
b3ZpZGVyLmggKi8sCiAJCQkJNTFDOEUxOUIxRjIxNjE3MjAwQkY3MzFCIC8qIFdlYkljb25EYXRh
YmFzZS5oICovLAorCQkJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0
cnlQcm94eS5jcHAgKi8sCisJCQkJNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tS
ZWdpc3RyeVByb3h5LmggKi8sCisJCQkJNDY1RkE3MjQyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxv
Y2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTJEM0VGNDQwMTkxNzY0NjMwMDAz
NDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovLAogCQkJCTJEM0VGNDQxMTkx
NzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCAqLywKIAkJCQk3Q0ND
QzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRlLmNwcCAqLywKQEAgLTEy
NDQ5LDggKzEyNDY0LDggQEAKIAkJCQk1MTYwRTk1RTI3NEMyQTAzMDA1NjczODggLyogTW9ja0Fw
cEJ1bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYwRTk1OTI3NEMwRDg5MDA1
NjczODggLyogUHVzaEFwcEJ1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGN0JCN0IyNzQ0
QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5RjI3MjMzOTNBMDBGN0Y4RUMg
LyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QjVGMkYyNzU3MzgyQjAw
MkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0xMzMzNCw2ICsxMzM0OSw3IEBACiAJCQkJQkNCNjM0NzgxMTZCRjEwNjAwNjAz
MjE1IC8qIFdlYktpdDJfQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QkE1MDUxNjk3QzQ1MzAw
RTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTYyODBD
NzE5MTk5NTBDMDA2QUQ5RjkgLyogV2ViS2l0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QjcyNUM4MUQzNDAwREM2Mzg2
IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMy
NjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMzM5OCw2ICsxMzQxNCw3IEBACiAJCQkJMUExRTA5MzQxODg2MUQzODAwRDJEQzQ5IC8qIFdl
YlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OUQxMkE4
ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1v
bkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5QTI3
MjFGMEE5MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVz
b3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNTQ4LDcgKzEz
NTY1LDYgQEAKIAkJCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Qzc5NUQ3MTIyOUYzNzU3MDAzRkYxQzQg
LyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFBNTU1RjYxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2ViUHVzaERhZW1vbkNvbm5l
Y3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTYwMTEyOEM2RDky
MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVMaXN0ZW5lci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNDOTM4RTExMTgwREU0NDAwODVFNUZFIC8qIFdLQ29udGV4dFByaXZh
dGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IGY4NjI5YmUwMDY1MGIzOTJiOTBjNGZhMzkxOTFmYzk0ODQwZmFiMDAuLjBiODRiYmQzNjhm
ZWM5ZDRkYTk2N2JmZTMxNDA2MGM4MDIzYmI0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlci5oIgorI2luY2x1ZGUg
IlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEu
aCIKICNpbmNsdWRlICJXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCIKQEAgLTE0OCw2ICsx
NDksNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2Vydmlj
ZVdvcmtlcihTZXJ2aWNlV29ya2VyQ29udGV4dERhdAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRh
dGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZShtX3BhZ2VH
cm91cElEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zb2NrZXRQcm92aWRlciA9IFdlYlNvY2tl
dFByb3ZpZGVyOjpjcmVhdGUobV93ZWJQYWdlUHJveHlJRCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24uYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ud2ViTG9ja1Jl
Z2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1JlZ2lzdHJ5KCk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1fdXNlckNvbnRlbnRDb250
cm9sbGVyOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxpYldl
YlJUQ1Byb3ZpZGVyID0gbWFrZVVuaXF1ZVJlZjxTZXJ2aWNlV29ya2VyTGliV2ViUlRDUHJvdmlk
ZXI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYWYw
OWVlNmIzNzU5Y2VkNDI3MjdmMmZmZjBlNWIzZDkzOThlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5LmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKKworI2luY2x1ZGUgIlJlbW90
ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJv
eHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0cnVjdCBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9pZCgpPiBsb2NrU3RvbGVu
SGFuZGxlcjsKK307CisKK3N0cnVjdCBMb2NrUmVxdWVzdCA6IExvY2tJbmZvIHsKKyAgICBGdW5j
dGlvbjx2b2lkKGJvb2wpPiBsb2NrR3JhbnRlZEhhbmRsZXI7Cit9OworCitzdHJ1Y3QgUmVtb3Rl
V2ViTG9ja1JlZ2lzdHJ5OjpMb2Nrc1NuYXBzaG90IHsKKyAgICBIYXNoTWFwPFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdD4gcGVuZGluZ1JlcXVlc3RzOworICAgIEhhc2hN
YXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIExvY2tJbmZvPiBoZWxkTG9ja3M7CisKKyAg
ICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgp
ICYmIGhlbGRMb2Nrcy5pc0VtcHR5KCk7IH0KK307CisKK1JlbW90ZVdlYkxvY2tSZWdpc3RyeTo6
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmIHByb2Nlc3MpCit7CisgICAgcHJvY2Vz
cy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZVdlYkxvY2tSZWdpc3RyeTo6
flJlbW90ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVn
aXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZB
dmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9u
PHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKK3sKKyAgICBMb2NrUmVxdWVzdCByZXF1ZXN0
IHsgeyBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVy
KSB9OworICAgIGF1dG8mIHNuYXBzaG90ID0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuc3Vy
ZShjbGllbnRJRCwgW10geyByZXR1cm4gTG9ja3NTbmFwc2hvdCB7IH07IH0pLml0ZXJhdG9yLT52
YWx1ZTsKKyAgICBzbmFwc2hvdC5wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVudGlmaWVyLCBX
VEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQoTWVz
c2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZXF1ZXN0TG9jayhjbGllbnRPcmlnaW4sIGxv
Y2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgbG9ja01vZGUsIHN0ZWFsLCBpZkF2YWlsYWJs
ZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2soY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIGF1dG8gaXQg
PSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ICE9
IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkgeworICAgICAgICBpdC0+dmFsdWUuaGVs
ZExvY2tzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgIGlmIChpdC0+dmFsdWUuaXNF
bXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShpdCk7
CisgICAgfQorCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2Vi
TG9ja1JlZ2lzdHJ5UHJveHk6OlJlbGVhc2VMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZp
ZXIsIGNsaWVudElELCBuYW1lKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYg
bmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpBYm9ydExvY2tSZXF1ZXN0KGNsaWVudE9yaWdpbiwg
bG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBkaWRBYm9ydCkgbXV0YWJsZSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcyAmJiBkaWRBYm9ydCkgeworICAgICAgICAgICAgYXV0byBpdCA9IHdlYWtU
aGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAgICAgICAg
ICBpZiAoaXQgIT0gd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkgewor
ICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUo
aXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGRpZEFib3J0KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OnNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6U25hcHNob3QoY2xp
ZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDApOworfQorCit2b2lkIFJl
bW90ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1v
dmUoY2xpZW50SUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlbmQoTWVzc2FnZXM6
OldlYkxvY2tSZWdpc3RyeVByb3h5OjpDbGllbnRJc0dvaW5nQXdheShjbGllbnRPcmlnaW4sIGNs
aWVudElEKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpkaWRDb21wbGV0
ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgYm9vbCBz
dWNjZXNzKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChj
bGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IGl0LT52YWx1ZS5w
ZW5kaW5nUmVxdWVzdHMudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAgaWYgKCFwZW5kaW5nUmVx
dWVzdC5sb2NrR3JhbnRlZEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbG9j
a0dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShwZW5kaW5nUmVxdWVzdC5sb2NrR3JhbnRlZEhhbmRs
ZXIpOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBpdC0+dmFsdWUuaGVsZExvY2tzLmFkZChs
b2NrSWRlbnRpZmllciwgV1RGTW92ZShwZW5kaW5nUmVxdWVzdCkpOworICAgIGVsc2UgeworICAg
ICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fbG9ja3NTbmFwc2hv
dFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIGxvY2tHcmFudGVkSGFuZGxlcihz
dWNjZXNzKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZFN0ZWFsTG9jayhX
ZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7CisgICAgYXV0byBpdCA9IG1f
bG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAoaXQgPT0gbV9s
b2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
IGxvY2tJbmZvID0gaXQtPnZhbHVlLmhlbGRMb2Nrcy50YWtlKGxvY2tJZGVudGlmaWVyKTsKKyAg
ICBpZiAoIWxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LnJlbW92ZShpdCk7CisKKyAgICBsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxlcigpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMTViMWFhZmM1NGM4YTIxNTdjNTJmZjBjZGE5NjgzNDM2Y2IxYWFkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UHJvY2Vzc1F1YWxpZmllZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBjcmVhdGUoV2Vi
UHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVXZWJMb2NrUmVn
aXN0cnkocHJvY2VzcykpOyB9CisgICAgflJlbW90ZVdlYkxvY2tSZWdpc3RyeSgpOworCisgICAg
Ly8gV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LgorICAgIHZvaWQgcmVxdWVzdExvY2soY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9j
a1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIHZvaWQgcmVsZWFzZUxvY2soY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpIGZpbmFs
OworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
LCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBzbmFwc2hvdChjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2Vy
U25hcHNob3QmJik+JiYpIGZpbmFsOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisgICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5h
bDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBSZW1vdGVXZWJMb2NrUmVnaXN0cnkoV2ViUHJv
Y2VzcyYpOworCisgICAgLy8gSVBDIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCBkaWRDb21w
bGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBzdWNjZXNzKTsKKyAgICB2b2lkIGRp
ZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworCisgICAgc3RydWN0IExvY2tzU25hcHNob3Q7Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgTG9j
a3NTbmFwc2hvdD4gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNmE3YWVhMmJkNGJkNzcyYTJkYWRlZDRjNmY3ZWMyNzFmZjRhZWQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworbWVzc2FnZXMgLT4gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IHsKKyAgICBEaWRDb21w
bGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgYm9v
bCBzdWNjZXNzKTsKKyAgICBEaWRTdGVhbExvY2soV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIg
bG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
IGNsaWVudElEKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggYzkxMzVhMDBhMjExYzEyMjA0YWI5NTI1ODljN2FiNDU5MmEyNGQ2NC4uYjIw
NTQzNWFmM2I5NmU3MjY4NjAwNTA5MzNlODI0OWUxZmE1YjA4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNs
dWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVXZWJJ
bnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZXNzaW9uU3Rh
dGUuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiU2hh
cmVhYmxlQml0bWFwLmgiCkBAIC01NzMsNiArNTc0LDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KG1f
aWRlbnRpZmllciksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVy
PigqdGhpcyksCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeSgpLAorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2NrUmVn
aXN0cnkoKSwKICAgICAgICAgV2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgqdGhpcyks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3RvcmFnZVByb3ZpZGVyPigpLAogICAgICAgICBt
YWtlVW5pcXVlUmVmPFdlYk1vZGVsUGxheWVyUHJvdmlkZXI+KCp0aGlzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk0MzA0YjcxMWZkNGZhZWEzYjIwZTczOWM5
OTZhNDdiOGM3MmFkMzQuLmY2ZTg3NjI0NmJmZGQ2YWFkMDA3OWQwZWVjYTNiZjczZGJlNzBmYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQ5LDYgKzQ5LDcg
QEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbW90
ZUNvbW1hbmRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCkBAIC0y
NzksNiArMjgwLDcgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLCBtX3dlYkxvYWRl
clN0cmF0ZWd5KCpuZXcgV2ViTG9hZGVyU3RyYXRlZ3kpCiAgICAgLCBtX2NhY2hlU3RvcmFnZVBy
b3ZpZGVyKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSkKICAgICAsIG1fYnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5KFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Y3JlYXRlKCkp
CisgICAgLCBtX3dlYkxvY2tSZWdpc3RyeShSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgq
dGhpcykpCiAgICAgLCBtX2Nvb2tpZUphcihXZWJDb29raWVKYXI6OmNyZWF0ZSgpKQogICAgICwg
bV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZShSZXBvcnRpbmdFbmRwb2ludHNDYWNoZTo6Y3JlYXRl
KCkpCiAgICAgLCBtX2Ruc1ByZWZldGNoSHlzdGVyZXJpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lz
U3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVk
KSBtX2Ruc1ByZWZldGNoZWRIb3N0cy5jbGVhcigpOyB9KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKaW5kZXggOWFkZTNjMDA1YWYyZTIyNzFhZmNhYmZmZDY4MTUyMzY3NmVmYjcw
YS4uMTRjZGY3NTE1YzYyYzQ1ZGFiOWY5ZGI4MTZmZGNiMmQ4ODVjZjMzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMzIsNiArMTMyLDcgQEAgY2xhc3MgUHJvY2Vz
c0Fzc2VydGlvbjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVMZWdhY3lD
RE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTsK
K2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VySW5pdGlh
bGl6YXRpb25EYXRhOwogY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiBjbGFzcyBVc2VyRGF0YTsKQEAg
LTM0MCw2ICszNDEsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlciYg
Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyLmdl
dCgpOyB9CiAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNhc3RDaGFubmVs
UmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5nZXQoKTsgfQor
ICAgIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkgeyByZXR1cm4gbV93
ZWJMb2NrUmVnaXN0cnkuZ2V0KCk7IH0KICAgICBXZWJDb29raWVKYXImIGNvb2tpZUphcigpIHsg
cmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAgICAgV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIm
IHdlYlNvY2tldENoYW5uZWxNYW5hZ2VyKCkgeyByZXR1cm4gbV93ZWJTb2NrZXRDaGFubmVsTWFu
YWdlcjsgfQogICAgIFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlJiByZXBvcnRpbmdF
bmRwb2ludHNDYWNoZSgpIHsgcmV0dXJuIG1fcmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUuZ2V0KCk7
IH0KQEAgLTY3Niw2ICs2NzgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPFdlYkNhY2hlU3RvcmFn
ZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJlZjxXZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAgIFJlZjxSZW1v
dGVXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogICAgIFJlZjxXZWJDb29raWVK
YXI+IG1fY29va2llSmFyOwogICAgIFJlZjxXZWJDb3JlOjpSZXBvcnRpbmdFbmRwb2ludHNDYWNo
ZT4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZTsKICAgICBXZWJTb2NrZXRDaGFubmVsTWFuYWdl
ciBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IDBjNzQ0ZGRjZWIzMzI2ZDA2NzE0N2EwNmViOTEyMWZiMTBl
NTdmNDUuLjU2NjQyYzIyMmQ2YmM1NDNhZjllNzU5YjYzOTMyYWE2ZWQ4Mzg2ODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIzMSw2ICsyMzEsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVmlldy5o
PgorI2ltcG9ydCA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
aWRnZXQuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET00uaD4KQEAgLTE0MzgsNiArMTQzOSwx
OCBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3Nh
cnkoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBSZWY8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0
cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KGJvb2wgaXNQcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2Fs
V2ViTG9ja1JlZ2lzdHJ5Pj4gZGVmYXVsdFJlZ2lzdHJ5OworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gcHJpdmF0ZVJlZ2lz
dHJ5OworICAgIGF1dG8mIGV4aXN0aW5nUmVnaXN0cnkgPSBpc1ByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgPyBwcml2YXRlUmVnaXN0cnkgOiBkZWZhdWx0UmVnaXN0cnk7CisgICAgaWYgKGV4aXN0aW5n
UmVnaXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsK
KyAgICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNyZWF0
ZSgpOworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAgICByZXR1cm4g
cmVnaXN0cnk7Cit9CisKIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFt
ZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmluZyAqKWdyb3VwTmFtZQog
ewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdvKCk7CkBAIC0xNTQzLDYg
KzE1NTYsNyBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6KE5T
U3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIFdl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tzZWxmIHByZWZlcmVuY2Vz
XSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCisgICAgICAgIGdldE9yQ3JlYXRlV2ViTG9ja1Jl
Z2lzdHJ5KFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF0pLAogICAg
ICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRlcj4oKSwKICAgICAg
ICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJvdmlkZXI+KCkKQEAg
LTE4MjQsNiArMTgzOCw3IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6
KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVmCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAg
ICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAg
ICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShbW3NlbGYgcHJl
ZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKKyAgICAgICAgZ2V0T3JDcmVhdGVX
ZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVk
XSksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgp
LAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3RvcmFnZVByb3ZpZGVyPigp
LAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRl
cj4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBmNDYzMDc5ZDk4MWJmZTJh
NThjMmEyNGIyZmY1MTA5YzI0MmQ2ZjA4Li40ZmZjZGU5YzUzMjcwMmQ5MzRkM2M3YzEzNTUzN2Nl
YjI2MTVmMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTczLDYgKzE3
Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVU
ZXh0UmVuZGVyZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNsdWRlIDxjb21kZWYuaD4KQEAgLTI5OTIsNiArMjk5
MywxNiBAQCBib29sIFdlYlZpZXc6OnNob3VsZEluaXRpYWxpemVUcmFja1BvaW50SGFjaygpCiAg
ICAgcmV0dXJuIHNob3VsZENyZWF0ZVNjcm9sbGJhcnM7CiB9CiAKK3N0YXRpYyBSZWY8V2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tS
ZWdpc3RyeT4+IGV4aXN0aW5nUmVnaXN0cnk7CisgICAgaWYgKGV4aXN0aW5nUmVnaXN0cnkuZ2V0
KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQoKTsKKyAgICBhdXRvIHJl
Z2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpOworICAgIGV4
aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAgICByZXR1cm4gcmVnaXN0cnk7Cit9
CisKIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZyYW1lLCBfSW5fIEJTVFIg
ZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOYW1lKQogewogICAgIEhSRVNVTFQgaHIgPSBTX09L
OwpAQCAtMzA2NSw2ICszMDc2LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKFJF
Q1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBncm91cE4KICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKGZhbHNlKSwKKyAgICAgICAgZ2V0T3JD
cmVhdGVXZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViQ29yZTo6RHVtbXlQZXJtaXNzaW9u
Q29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVt
bXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVt
bXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggOTQ1ZWFlYjgyMzMxOTg4NzNjMjY0MDQxNWE3ODA2MTJhNmJk
ODc0OS4uNzE1NDAxODdiMTM2OGMzZjM1MTVlMGM5YzI4NDM2ODFkZjg5N2MyNCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBB
UEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dlYkxvY2tzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDIxLTEyLTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLiBbR1RLXSBVc2UgbnVsbHB0ciBpbnN0ZWFkIG9mIDAgaW4gSlNT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1NvdXJjZXNDb2NvYS50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggMGZhNzNhZTYzZDE1YTExNmYxOGI0OTgxZTRlNzA4OGYwZTQxODRiMi4uNDlmYjky
NjZkYjQzNjM2MWNmNDMzYmI0MzA5MjU1N2YxN2RlY2NjNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291
cmNlc0NvY29hLnR4dApAQCAtMjkzLDYgKzI5Myw3IEBAIFRlc3RzL1dlYktpdENvY29hL1dLV2Vi
c2l0ZURhdGFzdG9yZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViQ29udGVudFByb2Nlc3NEaWRU
ZXJtaW5hdGUubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYkNyeXB0b01hc3RlcktleS5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvV2ViR0xQb2xpY3kubW0KK1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tz
Lm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0KIFRlc3Rz
L1dlYktpdENvY29hL1dlYlByb2Nlc3NUZXJtaW5hdGUubW0KIFRlc3RzL1dlYktpdENvY29hL1dl
YlB1c2hEYWVtb24ubW0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzgwZjFiZjkwODIyZDhm
ZjA0NjAyYTM2NjcyZjYyYWQ2OGY2MzJmYy4uMjEwMzA3NDI5MWM0MWU3ZTIwNTI3ODExZmE0NTdh
OTU1MTA1YTlkZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5MzMsNiArMTkzMyw3IEBA
CiAJCTQ0Q0RFNEQzMjZFRTZFNDEwMDlGNkFDQiAvKiBUeXBlQ2FzdHNDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFR5cGVDYXN0c0NvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NENGMzFGQjI0OTkzRjY2MDA5Q0I2Q0IgLyogQ29u
dGV4dE1lbnVBY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29udGV4dE1lbnVBY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NEQ1
MDA4RDI2RkU5RUQ2MDAwRUIxMkYgLyogUmV0YWluUHRyQVJDLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmV0YWluUHRyQVJDLm1tOyBwYXRoID0gbnMvUmV0YWlu
UHRyQVJDLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjA2MTU0NTI3NTgyNEI0
MDBBQjYxM0QgLyogV2ViTG9ja3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJMb2Nrcy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDYwQzJGQzgyNzAzOUQ3RDAwNDdFRjEx
IC8qIFNlcnZpY2VXb3JrZXJQYWdlUHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdv
cmtlclBhZ2VQcm90b2NvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjEyQzJC
ODIxMEE2QUJGMDBCNzg4QTYgLyogTG9hZEZpbGVUaGVuUmVsb2FkLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9hZEZpbGVUaGVuUmVsb2FkLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0NjI4QzhFODIzNjdBQkJDMDBCMDczRjAgLyogV0tTZWN1
cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Nl
Y3VyaXR5T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1NzIsNiAr
MzU3Myw3IEBACiAJCQkJODMwRjJFMEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlLm1tICovLAogCQkJCTU3QTc5ODU2MjI0QUIzNEUwMEE3RjZGMSAvKiBX
ZWJDcnlwdG9NYXN0ZXJLZXkubW0gKi8sCiAJCQkJNUM5NzNGNUIxRjU4RUYwQTAwMzU5QzI3IC8q
IFdlYkdMUG9saWN5Lm1tICovLAorCQkJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJM
b2Nrcy5tbSAqLywKIAkJCQk1MTcxNEVCNjFDRjhDN0E0MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tp
bGxJREJDbGVhbnVwLm1tICovLAogCQkJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQ
cm9jZXNzVGVybWluYXRlLm1tICovLAogCQkJCTVDMTU3QTAyMjcxN0MzQjEwMEVENTI4MCAvKiBX
ZWJQdXNoRGFlbW9uLm1tICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV2ViTG9ja3MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZlOTVmZWNkMzIxOTg0MzY3Yzg3ODMx
ZWZhYjk3ZDlkYTc2Nzc1YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KQEAgLTAsMCArMSwyNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiSFRUUFNlcnZlci5oIgorI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKyNpbXBvcnQgIlRlc3RX
S1dlYlZpZXcuaCIKKyNpbXBvcnQgIlV0aWxpdGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgor
I2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCitlbnVtIGNsYXNzIFNob3VsZFVzZVNhbWVQcm9jZXNzIDogYm9vbCB7
IE5vLCBZZXMgfTsKKworc3RhdGljIHZvaWQgcnVuU25hcHNob3RBY3Jvc3NQYWdlc1Rlc3QoU2hv
dWxkVXNlU2FtZVByb2Nlc3Mgc2hvdWxkVXNlU2FtZVByb2Nlc3MpCit7CisgICAgVGVzdFdlYktp
dEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9vIiB9IH0KKyAg
ICB9KTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVy
ZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7Cisg
ICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFi
bGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlvbjEgcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3ZWJWaWV3
MSBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRv
IHBpZDEgPSBbd2ViVmlldzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUo
cGlkMSwgMCk7CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3
MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAg
ZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpA
Im5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQ
cm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQs
IE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBjb25maWd1
cmF0aW9uMiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7
CisgICAgY29uZmlndXJhdGlvbjIuZ2V0KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJhdGlvbjEg
cHJvY2Vzc1Bvb2xdOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBp
biBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChb
ZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAg
ICAgICAgICAgIFtbY29uZmlndXJhdGlvbjIgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKHNob3VsZFVzZVNhbWVQcm9jZXNzID09IFNob3VsZFVzZVNh
bWVQcm9jZXNzOjpZZXMpCisgICAgICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLl9yZWxhdGVkV2Vi
VmlldyA9IHdlYlZpZXcxLmdldCgpOworICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5
bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlk
MiA9IFt3ZWJWaWV3MiBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIGlmIChzaG91bGRVc2VT
YW1lUHJvY2VzcyA9PSBTaG91bGRVc2VTYW1lUHJvY2Vzczo6WWVzKQorICAgICAgICBFWFBFQ1Rf
RVEocGlkMSwgcGlkMik7CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7
CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2Vpdmlu
Z0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsK
KworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucmVx
dWVzdCgnYmFyJywgbG9jayA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIu
cG9zdE1lc3NhZ2UoJ0FDUVVJUkVEJyk7IHJldHVybiBuZXcgUHJvbWlzZSgoKSA9PiB7fSk7IH0p
ICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzEgcGVy
Zm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAg
ICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4K
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZp
Z2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3Ro
ICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJy
b3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAg
ICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1l
c3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUg
MCBwZW5kaW5nIGxvY2tzLCBhbmQgMiBoZWxkIG9uZXMuCisgICAgICAgIEVYUEVDVF9XS19TVFJF
UShtZXNzYWdlLCBAIjAtMiIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBb
d2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhl
bihzbmFwc2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1l
c3NhZ2UoJycgKyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQu
bGVuZ3RoKTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYkxvY2tzLCBTbmFwc2hv
dEFjcm9zc1BhZ2VzSW5EaWZmZXJlbnRQcm9jZXNzZXMpCit7CisgICAgcnVuU25hcHNob3RBY3Jv
c3NQYWdlc1Rlc3QoU2hvdWxkVXNlU2FtZVByb2Nlc3M6Ok5vKTsKK30KKworVEVTVChXZWJMb2Nr
cywgU25hcHNob3RBY3Jvc3NQYWdlc0luU2FtZVByb2Nlc3MpCit7CisgICAgcnVuU25hcHNob3RB
Y3Jvc3NQYWdlc1Rlc3QoU2hvdWxkVXNlU2FtZVByb2Nlc3M6Olllcyk7Cit9CisKK3N0YXRpYyB2
b2lkIHJ1bkxvY2tSZXF1ZXN0V2FpdGluZ09uQW5vdGhlclBhZ2UoU2hvdWxkVXNlU2FtZVByb2Nl
c3Mgc2hvdWxkVXNlU2FtZVByb2Nlc3MpCit7CisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZl
ciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyAiZm9vIiB9IH0KKyAgICB9KTsKKworICAgIGF1
dG8gY29uZmlndXJhdGlvbjEgPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBb
V0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVh
dHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAg
ICAgICAgIFtbY29uZmlndXJhdGlvbjEgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBhdXRvIHdlYlZpZXcxID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uMS5nZXQoKV0pOworICAgIFt3ZWJWaWV3MSBzeW5jaHJvbm91c2x5
TG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmll
dzEgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUocGlkMSwgMCk7CisKKyAg
ICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7Cisg
ICAgfV07CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nr
cy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9
KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9y
KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgY29uZmlndXJh
dGlvbjIuZ2V0KCkucHJvY2Vzc1Bvb2wgPSBbY29uZmlndXJhdGlvbjEgcHJvY2Vzc1Bvb2xdOwor
ICAgIGZvciAoX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNl
cyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNF
cXVhbFRvU3RyaW5nOkAiV2ViTG9ja3NBUElFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29u
ZmlndXJhdGlvbjIgcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOmZlYXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgaWYgKHNob3VsZFVzZVNhbWVQcm9jZXNzID09IFNob3VsZFVzZVNhbWVQcm9jZXNzOjpZZXMp
CisgICAgICAgIGNvbmZpZ3VyYXRpb24yLmdldCgpLl9yZWxhdGVkV2ViVmlldyA9IHdlYlZpZXcx
LmdldCgpOworICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24yLmdldCgpXSk7CisgICAgW3dlYlZpZXcyIHN5bmNocm9ub3VzbHlMb2Fk
UmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMiA9IFt3ZWJWaWV3MiBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIGlmIChzaG91bGRVc2VTYW1lUHJvY2VzcyA9PSBT
aG91bGRVc2VTYW1lUHJvY2Vzczo6WWVzKQorICAgICAgICBFWFBFQ1RfRVEocGlkMSwgcGlkMik7
CisgICAgZWxzZQorICAgICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMik7CisKKyAgICBfX2Jsb2Nr
IGJvb2wgbG9ja0FjcXVpcmVkID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJl
Y2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBsb2NrQWNxdWlyZWQgPSB0
cnVlOworICAgIH1dOworCisgICAgLy8gUmVxdWVzdGluZyB0aGUgc2FtZSBsb2NrIG5hbWUgYXMg
d2ViVmlldzEgc28gdGhlIHJlcXVlc3Qgc2hvdWxkIGdldCBxdWV1ZWQgdW50aWwgd2ViVmlldzEg
cmVsZWFzZXMgaXQuCisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRv
ci5sb2Nrcy5yZXF1ZXN0KCdmb28nLCBsb2NrID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgp
ID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuNSk7CisgICAgRVhQRUNUX0ZBTFNFKGxvY2tBY3F1
aXJlZCk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJl
Y2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICAvLyBUaGVy
ZSBzaG91bGQgYmUgMSBwZW5kaW5nIGxvY2ssIGFuZCAxIGhlbGQgb25lLgorICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEobWVzc2FnZSwgQCIxLTEiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAg
fV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5x
dWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFw
c2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0
LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIFt3ZWJWaWV3MiBw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAg
ICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiQUNRVUlSRUQiKTsKKyAgICAgICAgbG9j
a0FjcXVpcmVkID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIC8vIE5vdyBjbG9zZSB0aGUgd2ViVmll
dzEuIFRoaXMgc2hvdWxkIHJlbGVhc2UgdGhlICdmb28nIGxvY2sgYW5kIGFsbG93IHdlYlZpZXcy
IHRvIGFjcXVpcmUgaXQuCisgICAgW3dlYlZpZXcxIF9jbG9zZV07CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmxvY2tBY3F1aXJlZCk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAg
W3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVz
c2FnZSkgeworICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgMCBwZW5kaW5nIGxvY2tzLCBhbmQg
MSBoZWxkIG9uZS4KKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0xIik7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0
Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBl
bmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21w
bGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7Cit9CisKK1RFU1QoV2ViTG9ja3MsIExvY2tSZXF1ZXN0V2FpdGluZ09uQW5vdGhlclBh
Z2VJbk90aGVyUHJvY2VzcykKK3sKKyAgICBydW5Mb2NrUmVxdWVzdFdhaXRpbmdPbkFub3RoZXJQ
YWdlKFNob3VsZFVzZVNhbWVQcm9jZXNzOjpObyk7Cit9CisKK1RFU1QoV2ViTG9ja3MsIExvY2tS
ZXF1ZXN0V2FpdGluZ09uQW5vdGhlclBhZ2VJblNhbWVQcm9jZXNzKQoreworICAgIHJ1bkxvY2tS
ZXF1ZXN0V2FpdGluZ09uQW5vdGhlclBhZ2UoU2hvdWxkVXNlU2FtZVByb2Nlc3M6Olllcyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="commit-queue"
          id="470966"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445736</attachid>
            <date>2021-12-02 10:25:36 -0800</date>
            <delta_ts>2021-12-02 12:46:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211202102535.patch</filename>
            <type>text/plain</type>
            <size>125417</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwNmFkNGYyNGY1YmZl
MTRlNmU2M2Y5OTVjMWNkNmUyNzRkYzdjMi4uZjllZTk5MjM0ZjI3OTZjZTAxYTE1OWZkOWJkNTRj
NTMzMzQ5ODM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsg
YWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3Nlcy4gVG8gYWNoaWV2ZSB0aGlzLCBXZWJMb2NrUmVn
aXN0cnkgaXMgbm93CisgICAgICAgIGFuIGludGVyZmFjZSB3aXRoIDIgY29uY3JldGUgc3ViY2xh
c3NlczoKKyAgICAgICAgLSBMb2NhbFdlYkxvY2tSZWdpc3RyeTogSW4gY2hhcmdlIG9mIHRoZSBh
Y3R1YWwgc3RvcmFnZSBvZiB0aGUgbG9jayByZWdpc3RyYXRpb25zLiBUaGlzIGlzCisgICAgICAg
ICAgYmFzaWNhbGx5IGEgcmVuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IHVzZWQgdG8gYmUgbmFtZWQg
V2ViTG9ja1JlZ2lzdHJ5LiBJbiB0aGUgV2ViS2l0TGVnYWN5CisgICAgICAgICAgY2FzZSwgd2Ug
dXNlIGEgZ2xvYmFsIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZvciByZWd1bGFyIGJyb3dzaW5nIHZp
ZXdzIGFuZCBhbm90aGVyIGdsb2JhbAorICAgICAgICAgIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZv
ciBwcml2YXRlIGJyb3dzaW5nIHZpZXdzLiBJbiB0aGUgbW9kZXJuIFdlYktpdCBjYXNlLCB0aGUK
KyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBpcyBoZWxkIGluIHRoZSBVSVByb2Nlc3Mg
YnkgdGhlIFdlYnNpdGVEYXRhU3RvcmUuIEl0IGlzIGhlbGQgYnkgdGhlCisgICAgICAgICAgV2Vi
c2l0ZURhdGFTdG9yZSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgZGlmZmVyZW50IHNlc3Npb25zIHRv
IHNoYXJlIGxvY2tzLiBJdCBsaXZlcyBpbiB0aGUKKyAgICAgICAgICBVSVByb2Nlc3MgYmVjYXVz
ZSBpdCBuZWVkcyB0byBiZSBzaGFyZWQgYnkgc2V2ZXJhbCBXZWJQcm9jZXNzZXMuIFRoZSBOZXR3
b3JrUHJvY2VzcyBtYXkKKyAgICAgICAgICBoYXZlIGJlZW4gc3VpdGFibGUgdG9vIGJ1dCBpdCB3
b3VsZCBoYXZlIG1lYW50IGRlYWxpbmcgd2l0aCBjcmFzaCByZWNvdmVyeS4KKyAgICAgICAgLSBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6IEl0IGhhcyB0aGUgc2FtZSBpbnRlcmZhY2UgaGFzIExvY2Fs
V2ViTG9ja1JlZ2lzdHJ5IGJ1dCBtZXJlbHkgcHJveGllcworICAgICAgICAgIGNhbGxzIHRvIHRo
ZSBVSVByb2Nlc3MgdmlhIElQQy4KKworICAgICAgICBJbiB0aGUgVUlQcm9jZXNzLCBlYWNoIFdl
YlByb2Nlc3NQcm94eSBoYXMgYSBXZWJMb2NrUmVnaXN0cnlQcm94eSBpbnN0YW5jZSB3aGljaCBs
aXN0ZW5zIGZvcgorICAgICAgICBJUEMgZnJvbSB0aGUgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IGlu
IHRoZSBXZWJQcm9jZXNzLiBVcG9uIHJlY2VpdmluZyBJUEMsIGl0IHZhbGlkYXRlcyB0aGUKKyAg
ICAgICAgcGFyYW1ldGVycyAoc2luY2UgdGhlIFdlYlByb2Nlc3NlcyBhcmUgbm90IHRydXN0ZWQp
IGFuZCBjYWxscyB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbnMgb24KKyAgICAgICAgdGhlIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5IGhlbGQgYnkgdGhlIFdlYlByb2Nlc3NQcm94eSdzIFdlYnNpdGVE
YXRhU3RvcmUuIFRoZSBXZWJMb2NrUmVnaXN0cnlQcm94eQorICAgICAgICBpcyBhbHNvIGluIGNo
YXJnZSBvZiBub3RpZnlpbmcgdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0aGUgV2ViUHJv
Y2VzcyB3aGVuZXZlciBhIGxvY2sKKyAgICAgICAgcmVxdWVzdCBjb21wbGV0ZXMgYW5kIHdoZW5l
dmVyIGEgaGVsZCBsb2NrIGdldHMgc3RvbGVuLgorCisgICAgICAgICogTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6
OnJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmRpZENvbXBsZXRl
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnJlcXVlc3RM
b2NrT25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZWxl
YXNlTG9ja09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6
YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2Nr
TWFuYWdlcjo6cXVlcnlPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OmNsaWVudElzR29pbmdBd2F5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjplbnN1cmVPbk1haW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dl
YkxvY2tNYW5hZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6
SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNu
YXBzaG90OjpJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJT
bmFwc2hvdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9k
ZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6ZW5zdXJlUmVnaXN0cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk6On5QZXJPcmlnaW5SZWdpc3RyeSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJD
b3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZWxlYXNlTG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk6OmFib3J0TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojppc0dyYW50YWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nl
c3NMb2NrUmVxdWVzdFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
UGVyT3JpZ2luUmVnaXN0cnk6OnNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNsaWVudHNBcmVHb2luZ0F3YXkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudHNBcmVHb2lu
Z0F3YXkpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tS
ZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V2ViTG9ja1JlZ2lzdHJ5OjpXZWJMb2NrUmVnaXN0cnkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50YWJsZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdp
c3RyeTo6c25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRJc0dvaW5nQXdheSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja1JlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6On5XZWJMb2NrUmVnaXN0cnkpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICog
cGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAq
IHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViTG9ja1JlZ2lzdHJ5KToK
KyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIxLTEyLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbOmhhcygpIHBzZXVkby1jbGFzc10gSW52YWxpZGF0aW9u
IGluIG5vbi1zdWJqZWN0IHBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUzNzMyNmJhMDg1ZTM5MzJhOTVh
Mzk1ZmI1ZWJjNzcxNmJmODM1YmYuLjI2ZGQxNzc2ZmNlNDAzOGUxZGFmNjZkMjU4MWJiYTVmYjc4
YWY3MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMTItMDEgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNYWtlIFdlYiBMb2NrIEFQSSB3
b3JrIGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcxOQorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgU2VlIFdlYkNvcmUgY2hhbmdlbG9nLgorCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvY2tS
ZWdpc3RyeVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdpc3Ry
eVByb3h5OjpXZWJMb2NrUmVnaXN0cnlQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMb2NrUmVnaXN0cnlQcm94eTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2Nr
UmVnaXN0cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
Y2tSZWdpc3RyeVByb3h5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tSZWdp
c3RyeVByb3h5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvY2tS
ZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVn
aXN0cnlQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViTG9ja1JlZ2lzdHJ5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6V2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6d2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6TG9ja3NTbmFwc2hvdDo6aXNFbXB0eSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojpy
ZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVs
ZWFzZUxvY2spOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnNu
YXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlk
Q29tcGxldGVMb2NrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkxvY2tSZWdp
c3RyeTo6ZGlkU3RlYWxMb2NrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX2FwcEhpZ2hsaWdodHNWaXNpYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6d2ViTG9ja1JlZ2lzdHJ5KToKKwogMjAyMS0xMi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNvbWUgbG9nZ2luZyB0byBOZXR3b3JrUlRDUHJv
dmlkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4NmU1ZDk5NThjNjUyYTVhZjNm
Nzg1YzA1YjU1MDQyM2FiZmUxMGEzLi4wYWQ3MDBjODg4YjBlMTNjNWM1MTRkMmFjNjgxMzUzOTYy
NWE1MGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MjEtMTItMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0sy
XSBNYWtlIFdlYiBMb2NrIEFQSSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcxOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgU2VlIFdlYkNv
cmUgY2hhbmdlbG9nLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
Z2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkpOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25J
bml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJW
aWV3IGluaXRTaW1wbGVIVE1MRG9jdW1lbnRXaXRoU3R5bGU6ZnJhbWU6cHJlZmVyZW5jZXM6Z3Jv
dXBOYW1lOl0pOgorCiAyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVncmVzc2lvbihyMjgzOTEyKSBCcm9rZSBiYWNrd2FyZCBjb21wYXRpYmls
aXR5IGZvciBTd2lmdCBiaW5kaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGNh
ZDYxYTc3YTAxMGNkZDg3MGYwYTVjNjdkMjEzOTY5NjZiYjYwYWMuLmUzMTY2NTYzYTg0ZWU1N2Ez
NjBmNGRkNDU3YzAxNGRiNzc2MjhhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsgYWNyb3NzIG11bHRpcGxl
IFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBTZWUgV2ViQ29yZSBDaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoK
KyAgICAgICAgKGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KToKKyAgICAgICAgKFdlYlZpZXc6
OmluaXRXaXRoRnJhbWUpOgorCiAyMDIxLTExLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBBWDogVXNlIE9iamVjdElkZW50aWZpZXIgZm9y
IEFYSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDk1MTk5Y2NkODM2ODZmMWI5ZDliZmVhYzZiNjA5
NTNiNDBjMWI3OWUuLjk1YTU2NDlkNDUyNWM0MmY5NWM4YTA5NDI4ZWIxNGI3ZGI3ODE3MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQpAQCAtMzEyLDYgKzMxMiwxMSBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKIAorICAgIE1v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tJZGVudGlmaWVyLmgKKyAgICBNb2R1bGVzL3dlYi1sb2Nr
cy9XZWJMb2NrTWFuYWdlclNuYXBzaG90LmgKKyAgICBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
TW9kZS5oCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmgKKwogICAgIE1v
ZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAogICAg
IE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5jcHAKaW5kZXggN2U1YjU1MTQ4NWFjNjU1MWRkNWYwYzE5MDQxYjNlMjkzZjFiNmNlZC4uY2Nh
ZDUzYmQ1ZDc4NTFhYWY4OGY5MDY5YzA0YTk4ODVkNDExNGEwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAtMzEsMTEg
KzMxLDE1IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNXZWJMb2Nr
TWFuYWdlclNuYXBzaG90LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYkxvY2su
aCIKICNpbmNsdWRlICJXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViTG9j
a01hbmFnZXJTbmFwc2hvdC5oIgogI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeS5oIgorI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCisjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIK
KyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC01Myw2ICs1Nyw3IEBAIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPENsaWVudE9yaWdpbj4gY2xpZW50T3JpZ2luRnJvbUNvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4CiAKIHN0cnVjdCBXZWJMb2NrTWFuYWdlcjo6TG9ja1JlcXVlc3Qg
ewogICAgIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOworICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOwogICAgIFN0cmluZyBuYW1lOwogICAgIFdl
YkxvY2tNb2RlIG1vZGUgeyBXZWJMb2NrTW9kZTo6RXhjbHVzaXZlIH07CiAgICAgUmVmUHRyPFdl
YkxvY2tHcmFudGVkQ2FsbGJhY2s+IGdyYW50ZWRDYWxsYmFjazsKQEAgLTEzNywxNCArMTQyLDE1
IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3QoY29uc3QgU3RyaW5nJiBuYW1lLCBPcHRp
b25zJiYgb3B0aW9ucywgUmVmPFdlYkxvY2tHCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIG1f
cGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3QgeyBsb2NrSWRl
bnRpZmllciwgbmFtZSwgb3B0aW9ucy5tb2RlLCBXVEZNb3ZlKGdyYW50ZWRDYWxsYmFjayksIFdU
Rk1vdmUob3B0aW9ucy5zaWduYWwpIH0pOworICAgIGF1dG8gY2xpZW50SUQgPSBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQo
bG9ja0lkZW50aWZpZXIsIExvY2tSZXF1ZXN0IHsgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBu
YW1lLCBvcHRpb25zLm1vZGUsIFdURk1vdmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRp
b25zLnNpZ25hbCkgfSk7CiAKLSAgICByZXF1ZXN0TG9ja09uTWFpblRocmVhZChsb2NrSWRlbnRp
ZmllciwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJ
ZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFibGUgeworICAgIHJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgb3B0aW9ucywgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShib29sIHN1Y2Nlc3MpIG11dGFi
bGUgewogICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkQ29t
cGxldGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwgc3VjY2Vzcyk7Ci0gICAgfSwgW3dlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXShFeGNlcHRpb24mJiBleGNl
cHRpb24pIG11dGFibGUgeworICAgIH0sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBs
b2NrSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAg
ICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBXVEZN
b3ZlKGV4Y2VwdGlvbikpOworICAgICAgICAgICAgd2Vha1RoaXMtPnNldHRsZVJlbGVhc2VQcm9t
aXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayB3YXMgc3Rv
bGVuIGJ5IGFub3RoZXIgcmVxdWVzdCJfcyB9KTsKICAgICB9KTsKIH0KIApAQCAtMTU3LDcgKzE2
Myw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2ViTG9j
a0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGJvCiAKICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsK
ICAgICAgICAgICAgIGlmIChyZXF1ZXN0LnNpZ25hbCAmJiByZXF1ZXN0LnNpZ25hbC0+YWJvcnRl
ZCgpKSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxvY2tPbk1haW5UaHJlYWQocmVxdWVzdC5s
b2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9j
a09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0LmNsaWVudElELCBy
ZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIApA
QCAtMTY1LDE1ICsxNzEsMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxldGVMb2Nr
UmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KICAgICAgICAgICAg
IGF1dG8gcmVzdWx0ID0gcmVxdWVzdC5ncmFudGVkQ2FsbGJhY2stPmhhbmRsZUV2ZW50KGxvY2su
cHRyKCkpOwogICAgICAgICAgICAgUmVmUHRyPERPTVByb21pc2U+IHdhaXRpbmdQcm9taXNlID0g
cmVzdWx0LnR5cGUoKSA9PSBDYWxsYmFja1Jlc3VsdFR5cGU6OlN1Y2Nlc3MgPyByZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkgOiBudWxscHRyOwogICAgICAgICAgICAgaWYgKCF3YWl0aW5nUHJv
bWlzZSkgewotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3Qu
bG9ja0lkZW50aWZpZXIsIHJlcXVlc3QubmFtZSk7CisgICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5jbGllbnRJRCwg
cmVxdWVzdC5uYW1lKTsKICAgICAgICAgICAgICAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShyZXF1
ZXN0LmxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0p
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
RE9NUHJvbWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGluZ1Byb21pc2UtPmdsb2JhbE9i
amVjdCgpLCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZN
b3ZlKHdlYWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBu
YW1lID0gcmVxdWVzdC5uYW1lLCB3YWl0aW5nUHJvbWlzZV0geworICAgICAgICAgICAgRE9NUHJv
bWlzZTo6d2hlblByb21pc2VJc1NldHRsZWQod2FpdGluZ1Byb21pc2UtPmdsb2JhbE9iamVjdCgp
LCB3YWl0aW5nUHJvbWlzZS0+cHJvbWlzZSgpLCBbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdl
YWtUaGlzKSwgbG9ja0lkZW50aWZpZXIgPSByZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCBjbGllbnRJ
RCA9IHJlcXVlc3QuY2xpZW50SUQsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNl
XSB7CiAgICAgICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVu
dGlmaWVyLCBuYW1lKTsKKyAgICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChs
b2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgICAgICAgICAgICAgIHNldHRsZVJl
bGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBzdGF0aWNfY2FzdDxKU0M6OkpTVmFsdWU+KHdh
aXRpbmdQcm9taXNlLT5wcm9taXNlKCkpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9IGVs
c2UgewpAQCAtMTg4LDMzICsxOTQsMzMgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29tcGxl
dGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KICAgICB9
KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVxdWVzdExvY2tPbk1haW5UaHJlYWQoV2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
T3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwg
RnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpCit2b2lkIFdlYkxv
Y2tNYW5hZ2VyOjpyZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2Nr
SWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucywgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5k
bGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZpZXIgPSBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NU
aHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFtZSks
IG1vZGUgPSBvcHRpb25zLm1vZGUsIHN0ZWFsID0gb3B0aW9ucy5zdGVhbCwgaWZBdmFpbGFibGUg
PSBvcHRpb25zLmlmQXZhaWxhYmxlLCBsb2NrSWRlbnRpZmllciwgZ3JhbnRlZEhhbmRsZXIgPSBX
VEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVhc2VI
YW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZv
ck9yaWdpbihjbGllbnRPcmlnaW4pLT5yZXF1ZXN0TG9jayhsb2NrSWRlbnRpZmllciwgY29udGV4
dElkZW50aWZpZXIsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NvbnRleHRJZGVu
dGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBz
dWNjZXNzKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVu
c3VyZU9uQ29udGV4dFRocmVhZChjb250ZXh0SWRlbnRpZmllciwgW2dyYW50ZWRIYW5kbGVyID0g
V1RGTW92ZShncmFudGVkSGFuZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKKyAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudElELCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENv
cHkoKm1fY2xpZW50T3JpZ2luKSwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9
IG9wdGlvbnMubW9kZSwgc3RlYWwgPSBvcHRpb25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlv
bnMuaWZBdmFpbGFibGUsIGxvY2tJZGVudGlmaWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUo
Z3JhbnRlZEhhbmRsZXIpLCBsb2NrU3RvbGVuSGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhh
bmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LnJlcXVl
c3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lLCBtb2Rl
LCBzdGVhbCwgaWZBdmFpbGFibGUsIFtjbGllbnRJRCwgZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3Zl
KGdyYW50ZWRIYW5kbGVyKV0gKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CisgICAgICAgICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCBzdWNjZXNzXShhdXRvJikg
bXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZ3JhbnRlZEhhbmRsZXIoc3VjY2Vzcyk7CiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgfSwgW2NvbnRleHRJZGVudGlmaWVyLCByZWxlYXNlSGFuZGxl
ciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXShFeGNlcHRpb24mJiBleGNlcHRpb24pIG11dGFi
bGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0
VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbcmVsZWFzZUhhbmRsZXIgPSBXVEZNb3ZlKHJlbGVh
c2VIYW5kbGVyKSwgZXhjZXB0aW9uID0gY3Jvc3NUaHJlYWRDb3B5KGV4Y2VwdGlvbildKGF1dG8m
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICByZWxlYXNlSGFuZGxlcihXVEZNb3ZlKGV4Y2Vw
dGlvbikpOworICAgICAgICB9LCBbY2xpZW50SUQsIGxvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92
ZShsb2NrU3RvbGVuSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY2xpZW50SUQsIFtsb2NrU3RvbGVu
SGFuZGxlciA9IFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpXShhdXRvJikgbXV0YWJsZSB7Cisg
ICAgICAgICAgICAgICAgbG9ja1N0b2xlbkhhbmRsZXIoKTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVsZWFzZUxvY2tP
bk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlbGVhc2VMb2NrT25NYWluVGhyZWFkKFdl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGVuc3VyZU9uTWFp
blRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiks
IGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpXSB7Ci0gICAgICAg
IFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+cmVsZWFz
ZUxvY2sobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xp
ZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGxvY2tJZGVudGlm
aWVyLCBjbGllbnRJRCwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1lKV0oYXV0byYgcmVnaXN0
cnkpIHsKKyAgICAgICAgcmVnaXN0cnkucmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG5hbWUpOwogICAgIH0pOwogfQogCiB2b2lkIFdlYkxvY2tNYW5h
Z2VyOjphYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250
ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBj
bGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50
aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVhZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIFdlYkxvY2tS
ZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+YWJvcnRMb2NrUmVxdWVz
dChsb2NrSWRlbnRpZmllciwgbmFtZSwgW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHdhc0Fib3J0ZWQpIG11dGFi
bGUgewotICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0
VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11dGFibGUgeworICAgIGVuc3Vy
ZU9uTWFpblRocmVhZChbY2xpZW50SUQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50
aWZpZXIoKSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiks
IGxvY2tJZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5hbWUpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0
YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LmFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3JpZ2luLCBs
b2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIFtjbGllbnRJRCwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCB3YXNBYm9ydGVkKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRo
cmVhZChjbGllbnRJRCwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHdhc0Fib3J0ZWRdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih3YXNBYm9ydGVkKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsK
QEAgLTIyMyw4ICsyMjksOCBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjphYm9ydExvY2tSZXF1ZXN0
T25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaQogCiB2b2lkIFdlYkxv
Y2tNYW5hZ2VyOjpxdWVyeU9uTWFpblRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBz
aG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGVuc3VyZU9uTWFpblRocmVhZChb
Y29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIo
KSwgY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIFdlYkxvY2tSZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+
c25hcHNob3QoW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNuYXBzaG90KSBtdXRhYmxlIHsKKyAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9j
bGllbnRPcmlnaW4pLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShhdXRvJiByZWdpc3RyeSkgbXV0YWJsZSB7CisgICAgICAgIHJlZ2lzdHJ5LnNuYXBzaG90
KGNsaWVudE9yaWdpbiwgW2NvbnRleHRJZGVudGlmaWVyLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTbmFwc2hvdCYmIHNuYXBzaG90KSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVh
ZChjb250ZXh0SWRlbnRpZmllciwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIHNuYXBzaG90ID0gY3Jvc3NUaHJlYWRDb3B5KHNuYXBzaG90KV0oYXV0byYp
IG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc25h
cHNob3QpKTsKICAgICAgICAgICAgIH0pOwpAQCAtMzAyLDExICszMDgsMjkgQEAgdm9pZCBXZWJM
b2NrTWFuYWdlcjo6Y2xpZW50SXNHb2luZ0F3YXkoKQogICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNs
ZWFyKCk7CiAgICAgbV9yZWxlYXNlUHJvbWlzZXMuY2xlYXIoKTsKIAotICAgIGVuc3VyZU9uTWFp
blRocmVhZChbY2xpZW50T3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiks
IGNvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVy
KCldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRP
cmlnaW4pLT5jbGllbnRJc0dvaW5nQXdheShjb250ZXh0SWRlbnRpZmllcik7CisgICAgZW5zdXJl
T25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3Jp
Z2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50
aWZpZXIoKV0oYXV0byYgcmVnaXN0cnkpIHsKKyAgICAgICAgcmVnaXN0cnkuY2xpZW50SXNHb2lu
Z0F3YXkoY2xpZW50T3JpZ2luLCBjb250ZXh0SWRlbnRpZmllcik7CiAgICAgfSk7CiB9CiAKK3Zv
aWQgV2ViTG9ja01hbmFnZXI6OmVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKFdlYkxv
Y2tSZWdpc3RyeSYpPiYmIHRhc2spCit7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBB
U1NFUlQoY29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAgaWYgKGlzPERvY3VtZW50
PigqY29udGV4dCkpIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IGRvd25jYXN0PERvY3VtZW50
PigqY29udGV4dCkucGFnZSgpKQorICAgICAgICAgICAgdGFzayhwYWdlLT53ZWJMb2NrUmVnaXN0
cnkoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KCpjb250ZXh0KS50aHJlYWQoKS53b3JrZXJMb2FkZXJQcm94eSgpLnBvc3RUYXNrVG9Mb2FkZXIo
W3Rhc2sgPSBXVEZNb3ZlKHRhc2spXShhdXRvJiBjb250ZXh0KSB7CisgICAgICAgICAgICBpZiAo
YXV0byBwYWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnBhZ2UoKSkKKyAgICAgICAg
ICAgICAgICB0YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICAgICAgfSk7CisgICAg
fQorfQorCiBib29sIFdlYkxvY2tNYW5hZ2VyOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gIW1fcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSB8fCAhbV9y
ZWxlYXNlUHJvbWlzZXMuaXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKaW5kZXggZmVjYzQwOTM4MzM5YzE3MmZlOTY3YmE5
YzNkNTkwM2ZmMDM3Yjc4OS4uOTY4MjY2MjI0Y2RmZWU1NDFmYjc5ZmIwYmRiNTA5OTE0MjYwZWRm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFu
YWdlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlZmVy
cmVkUHJvbWlzZTsKIGNsYXNzIE5hdmlnYXRvckJhc2U7CiBjbGFzcyBXZWJMb2NrR3JhbnRlZENh
bGxiYWNrOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwog
c3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q7CkBAIC02Miw4ICs2Myw4IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTG9ja01hbmFnZXIoTmF2aWdhdG9yQmFzZSYpOwog
Ci0gICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9pZChib29sKT4mJiwg
RnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpOwotICAgIHZvaWQg
cmVsZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSk7CisgICAgdm9pZCByZXF1ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmll
ciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgT3B0aW9ucyYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4m
JiBsb2NrU3RvbGVuSGFuZGxlcik7CisgICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSk7CiAgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0T25NYWluVGhyZWFkKFdl
YkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcXVlcnlPbk1haW5UaHJlYWQoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTbmFwc2hvdCYmKT4mJik7CiAKQEAgLTcyLDYgKzczLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyKTsKICAgICB2
b2lkIGNsaWVudElzR29pbmdBd2F5KCk7CiAKKyAgICB2b2lkIGVuc3VyZU9uTWFpblRocmVhZChG
dW5jdGlvbjx2b2lkKFdlYkxvY2tSZWdpc3RyeSYpPiYmIHRhc2spOworCiAgICAgLy8gQWN0aXZl
RE9NT2JqZWN0LgogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAppbmRleCA3ZjUz
M2MzY2M3MDAyOGQxNmFhNDI3MDRmMmM0ODFiMmY0MjEwZDFlLi40NDJjMzAzZDJhODc0ZTI5NDNl
ZjdhYzVmNjJmY2UzNjAwZjJlNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNuYXBzaG90LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oCkBAIC0zOCwxMiArMzgs
NTUgQEAgc3RydWN0IFdlYkxvY2tNYW5hZ2VyU25hcHNob3QgewogICAgICAgICBTdHJpbmcgY2xp
ZW50SWQ7CiAKICAgICAgICAgSW5mbyBpc29sYXRlZENvcHkoKSBjb25zdCB7IHJldHVybiB7IG5h
bWUuaXNvbGF0ZWRDb3B5KCksIG1vZGUsIGNsaWVudElkLmlzb2xhdGVkQ29weSgpIH07IH0KKwor
ICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgbmFtZSA8PCBtb2RlIDw8IGNsaWVudElkOyB9CisgICAg
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEluZm8+IGRl
Y29kZShEZWNvZGVyJik7CiAgICAgfTsKIAogICAgIFZlY3RvcjxJbmZvPiBoZWxkOwogICAgIFZl
Y3RvcjxJbmZvPiBwZW5kaW5nOwogCiAgICAgV2ViTG9ja01hbmFnZXJTbmFwc2hvdCBpc29sYXRl
ZENvcHkoKSBjb25zdCB7IHJldHVybiB7IGNyb3NzVGhyZWFkQ29weShoZWxkKSwgY3Jvc3NUaHJl
YWRDb3B5KHBlbmRpbmcpIH07IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBoZWxkIDw8IHBlbmRp
bmc7IH0KKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
ZWJMb2NrTWFuYWdlclNuYXBzaG90PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5m
bz4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5hbWU7CisgICAgZGVjb2RlciA+PiBuYW1l
OworICAgIGlmICghbmFtZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViTG9ja01vZGU+IG1vZGU7CisgICAgZGVjb2RlciA+PiBtb2RlOworICAg
IGlmICghbW9kZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiBjbGllbnRJZDsKKyAgICBkZWNvZGVyID4+IGNsaWVudElkOworICAgIGlm
ICghY2xpZW50SWQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4g
eyB7IFdURk1vdmUoKm5hbWUpLCAqbW9kZSwgV1RGTW92ZSgqY2xpZW50SWQpIH0gfTsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8V2ViTG9ja01hbmFnZXJTbmFw
c2hvdD4gV2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+IGhlbGQ7CisgICAgZGVjb2RlciA+PiBo
ZWxkOworICAgIGlmICghaGVsZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEluZm8+PiBwZW5kaW5nOworICAgIGRlY29kZXIgPj4gcGVu
ZGluZzsKKyAgICBpZiAoIXBlbmRpbmcpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICByZXR1cm4geyB7IFdURk1vdmUoKmhlbGQpLCBXVEZNb3ZlKCpwZW5kaW5nKSB9IH07Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
Yi1sb2Nrcy9XZWJMb2NrTW9kZS5oCmluZGV4IDkzNDM2YzI4NDZiMjE0MmNmMGJhYWI2ZjQ2MDA1
MDI5ZTEzNmZlZmIuLmVmYjA0MTdmMzc2YTY1ZTUyNjY2Yjg3OTgxMmJhZjU4NTFkNzc5MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaApAQCAt
MjYsNiArMjYsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgV2ViTG9j
a01vZGUgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OworZW51bSBjbGFzcyBXZWJMb2NrTW9kZSA6IGJv
b2wgeyBTaGFyZWQsIEV4Y2x1c2l2ZSB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcAppbmRleCA4MmYxMDIwYWZkMjY3
YmJkMzkyNzlkN2E5OGI0NjQzZmFkYWY0MWJmLi4xM2E0OTBhYTYxMjcyMzFiYjQyZDlhNzcxNmZk
OTVhMmNkMjA4NDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nr
cy9XZWJMb2NrUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxv
Y2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKQEAgLTMzLDU2ICszMyw5MiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0cnVjdCBXZWJMb2NrUmVnaXN0cnk6OkxvY2tJbmZvIHsKLSAgICBSZWY8
V2ViTG9ja1JlZ2lzdHJ5PiByZWdpc3RyeTsKLSAgICBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRl
bnRpZmllcjsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRDsK
LSAgICBXZWJMb2NrTW9kZSBtb2RlOwotICAgIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiBy
ZWxlYXNlSGFuZGxlcjsKLX07CitjbGFzcyBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2lu
UmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxQZXJPcmlnaW5SZWdpc3RyeT4sIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxQZXJPcmlnaW5SZWdpc3RyeT4geworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8UGVyT3JpZ2luUmVnaXN0cnk+IGNyZWF0ZShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0
IENsaWVudE9yaWdpbiYpOworICAgIH5QZXJPcmlnaW5SZWdpc3RyeSgpOworCisgICAgc3RydWN0
IExvY2tJbmZvIHsKKyAgICAgICAgUmVmPFBlck9yaWdpblJlZ2lzdHJ5PiByZWdpc3RyeTsKKyAg
ICAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXI7CisgICAgICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEOworICAgICAgICBXZWJMb2NrTW9kZSBt
b2RlOworICAgICAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworICAgIH07
CisKKyAgICB2b2lkIHJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9v
bCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVk
SGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lk
IHJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOworICAg
IHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJik7Cisg
ICAgdm9pZCBjbGllbnRzQXJlR29pbmdBd2F5KGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgTG9j
a0luZm8mKT4mIG1hdGNoQ2xpZW50KTsKKworcHJpdmF0ZToKKyAgICBQZXJPcmlnaW5SZWdpc3Ry
eShMb2NhbFdlYkxvY2tSZWdpc3RyeSYsIGNvbnN0IENsaWVudE9yaWdpbiYpOworCisgICAgc3Ry
dWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAg
ICAgRnVuY3Rpb248dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgfTsKIAotc3RydWN0
IFdlYkxvY2tSZWdpc3RyeTo6TG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7Ci0gICAgU3RyaW5nIG5h
bWU7Ci0gICAgRnVuY3Rpb248dm9pZChib29sKT4gZ3JhbnRlZEhhbmRsZXI7CisgICAgdm9pZCBw
cm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1
ZXN0PiYpOworICAgIGJvb2wgaXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmKSBjb25zdDsK
KworICAgIFdlYWtQdHI8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IG1fZ2xvYmFsUmVnaXN0cnk7Cisg
ICAgQ2xpZW50T3JpZ2luIG1fY2xpZW50T3JpZ2luOworICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1
ZTxMb2NrUmVxdWVzdD4+IG1fbG9ja1JlcXVlc3RRdWV1ZU1hcDsKKyAgICBIYXNoTWFwPFN0cmlu
ZywgVmVjdG9yPExvY2tJbmZvPj4gbV9oZWxkTG9ja3M7CiB9OwogCi1zdGF0aWMgSGFzaE1hcDxD
bGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+JiByZWdpc3RyeU1hcCgpCitMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK0xvY2FsV2Vi
TG9ja1JlZ2lzdHJ5Ojp+TG9jYWxXZWJMb2NrUmVnaXN0cnkoKSA9IGRlZmF1bHQ7CisKK2F1dG8g
TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVu
dE9yaWdpbiYgY2xpZW50T3JpZ2luKSAtPiBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+Cit7CisgICAg
aWYgKGF1dG8gZXhpc3RpbmdSZWdpc3RyeSA9IG1fcGVyT3JpZ2luUmVnaXN0cmllcy5nZXQoY2xp
ZW50T3JpZ2luKSkKKyAgICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5OworCisgICAgcmV0
dXJuIFBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUoKnRoaXMsIGNsaWVudE9yaWdpbik7Cit9CisK
K2F1dG8gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OmV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY29u
c3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pIGNvbnN0IC0+IFJlZlB0cjxQZXJPcmlnaW5S
ZWdpc3RyeT4KIHsKLSAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYkxvY2tSZWdpc3RyeSo+PiByZWdp
c3RyeU1hcDsKLSAgICByZXR1cm4gcmVnaXN0cnlNYXA7CisgICAgcmV0dXJuIG1fcGVyT3JpZ2lu
UmVnaXN0cmllcy5nZXQoY2xpZW50T3JpZ2luKS5nZXQoKTsKIH0KIAotUmVmPFdlYkxvY2tSZWdp
c3RyeT4gV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmln
aW4mIG9yaWdpbikKK1JlZjxMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk+
IExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y3JlYXRlKExvY2FsV2Vi
TG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRP
cmlnaW4pCiB7Ci0gICAgaWYgKGF1dG8gZXhpc3RpbmdSZWdpc3RyeSA9IHJlZ2lzdHJ5TWFwKCku
Z2V0KG9yaWdpbikpCi0gICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeTsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQZXJPcmlnaW5SZWdpc3RyeShnbG9iYWxSZWdpc3RyeSwgY2xpZW50
T3JpZ2luKSk7Cit9CiAKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJMb2NrUmVnaXN0cnko
b3JpZ2luKSk7CitMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OlBlck9y
aWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiBnbG9iYWxSZWdpc3RyeSwgY29uc3Qg
Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCisgICAgOiBtX2dsb2JhbFJlZ2lzdHJ5KGdsb2Jh
bFJlZ2lzdHJ5KQorICAgICwgbV9jbGllbnRPcmlnaW4oY2xpZW50T3JpZ2luKQoreworICAgIGds
b2JhbFJlZ2lzdHJ5Lm1fcGVyT3JpZ2luUmVnaXN0cmllcy5hZGQoY2xpZW50T3JpZ2luLCBXZWFr
UHRyIHsgKiB0aGlzIH0pOwogfQogCi1XZWJMb2NrUmVnaXN0cnk6OldlYkxvY2tSZWdpc3RyeShj
b25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbikKLSAgICA6IG1fb3JpZ2luKG9yaWdpbikKK0xvY2Fs
V2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6flBlck9yaWdpblJlZ2lzdHJ5KCkK
IHsKLSAgICByZWdpc3RyeU1hcCgpLmFkZChtX29yaWdpbiwgdGhpcyk7CisgICAgaWYgKG1fZ2xv
YmFsUmVnaXN0cnkpCisgICAgICAgIG1fZ2xvYmFsUmVnaXN0cnktPm1fcGVyT3JpZ2luUmVnaXN0
cmllcy5yZW1vdmUobV9jbGllbnRPcmlnaW4pOwogfQogCi1XZWJMb2NrUmVnaXN0cnk6On5XZWJM
b2NrUmVnaXN0cnkoKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2soY29u
c3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxh
YmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lk
KCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgYXV0byogcmVnaXN0cnkgPSByZWdpc3Ry
eU1hcCgpLnRha2UobV9vcmlnaW4pOwotICAgIEFTU0VSVF9VTlVTRUQocmVnaXN0cnksIHJlZ2lz
dHJ5ID09IHRoaXMpOworICAgIGVuc3VyZVJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikt
PnJlcXVlc3RMb2NrKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgbW9kZSwgc3RlYWws
IGlmQXZhaWxhYmxlLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcikpOwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jcmVx
dWVzdC1hLWxvY2sKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
Y2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVh
bCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxl
ciwgRnVuY3Rpb248dm9pZChFeGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpCit2b2lkIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cmVxdWVzdExvY2soV2ViTG9j
a0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlIG1vZGUsIGJvb2wg
c3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhh
bmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKIHsKLSAgICBMb2Nr
UmVxdWVzdCByZXF1ZXN0IHsgeyAqdGhpcywgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBtb2Rl
LCBXVEZNb3ZlKHJlbGVhc2VIYW5kbGVyKSB9LCBuYW1lLCBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVy
KSB9OworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7ICp0aGlzLCBsb2NrSWRlbnRpZmllciwg
Y2xpZW50SUQsIG1vZGUsIFdURk1vdmUobG9ja1N0b2xlbkhhbmRsZXIpIH0sIG5hbWUsIFdURk1v
dmUoZ3JhbnRlZEhhbmRsZXIpIH07CiAKICAgICBpZiAoc3RlYWwpIHsKICAgICAgICAgYXV0byBp
dCA9IG1faGVsZExvY2tzLmZpbmQobmFtZSk7CiAgICAgICAgIGlmIChpdCAhPSBtX2hlbGRMb2Nr
cy5lbmQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBsb2NrSW5mbyA6IGl0LT52YWx1ZSkK
LSAgICAgICAgICAgICAgICBsb2NrSW5mby5yZWxlYXNlSGFuZGxlcihFeGNlcHRpb24geyBBYm9y
dEVycm9yLCAiTG9jayB3YXMgc3RvbGVuIGJ5IGFub3RoZXIgcmVxdWVzdCIgfSk7CisgICAgICAg
ICAgICAgICAgbG9ja0luZm8ubG9ja1N0b2xlbkhhbmRsZXIoKTsKICAgICAgICAgICAgIG1faGVs
ZExvY2tzLnJlbW92ZShpdCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGlmQXZhaWxhYmxl
ICYmICFpc0dyYW50YWJsZShyZXF1ZXN0KSkgewpAQCAtOTcsOCArMTMzLDE0IEBAIHZvaWQgV2Vi
TG9ja1JlZ2lzdHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgU2NyaXB0RXhlY3V0CiAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUobmFtZSwgcXVldWUp
OwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhjb25zdCBDbGll
bnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpCit7
CisgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBleGlzdGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVu
dE9yaWdpbikpCisgICAgICAgIHJlZ2lzdHJ5LT5yZWxlYXNlTG9jayhsb2NrSWRlbnRpZmllciwg
bmFtZSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vd2ViLWxvY2tzLyNhbGdvcml0
aG0tcmVsZWFzZS1sb2NrCi12b2lkIFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2soV2ViTG9j
a0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3ZvaWQgTG9j
YWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZWxlYXNlTG9jayhXZWJMb2Nr
SWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGF1
dG8gaXQgPSBtX2hlbGRMb2Nrcy5maW5kKG5hbWUpOwogICAgIGlmIChpdCA9PSBtX2hlbGRMb2Nr
cy5lbmQoKSkKQEAgLTExNCw4ICsxNTYsMTcgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnJlbGVh
c2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcKICAg
ICAgICAgcHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUobmFtZSwgcXVldWVJdGVyYXRvci0+dmFsdWUp
OwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0
IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjbGllbnRPcmln
aW4pOworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSk7CisKKyAgICByZWdpc3RyeS0+YWJvcnRMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmll
ciwgbmFtZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiAvLyBodHRwczovL3dp
Y2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jYWJvcnQtdGhlLXJlcXVlc3QKLXZvaWQgV2ViTG9ja1Jl
Z2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdp
c3RyeTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcXVldWVJdGVyYXRvciA9IG1fbG9ja1JlcXVlc3RR
dWV1ZU1hcC5maW5kKG5hbWUpOwogICAgIGlmIChxdWV1ZUl0ZXJhdG9yID09IG1fbG9ja1JlcXVl
c3RRdWV1ZU1hcC5lbmQoKSkKQEAgLTEzNyw3ICsxODgsNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3Ry
eTo6YWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29u
c3QgUwogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1sb2Nrcy8jZ3JhbnRhYmxl
Ci1ib29sIFdlYkxvY2tSZWdpc3RyeTo6aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmIHJl
cXVlc3QpIGNvbnN0Citib29sIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eTo6aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7CiAgICAg
YXV0byBxdWV1ZUl0ZXJhdG9yID0gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwLmZpbmQocmVxdWVzdC5u
YW1lKTsKICAgICBpZiAocXVldWVJdGVyYXRvciAhPSBtX2xvY2tSZXF1ZXN0UXVldWVNYXAuZW5k
KCkgJiYgJnF1ZXVlSXRlcmF0b3ItPnZhbHVlLmZpcnN0KCkgIT0gJnJlcXVlc3QpCkBAIC0xNTQs
NyArMjA1LDcgQEAgYm9vbCBXZWJMb2NrUmVnaXN0cnk6OmlzR3JhbnRhYmxlKGNvbnN0IExvY2tS
ZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogfQogCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dl
Yi1sb2Nrcy8jcHJvY2Vzcy10aGUtbG9jay1yZXF1ZXN0LXF1ZXVlCi12b2lkIFdlYkxvY2tSZWdp
c3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxM
b2NrUmVxdWVzdD4mIHF1ZXVlKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2lu
UmVnaXN0cnk6OnByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmluZyYgbmFtZSwgRGVx
dWU8TG9ja1JlcXVlc3Q+JiBxdWV1ZSkKIHsKICAgICB3aGlsZSAoIXF1ZXVlLmlzRW1wdHkoKSkg
ewogICAgICAgICBpZiAoIWlzR3JhbnRhYmxlKHF1ZXVlLmZpcnN0KCkpKQpAQCAtMTY5LDggKzIy
MCwxNyBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUoY29u
c3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdQogICAgIEFTU0VSVF9VTlVTRUQocmVtb3Zl
ZFF1ZXVlLCByZW1vdmVkUXVldWUuaXNFbXB0eSgpKTsKIH0KIAordm9pZCBMb2NhbFdlYkxvY2tS
ZWdpc3RyeTo6c25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGF1dG8gcmVnaXN0cnkgPSBleGlzdGluZ1JlZ2lzdHJ5Rm9yT3Jp
Z2luKGNsaWVudE9yaWdpbik7CisgICAgaWYgKCFyZWdpc3RyeSkKKyAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAgICByZWdpc3RyeS0+c25hcHNob3QoV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworfQorCiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL3dlYi1s
b2Nrcy8jc25hcHNob3QtdGhlLWxvY2stc3RhdGUKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpzbmFw
c2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdp
blJlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2Vy
OjpTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJMb2NrTWFuYWdl
cjo6U25hcHNob3Qgc25hcHNob3Q7CiAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9sb2NrUmVxdWVz
dFF1ZXVlTWFwKSB7CkBAIC0xODUsMTQgKzI0NSwyMSBAQCB2b2lkIFdlYkxvY2tSZWdpc3RyeTo6
c25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlcjo6U25hcHNob3Qm
JgogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc25hcHNob3QpKTsKIH0KIAordm9pZCBM
b2NhbFdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xpZW50T3JpZ2lu
JiBjbGllbnRPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
KQoreworICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihj
bGllbnRPcmlnaW4pKQorICAgICAgICByZWdpc3RyeS0+Y2xpZW50c0FyZUdvaW5nQXdheShbY2xp
ZW50SURdKGF1dG8mIGxvY2tJbmZvKSB7IHJldHVybiBsb2NrSW5mby5jbGllbnRJRCA9PSBjbGll
bnRJRDsgfSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vd2ViLWxvY2tzLyNhZ2Vu
dC1pbnRlZ3JhdGlvbgotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQordm9pZCBMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNsaWVudHNBcmVHb2luZ0F3YXkoY29uc3Qg
RnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0Y2hDbGllbnQpCiB7CisgICAgLy8g
RklYTUU6IFRoaXMgaXMgaW5lZmZpY2llbnQuIFdlIGNvdWxkIG9wdGltaXplIHRoaXMgYnkga2Vl
cGluZyB0cmFjayBvZiB3aGljaCBsb2NrcyBtYXAgdG8gd2hpY2ggY2xpZW50cy4KICAgICBIYXNo
U2V0PFN0cmluZz4gbmFtZXNPZlF1ZXVlc1RvUHJvY2VzczsKIAogICAgIFZlY3RvcjxTdHJpbmc+
IG5hbWVzV2l0aG91dFJlcXVlc3RzOwogICAgIGZvciAoYXV0byYgcGFpciA6IG1fbG9ja1JlcXVl
c3RRdWV1ZU1hcCkgewotICAgICAgICBpZiAoIXBhaXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hpbmco
W2NsaWVudElEXShhdXRvJiByZXF1ZXN0KSB7IHJldHVybiByZXF1ZXN0LmNsaWVudElEID09IGNs
aWVudElEOyB9KSkKKyAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnJlbW92ZUFsbE1hdGNoaW5nKG1h
dGNoQ2xpZW50KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAocGFpci52YWx1
ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBuYW1lc1dpdGhvdXRSZXF1ZXN0cy5hcHBlbmQocGFp
ci5rZXkpOwpAQCAtMjA0LDcgKzI3MSw3IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJ
c0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJCiAKICAg
ICBWZWN0b3I8U3RyaW5nPiBuYW1lc1dpdGhvdXRMb2NrczsKICAgICBmb3IgKGF1dG8mIHBhaXIg
OiBtX2hlbGRMb2NrcykgewotICAgICAgICBpZiAoIXBhaXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hp
bmcoW2NsaWVudElEXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0luZm8uY2xpZW50SUQg
PT0gY2xpZW50SUQ7IH0pKQorICAgICAgICBpZiAoIXBhaXIudmFsdWUucmVtb3ZlQWxsTWF0Y2hp
bmcobWF0Y2hDbGllbnQpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChwYWly
LnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5hbWVzV2l0aG91dExvY2tzLmFwcGVuZChw
YWlyLmtleSk7CkBAIC0yMjAsNCArMjg3LDEzIEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpjbGll
bnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJCiAg
ICAgfQogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRzQXJlR29pbmdBd2F5
KFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQoreworICAgIFZlY3RvcjxDbGll
bnRPcmlnaW4+IGNsaWVudE9yaWdpbnMgPSBjb3B5VG9WZWN0b3IobV9wZXJPcmlnaW5SZWdpc3Ry
aWVzLmtleXMoKSk7CisgICAgZm9yIChhdXRvJiBjbGllbnRPcmlnaW4gOiBjbGllbnRPcmlnaW5z
KSB7CisgICAgICAgIGlmIChhdXRvIHJlZ2lzdHJ5ID0gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdp
bihjbGllbnRPcmlnaW4pKQorICAgICAgICAgICAgcmVnaXN0cnktPmNsaWVudHNBcmVHb2luZ0F3
YXkoW3Byb2Nlc3NJZGVudGlmaWVyXShhdXRvJiBsb2NrSW5mbykgeyByZXR1cm4gbG9ja0luZm8u
Y2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBwcm9jZXNzSWRlbnRpZmllcjsgfSk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5oCmluZGV4IGE2ZThkMDM1M2JkYzIw
OTlhMDkyNGM3NzYzMjRlZWFkZDk0M2EwNmMuLjgyOWNmNWY2ODI0ZTk5MmU3NTY4NzRmYTIwNTM5
OGI5NmUwMGE0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tz
L1dlYkxvY2tSZWdpc3RyeS5oCkBAIC0yNSw5ICsyNSw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkNsaWVudE9yaWdpbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJX
ZWJMb2NrSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIldlYkxvY2tNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViTG9ja01vZGUuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtNDAsMjkgKzQwLDQwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEV4Y2VwdGlvbjsKIHN0cnVjdCBXZWJMb2NrTWFuYWdlclNuYXBzaG90OwogCi1jbGFzcyBXZWJM
b2NrUmVnaXN0cnkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJMb2NrUmVnaXN0cnk+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8V2ViTG9ja1JlZ2lzdHJ5PiB7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnkg
OiBwdWJsaWMgUmVmQ291bnRlZDxXZWJMb2NrUmVnaXN0cnk+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYkxvY2tSZWdpc3RyeT4gcmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3Jp
Z2luJik7Ci0gICAgfldlYkxvY2tSZWdpc3RyeSgpOworICAgIHZpcnR1YWwgfldlYkxvY2tSZWdp
c3RyeSgpIHsgfQogCi0gICAgdm9pZCByZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoRXhjZXB0aW9uJiYpPiYmIHJlbGVhc2VI
YW5kbGVyKTsKLSAgICB2b2lkIHJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUpOwotICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
LSAgICB2b2lkIHNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJT
bmFwc2hvdCYmKT4mJik7Ci0gICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RMb2NrKGNvbnN0
IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwg
Ym9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwg
RnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50T3JpZ2luJiwg
V2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc25hcHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNvbnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CiAKLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2Vi
TG9ja1JlZ2lzdHJ5KGNvbnN0IENsaWVudE9yaWdpbiYpOworcHJvdGVjdGVkOgorICAgIFdlYkxv
Y2tSZWdpc3RyeSgpID0gZGVmYXVsdDsKK307CisKK2NsYXNzIExvY2FsV2ViTG9ja1JlZ2lzdHJ5
IGZpbmFsIDogcHVibGljIFdlYkxvY2tSZWdpc3RyeSwgcHVibGljIENhbk1ha2VXZWFrUHRyPExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxMb2NhbFdlYkxv
Y2tSZWdpc3RyeT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBMb2NhbFdlYkxvY2tS
ZWdpc3RyeSk7IH0KKyAgICB+TG9jYWxXZWJMb2NrUmVnaXN0cnkoKTsKKworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVxdWVzdExvY2soY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50
aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2
b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xl
bkhhbmRsZXIpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVsZWFzZUxvY2soY29u
c3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRl
bnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzbmFwc2hvdChjb25zdCBDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpIGZpbmFsOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY2xpZW50c0FyZUdvaW5nQXdheShQcm9jZXNzSWRlbnRpZmllcik7CiAKLSAgICBzdHJ1
Y3QgTG9ja0luZm87Ci0gICAgc3RydWN0IExvY2tSZXF1ZXN0OworcHJpdmF0ZToKKyAgICBXRUJD
T1JFX0VYUE9SVCBMb2NhbFdlYkxvY2tSZWdpc3RyeSgpOwogCi0gICAgYm9vbCBpc0dyYW50YWJs
ZShjb25zdCBMb2NrUmVxdWVzdCYpIGNvbnN0OwotICAgIHZvaWQgcHJvY2Vzc0xvY2tSZXF1ZXN0
UXVldWUoY29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdWVzdD4mKTsKKyAgICBjbGFz
cyBQZXJPcmlnaW5SZWdpc3RyeTsKKyAgICBSZWY8UGVyT3JpZ2luUmVnaXN0cnk+IGVuc3VyZVJl
Z2lzdHJ5Rm9yT3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYpOworICAgIFJlZlB0cjxQZXJPcmln
aW5SZWdpc3RyeT4gZXhpc3RpbmdSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4m
KSBjb25zdDsKIAotICAgIGNvbnN0IENsaWVudE9yaWdpbiBtX29yaWdpbjsKLSAgICBIYXNoTWFw
PFN0cmluZywgRGVxdWU8TG9ja1JlcXVlc3Q+PiBtX2xvY2tSZXF1ZXN0UXVldWVNYXA7Ci0gICAg
SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxMb2NrSW5mbz4+IG1faGVsZExvY2tzOworICAgIEhhc2hN
YXA8Q2xpZW50T3JpZ2luLCBXZWFrUHRyPFBlck9yaWdpblJlZ2lzdHJ5Pj4gbV9wZXJPcmlnaW5S
ZWdpc3RyaWVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4YzFlMzdmZDQ0
NWJhZGI1NGU0Y2VjMzg2NDdhYTY5Mjg4ZTRlYWUuLjUyNDVkMjNjNGM2NDk3NTM5ODk2ODFlZjg0
NTAzN2QxNzg3MmJhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMTMsMTAgKzEzMTMsMTIgQEAKIAkJNDYwRTMwNzcyMjJG
NEYwMzAwOUEwNjA2IC8qIERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUVERDlG
MjIyRjRFQzMwMEI0NkUxNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDYyMThBQ0IxRjcyRDY0RTAwNTc0RkJFIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RTAxNkFEMUY3MkQ2MUUw
MDI4MkIyQyAvKiBET01IaWdoUmVzVGltZVN0YW1wLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYyNzNDQUYyNjBFNTlFRjAwNkZBQTkxIC8qIFNX
U2NyaXB0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDYyNzNDQUMyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ2MkM3RjQxMjc1
NkRCRTQwMEQwODNDOCAvKiBXZWJMb2NrSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3ODAyQjIyNzQ3MTE4NTAwREE5RkI2IC8qIFdl
YkxvY2tJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYyRTRDNTAyNjE2QTgxMTAwM0EyQzY3IC8qIFNjcmlwdEJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYyRTRDNEQyNjE2
QTgwMTAwM0EyQzY3IC8qIFNjcmlwdEJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ2MzRDNzJDMjc1N0RBQjIwMDI2QTgxNSAvKiBXZWJM
b2NrTWFuYWdlclNuYXBzaG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0Njc4MDJCMDI3NDcxMTdCMDBEQTlGQjYgLyogV2ViTG9ja01hbmFnZXJTbmFw
c2hvdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ2MzUyMUFEMjA4MTA5MkEwMEMyODkyMiAvKiBXaW5kb3dQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNTIxQUEyMDgxMDkwQjAwQzI4OTIy
IC8qIFdpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNDYzRUI2MjMxQjg3ODlFMDAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4
Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9uLmggKi87IH07Ci0JCTQ2NDRGN0Y3MjcyQTFD
MUIwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUIyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tNb2Rl
LmggKi87IH07CisJCTQ2NDRGN0Y3MjcyQTFDMUIwMDU1NTk5RSAvKiBXZWJMb2NrTW9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUIyNzJB
MUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDY0NEY3RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxv
Y2tHcmFudGVkQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2NDRGN0VFMjcyQTFDMTYwMDU1NTk5RSAvKiBXZWJMb2NrR3JhbnRlZENhbGxi
YWNrLmggKi87IH07CiAJCTQ2NDRGN0Y5MjcyQTFDMjEwMDU1NTk5RSAvKiBXZWJMb2NrTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3
RjAyNzJBMUMxNjAwNTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggKi87IH07CiAJCTQ2NDRGN0ZB
MjcyQTFDMjUwMDU1NTk5RSAvKiBXZWJMb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdGMzI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9jay5o
ICovOyB9OwpAQCAtMzc1NzIsNyArMzc1NzQsOSBAQAogCQkJCTBGQ0YzMzJGMEYyQjlBMjUwMDRC
Njc5NSAvKiBXZWJMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RkEyNzJBMUMyNTAw
NTU1OTlFIC8qIFdlYkxvY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2NDRGN0Y4MjcyQTFDMUYw
MDU1NTk5RSAvKiBXZWJMb2NrR3JhbnRlZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
NjJDN0Y0MTI3NTZEQkU0MDBEMDgzQzggLyogV2ViTG9ja0lkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2NDRGN0Y5MjcyQTFDMjEwMDU1NTk5RSAvKiBXZWJMb2NrTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDYzNEM3MkMyNzU3REFCMjAwMjZBODE1IC8qIFdlYkxvY2tNYW5h
Z2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2NDRGN0Y3MjcyQTFDMUIwMDU1NTk5
RSAvKiBXZWJMb2NrTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0Q0FGMDkyNzQzMzFBNzAw
M0I5RTQxIC8qIFdlYkxvY2tSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGNUNGRjUy
NTgyQTUxRDAwNjYyRUY1IC8qIFdlYk1BdWRpb1V0aWxpdGllc0NvY29hLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggM2EwNjRiYzcyMzFh
MzYwMGNjODNkYzU4YTlhMmU3ZmYyZWU5NmIzNS4uYzA4Nzg1YWY4ZmM5MjRlMzUzZmZkNDgzZGY3
Yjk1ZGEyNDQzYWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAg
LTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIgog
I2luY2x1ZGUgIlVzZXJDb250ZW50UHJvdmlkZXIuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0
b3JlLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSGVhcElubGluZXMuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC0xMTcwLDYgKzExNzEsMjAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYs
IEJyb2FkY2FzdENoYW5uZWxJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsIHsgfQogfTsKIAorY2xhc3MgRW1w
dHlXZWJMb2NrUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgV2ViTG9ja1JlZ2lzdHJ5IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEVtcHR5V2ViTG9ja1JlZ2lzdHJ5PiBjcmVhdGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlXZWJMb2NrUmVnaXN0cnkpOworICAg
IH0KK3ByaXZhdGU6CisgICAgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBX
ZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIFdlYkxvY2tNb2RlLCBib29sLCBib29sLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYm
LCBGdW5jdGlvbjx2b2lkKCk+JiYpIHsgfQorICAgIHZvaWQgcmVsZWFzZUxvY2soY29uc3QgQ2xp
ZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGFib3J0TG9ja1JlcXVl
c3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVudE9yaWdp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikg
eyB9CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBDbGllbnRPcmlnaW4mLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgeyB9Cit9OworCiBQYWdlQ29uZmlndXJhdGlv
biBwYWdlQ29uZmlndXJhdGlvbldpdGhFbXB0eUNsaWVudHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKQogewogICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uIHsKQEAgLTEx
ODYsNiArMTIwMSw3IEBAIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVt
cHR5Q2xpZW50cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8RHVtbXlTcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVl
UmVmPEVtcHR5TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBFbXB0eUJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeTo6Y3JlYXRlKCksCisgICAgICAgIEVtcHR5V2ViTG9ja1JlZ2lzdHJ5
OjpjcmVhdGUoKSwKICAgICAgICAgRHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCks
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAg
IG1ha2VVbmlxdWVSZWY8RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAppbmRleCA1NzA2YWQ4NjI4ZmI5YmIyYzQ5ODY1MzVjNjMyZDlkMmRhYzkxM2VmLi5mMzdkMDU5
YjBlYjUyNmM1NDljMGQ3ZGViNGVhNWEwODgwZmYwZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAg
LTMwNiw2ICszMDYsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZp
Z3VyYXRpb24pCiAgICAgLCBtX3VzZXJDb250ZW50UHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbi51c2VyQ29udGVudFByb3ZpZGVyKSkKICAgICAsIG1fdmlzaXRlZExpbmtTdG9yZSgq
V1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi52aXNpdGVkTGlua1N0b3JlKSkKICAgICAsIG1fYnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uYnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KFdURk1vdmUocGFnZUNv
bmZpZ3VyYXRpb24ud2ViTG9ja1JlZ2lzdHJ5KSkKICAgICAsIG1fc2Vzc2lvbklEKHBhZ2VDb25m
aWd1cmF0aW9uLnNlc3Npb25JRCkKICNpZiBFTkFCTEUoVklERU8pCiAgICAgLCBtX3BsYXliYWNr
Q29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXIoKnRoaXMsICZQYWdlOjpwbGF5YmFja0NvbnRyb2xz
TWFuYWdlclVwZGF0ZVRpbWVyRmlyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGYxZTA4YmM0ZmVjMDc0
OTE2YTM3MzNhZGZmNjIwNzFkYTRlZDM4NTYuLjc3OWQ5M2EyNDU5MDUyYzEyMzBiMDMxMzA4ODBk
N2E0NGJmZjk2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNjcsNiArMTY3LDcgQEAgY2xhc3MgVmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogY2xhc3MgVmlz
aXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOworY2xhc3MgV2ViTG9ja1Jl
Z2lzdHJ5OwogY2xhc3MgV2hlZWxFdmVudERlbHRhRmlsdGVyOwogY2xhc3MgV2hlZWxFdmVudFRl
c3RNb25pdG9yOwogCkBAIC0yOTgsNiArMjk5LDggQEAgcHVibGljOgogICAgIEJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeSYgYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCkgeyByZXR1cm4gbV9icm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEJyb2Fk
Y2FzdENoYW5uZWxSZWdpc3RyeShSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmKTsgLy8g
T25seSB1c2VkIGJ5IFdlYktpdExlZ2FjeS4KIAorICAgIFdlYkxvY2tSZWdpc3RyeSYgd2ViTG9j
a1JlZ2lzdHJ5KCkgeyByZXR1cm4gbV93ZWJMb2NrUmVnaXN0cnk7IH0KKwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIGZvckVhY2hQYWdlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoUGFnZSYp
PiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB1bnNpZ25lZCBub25VdGlsaXR5UGFnZUNv
dW50KCk7CiAKQEAgLTExMzIsNiArMTEzNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFVzZXJDb250
ZW50UHJvdmlkZXI+IG1fdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWY8VmlzaXRlZExpbmtT
dG9yZT4gbV92aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0
cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OworICAgIFJlZjxXZWJMb2NrUmVnaXN0cnk+
IG1fd2ViTG9ja1JlZ2lzdHJ5OwogICAgIFJlZlB0cjxXaGVlbEV2ZW50VGVzdE1vbml0b3I+IG1f
d2hlZWxFdmVudFRlc3RNb25pdG9yOwogICAgIFdlYWtIYXNoU2V0PEFjdGl2aXR5U3RhdGVDaGFu
Z2VPYnNlcnZlcj4gbV9hY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXJzOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDE5N2M3OGU0ZmU5ODFlZWY4YzJh
ZDRhZmI2NTc2NmM1YjM4OGVjN2EuLmFlNDI3YjdkMmNmZTdiMjIyYTU1ZDg1ZTk4MThiMDQ0Nzg1
NGNjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC01
NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCiAjaW5jbHVk
ZSAiVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3Jl
LmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaWYgRU5BQkxFKFdFQkdMKQogI2lu
Y2x1ZGUgIldlYkdMU3RhdGVUcmFja2VyLmgiCiAjZW5kaWYKQEAgLTYzLDcgKzY0LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYWdlQ29uZmlndXJhdGlvbjo6UGFnZUNvbmZpZ3VyYXRp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmIGVk
aXRvckNsaWVudCwgUmVmPFNvY2tldFByb3ZpZGVyPiYmIHNvY2tldFByb3ZpZGVyLCBVbmlxdWVS
ZWY8TGliV2ViUlRDUHJvdmlkZXI+JiYgbGliV2ViUlRDUHJvdmlkZXIsIFJlZjxDYWNoZVN0b3Jh
Z2VQcm92aWRlcj4mJiBjYWNoZVN0b3JhZ2VQcm92aWRlciwgUmVmPFVzZXJDb250ZW50UHJvdmlk
ZXI+JiYgdXNlckNvbnRlbnRQcm92aWRlciwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYmIGJhY2tG
b3J3YXJkQ2xpZW50LCBSZWY8Q29va2llSmFyPiYmIGNvb2tpZUphciwgVW5pcXVlUmVmPFByb2dy
ZXNzVHJhY2tlckNsaWVudD4mJiBwcm9ncmVzc1RyYWNrZXJDbGllbnQsIFVuaXF1ZVJlZjxGcmFt
ZUxvYWRlckNsaWVudD4mJiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUsIFVuaXF1ZVJlZjxTcGVl
Y2hSZWNvZ25pdGlvblByb3ZpZGVyPiYmIHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIsIFVuaXF1
ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYgbWVkaWFSZWNvcmRlclByb3ZpZGVyLCBSZWY8
QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSwgUmVm
PFBlcm1pc3Npb25Db250cm9sbGVyPiYmIHBlcm1pc3Npb25Db250cm9sbGVyLCBVbmlxdWVSZWY8
U3RvcmFnZVByb3ZpZGVyPiYmIHN0b3JhZ2VQcm92aWRlciwgVW5pcXVlUmVmPE1vZGVsUGxheWVy
UHJvdmlkZXI+JiYgbW9kZWxQbGF5ZXJQcm92aWRlcikKK1BhZ2VDb25maWd1cmF0aW9uOjpQYWdl
Q29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JD
bGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYgc29ja2V0UHJvdmlk
ZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQcm92aWRlciwgUmVm
PENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVyLCBSZWY8VXNlckNv
bnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29va2llSmFyLCBVbmlx
dWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tlckNsaWVudCwgVW5p
cXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVjb2duaXRpb25Qcm92
aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRpYVJlY29yZGVyUHJv
dmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5LCBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiYmIHdlYkxvY2tSZWdpc3RyeSwgUmVmPFBlcm1p
c3Npb25Db250cm9sbGVyPiYmIHBlcm1pc3Npb25Db250cm9sbGVyLCBVbmlxdWVSZWY8U3RvcmFn
ZVByb3ZpZGVyPiYmIHN0b3JhZ2VQcm92aWRlciwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlk
ZXI+JiYgbW9kZWxQbGF5ZXJQcm92aWRlcikKICAgICA6IHNlc3Npb25JRChzZXNzaW9uSUQpCiAg
ICAgLCBlZGl0b3JDbGllbnQoV1RGTW92ZShlZGl0b3JDbGllbnQpKQogICAgICwgc29ja2V0UHJv
dmlkZXIoV1RGTW92ZShzb2NrZXRQcm92aWRlcikpCkBAIC03NSw2ICs3Niw3IEBAIFBhZ2VDb25m
aWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVu
aXF1ZVJlZjxFZGl0b3JDCiAgICAgLCBjYWNoZVN0b3JhZ2VQcm92aWRlcihXVEZNb3ZlKGNhY2hl
U3RvcmFnZVByb3ZpZGVyKSkKICAgICAsIHVzZXJDb250ZW50UHJvdmlkZXIoV1RGTW92ZSh1c2Vy
Q29udGVudFByb3ZpZGVyKSkKICAgICAsIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeShXVEZNb3Zl
KGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSkpCisgICAgLCB3ZWJMb2NrUmVnaXN0cnkoV1RGTW92
ZSh3ZWJMb2NrUmVnaXN0cnkpKQogICAgICwgc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcihXVEZN
b3ZlKHNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXIpKQogICAgICwgbWVkaWFSZWNvcmRlclByb3Zp
ZGVyKFdURk1vdmUobWVkaWFSZWNvcmRlclByb3ZpZGVyKSkKICAgICAsIHBlcm1pc3Npb25Db250
cm9sbGVyKFdURk1vdmUocGVybWlzc2lvbkNvbnRyb2xsZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDdmYjMzNDY1N2UzMTIwYzVhZGJkMmQ0ZDJhZmZiNjAw
YWIyOWJiMmYuLmJhYzZmYjJmNWU2MWQ0MTdmZjljNTg0Y2RhNDhiYjQ2OWU5ZDA2Y2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTc0LDExICs3NCwxMiBAQCBj
bGFzcyBVc2VyQ29udGVudFVSTFBhdHRlcm47CiBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVu
dDsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CiBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsKK2Ns
YXNzIFdlYkxvY2tSZWdpc3RyeTsKIAogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb24gewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25maWd1cmF0aW9uKTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbmZpZ3VyYXRpb24oUEFM
OjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYsIFJlZjxTb2NrZXRQcm92aWRl
cj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBSZWY8Q2FjaGVTdG9yYWdlUHJv
dmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmLCBSZWY8QmFja0ZvcndhcmRDbGll
bnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+
JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5pcXVlUmVmPFNwZWVjaFJlY29n
bml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+JiYsIFJl
ZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4m
JiwgVW5pcXVlUmVmPFN0b3JhZ2VQcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJv
dmlkZXI+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vz
c2lvbklELCBVbmlxdWVSZWY8RWRpdG9yQ2xpZW50PiYmLCBSZWY8U29ja2V0UHJvdmlkZXI+JiYs
IFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVy
PiYmLCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiwgUmVmPEJhY2tGb3J3YXJkQ2xpZW50PiYm
LCBSZWY8Q29va2llSmFyPiYmLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmLCBV
bmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxTcGVlY2hSZWNvZ25pdGlv
blByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPiYmLCBSZWY8QnJv
YWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiYmLCBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiYmLCBSZWY8UGVy
bWlzc2lvbkNvbnRyb2xsZXI+JiYsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYsIFVuaXF1
ZVJlZjxNb2RlbFBsYXllclByb3ZpZGVyPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+UGFnZUNv
bmZpZ3VyYXRpb24oKTsKICAgICBQYWdlQ29uZmlndXJhdGlvbihQYWdlQ29uZmlndXJhdGlvbiYm
KTsKIApAQCAtMTI4LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICBSZWY8VXNlckNvbnRlbnRQcm92
aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4g
dmlzaXRlZExpbmtTdG9yZTsKICAgICBSZWY8QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBicm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFdlYkxvY2tSZWdpc3RyeT4gd2ViTG9ja1Jl
Z2lzdHJ5OwogICAgIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+
IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA4
MmFhNWYyMmRkNzIwYzE5MTg0NmE5NDJhMzkxNGNiZmVhYzg2YzdlLi5lOGVhZDYwMjczYjc1MTg5
NDAxNjYyZDRkZmEwYjMxNzNiMjJjOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTIyOSw2ICsy
MjksNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
CiAgICAgVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5CisgICAgVUlQcm9jZXNz
L1dlYkxvY2tSZWdpc3RyeVByb3h5CiAgICAgVUlQcm9jZXNzL1dlYlBhZ2VQcm94eQogICAgIFVJ
UHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wK
QEAgLTMwNyw2ICszMDgsNyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBX
ZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlcgogCisgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeQogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCBhNzg5
N2I5NjFhMzlkYWY5MjdjNTRkMTJlZmEzYzg5NzE0OTdiMDJmLi44NTkyZDk5ZDJlMzZhZmM5ZWY4
NWRjYzFjM2Y1NzRlYzE5NWVlZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNTMsNiArMTUzLDcgQEAgJChQUk9KRUNUX0RJUikvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lz
dHJ5UHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJv
eHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5t
ZXNzYWdlcy5pbgpAQCAtMjE3LDYgKzIxOCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3Rl
V2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXgg
OTNhNjE0NmQ2YjEzOWNiOGExNmExNzFiYjc3ZDQ0YmQzYjU4YjY1Yi4uYTU5ZTYyM2IwOWU2YTk3
ZWZmZWQ0ZjljNTJmNTczNjM2NDVlYWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0zODcsNiArMzg3LDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNz
YWdlc1JlcGxpZXMKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZVdlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVBy
b3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2NrUmVnaXN0cnlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJMb2NrUmVnaXN0cnlNZXNzYWdl
c1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXNSZXBsaWVzLmgKQEAgLTUyNiw2ICs1Mjks
OSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlQ
cm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZXNSZXBsaWVz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNS
ZWdpc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYk1ETlNSZWdpc3Rlck1lc3NhZ2VzUmVw
bGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNDU3NDM4NjVhNGFjODMyZDNl
NWRiZDRhZmQ0MzhiZDc1MzJjZDkyMy4uMTkzMzg4NDk2MWI0YmMzMDRmMDg5YjBiNTRlMTQ4OTFi
NWMzNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTY4LDYgKzE2OCw3IEBA
IE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVVJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9u
Q29udHJvbGxlciBcCiAJVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5IFwKIAlVSVByb2Nl
c3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgXAorCVVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0
cnlQcm94eSBcCiAJVUlQcm9jZXNzL0NvY29hL1BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBc
CiAJVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgXAogCVVJUHJv
Y2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgXApAQCAtMjE4LDYgKzIxOSw3
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
UlRDTW9uaXRvciBcCiAJV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIg
XAogCVdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViUlRDUmVzb2x2ZXIgXAorCVdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IFwKIAlXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSBcCiAJV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIFwKIAlXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbiBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA3NmMyZGViYWZkOTFk
MTZmOGQ3NzA4OTNmNDg4OTY5MDBkZmUyNmQyLi4yYzgzOWE5ZTliY2Q4ZTlmMTIxZGY4OTMwZmY0
MmZjNjBjYjI3ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTMxMiw2ICszMTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCgpOgogICAgICAgICAnV2ViQ29yZTo6U291cmNlQnVmZmVyQXBwZW5kTW9kZScsCiAgICAg
ICAgICdXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3RJZGVudGlmaWVyJywKKyAgICAg
ICAgJ1dlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OldlYlNv
Y2tldElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQn
LAogICAgICAgICAnV2ViS2l0OjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFs
VW5pdElkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggM2U0M2QzZTEzYTc2NzhmODE0Y2I2YzQ3
NDEyNzA5YTMzM2Q3OTU0Yi4uZmU2MDQxMmMyYTE1MmFiNWM0MmVmYWZjMGJiOGJhMjRhNDc4OWZi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC00MzUsNiArNDM1LDcgQEAgVUlQcm9jZXNzL1dlYkZyYW1lUHJv
eHkuY3BwCiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlv
blByb3ZpZGVyLmNwcAorVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmNwcAogVUlQcm9j
ZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKIFVJUHJvY2Vzcy9XZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5LmNwcAogVUlQcm9jZXNzL1dlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAKQEAgLTc4MSw2ICs3ODIsNyBAQCBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJD
b250ZW50Q29udHJvbGxlci5jcHAKIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcAogCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vz
c2lvblN0YXRlQ29udmVyc2lvbi5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2hhcmVh
YmxlQml0bWFwVXRpbGl0aWVzLmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwCkBAIC04NDcsOCArODQ5LDYgQEAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VSZWNlaXZlci5j
cHAKIFBsYXRmb3JtWFJTeXN0ZW1Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKLVdlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKLQogUmVtb3RlQWRhcHRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKIFJlbW90ZUJpbmRHcm91cE1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90
ZUJpbmRHcm91cExheW91dE1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTg3MSwzICs4NzEsNiBAQCBS
ZW1vdGVTYW1wbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogUmVtb3RlU2hhZGVyTW9kdWxlTWVzc2Fn
ZVJlY2VpdmVyLmNwcAogUmVtb3RlVGV4dHVyZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRl
eHR1cmVWaWV3TWVzc2FnZVJlY2VpdmVyLmNwcAorUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAorV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVy
LmNwcAorV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjU1NWJmN2NhOTUxN2NkMjMxNjlkNzExMTFhYmVkMWU2N2E5MzRiZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmNwcApAQCAt
MCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2Nr
UmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja0lk
ZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FH
RV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV9wcm9jZXNzLmNvbm5lY3Rpb24oKSkKKworV2ViTG9j
a1JlZ2lzdHJ5UHJveHk6OldlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlByb2Nlc3NQcm94eSYgcHJv
Y2VzcykKKyAgICA6IG1fcHJvY2Vzcyhwcm9jZXNzKQoreworICAgIG1fcHJvY2Vzcy5hZGRNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksICp0aGlzKTsKK30KKworV2ViTG9ja1JlZ2lzdHJ5UHJveHk6On5XZWJMb2NrUmVn
aXN0cnlQcm94eSgpCit7CisgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisK
K3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlcXVlc3RMb2NrKFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
LCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSBsb2NrTW9kZSwgYm9vbCBzdGVh
bCwgYm9vbCBpZkF2YWlsYWJsZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVy
LnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigp
KTsKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9w
cm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKworICAgIG1fcHJvY2Vzcy53ZWJzaXRl
RGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVxdWVzdExvY2soV1RGTW92ZShjbGllbnRP
cmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUobmFtZSksIGxvY2tNb2Rl
LCBzdGVhbCwgaWZBdmFpbGFibGUsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBsb2Nr
SWRlbnRpZmllciwgY2xpZW50SURdKGJvb2wgc3VjY2VzcykgeworICAgICAgICBpZiAod2Vha1Ro
aXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVdlYkxvY2tSZWdpc3RyeTo6RGlkQ29tcGxldGVMb2NrUmVxdWVzdChsb2NrSWRlbnRpZmllciwg
Y2xpZW50SUQsIHN1Y2Nlc3MpLCAwKTsKKyAgICB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykK
KyAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6UmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5OjpEaWRTdGVhbExvY2sobG9ja0lkZW50aWZpZXIsIGNsaWVudElEKSwgMCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlbGVhc2VMb2NrKFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobG9j
a0lkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJ
ZGVudGlmaWVyKCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZp
ZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vz
cy53ZWJzaXRlRGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkucmVsZWFzZUxvY2soV1RGTW92
ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIFdURk1vdmUobmFtZSkp
OworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElELCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobG9ja0lkZW50aWZp
ZXIucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVy
KCkpOworICAgIE1FU1NBR0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBt
X3Byb2Nlc3MuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRl
RGF0YVN0b3JlKCkud2ViTG9ja1JlZ2lzdHJ5KCkuYWJvcnRMb2NrUmVxdWVzdChXVEZNb3ZlKGNs
aWVudE9yaWdpbiksIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgV1RGTW92ZShuYW1lKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5
OjpzbmFwc2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxv
Y2tSZWdpc3RyeSgpLnNuYXBzaG90KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5OjpjbGllbnRJ
c0dvaW5nQXdheShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIE1FU1NB
R0VfQ0hFQ0soY2xpZW50SUQucHJvY2Vzc0lkZW50aWZpZXIoKSA9PSBtX3Byb2Nlc3MuY29yZVBy
b2Nlc3NJZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy53ZWJzaXRlRGF0YVN0b3JlKCkud2Vi
TG9ja1JlZ2lzdHJ5KCkuY2xpZW50SXNHb2luZ0F3YXkoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBj
bGllbnRJRCk7Cit9CisKK3ZvaWQgV2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnByb2Nlc3NEaWRFeGl0
KCkKK3sKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgp
LmNsaWVudHNBcmVHb2luZ0F3YXkobV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsK
K30KKworI3VuZGVmIE1FU1NBR0VfQ0hFQ0sKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYmEzMWE5YjkyYjcxNjFjN2NhZDYwMmJmYmExYjgzNjk5NzMzMjdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJMb2NrSWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvV2ViTG9ja01vZGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3Ry
dWN0IENsaWVudE9yaWdpbjsKK3N0cnVjdCBXZWJMb2NrTWFuYWdlclNuYXBzaG90OworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworCitjbGFzcyBXZWJM
b2NrUmVnaXN0cnlQcm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViTG9j
a1JlZ2lzdHJ5UHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgfldlYkxvY2tSZWdpc3RyeVBy
b3h5KCk7CisKKyAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0
ZToKKyAgICAvLyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIHJlcXVlc3RMb2NrKFdl
YkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIFdlYkNv
cmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKTsKKyAgICB2b2lk
IHJlbGVhc2VMb2NrKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpXZWJMb2NrSWRl
bnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFN0cmlu
ZyYmIG5hbWUpOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKKyAgICB2b2lkIHNuYXBzaG90KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+
JiYpOworICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYs
IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKKworICAgIFdlYlBy
b2Nlc3NQcm94eSYgbV9wcm9jZXNzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHku
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGJhYmMyNTRjNDFlMGUwMTkxNTZjYTgxMmM0NmZlNzkw
MzA1MTdlMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkxv
Y2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisj
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViTG9ja1JlZ2lzdHJ5
UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgUmVxdWVzdExvY2soc3RydWN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElE
LCBTdHJpbmcgbmFtZSwgZW51bTpib29sIFdlYkNvcmU6OldlYkxvY2tNb2RlIG1vZGUsIGJvb2wg
c3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCisgICAgUmVsZWFzZUxvY2soc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVu
dElELCBTdHJpbmcgbmFtZSkKKyAgICBBYm9ydExvY2tSZXF1ZXN0KHN0cnVjdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
RCwgU3RyaW5nIG5hbWUpIC0+IChib29sIHdhc0Fib3J0ZWQpIEFzeW5jCisgICAgU25hcHNob3Qo
c3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4pIC0+IChzdHJ1Y3QgV2Vi
Q29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCBzbmFwc2hvdCkgQXN5bmMKKyAgICBDbGllbnRJ
c0dvaW5nQXdheShzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWQpCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwMjhjOGQ4ZWYw
NzE0YzgyZWI5MDRjOTRlN2UyOTcxZDg1YmFlYjEzLi42NjU2ZTJkZGRkM2I0MmNjNzA3ZThhMjhi
NWRhOWFkYTcwODA5OWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hl
LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYklu
c3BlY3RvclV0aWxpdGllcy5oIgorI2luY2x1ZGUgIldlYkxvY2tSZWdpc3RyeVByb3h5LmgiCiAj
aW5jbHVkZSAiV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5oIgpAQCAtMjQwLDYg
KzI0MSw3IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29s
JiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICAsIG1fY2FwdGl2ZVBvcnRhbE1v
ZGUoY2FwdGl2ZVBvcnRhbE1vZGUpCiAgICAgLCBtX2Nyb3NzT3JpZ2luTW9kZShjcm9zc09yaWdp
bk1vZGUpCiAgICAgLCBtX3NodXRkb3duUHJldmVudGluZ1Njb3BlQ291bnRlcihbdGhpc10oUmVm
Q291bnRlckV2ZW50IGV2ZW50KSB7IGlmIChldmVudCA9PSBSZWZDb3VudGVyRXZlbnQ6OkRlY3Jl
bWVudCkgbWF5YmVTaHV0RG93bigpOyB9KQorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkod2Vic2l0
ZURhdGFTdG9yZSA/IG1ha2VVbmlxdWU8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+KCp0aGlzKSA6IG51
bGxwdHIpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVk
KCkpOwogICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzLCAiY29uc3RydWN0
b3I6Iik7CkBAIC0zNDUsNiArMzQ3LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRXZWJz
aXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSkKICNlbmRpZgogICAgIHVw
ZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRhU3RvcmUoKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpTZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhwcm9jZXNzUG9vbCgpLndlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKCp0aGlzLCBkYXRhU3RvcmUpKSwgMCk7CisKKyAgICAv
LyBEZWxheSBjb25zdHJ1Y3Rpb24gb2YgdGhlIFdlYkxvY2tSZWdpc3RyeVByb3h5IHVudGlsIHRo
ZSBXZWJQcm9jZXNzUHJveHkgaGFzIGEgZGF0YSBzdG9yZSBzaW5jZSB0aGUgZGF0YSBzdG9yZSBo
b2xkcyB0aGUKKyAgICAvLyBMb2NhbFdlYkxvY2tSZWdpc3RyeS4KKyAgICBtX3dlYkxvY2tSZWdp
c3RyeSA9IG1ha2VVbmlxdWU8V2ViTG9ja1JlZ2lzdHJ5UHJveHk+KCp0aGlzKTsKIH0KIAogYm9v
bCBXZWJQcm9jZXNzUHJveHk6OmlzRHVtbXlQcm9jZXNzUHJveHkoKSBjb25zdApAQCAtNTI4LDYg
KzUzNCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiAgICAgbV91c2VySW5p
dGlhdGVkQWN0aW9uTWFwLmNsZWFyKCk7CiAgICAgbV9zbGVlcERpc2FibGVycy5jbGVhcigpOwog
CisgICAgaWYgKG1fd2ViTG9ja1JlZ2lzdHJ5KQorICAgICAgICBtX3dlYkxvY2tSZWdpc3RyeS0+
cHJvY2Vzc0RpZEV4aXQoKTsKKwogI2lmIEVOQUJMRShST1VUSU5HX0FSQklUUkFUSU9OKQogICAg
IG1fcm91dGluZ0FyYml0cmF0b3ItPnByb2Nlc3NEaWRUZXJtaW5hdGUoKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBkYTZkYzY4ZWViY2Vj
YjQyMzYyN2VjOTg5ZDZiY2FhODAxNTc0OTczLi5mNzQ0ODBmZmE3Y2M5ZjE4MDY1MjFlNWJiMDU1
MWY0NDY2YmU1N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aApAQCAtOTMsNiArOTMsNyBAQCBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTsK
IGNsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnlQcm94eTsKIGNsYXNz
IFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29s
OwpAQCAtNjc0LDYgKzY3NSw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlTWFuYWdlcj4gbV9zcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2VNYW5hZ2VyOwogI2VuZGlmCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkxvY2tSZWdpc3RyeVBy
b3h5PiBtX3dlYkxvY2tSZWdpc3RyeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcAppbmRleCBmYzFkOWFlOTg5M2RkOTEwMTY3M2Y3YzhkYWU2ZjNiOWJhOGUzOWM3
Li45MDk3OTNlMzc1NjhjMDQyYjEwMDJhMjZhYTAyNzQ3ODRhOTFlNGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU3RvcmFnZVF1b3RhTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1Jl
Z2lzdHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZENvcGll
ci5oPgpAQCAtMTMwLDYgKzEzMSw3IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3Rv
cmUoUmVmPFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyCiAjaWYgSEFW
RShBUFBfU1NPKQogICAgICwgbV9zb0F1dGhvcml6YXRpb25Db29yZGluYXRvcihtYWtlVW5pcXVl
UmVmPFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yPigpKQogI2VuZGlmCisgICAgLCBtX3dlYkxv
Y2tSZWdpc3RyeShXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAg
ICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwogICAgIHJlZ2lz
dGVyV2l0aFNlc3Npb25JRE1hcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDYxOTYyODBmNzZkYTEyMDI5
OGUyYjdhYjE2NDA1ZDJmMGJhMjg5MjMuLjFkZTI1YTY2MDU3ZjJkNjZjNjI5OWU1ZWJiYjgxNDZi
ZWU5YjgxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTc1LDYgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgUmVnaXN0cmFibGVEb21haW47CiBj
bGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OwogCiBzdHJ1
Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIH0KQEAgLTMxNyw2ICszMTgs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQoVW5pcXVlUmVmPFdlYnNpdGVEYXRhU3Rv
cmVDbGllbnQ+JiYgY2xpZW50KSB7IG1fY2xpZW50ID0gV1RGTW92ZShjbGllbnQpOyB9CiAKICAg
ICBBUEk6OkhUVFBDb29raWVTdG9yZSYgY29va2llU3RvcmUoKTsKKyAgICBXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5KCkgeyByZXR1cm4gbV93ZWJMb2NrUmVn
aXN0cnkuZ2V0KCk7IH0KIAogICAgIHZvaWQgcmVuYW1lT3JpZ2luSW5XZWJzaXRlRGF0YShVUkwm
JiwgVVJMJiYsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCkBAIC00NzEsNiArNDczLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5U
RUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gbV90aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlOyAvLyBMYXppbHkgY29tcHV0ZWQuCiAjZW5kaWYKKyAgICBSZWY8V2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjEy
MDRlM2M0M2JiODZhZWQ0NmIzYzUxMTAzNTM4ZWE1NzJiOGQ4MC4uYTQ1MTE1ZjQ4OWFhMmNjYmM5
YmVjNGNlMTdkZjYwN2JlMjg1YjUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MDgsNiArOTA4LDcgQEAKIAkJNDYzRkQ0ODAxRUI5
NDU5NjAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ3RjFFQjk0NTg0MDBBMjk4
MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyog
UHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uLmggKi87IH07CiAJCTQ2NUY0RTA2MjMwQjJFOTUwMDNDRURCNyAvKiBTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY1RjRFMDUyMzBCMkU3QzAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3Bh
Y2VJZGVudGlmaWVyLmggKi87IH07CisJCTQ2NUZBNzI2Mjc1N0Q5M0QwMDcyMzYyQiAvKiBXZWJM
b2NrUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5
LmggKi87IH07CiAJCTQ2NkJDMDNDMUZBMjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmggKi87IH07CiAJCTQ2NzFGRjFGMjMyMTdFRkYwMDFCNjRDNyAvKiBXZWJSZXNvdXJj
ZUxvYWRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY3MUZGMUQyMzIxN0VGRjAwMUI2NEM3IC8qIFdlYlJlc291cmNlTG9hZE9ic2VydmVy
LmggKi87IH07CiAJCTQ2N0U0M0U4MjI0M0ZGN0QwMEIxMzkyNCAvKiBXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY3RTQzRTcyMjQzRkY2RDAwQjEzOTI0IC8qIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzLmggKi87IH07CkBAIC00MTc2LDYgKzQxNzcsOSBAQAogCQk0NjVGNEUwMjIzMDc1OUQ1
MDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b3Jh
Z2VBcmVhSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUw
MzIzMDc2MDRFMDAzQ0VEQjcgLyogU3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2NUY0RTA1MjMwQjJFN0MwMDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyog
V2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjQyNzU3RDkxODAwNzIz
NjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkxvY2tSZWdp
c3RyeVByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjVG
QTcyNTI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwM0Ex
RkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE4Niw2ICs0MTkw
LDggQEAKIAkJNDY4MDlBN0IyM0Q5MjI1MzAwQzI5N0QwIC8qIFdlYkNvb2tpZUNhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvb2tpZUNhY2hlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzU2OUEyMUU4MUNDNzAwNkUyN0EzIC8q
IFByb3Zpc2lvbmFsUGFnZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFByb3Zpc2lvbmFsUGFnZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2
ODM1NjlCMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODlCOTBGMjc1NkQxNDMwMDA3QzY1MSAv
KiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2ODlCOTEwMjc1NkQxNDMw
MDA3QzY1MSAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDY5REU4MDIyNzNFQ0M1RDAwOTMwMjc2IC8qIFByb2Nlc3NMYXVuY2hlckNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc0xhdW5jaGVyQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVE
QSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVz
c1RpbWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDcxRTU2NzVB
MjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyMDQsNiArNDIxMCw4
IEBACiAJCTQ2Q0UzQjEwMjNEOEM4M0QwMDE2QTk2QSAvKiBXZWJCYWNrRm9yd2FyZExpc3RDb3Vu
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQmFja0ZvcndhcmRMaXN0
Q291bnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2REYwNjM5MUYzOTA1RTUw
MDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2M0ExRjM5MDVFNTAwMTk4MEJCIC8q
IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDZFOTc2MEEyNzU3RjZDOTAwQUNERDM3IC8qIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQzNyAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0NzI2OUUwNDlC
MDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUUyODQ4MjY5RTA0OUIwMERENDhBQiAv
KiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ2RUUyODRBMjY5RTA1MTcwMERENDhBQiAvKiBOZXR3b3JrQnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5ldHdv
cmtCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDUzOCw2ICsxMDU0Niw5IEBACiAJCQkJQ0Q2MTc4MTExRTZERTk4MDAw
RkRBNTdEIC8qIGNvY29hICovLAogCQkJCTJEMjhGM0RGMTg4NUNDQjQwMDRCOUVBRSAvKiBpb3Mg
Ki8sCiAJCQkJQkMxMTFBREUxMTJGNUI5QTAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk0Njg5Qjkx
MDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCAqLywKKwkJCQk0
Njg5QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmggKi8sCisJ
CQkJNDZFOTc2MEIyNzU3RjZDOTAwQUNERDM3IC8qIFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNz
YWdlcy5pbiAqLywKIAkJCQkxQTcyODQ0NDE5NTlFRDEwMDAwN0JDRTUgLyogU2Vzc2lvblN0YXRl
Q29udmVyc2lvbi5jcHAgKi8sCiAJCQkJMUE3Mjg0NDUxOTU5RUQxMDAwMDdCQ0U1IC8qIFNlc3Np
b25TdGF0ZUNvbnZlcnNpb24uaCAqLywKIAkJCQlGNDNBOUNERTI1RDcyRTJEMDA5OTBFMjYgLyog
U2hhcmVhYmxlQml0bWFwVXRpbGl0aWVzLmNwcCAqLywKQEAgLTEwNTQ1LDYgKzEwNTU2LDcgQEAK
IAkJCQlDRURBMTJERTE1MkNDQUU4MDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
LmggKi8sCiAJCQkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5jcHAgKi8sCiAJCQkJNDZFRTI4NDgyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBBMjc1N0Y2QzkwMEFDREQz
NyAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJRTNB
ODZGQkMyNjk1OEUzMzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmNw
cCAqLywKIAkJCQlFM0E4NkZCQjI2OTU4RDgzMDA1OTI2NEQgLyogV2ViQ2FwdGlvblByZWZlcmVu
Y2VzRGVsZWdhdGUuaCAqLywKIAkJCQlCQzExMUE1MzExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ2hy
b21lQ2xpZW50LmNwcCAqLywKQEAgLTEwODI4LDYgKzEwODQwLDkgQEAKIAkJCQlCQzFCRTFGMTEy
RDU0REJEMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAgKi8sCiAJCQkJQkMx
QkUxRjAxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCAqLywKIAkJ
CQk1MUM4RTE5QjFGMjE2MTcyMDBCRjczMUIgLyogV2ViSWNvbkRhdGFiYXNlLmggKi8sCisJCQkJ
NDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmNwcCAqLywK
KwkJCQk0NjVGQTcyMzI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCAq
LywKKwkJCQk0NjVGQTcyNDI3NTdEOTE4MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHku
bWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQzRUY0NDAxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9y
eVByZXNzdXJlSGFuZGxlci5jcHAgKi8sCiAJCQkJMkQzRUY0NDExOTE3NjQ2MzAwMDM0MTg0IC8q
IFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oICovLAogCQkJCTdDQ0NDOEY4MUE1RjUwRkQwMDhG
QjBEQSAvKiBXZWJOYXZpZ2F0aW9uU3RhdGUuY3BwICovLApAQCAtMTI0NDksOCArMTI0NjQsOCBA
QAogCQkJCTUxNjBFOTVFMjc0QzJBMDMwMDU2NzM4OCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjBFOTU5Mjc0QzBEODkwMDU2NzM4OCAvKiBQdXNoQXBw
QnVuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY3QkI3QjI3NDRDNTA3MDBDNDVBNzIgLyog
UHVzaENsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0I1RjJGMjc1NzM4
MkIwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxMkNENjlGMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVz
aERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTEzMzM0
LDYgKzEzMzQ5LDcgQEAKIAkJCQlCQ0I2MzQ3ODExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9D
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlCQTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0
MkluaXRpYWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjI4MEM3MTkxOTk1MEMwMDZBRDlG
OSAvKiBXZWJLaXRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjVGQTcyNjI3NTdEOTNE
MDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZF
RiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzk4LDYgKzEzNDE0
LDcgQEAKIAkJCQkxQTFFMDkzNDE4ODYxRDM4MDBEMkRDNDkgLyogV2ViUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNTg5RDEyQTg4Mzg4MDA2Mjk1MzAgLyog
V2ViUHJvdGVjdGlvblNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5ODI3MjFFRkM4
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTUxN0I1RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkNENjlBMjcyMUYwQTkwMEY3RjhFQyAv
KiBXZWJQdXNoRGFlbW9uQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjFDQ0NBNjIz
MTQ4NUFBMDBCNjU5QjkgLyogV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1ODYwRTcxMjMwRjY3RkMwMDQ2MUFBRSAvKiBXZWJSZXNvdXJjZUludGVyY2VwdENv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTM1NDgsNyArMTM1NjUsNiBAQAogCQkJCTVD
Nzk1RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDNzk1RDcxMjI5RjM3NTcwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51
RWxlbWVudEluZm9Qcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTVGNjEyOEM2QzQ3
MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTUxN0I1
RjJFMjc1NzM4MkEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTU1NjAxMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0Nv
bnRleHRNZW51SXRlbVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUVBMDIzODFEQUJGRjdF
MDA5NjAyMUYgLyogV0tDb250ZXh0TWVudUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0M5MzhFMTExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0UHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggZjg2MjliZTAwNjUw
YjM5MmI5MGM0ZmEzOTE5MWZjOTQ4NDBmYWIwMC4uMGI4NGJiZDM2OGZlYzlkNGRhOTY3YmZlMzE0
MDYwYzgwMjNiYjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIldl
YkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5oIgpAQCAtMTQ4LDYgKzE0OSw3IEBAIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRlciA9
IFdlYkRhdGFiYXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3VwSUQpOwogICAgIHBh
Z2VDb25maWd1cmF0aW9uLnNvY2tldFByb3ZpZGVyID0gV2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0
ZShtX3dlYlBhZ2VQcm94eUlEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5icm9hZGNhc3RDaGFu
bmVsUmVnaXN0cnkgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5icm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkoKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkgPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJMb2NrUmVnaXN0cnkoKTsKICAgICBwYWdlQ29uZmlndXJhdGlv
bi51c2VyQ29udGVudFByb3ZpZGVyID0gbV91c2VyQ29udGVudENvbnRyb2xsZXI7CiAjaWYgRU5B
QkxFKFdFQl9SVEMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubGliV2ViUlRDUHJvdmlkZXIgPSBt
YWtlVW5pcXVlUmVmPFNlcnZpY2VXb3JrZXJMaWJXZWJSVENQcm92aWRlcj4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Jl
bW90ZVdlYkxvY2tSZWdpc3RyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVhZjA5ZWU2YjM3NTljZWQ0Mjcy
N2YyZmZmMGU1YjNkOTM5OGU4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCkBAIC0wLDAg
KzEsMTQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bW90ZVdlYkxvY2tSZWdpc3RyeS5oIgorCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IExv
Y2tJbmZvIHsKKyAgICBGdW5jdGlvbjx2b2lkKCk+IGxvY2tTdG9sZW5IYW5kbGVyOworfTsKKwor
c3RydWN0IExvY2tSZXF1ZXN0IDogTG9ja0luZm8geworICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
IGxvY2tHcmFudGVkSGFuZGxlcjsKK307CisKK3N0cnVjdCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OkxvY2tzU25hcHNob3QgeworICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIs
IExvY2tSZXF1ZXN0PiBwZW5kaW5nUmVxdWVzdHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpXZWJM
b2NrSWRlbnRpZmllciwgTG9ja0luZm8+IGhlbGRMb2NrczsKKworICAgIGJvb2wgaXNFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkgJiYgaGVsZExvY2tzLmlz
RW1wdHkoKTsgfQorfTsKKworUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpSZW1vdGVXZWJMb2NrUmVn
aXN0cnkoV2ViUHJvY2VzcyYgcHJvY2VzcykKK3sKKyAgICBwcm9jZXNzLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksICp0aGlzKTsKK30KKworUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Ojp+UmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5KCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoKnRoaXMpOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExv
Y2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpX
ZWJMb2NrTW9kZSBsb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rp
b248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tT
dG9sZW5IYW5kbGVyKQoreworICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7IFdURk1vdmUobG9j
a1N0b2xlbkhhbmRsZXIpIH0sIFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CisgICAgYXV0byYg
c25hcHNob3QgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZW5zdXJlKGNsaWVudElELCBbXSB7
IHJldHVybiBMb2Nrc1NuYXBzaG90IHsgfTsgfSkuaXRlcmF0b3ItPnZhbHVlOworICAgIHNuYXBz
aG90LnBlbmRpbmdSZXF1ZXN0cy5hZGQobG9ja0lkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCkp
OworCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViTG9ja1Jl
Z2lzdHJ5UHJveHk6OlJlcXVlc3RMb2NrKGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNs
aWVudElELCBuYW1lLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlKSwgMCk7Cit9CisKK3Zv
aWQgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayhjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVu
dElELCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0byBpdCA9IG1fbG9ja3NTbmFwc2hv
dFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBpZiAoaXQgIT0gbV9sb2Nrc1NuYXBzaG90
UGVyQ2xpZW50LmVuZCgpKSB7CisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3MucmVtb3ZlKGxv
Y2tJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsKKyAgICB9CisKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6UmVsZWFzZUxvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwgY2xpZW50SUQsIG5h
bWUpLCAwKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVl
c3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6Oldl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViTG9ja1JlZ2lz
dHJ5UHJveHk6OkFib3J0TG9ja1JlcXVlc3QoY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmllciwg
Y2xpZW50SUQsIG5hbWUpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50
aWZpZXIsIGNsaWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShib29sIGRpZEFib3J0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzICYm
IGRpZEFib3J0KSB7CisgICAgICAgICAgICBhdXRvIGl0ID0gd2Vha1RoaXMtPm1fbG9ja3NTbmFw
c2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICAgICAgICAgIGlmIChpdCAhPSB3ZWFr
VGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKSB7CisgICAgICAgICAgICAgICAg
aXQtPnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOworICAgICAg
ICAgICAgICAgIGlmIChpdC0+dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB3
ZWFrVGhpcy0+bV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZGlkQWJvcnQpOworICAg
IH0sIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6c25hcHNob3QoY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpTbmFwc2hvdChjbGllbnRPcmlnaW4pLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVu
dE9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SUQpCit7CisgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShjbGllbnRJRCk7Cisg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VuZChNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5
UHJveHk6OkNsaWVudElzR29pbmdBd2F5KGNsaWVudE9yaWdpbiwgY2xpZW50SUQpLCAwKTsKK30K
Kwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QoV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBib29sIHN1Y2Nlc3MpCit7CisgICAg
YXV0byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAgICBp
ZiAoaXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0ID0gaXQtPnZhbHVlLnBlbmRpbmdSZXF1ZXN0cy50
YWtlKGxvY2tJZGVudGlmaWVyKTsKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVk
SGFuZGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsb2NrR3JhbnRlZEhhbmRsZXIg
PSBXVEZNb3ZlKHBlbmRpbmdSZXF1ZXN0LmxvY2tHcmFudGVkSGFuZGxlcik7CisgICAgaWYgKHN1
Y2Nlc3MpCisgICAgICAgIGl0LT52YWx1ZS5oZWxkTG9ja3MuYWRkKGxvY2tJZGVudGlmaWVyLCBX
VEZNb3ZlKHBlbmRpbmdSZXF1ZXN0KSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChpdC0+dmFs
dWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LnJlbW92
ZShpdCk7CisgICAgfQorCisgICAgbG9ja0dyYW50ZWRIYW5kbGVyKHN1Y2Nlc3MpOworfQorCit2
b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6ZGlkU3RlYWxMb2NrKFdlYkNvcmU6OldlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBhdXRvIGl0ID0gbV9sb2Nrc1NuYXBzaG90UGVy
Q2xpZW50LmZpbmQoY2xpZW50SUQpOworICAgIGlmIChpdCA9PSBtX2xvY2tzU25hcHNob3RQZXJD
bGllbnQuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbG9ja0luZm8gPSBpdC0+
dmFsdWUuaGVsZExvY2tzLnRha2UobG9ja0lkZW50aWZpZXIpOworICAgIGlmICghbG9ja0luZm8u
bG9ja1N0b2xlbkhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChpdC0+dmFsdWUu
aXNFbXB0eSgpKQorICAgICAgICBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQucmVtb3ZlKGl0KTsK
KworICAgIGxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNWIxYWFm
YzU0YzhhMjE1N2M1MmZmMGNkYTk2ODM0MzZjYjFhYWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzUXVhbGlmaWVk
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2Ns
YXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpXZWJMb2Nr
UmVnaXN0cnksIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IGNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNz
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShwcm9jZXNzKSk7
IH0KKyAgICB+UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KCk7CisKKyAgICAvLyBXZWJDb3JlOjpXZWJM
b2NrUmVnaXN0cnkuCisgICAgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9j
a01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikg
ZmluYWw7CisgICAgdm9pZCByZWxlYXNlTG9jayhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
LCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkgZmluYWw7CisgICAgdm9pZCBhYm9y
dExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFdlYkNvcmU6OldlYkxv
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdCYmKT4mJikg
ZmluYWw7CisgICAgdm9pZCBjbGllbnRJc0dvaW5nQXdheShjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWw7
CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgor
ICAgIGV4cGxpY2l0IFJlbW90ZVdlYkxvY2tSZWdpc3RyeShXZWJQcm9jZXNzJik7CisKKyAgICAv
LyBJUEMgTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIGRpZENvbXBsZXRlTG9ja1JlcXVlc3Qo
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBib29sIHN1Y2Nlc3MpOworICAgIHZvaWQgZGlkU3RlYWxMb2NrKFdlYkNv
cmU6OldlYkxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcik7CisKKyAgICBzdHJ1Y3QgTG9ja3NTbmFwc2hvdDsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBMb2Nrc1NuYXBzaG90PiBtX2xv
Y2tzU25hcHNob3RQZXJDbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJM
b2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2
YTdhZWEyYmQ0YmQ3NzJhMmRhZGVkNGM2ZjdlYzI3MWZmNGFlZDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittZXNzYWdl
cyAtPiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkgeworICAgIERpZENvbXBsZXRlTG9ja1JlcXVlc3Qo
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBib29sIHN1Y2Nlc3MpOworICAg
IERpZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjOTEz
NWEwMGEyMTFjMTIyMDRhYjk1MjU4OWM3YWI0NTkyYTI0ZDY0Li5iMjA1NDM1YWYzYjk2ZTcyNjg2
MDA1MDkzM2U4MjQ5ZTFmYTViMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJLmgiCiAj
aW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUg
IlNlc3Npb25TdGF0ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
QEAgLTU3Myw2ICs1NzQsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViU3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4obV9pZGVudGlmaWVyKSwKICAg
ICAgICAgbWFrZVVuaXF1ZVJlZjxNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCp0aGlzKSwKICAgICAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCksCisg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvY2tSZWdpc3RyeSgpLAogICAgICAg
ICBXZWJQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCp0aGlzKSwKICAgICAgICAgbWFrZVVu
aXF1ZVJlZjxXZWJTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2Vi
TW9kZWxQbGF5ZXJQcm92aWRlcj4oKnRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggOTQzMDRiNzExZmQ0ZmFlYTNiMjBlNzM5Yzk5NmE0N2I4YzcyYWQzNC4u
ZjZlODc2MjQ2YmZkZDZhYWQwMDc5ZDBlZWNhM2JmNzNkYmU3MGZiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJl
bW90ZUxlZ2FjeUNETUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZp
Z3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
LmgiCisjaW5jbHVkZSAiUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU3BlZWNo
UmVjb2duaXRpb25SZWFsdGltZU1lZGlhU291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VBcmVhTWFwLmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTI3OSw2ICsyODAsNyBAQCBX
ZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICAsIG1fd2ViTG9hZGVyU3RyYXRlZ3koKm5ldyBX
ZWJMb2FkZXJTdHJhdGVneSkKICAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoV2ViQ2FjaGVT
dG9yYWdlUHJvdmlkZXI6OmNyZWF0ZSgpKQogICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0
cnkoV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSkKKyAgICAsIG1fd2ViTG9j
a1JlZ2lzdHJ5KFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1f
Y29va2llSmFyKFdlYkNvb2tpZUphcjo6Y3JlYXRlKCkpCiAgICAgLCBtX3JlcG9ydGluZ0VuZHBv
aW50c0NhY2hlKFJlcG9ydGluZ0VuZHBvaW50c0NhY2hlOjpjcmVhdGUoKSkKICAgICAsIG1fZG5z
UHJlZmV0Y2hIeXN0ZXJlcmlzKFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBp
ZiAoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIG1fZG5zUHJlZmV0Y2hl
ZEhvc3RzLmNsZWFyKCk7IH0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRl
eCA5YWRlM2MwMDVhZjJlMjI3MWFmY2FiZmZkNjgxNTIzNjc2ZWZiNzBhLi4xNGNkZjc1MTVjNjJj
NDVkYWI5ZjlkYjgxNmZkY2IyZDg4NWNmMzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOwogY2xh
c3MgUmVtb3RlQ0RNRmFjdG9yeTsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk7CiBjbGFz
cyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OworY2xhc3MgUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5Owogc3RydWN0IFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGE7CiBj
bGFzcyBTdG9yYWdlQXJlYU1hcDsKIGNsYXNzIFVzZXJEYXRhOwpAQCAtMzQwLDYgKzM0MSw3IEBA
IHB1YmxpYzoKIAogICAgIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlcigpIHsgcmV0dXJuIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIuZ2V0KCk7IH0KICAgICBXZWJC
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkmIGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpIHsgcmV0
dXJuIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmdldCgpOyB9CisgICAgUmVtb3RlV2ViTG9j
a1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdpc3RyeS5n
ZXQoKTsgfQogICAgIFdlYkNvb2tpZUphciYgY29va2llSmFyKCkgeyByZXR1cm4gbV9jb29raWVK
YXIuZ2V0KCk7IH0KICAgICBXZWJTb2NrZXRDaGFubmVsTWFuYWdlciYgd2ViU29ja2V0Q2hhbm5l
bE1hbmFnZXIoKSB7IHJldHVybiBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOyB9CiAgICAgV2Vi
Q29yZTo6UmVwb3J0aW5nRW5kcG9pbnRzQ2FjaGUmIHJlcG9ydGluZ0VuZHBvaW50c0NhY2hlKCkg
eyByZXR1cm4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZS5nZXQoKTsgfQpAQCAtNjc2LDYgKzY3
OCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI+IG1fY2Fj
aGVTdG9yYWdlUHJvdmlkZXI7CiAgICAgUmVmPFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4g
bV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7CisgICAgUmVmPFJlbW90ZVdlYkxvY2tSZWdpc3Ry
eT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmPFdlYkNvb2tpZUphcj4gbV9jb29raWVKYXI7
CiAgICAgUmVmPFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0NhY2hlPiBtX3JlcG9ydGluZ0Vu
ZHBvaW50c0NhY2hlOwogICAgIFdlYlNvY2tldENoYW5uZWxNYW5hZ2VyIG1fd2ViU29ja2V0Q2hh
bm5lbE1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggMGM3NDRkZGNlYjMzMjZkMDY3MTQ3YTA2ZWI5MTIxZmIxMGU1N2Y0NS4uNTY2NDJjMjIy
ZDZiYzU0M2FmOWU3NTliNjM5MzJhYTZlZDgzODY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjMxLDYgKzIzMSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVKSVRPcGVyYXRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpD
RXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVWaWV3Lmg+CisjaW1wb3J0IDxXZWJD
b3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJWaWV3VmlzdWFsSWRl
bnRpZmljYXRpb25PdmVybGF5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9y
dCA8V2ViS2l0TGVnYWN5L0RPTS5oPgpAQCAtMTQzOCw2ICsxNDM5LDE4IEBAIHN0YXRpYyB2b2lk
IFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiB9CiAjZW5kaWYK
IAorc3RhdGljIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4gZ2V0T3JDcmVhdGVX
ZWJMb2NrUmVnaXN0cnkoYm9vbCBpc1ByaXZhdGVCcm93c2luZ0VuYWJsZWQpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+
PiBkZWZhdWx0UmVnaXN0cnk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYWtQdHI8V2Vi
Q29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+PiBwcml2YXRlUmVnaXN0cnk7CisgICAgYXV0byYg
ZXhpc3RpbmdSZWdpc3RyeSA9IGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCA/IHByaXZhdGVSZWdp
c3RyeSA6IGRlZmF1bHRSZWdpc3RyeTsKKyAgICBpZiAoZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSkK
KyAgICAgICAgcmV0dXJuICpleGlzdGluZ1JlZ2lzdHJ5LmdldCgpOworICAgIGF1dG8gcmVnaXN0
cnkgPSBXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCk7CisgICAgZXhpc3Rp
bmdSZWdpc3RyeS5nZXQoKSA9IHJlZ2lzdHJ5OworICAgIHJldHVybiByZWdpc3RyeTsKK30KKwog
LSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOihOU1N0cmluZyAqKWZy
YW1lTmFtZSBncm91cE5hbWU6KE5TU3RyaW5nICopZ3JvdXBOYW1lCiB7CiAgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRUd28oKTsKQEAgLTE1NDMsNiArMTU1Niw3IEBAIC0gKHZv
aWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5h
bWUgZ3JvdXBOYW1lOihOU1N0CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlT
cGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5l
bFJlZ2lzdHJ5OjpnZXRPckNyZWF0ZShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2lu
Z0VuYWJsZWRdKSwKKyAgICAgICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHBy
ZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCiAgICAgICAgIFdlYkNvcmU6OkR1
bW15UGVybWlzc2lvbkNvbnRyb2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6OkR1bW15U3RvcmFnZVByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVm
PFdlYkNvcmU6OkR1bW15TW9kZWxQbGF5ZXJQcm92aWRlcj4oKQpAQCAtMTgyNCw2ICsxODM4LDcg
QEAgLSAoaWQpaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHlsZTooTlNTdHJpbmcgKilzdHls
ZSBmcmFtZTooQ0dSZWN0KWZyYW1lIHByZWYKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3Jl
OjpEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAogICAgICAgICBXZWJCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZF0pLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeShb
W3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKICAgICAgICAgV2Vi
Q29yZTo6RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VV
bmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGY0NjMwNzlkOTgxYmZlMmE1OGMyYTI0YjJmZjUxMDlj
MjQyZDZmMDguLjRmZmNkZTljNTMyNzAyZDkzNGQzYzdjMTM1NTM3Y2ViMjYxNWYxMTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xNzMsNiArMTczLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSklU
T3BlcmF0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZVRleHRSZW5kZXJlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvV2ViTG9ja1JlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NUb3Vj
aC5oPgogI2luY2x1ZGUgPGNvbWRlZi5oPgpAQCAtMjk5Miw2ICsyOTkzLDE2IEBAIGJvb2wgV2Vi
Vmlldzo6c2hvdWxkSW5pdGlhbGl6ZVRyYWNrUG9pbnRIYWNrKCkKICAgICByZXR1cm4gc2hvdWxk
Q3JlYXRlU2Nyb2xsYmFyczsKIH0KIAorc3RhdGljIFJlZjxXZWJDb3JlOjpMb2NhbFdlYkxvY2tS
ZWdpc3RyeT4gZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gZXhpc3Rp
bmdSZWdpc3RyeTsKKyAgICBpZiAoZXhpc3RpbmdSZWdpc3RyeS5nZXQoKSkKKyAgICAgICAgcmV0
dXJuICpleGlzdGluZ1JlZ2lzdHJ5LmdldCgpOworICAgIGF1dG8gcmVnaXN0cnkgPSBXZWJDb3Jl
OjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6Y3JlYXRlKCk7CisgICAgZXhpc3RpbmdSZWdpc3RyeS5n
ZXQoKSA9IHJlZ2lzdHJ5OworICAgIHJldHVybiByZWdpc3RyeTsKK30KKwogSFJFU1VMVCBXZWJW
aWV3Ojppbml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8g
QlNUUiBncm91cE5hbWUpCiB7CiAgICAgSFJFU1VMVCBociA9IFNfT0s7CkBAIC0zMDY1LDYgKzMw
NzYsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoUkVDVCBmcmFtZSwgX0luXyBC
U1RSIGZyYW1lTmFtZSwgX0luXyBCU1RSIGdyb3VwTgogICAgICAgICBtYWtlVW5pcXVlUmVmPER1
bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxN
ZWRpYVJlY29yZGVyUHJvdmlkZXI+KCksCiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTo6Z2V0T3JDcmVhdGUoZmFsc2UpLAorICAgICAgICBnZXRPckNyZWF0ZVdlYkxvY2tSZWdp
c3RyeSgpLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpjcmVh
dGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92aWRl
cj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVyUHJv
dmlkZXI+KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA5NDVlYWViODIzMzE5ODg3M2MyNjQwNDE1YTc4MDYxMmE2YmQ4NzQ5Li43MTU0MDE4N2Ix
MzY4YzNmMzUxNWUwYzljMjg0MzY4MWRmODk3YzI0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMTItMDEgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBNYWtlIFdlYiBM
b2NrIEFQSSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBXZWJQcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzcxOQorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdl
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW06IEFk
ZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTItMDIgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFtHVEtdIFVzZSBudWxscHRyIGluc3RlYWQgb2YgMCBpbiBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29h
LnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCAwZmE3M2Fl
NjNkMTVhMTE2ZjE4YjQ5ODFlNGU3MDg4ZjBlNDE4NGIyLi40OWZiOTI2NmRiNDM2MzYxY2Y0MzNi
YjQzMDkyNTU3ZjE3ZGVjY2M1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBA
IC0yOTMsNiArMjkzLDcgQEAgVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1t
CiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQogVGVz
dHMvV2ViS2l0Q29jb2EvV2ViQ3J5cHRvTWFzdGVyS2V5Lm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9X
ZWJHTFBvbGljeS5tbQorVGVzdHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KIFRlc3RzL1dlYktp
dENvY29hL1dlYlByb2Nlc3NLaWxsSURCQ2xlYW51cC5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
UHJvY2Vzc1Rlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ODBmMWJmOTA4MjJkOGZmMDQ2MDJhMzY2NzJmNjJh
ZDY4ZjYzMmZjLi4yMTAzMDc0MjkxYzQxZTdlMjA1Mjc4MTFmYTQ1N2E5NTUxMDVhOWRkIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTkzMyw2ICsxOTMzLDcgQEAKIAkJNDRDREU0RDMyNkVF
NkU0MTAwOUY2QUNCIC8qIFR5cGVDYXN0c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gVHlwZUNhc3RzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0Q0YzMUZCMjQ5OTNGNjYwMDlDQjZDQiAvKiBDb250ZXh0TWVudUFjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUFjdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0RDUwMDhEMjZGRTlFRDYwMDBF
QjEyRiAvKiBSZXRhaW5QdHJBUkMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBSZXRhaW5QdHJBUkMubW07IHBhdGggPSBucy9SZXRhaW5QdHJBUkMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJM
b2Nrcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkxvY2tzLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NjBDMkZDODI3MDM5RDdEMDA0N0VGMTEgLyogU2VydmljZVdvcmtl
clBhZ2VQcm90b2NvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUGFnZVByb3RvY29s
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhB
NiAvKiBMb2FkRmlsZVRoZW5SZWxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBMb2FkRmlsZVRoZW5SZWxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2MjhDOEU4MjM2N0FCQkMwMEIwNzNGMCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VjdXJpdHlPcmlnaW4uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU3Miw2ICszNTczLDcgQEAKIAkJCQk4
MzBGMkUwQjIwOUE2QTc0MDBEMzZGRjEgLyogV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUu
bW0gKi8sCiAJCQkJNTdBNzk4NTYyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3Rlcktl
eS5tbSAqLywKIAkJCQk1Qzk3M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0g
Ki8sCisJCQkJNDYwNjE1NDUyNzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1tICovLAogCQkJ
CTUxNzE0RUI2MUNGOEM3QTQwMDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0g
Ki8sCiAJCQkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5hdGUu
bW0gKi8sCiAJCQkJNUMxNTdBMDIyNzE3QzNCMTAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVtb24ubW0g
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dl
YkxvY2tzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nr
cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZmU5NWZlY2QzMjE5ODQzNjdjODc4MzFlZmFiOTdkOWRhNzY3NzVi
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XZWJMb2Nrcy5tbQpAQCAtMCwwICsxLDI0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorCisjaW1wb3J0ICJIVFRQU2VydmVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2lt
cG9ydCAiVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQv
X1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K2VudW0gY2xhc3MgU2hvdWxkVXNlU2FtZVByb2Nlc3MgOiBib29sIHsgTm8sIFllcyB9OworCitz
dGF0aWMgdm9pZCBydW5TbmFwc2hvdEFjcm9zc1BhZ2VzVGVzdChTaG91bGRVc2VTYW1lUHJvY2Vz
cyBzaG91bGRVc2VTYW1lUHJvY2VzcykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVy
IHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7ICJmb28iIH0gfQorICAgIH0pOworCisgICAgYXV0
byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtX
S1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0
dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAg
ICAgICAgW1tjb25maWd1cmF0aW9uMSBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGF1dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24xLmdldCgpXSk7CisgICAgW3dlYlZpZXcxIHN5bmNocm9ub3VzbHlM
b2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3
MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAg
IF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJl
Y2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICBbd2ViVmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tz
LnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5k
bGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30p
OyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0
aW9uMi5nZXQoKS5wcm9jZXNzUG9vbCA9IFtjb25maWd1cmF0aW9uMSBwcm9jZXNzUG9vbF07Cisg
ICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2Vz
IF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0Vx
dWFsVG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25m
aWd1cmF0aW9uMiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBpZiAoc2hvdWxkVXNlU2FtZVByb2Nlc3MgPT0gU2hvdWxkVXNlU2FtZVByb2Nlc3M6OlllcykK
KyAgICAgICAgY29uZmlndXJhdGlvbjIuZ2V0KCkuX3JlbGF0ZWRXZWJWaWV3ID0gd2ViVmlldzEu
Z2V0KCk7CisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxvYWRS
ZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93
ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgaWYgKHNob3VsZFVzZVNhbWVQcm9jZXNzID09IFNo
b3VsZFVzZVNhbWVQcm9jZXNzOjpZZXMpCisgICAgICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsK
KyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIGRvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5T
U3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFD
UVVJUkVEIik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgW3dlYlZpZXcy
IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdiYXInLCBsb2Nr
ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNR
VUlSRUQnKTsgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlv
bkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9O
VUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworCisgICAgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZp
bmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hv
dWxkIGJlIDAgcGVuZGluZyBsb2NrcywgYW5kIDIgaGVsZCBvbmVzLgorICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEobWVzc2FnZSwgQCIwLTIiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07
CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVy
eSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVy
LnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hv
dC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5n
ICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3Ms
IGFuZCAyIGhlbGQgb25lcy4KKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0y
Iik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsg
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBz
aG90LnBlbmRpbmcubGVuZ3RoICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAx
IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViTG9ja3MsIFNuYXBzaG90QWNyb3NzUGFnZXNJbkRp
ZmZlcmVudFByb2Nlc3NlcykKK3sKKyAgICBydW5TbmFwc2hvdEFjcm9zc1BhZ2VzVGVzdChTaG91
bGRVc2VTYW1lUHJvY2Vzczo6Tm8pOworfQorCitURVNUKFdlYkxvY2tzLCBTbmFwc2hvdEFjcm9z
c1BhZ2VzSW5TYW1lUHJvY2VzcykKK3sKKyAgICBydW5TbmFwc2hvdEFjcm9zc1BhZ2VzVGVzdChT
aG91bGRVc2VTYW1lUHJvY2Vzczo6WWVzKTsKK30KKworc3RhdGljIHZvaWQgcnVuTG9ja1JlcXVl
c3RXYWl0aW5nT25Bbm90aGVyUGFnZShTaG91bGRVc2VTYW1lUHJvY2VzcyBzaG91bGRVc2VTYW1l
UHJvY2VzcykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAg
ICAgIHsgIi8iLCB7ICJmb28iIH0gfQorICAgIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9u
MSA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
Zm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9l
eHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFs
VG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1
cmF0aW9uMSBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGF1dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24xLmdldCgpXSk7CisgICAgW3dlYlZpZXcxIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2
ZXIucmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3Nh
Z2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2Fn
ZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2Vi
VmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2Zvbycs
IGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21w
bGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9j
ZXNzUG9vbCA9IFtjb25maWd1cmF0aW9uMSBwcm9jZXNzUG9vbF07CisgICAgZm9yIChfV0tFeHBl
cmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxG
ZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJX
ZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc2hvdWxkVXNl
U2FtZVByb2Nlc3MgPT0gU2hvdWxkVXNlU2FtZVByb2Nlc3M6OlllcykKKyAgICAgICAgY29uZmln
dXJhdGlvbjIuZ2V0KCkuX3JlbGF0ZWRXZWJWaWV3ID0gd2ViVmlldzEuZ2V0KCk7CisgICAgYXV0
byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIu
Z2V0KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5y
ZXF1ZXN0KCldOworCisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisgICAgaWYgKHNob3VsZFVzZVNhbWVQcm9jZXNzID09IFNob3VsZFVzZVNhbWVQcm9j
ZXNzOjpZZXMpCisgICAgICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAg
ICAgIEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIF9fYmxvY2sgYm9vbCBsb2NrQWNxdWly
ZWQgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2Fn
ZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdl
LCBAIkFDUVVJUkVEIik7CisgICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisK
KyAgICAvLyBSZXF1ZXN0aW5nIHRoZSBzYW1lIGxvY2sgbmFtZSBhcyB3ZWJWaWV3MSBzbyB0aGUg
cmVxdWVzdCBzaG91bGQgZ2V0IHF1ZXVlZCB1bnRpbCB3ZWJWaWV3MSByZWxlYXNlcyBpdC4KKyAg
ICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3Qo
J2ZvbycsIGxvY2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAx
IiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6c2xlZXAoMC41KTsKKyAgICBFWFBFQ1RfRkFMU0UobG9ja0FjcXVpcmVkKTsKKworICAgIGRv
bmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2Fn
ZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAxIHBl
bmRpbmcgbG9jaywgYW5kIDEgaGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNz
YWdlLCBAIjEtMSIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmll
dzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFw
c2hvdCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2Uo
JycgKyBzbmFwc2hvdC5wZW5kaW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3Ro
KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9y
KSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2Vp
dmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOworICAgICAgICBsb2NrQWNxdWlyZWQgPSB0cnVl
OworICAgIH1dOworCisgICAgLy8gTm93IGNsb3NlIHRoZSB3ZWJWaWV3MS4gVGhpcyBzaG91bGQg
cmVsZWFzZSB0aGUgJ2ZvbycgbG9jayBhbmQgYWxsb3cgd2ViVmlldzIgdG8gYWNxdWlyZSBpdC4K
KyAgICBbd2ViVmlldzEgX2Nsb3NlXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
bG9ja0FjcXVpcmVkKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9y
bUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAg
IC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAxIGhlbGQgb25lLgorICAg
ICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCIwLTEiKTsKKyAgICAgICAgZG9uZSA9IHRy
dWU7CisgICAgfV07CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRv
ci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAn
LScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4o
aWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7
CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKworVEVT
VChXZWJMb2NrcywgTG9ja1JlcXVlc3RXYWl0aW5nT25Bbm90aGVyUGFnZUluT3RoZXJQcm9jZXNz
KQoreworICAgIHJ1bkxvY2tSZXF1ZXN0V2FpdGluZ09uQW5vdGhlclBhZ2UoU2hvdWxkVXNlU2Ft
ZVByb2Nlc3M6Ok5vKTsKK30KKworVEVTVChXZWJMb2NrcywgTG9ja1JlcXVlc3RXYWl0aW5nT25B
bm90aGVyUGFnZUluU2FtZVByb2Nlc3MpCit7CisgICAgcnVuTG9ja1JlcXVlc3RXYWl0aW5nT25B
bm90aGVyUGFnZShTaG91bGRVc2VTYW1lUHJvY2Vzczo6WWVzKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445763</attachid>
            <date>2021-12-02 12:46:58 -0800</date>
            <delta_ts>2021-12-02 14:59:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233719-20211202124658.patch</filename>
            <type>text/plain</type>
            <size>126140</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg0YjY4ZjQ2N2E5ZTdk
NjA1ZGM1NGNlOGZlYWY2Nzc4NWY3NzIyYi4uMjMzZWMwNmE3ODYxNGIxNzU4MTRlNTA4ZWRlMmM5
YjMyM2UzMGJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIxLTEyLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9j
ayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsg
YWNyb3NzIG11bHRpcGxlIFdlYlByb2Nlc3Nlcy4gVG8gYWNoaWV2ZSB0aGlzLCBXZWJMb2NrUmVn
aXN0cnkgaXMgbm93CisgICAgICAgIGFuIGludGVyZmFjZSB3aXRoIDIgY29uY3JldGUgc3ViY2xh
c3NlczoKKyAgICAgICAgLSBMb2NhbFdlYkxvY2tSZWdpc3RyeTogSW4gY2hhcmdlIG9mIHRoZSBh
Y3R1YWwgc3RvcmFnZSBvZiB0aGUgbG9jayByZWdpc3RyYXRpb25zLiBUaGlzIGlzCisgICAgICAg
ICAgYmFzaWNhbGx5IGEgcmVuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IHVzZWQgdG8gYmUgbmFtZWQg
V2ViTG9ja1JlZ2lzdHJ5LiBJbiB0aGUgV2ViS2l0TGVnYWN5CisgICAgICAgICAgY2FzZSwgd2Ug
dXNlIGEgZ2xvYmFsIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZvciByZWd1bGFyIGJyb3dzaW5nIHZp
ZXdzIGFuZCBhbm90aGVyIGdsb2JhbAorICAgICAgICAgIExvY2FsV2ViTG9ja1JlZ2lzdHJ5IGZv
ciBwcml2YXRlIGJyb3dzaW5nIHZpZXdzLiBJbiB0aGUgbW9kZXJuIFdlYktpdCBjYXNlLCB0aGUK
KyAgICAgICAgICBMb2NhbFdlYkxvY2tSZWdpc3RyeSBpcyBoZWxkIGluIHRoZSBVSVByb2Nlc3Mg
YnkgdGhlIFdlYnNpdGVEYXRhU3RvcmUuIEl0IGlzIGhlbGQgYnkgdGhlCisgICAgICAgICAgV2Vi
c2l0ZURhdGFTdG9yZSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgZGlmZmVyZW50IHNlc3Npb25zIHRv
IHNoYXJlIGxvY2tzLiBJdCBsaXZlcyBpbiB0aGUKKyAgICAgICAgICBVSVByb2Nlc3MgYmVjYXVz
ZSBpdCBuZWVkcyB0byBiZSBzaGFyZWQgYnkgc2V2ZXJhbCBXZWJQcm9jZXNzZXMuIFRoZSBOZXR3
b3JrUHJvY2VzcyBtYXkKKyAgICAgICAgICBoYXZlIGJlZW4gc3VpdGFibGUgdG9vIGJ1dCBpdCB3
b3VsZCBoYXZlIG1lYW50IGRlYWxpbmcgd2l0aCBjcmFzaCByZWNvdmVyeS4KKyAgICAgICAgLSBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6IEl0IGhhcyB0aGUgc2FtZSBpbnRlcmZhY2UgaGFzIExvY2Fs
V2ViTG9ja1JlZ2lzdHJ5IGJ1dCBtZXJlbHkgcHJveGllcworICAgICAgICAgIGNhbGxzIHRvIHRo
ZSBVSVByb2Nlc3MgdmlhIElQQy4KKworICAgICAgICBJbiB0aGUgVUlQcm9jZXNzLCBlYWNoIFdl
YlByb2Nlc3NQcm94eSBoYXMgYSBXZWJMb2NrUmVnaXN0cnlQcm94eSBpbnN0YW5jZSB3aGljaCBs
aXN0ZW5zIGZvcgorICAgICAgICBJUEMgZnJvbSB0aGUgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5IGlu
IHRoZSBXZWJQcm9jZXNzLiBVcG9uIHJlY2VpdmluZyBJUEMsIGl0IHZhbGlkYXRlcyB0aGUKKyAg
ICAgICAgcGFyYW1ldGVycyAoc2luY2UgdGhlIFdlYlByb2Nlc3NlcyBhcmUgbm90IHRydXN0ZWQp
IGFuZCBjYWxscyB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbnMgb24KKyAgICAgICAgdGhlIExv
Y2FsV2ViTG9ja1JlZ2lzdHJ5IGhlbGQgYnkgdGhlIFdlYlByb2Nlc3NQcm94eSdzIFdlYnNpdGVE
YXRhU3RvcmUuIFRoZSBXZWJMb2NrUmVnaXN0cnlQcm94eQorICAgICAgICBpcyBhbHNvIGluIGNo
YXJnZSBvZiBub3RpZnlpbmcgdGhlIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSBpbiB0aGUgV2ViUHJv
Y2VzcyB3aGVuZXZlciBhIGxvY2sKKyAgICAgICAgcmVxdWVzdCBjb21wbGV0ZXMgYW5kIHdoZW5l
dmVyIGEgaGVsZCBsb2NrIGdldHMgc3RvbGVuLgorCisgICAgICAgICogTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6
OnJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OmRpZENvbXBsZXRl
TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnJlcXVlc3RM
b2NrT25NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpyZWxl
YXNlTG9ja09uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6
YWJvcnRMb2NrUmVxdWVzdE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2Nr
TWFuYWdlcjo6cXVlcnlPbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01h
bmFnZXI6OmNsaWVudElzR29pbmdBd2F5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5h
Z2VyOjplbnN1cmVPbk1haW5UaHJlYWQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dl
YkxvY2tNYW5hZ2VyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJTbmFwc2hvdDo6
SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25h
cHNob3Q6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlclNu
YXBzaG90OjpJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXJT
bmFwc2hvdDo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTW9k
ZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6ZW5zdXJlUmVnaXN0cnlGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3Ry
eSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk6On5QZXJPcmlnaW5SZWdpc3RyeSk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxv
Y2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZXF1ZXN0TG9jayk6CisgICAgICAgIChXZWJD
b3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjpyZWxlYXNlTG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6YWJvcnRMb2NrUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVn
aXN0cnk6OmFib3J0TG9ja1JlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojppc0dyYW50YWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnByb2Nl
c3NMb2NrUmVxdWVzdFF1ZXVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJDb3JlOjpMb2NhbFdlYkxvY2tSZWdpc3RyeTo6
UGVyT3JpZ2luUmVnaXN0cnk6OnNuYXBzaG90KToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5nQXdheSk6CisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OmNsaWVudHNBcmVHb2luZ0F3YXkp
OgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNsaWVudHNBcmVHb2lu
Z0F3YXkpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tS
ZWdpc3RyeTo6cmVnaXN0cnlGb3JPcmlnaW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
V2ViTG9ja1JlZ2lzdHJ5OjpXZWJMb2NrUmVnaXN0cnkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojp+V2ViTG9ja1JlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5OjpyZWxlYXNlTG9jayk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50YWJsZSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0cnk6OnByb2Nlc3NM
b2NrUmVxdWVzdFF1ZXVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tSZWdp
c3RyeTo6c25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja1JlZ2lz
dHJ5OjpjbGllbnRJc0dvaW5nQXdheSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja1JlZ2lzdHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrUmVnaXN0
cnk6On5XZWJMb2NrUmVnaXN0cnkpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50cyk6CisgICAgICAgICog
cGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAq
IHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViTG9ja1JlZ2lzdHJ5KToK
KyAgICAgICAgKiBwYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25maWd1cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oOgorCiAyMDIxLTEyLTAyICBBbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIE1vdmUgaW5saW5lIGJveCBnZW9tZXRyeSAo
Qm94R2VvbWV0cnkpIHVwZGF0ZSBsb2dpYyB0byBhIGRlZGljYXRlZCBmdW5jdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCAwM2I3NjRhZGEyYTM3YmNkOGU3ZDFlZjM2OTczNjFmNWMwMGVjNmM4Li4yYjNmYmIyNTM2
YWYyMWM4NGE2ZDhlMDJiZDJjMTc4ZGM1NjE1NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBA
CisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkK
KworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFNlZSBX
ZWJDb3JlIGNoYW5nZWxvZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRf
Y2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6V2ViTG9ja1JlZ2lzdHJ5UHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6fldlYkxvY2tSZWdpc3RyeVBy
b3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlcXVlc3RMb2Nr
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OnJlbGVhc2VMb2NrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OmFib3J0TG9ja1JlcXVlc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6c25hcHNob3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6Y2xpZW50SXNHb2luZ0F3YXkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMb2NrUmVnaXN0cnlQcm94eTo6cHJvY2Vzc0RpZEV4aXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjptX3dlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
c2h1dERvd24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJL
aXQ6OldlYnNpdGVEYXRhU3RvcmU6OndlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkxvY2tzU25h
cHNob3Q6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVn
aXN0cnk6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdl
YkxvY2tSZWdpc3RyeTo6flJlbW90ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6cmVxdWVzdExvY2spOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnJlbGVhc2VMb2NrKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZENvbXBsZXRlTG9ja1JlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OmRpZFN0ZWFsTG9jayk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0
cnkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9hcHBIaWdobGlnaHRzVmlzaWJsZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYkxvY2tSZWdpc3RyeSk6CisKIDIwMjEtMTIt
MDIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjg2NDM3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDg2ZTVkOTk1OGM2NTJhNWFmM2Y3ODVjMDViNTUwNDIzYWJmZTEwYTMuLjBhZDcwMGM4ODhi
MGUxM2M1YzUxNGQyYWM2ODEzNTM5NjI1YTUwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFtXSzJdIE1ha2UgV2ViIExvY2sgQVBJIHdvcmsgYWNyb3NzIG11
bHRpcGxlIFdlYlByb2Nlc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNzE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBTZWUgV2ViQ29yZSBjaGFuZ2Vsb2cuCisKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZXcubW06CisgICAgICAgIChnZXRPckNyZWF0ZVdlYkxvY2tSZWdpc3RyeSk6CisgICAg
ICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5h
bWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgaW5pdFNpbXBsZUhUTUxEb2N1bWVudFdpdGhTdHls
ZTpmcmFtZTpwcmVmZXJlbmNlczpncm91cE5hbWU6XSk6CisKIDIwMjEtMTItMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uKHIyODM5MTIpIEJy
b2tlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIFN3aWZ0IGJpbmRpbmdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2FkNjFhNzdhMDEwY2RkODcwZjBhNWM2N2QyMTM5Njk2NmJi
NjBhYy4uZTMxNjY1NjNhODRlZTU3YTM2MGY0ZGQ0NTdjMDE0ZGI3NzYyOGE3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTAxICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBB
UEkgd29yayBhY3Jvc3MgbXVsdGlwbGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFNlZSBXZWJDb3JlIENoYW5nZWxvZy4KKwor
ICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0
cnkpOgorICAgICAgICAoV2ViVmlldzo6aW5pdFdpdGhGcmFtZSk6CisKIDIwMjEtMTEtMTggIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFYOiBV
c2UgT2JqZWN0SWRlbnRpZmllciBmb3IgQVhJRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOTUxOTlj
Y2Q4MzY4NmYxYjlkOWJmZWFjNmI2MDk1M2I0MGMxYjc5ZS4uOTVhNTY0OWQ0NTI1YzQyZjk1Yzhh
MDk0MjhlYjE0YjdkYjc4MTcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zMTIsNiArMzEyLDEx
IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL3N0
cmVhbXMvUmVhZGFibGVTdHJlYW1TaW5rLmgKICAgICBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVT
dHJlYW1Tb3VyY2UuaAogCisgICAgTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja0lkZW50aWZpZXIu
aAorICAgIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaAorICAgIE1v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKKyAgICBNb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrUmVnaXN0cnkuaAorCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdHRlc3RhdGlvbkNvbnZleWFu
Y2VQcmVmZXJlbmNlLmgKICAgICBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0aW9uRXh0ZW5z
aW9uc0NsaWVudElucHV0cy5oCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnNDbGllbnRPdXRwdXRzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcAppbmRleCA3ZTViNTUxNDg1YWM2NTUxZGQ1ZjBj
MTkwNDFiM2UyOTNmMWI2Y2VkLi5jY2FkNTNiZDVkNzg1MWFhZjg4ZjkwNjljMDRhOTg4NWQ0MTE0
YTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9j
a01hbmFnZXIuY3BwCkBAIC0zMSwxMSArMzEsMTUgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2Uu
aCIKICNpbmNsdWRlICJKU1dlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCIKICNpbmNsdWRlICJOYXZp
Z2F0b3JCYXNlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiV2ViTG9jay5oIgogI2luY2x1ZGUgIldlYkxvY2tHcmFudGVkQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJXZWJMb2NrTWFuYWdlclNuYXBzaG90LmgiCiAjaW5jbHVkZSAiV2Vi
TG9ja1JlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKKyNpbmNsdWRl
ICJXb3JrZXJMb2FkZXJQcm94eS5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAK
QEAgLTUzLDYgKzU3LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2xpZW50T3JpZ2luPiBjbGll
bnRPcmlnaW5Gcm9tQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXgKIAogc3RydWN0IFdlYkxv
Y2tNYW5hZ2VyOjpMb2NrUmVxdWVzdCB7CiAgICAgV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50
aWZpZXI7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQ7CiAg
ICAgU3RyaW5nIG5hbWU7CiAgICAgV2ViTG9ja01vZGUgbW9kZSB7IFdlYkxvY2tNb2RlOjpFeGNs
dXNpdmUgfTsKICAgICBSZWZQdHI8V2ViTG9ja0dyYW50ZWRDYWxsYmFjaz4gZ3JhbnRlZENhbGxi
YWNrOwpAQCAtMTM3LDE0ICsxNDIsMTUgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVxdWVzdChj
b25zdCBTdHJpbmcmIG5hbWUsIE9wdGlvbnMmJiBvcHRpb25zLCBSZWY8V2ViTG9ja0cKICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKGxvY2tJZGVudGlmaWVy
LCBMb2NrUmVxdWVzdCB7IGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLm1vZGUsIFdURk1v
dmUoZ3JhbnRlZENhbGxiYWNrKSwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCkgfSk7CisgICAgYXV0
byBjbGllbnRJRCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpOworICAg
IG1fcGVuZGluZ1JlcXVlc3RzLmFkZChsb2NrSWRlbnRpZmllciwgTG9ja1JlcXVlc3QgeyBsb2Nr
SWRlbnRpZmllciwgY2xpZW50SUQsIG5hbWUsIG9wdGlvbnMubW9kZSwgV1RGTW92ZShncmFudGVk
Q2FsbGJhY2spLCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSB9KTsKIAotICAgIHJlcXVlc3RMb2Nr
T25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBuYW1lLCBvcHRpb25zLCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXJdKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7
CisgICAgcmVxdWVzdExvY2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBu
YW1lLCBvcHRpb25zLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZp
ZXJdKGJvb2wgc3VjY2VzcykgbXV0YWJsZSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAg
ICAgICAgIHdlYWtUaGlzLT5kaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KGxvY2tJZGVudGlmaWVyLCBz
dWNjZXNzKTsKLSAgICB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50
aWZpZXJdKEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7CisgICAgfSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAg
ICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICB3ZWFrVGhpcy0+c2V0dGxlUmVsZWFzZVByb21p
c2UobG9ja0lkZW50aWZpZXIsIFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgICAgICB3ZWFr
VGhpcy0+c2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlvbiB7IEFi
b3J0RXJyb3IsICJMb2NrIHdhcyBzdG9sZW4gYnkgYW5vdGhlciByZXF1ZXN0Il9zIH0pOwogICAg
IH0pOwogfQogCkBAIC0xNTcsNyArMTYzLDcgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6ZGlkQ29t
cGxldGVMb2NrUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgYm8KIAog
ICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgaWYgKHJlcXVlc3Quc2lnbmFsICYm
IHJlcXVlc3Quc2lnbmFsLT5hYm9ydGVkKCkpIHsKLSAgICAgICAgICAgICAgICByZWxlYXNlTG9j
a09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlmaWVyLCByZXF1ZXN0Lm5hbWUpOworICAg
ICAgICAgICAgICAgIHJlbGVhc2VMb2NrT25NYWluVGhyZWFkKHJlcXVlc3QubG9ja0lkZW50aWZp
ZXIsIHJlcXVlc3QuY2xpZW50SUQsIHJlcXVlc3QubmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogCkBAIC0xNjUsMTUgKzE3MSwxNSBAQCB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVu
dGlmaWVyLCBibwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSByZXF1ZXN0LmdyYW50ZWRDYWxs
YmFjay0+aGFuZGxlRXZlbnQobG9jay5wdHIoKSk7CiAgICAgICAgICAgICBSZWZQdHI8RE9NUHJv
bWlzZT4gd2FpdGluZ1Byb21pc2UgPSByZXN1bHQudHlwZSgpID09IENhbGxiYWNrUmVzdWx0VHlw
ZTo6U3VjY2VzcyA/IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSA6IG51bGxwdHI7CiAgICAg
ICAgICAgICBpZiAoIXdhaXRpbmdQcm9taXNlKSB7Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQocmVxdWVzdC5sb2NrSWRlbnRpZmllciwgcmVxdWVzdC5uYW1lKTsKKyAg
ICAgICAgICAgICAgICByZWxlYXNlTG9ja09uTWFpblRocmVhZChyZXF1ZXN0LmxvY2tJZGVudGlm
aWVyLCByZXF1ZXN0LmNsaWVudElELCByZXF1ZXN0Lm5hbWUpOwogICAgICAgICAgICAgICAgIHNl
dHRsZVJlbGVhc2VQcm9taXNlKHJlcXVlc3QubG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlvbiB7IEV4
aXN0aW5nRXhjZXB0aW9uRXJyb3IgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0dGxlZCh3
YWl0aW5nUHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCks
IFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmllciA9IHJl
cXVlc3QubG9ja0lkZW50aWZpZXIsIG5hbWUgPSByZXF1ZXN0Lm5hbWUsIHdhaXRpbmdQcm9taXNl
XSB7CisgICAgICAgICAgICBET01Qcm9taXNlOjp3aGVuUHJvbWlzZUlzU2V0dGxlZCh3YWl0aW5n
UHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCksIHdhaXRpbmdQcm9taXNlLT5wcm9taXNlKCksIFt0aGlz
LCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBsb2NrSWRlbnRpZmllciA9IHJlcXVlc3Qu
bG9ja0lkZW50aWZpZXIsIGNsaWVudElEID0gcmVxdWVzdC5jbGllbnRJRCwgbmFtZSA9IHJlcXVl
c3QubmFtZSwgd2FpdGluZ1Byb21pc2VdIHsKICAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgcmVsZWFzZUxv
Y2tPbk1haW5UaHJlYWQobG9ja0lkZW50aWZpZXIsIG5hbWUpOworICAgICAgICAgICAgICAgIHJl
bGVhc2VMb2NrT25NYWluVGhyZWFkKGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSk7CiAg
ICAgICAgICAgICAgICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZpZXIsIHN0YXRp
Y19jYXN0PEpTQzo6SlNWYWx1ZT4od2FpdGluZ1Byb21pc2UtPnByb21pc2UoKSkpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xODgsMzMgKzE5NCwzMyBAQCB2b2lkIFdl
YkxvY2tNYW5hZ2VyOjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaWVyLCBibwogICAgIH0pOwogfQogCi12b2lkIFdlYkxvY2tNYW5hZ2VyOjpyZXF1
ZXN0TG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiBvcHRpb25zLCBGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4mJiByZWxl
YXNlSGFuZGxlcikKK3ZvaWQgV2ViTG9ja01hbmFnZXI6OnJlcXVlc3RMb2NrT25NYWluVGhyZWFk
KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiBv
cHRpb25zLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2
b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtj
b250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigp
LCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbmFtZSA9
IGNyb3NzVGhyZWFkQ29weShuYW1lKSwgbW9kZSA9IG9wdGlvbnMubW9kZSwgc3RlYWwgPSBvcHRp
b25zLnN0ZWFsLCBpZkF2YWlsYWJsZSA9IG9wdGlvbnMuaWZBdmFpbGFibGUsIGxvY2tJZGVudGlm
aWVyLCBncmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpLCByZWxlYXNlSGFu
ZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBXZWJM
b2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPnJlcXVlc3RMb2Nr
KGxvY2tJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllciwgbmFtZSwgbW9kZSwgc3RlYWwsIGlm
QXZhaWxhYmxlLCBbY29udGV4dElkZW50aWZpZXIsIGdyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShn
cmFudGVkSGFuZGxlcildIChib29sIHN1Y2Nlc3MpIG11dGFibGUgewotICAgICAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlm
aWVyLCBbZ3JhbnRlZEhhbmRsZXIgPSBXVEZNb3ZlKGdyYW50ZWRIYW5kbGVyKSwgc3VjY2Vzc10o
YXV0byYpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY2xpZW50SUQsIGNsaWVu
dE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBuYW1lID0gY3Jvc3NU
aHJlYWRDb3B5KG5hbWUpLCBtb2RlID0gb3B0aW9ucy5tb2RlLCBzdGVhbCA9IG9wdGlvbnMuc3Rl
YWwsIGlmQXZhaWxhYmxlID0gb3B0aW9ucy5pZkF2YWlsYWJsZSwgbG9ja0lkZW50aWZpZXIsIGdy
YW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFuZGxlciksIGxvY2tTdG9sZW5IYW5kbGVy
ID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxlIHsK
KyAgICAgICAgcmVnaXN0cnkucmVxdWVzdExvY2soY2xpZW50T3JpZ2luLCBsb2NrSWRlbnRpZmll
ciwgY2xpZW50SUQsIG5hbWUsIG1vZGUsIHN0ZWFsLCBpZkF2YWlsYWJsZSwgW2NsaWVudElELCBn
cmFudGVkSGFuZGxlciA9IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpXSAoYm9vbCBzdWNjZXNzKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29u
dGV4dFRocmVhZChjbGllbnRJRCwgW2dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShncmFudGVkSGFu
ZGxlciksIHN1Y2Nlc3NdKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBncmFudGVk
SGFuZGxlcihzdWNjZXNzKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9LCBbY29udGV4dElk
ZW50aWZpZXIsIHJlbGVhc2VIYW5kbGVyID0gV1RGTW92ZShyZWxlYXNlSGFuZGxlcildKEV4Y2Vw
dGlvbiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtyZWxlYXNl
SGFuZGxlciA9IFdURk1vdmUocmVsZWFzZUhhbmRsZXIpLCBleGNlcHRpb24gPSBjcm9zc1RocmVh
ZENvcHkoZXhjZXB0aW9uKV0oYXV0byYpIG11dGFibGUgewotICAgICAgICAgICAgICAgIHJlbGVh
c2VIYW5kbGVyKFdURk1vdmUoZXhjZXB0aW9uKSk7CisgICAgICAgIH0sIFtjbGllbnRJRCwgbG9j
a1N0b2xlbkhhbmRsZXIgPSBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmVuc3VyZU9uQ29udGV4dFRocmVh
ZChjbGllbnRJRCwgW2xvY2tTdG9sZW5IYW5kbGVyID0gV1RGTW92ZShsb2NrU3RvbGVuSGFuZGxl
cildKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBsb2NrU3RvbGVuSGFuZGxlcigp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQogCi12b2lkIFdlYkxv
Y2tNYW5hZ2VyOjpyZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRlbnRpZmllciBsb2Nr
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKQordm9pZCBXZWJMb2NrTWFuYWdlcjo6cmVs
ZWFzZUxvY2tPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5h
bWUpCiB7Ci0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVh
ZENvcHkobmFtZSldIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdp
bihjbGllbnRPcmlnaW4pLT5yZWxlYXNlTG9jayhsb2NrSWRlbnRpZmllciwgbmFtZSk7CisgICAg
ZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHkoKm1fY2xp
ZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lID0gY3Jvc3NUaHJlYWRD
b3B5KG5hbWUpXShhdXRvJiByZWdpc3RyeSkgeworICAgICAgICByZWdpc3RyeS5yZWxlYXNlTG9j
ayhjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSk7CiAgICAgfSk7
CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQo
V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW2NvbnRleHRJZGVudGlmaWVyID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pZGVudGlmaWVyKCksIGNsaWVudE9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weSgqbV9j
bGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmllciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuYW1l
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZvck9yaWdpbihjbGllbnRP
cmlnaW4pLT5hYm9ydExvY2tSZXF1ZXN0KGxvY2tJZGVudGlmaWVyLCBuYW1lLCBbY29udGV4dElk
ZW50aWZpZXIsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGJvb2wgd2FzQWJvcnRlZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjplbnN1cmVPbkNvbnRleHRUaHJlYWQoY29udGV4dElkZW50aWZpZXIsIFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCB3YXNBYm9ydGVkXShhdXRv
JikgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRJRCA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIG5hbWUgPSBjcm9zc1RocmVh
ZENvcHkobmFtZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxlIHsKKyAgICAgICAgcmVnaXN0cnkuYWJvcnRMb2Nr
UmVxdWVzdChjbGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgW2Ns
aWVudElELCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShi
b29sIHdhc0Fib3J0ZWQpIG11dGFibGUgeworICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNsaWVudElELCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgd2FzQWJvcnRlZF0oYXV0byYpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdhc0Fib3J0ZWQpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMjIzLDggKzIyOSw4IEBAIHZvaWQgV2ViTG9ja01h
bmFnZXI6OmFib3J0TG9ja1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpCiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnF1ZXJ5T25NYWluVGhyZWFkKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgZW5zdXJlT25NYWluVGhyZWFkKFtjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aWRlbnRpZmllcigpLCBjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVhZENvcHko
Km1fY2xpZW50T3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgV2ViTG9ja1JlZ2lzdHJ5OjpyZWdpc3RyeUZv
ck9yaWdpbihjbGllbnRPcmlnaW4pLT5zbmFwc2hvdChbY29udGV4dElkZW50aWZpZXIsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNuYXBzaG90JiYgc25h
cHNob3QpIG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbY29udGV4dElkZW50aWZp
ZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlkZW50aWZpZXIoKSwgY2xpZW50T3JpZ2lu
ID0gY3Jvc3NUaHJlYWRDb3B5KCptX2NsaWVudE9yaWdpbiksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mIHJlZ2lzdHJ5KSBtdXRhYmxlIHsKKyAg
ICAgICAgcmVnaXN0cnkuc25hcHNob3QoY2xpZW50T3JpZ2luLCBbY29udGV4dElkZW50aWZpZXIs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFNuYXBzaG90
JiYgc25hcHNob3QpIG11dGFibGUgewogICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6ZW5zdXJlT25Db250ZXh0VGhyZWFkKGNvbnRleHRJZGVudGlmaWVyLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc25hcHNob3QgPSBjcm9zc1RocmVh
ZENvcHkoc25hcHNob3QpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShzbmFwc2hvdCkpOwogICAgICAgICAgICAgfSk7CkBAIC0zMDIs
MTEgKzMwOCwyOSBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpjbGllbnRJc0dvaW5nQXdheSgpCiAg
ICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKICAgICBtX3JlbGVhc2VQcm9taXNlcy5jbGVh
cigpOwogCi0gICAgZW5zdXJlT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjcm9zc1RocmVh
ZENvcHkoKm1fY2xpZW50T3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlkZW50aWZpZXIoKV0gewotICAgICAgICBXZWJMb2NrUmVnaXN0cnk6OnJl
Z2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbiktPmNsaWVudElzR29pbmdBd2F5KGNvbnRleHRJ
ZGVudGlmaWVyKTsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNyb3Nz
VGhyZWFkQ29weSgqbV9jbGllbnRPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpXShhdXRvJiByZWdpc3RyeSkgeworICAgICAg
ICByZWdpc3RyeS5jbGllbnRJc0dvaW5nQXdheShjbGllbnRPcmlnaW4sIGNvbnRleHRJZGVudGlm
aWVyKTsKICAgICB9KTsKIH0KIAordm9pZCBXZWJMb2NrTWFuYWdlcjo6ZW5zdXJlT25NYWluVGhy
ZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5Jik+JiYgdGFzaykKK3sKKyAgICBhdXRv
KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChjb250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7
CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkgeworICAgICAgICBpZiAoYXV0byBw
YWdlID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5wYWdlKCkpCisgICAgICAgICAgICB0
YXNrKHBhZ2UtPndlYkxvY2tSZWdpc3RyeSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkb3du
Y2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLnRocmVhZCgpLndvcmtlckxvYWRlclBy
b3h5KCkucG9zdFRhc2tUb0xvYWRlcihbdGFzayA9IFdURk1vdmUodGFzayldKGF1dG8mIGNvbnRl
eHQpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBkb3duY2FzdDxEb2N1bWVudD4oY29u
dGV4dCkucGFnZSgpKQorICAgICAgICAgICAgICAgIHRhc2socGFnZS0+d2ViTG9ja1JlZ2lzdHJ5
KCkpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIGJvb2wgV2ViTG9ja01hbmFnZXI6OnZpcnR1
YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewogICAgIHJldHVybiAhbV9wZW5kaW5nUmVx
dWVzdHMuaXNFbXB0eSgpIHx8ICFtX3JlbGVhc2VQcm9taXNlcy5pc0VtcHR5KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuaAppbmRleCBm
ZWNjNDA5MzgzMzljMTcyZmU5NjdiYTljM2Q1OTAzZmYwMzdiNzg5Li45NjgyNjYyMjRjZGZlZTU0
MWZiNzlmYjBiZGI1MDk5MTQyNjBlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgTmF2aWdhdG9yQmFzZTsK
IGNsYXNzIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2s7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiAK
IHN0cnVjdCBDbGllbnRPcmlnaW47CiBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKQEAg
LTYyLDggKzYzLDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJMb2NrTWFu
YWdlcihOYXZpZ2F0b3JCYXNlJik7CiAKLSAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWluVGhyZWFk
KFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE9wdGlvbnMmLCBG
dW5jdGlvbjx2b2lkKGJvb2wpPiYmLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4mJiByZWxl
YXNlSGFuZGxlcik7Ci0gICAgdm9pZCByZWxlYXNlTG9ja09uTWFpblRocmVhZChXZWJMb2NrSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHJlcXVlc3RMb2NrT25NYWlu
VGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBPcHRpb25zJiwgRnVuY3Rpb248dm9pZChib29s
KT4mJiwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9sZW5IYW5kbGVyKTsKKyAgICB2b2lkIHJl
bGVhc2VMb2NrT25NYWluVGhyZWFkKFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIGFib3J0TG9j
a1JlcXVlc3RPbk1haW5UaHJlYWQoV2ViTG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBxdWVyeU9uTWFp
blRocmVhZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNuYXBzaG90JiYpPiYmKTsKIApAQCAtNzIs
NiArNzMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2lnbmFsVG9BYm9ydFRoZVJlcXVlc3QoV2Vi
TG9ja0lkZW50aWZpZXIpOwogICAgIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoKTsKIAorICAgIHZv
aWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoV2ViTG9ja1JlZ2lzdHJ5Jik+JiYg
dGFzayk7CisKICAgICAvLyBBY3RpdmVET01PYmplY3QuCiAgICAgdm9pZCBzdG9wKCkgZmluYWw7
CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXJT
bmFwc2hvdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFn
ZXJTbmFwc2hvdC5oCmluZGV4IDdmNTMzYzNjYzcwMDI4ZDE2YWE0MjcwNGYyYzQ4MWIyZjQyMTBk
MWUuLjQ0MmMzMDNkMmE4NzRlMjk0M2VmN2FjNWY2MmZjZTM2MDBmMmU3NWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyU25hcHNob3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlclNu
YXBzaG90LmgKQEAgLTM4LDEyICszOCw1NSBAQCBzdHJ1Y3QgV2ViTG9ja01hbmFnZXJTbmFwc2hv
dCB7CiAgICAgICAgIFN0cmluZyBjbGllbnRJZDsKIAogICAgICAgICBJbmZvIGlzb2xhdGVkQ29w
eSgpIGNvbnN0IHsgcmV0dXJuIHsgbmFtZS5pc29sYXRlZENvcHkoKSwgbW9kZSwgY2xpZW50SWQu
aXNvbGF0ZWRDb3B5KCkgfTsgfQorCisgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBuYW1lIDw8IG1v
ZGUgPDwgY2xpZW50SWQ7IH0KKyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8SW5mbz4gZGVjb2RlKERlY29kZXImKTsKICAgICB9OwogCiAgICAgVmVj
dG9yPEluZm8+IGhlbGQ7CiAgICAgVmVjdG9yPEluZm8+IHBlbmRpbmc7CiAKICAgICBXZWJMb2Nr
TWFuYWdlclNuYXBzaG90IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgY3Jvc3NUaHJl
YWRDb3B5KGhlbGQpLCBjcm9zc1RocmVhZENvcHkocGVuZGluZykgfTsgfQorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QgeyBl
bmNvZGVyIDw8IGhlbGQgPDwgcGVuZGluZzsgfQorICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkxvY2tNYW5hZ2VyU25hcHNob3Q+IGRlY29kZShEZWNv
ZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxXZWJM
b2NrTWFuYWdlclNuYXBzaG90OjpJbmZvPiBXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpJbmZvOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gbmFt
ZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7CisgICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxXZWJMb2NrTW9kZT4gbW9kZTsKKyAg
ICBkZWNvZGVyID4+IG1vZGU7CisgICAgaWYgKCFtb2RlKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGNsaWVudElkOworICAgIGRlY29k
ZXIgPj4gY2xpZW50SWQ7CisgICAgaWYgKCFjbGllbnRJZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqbmFtZSksICptb2RlLCBXVEZNb3Zl
KCpjbGllbnRJZCkgfSB9OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRp
b25hbDxXZWJMb2NrTWFuYWdlclNuYXBzaG90PiBXZWJMb2NrTWFuYWdlclNuYXBzaG90OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxJbmZvPj4g
aGVsZDsKKyAgICBkZWNvZGVyID4+IGhlbGQ7CisgICAgaWYgKCFoZWxkKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8SW5mbz4+IHBlbmRp
bmc7CisgICAgZGVjb2RlciA+PiBwZW5kaW5nOworICAgIGlmICghcGVuZGluZykKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaGVsZCksIFdU
Rk1vdmUoKnBlbmRpbmcpIH0gfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNb2RlLmgKaW5kZXggOTM0MzZj
Mjg0NmIyMTQyY2YwYmFhYjZmNDYwMDUwMjllMTM2ZmVmYi4uZWZiMDQxN2YzNzZhNjVlNTI2NjZi
ODc5ODEyYmFmNTg1MWQ3NzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWItbG9ja3MvV2ViTG9ja01vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1s
b2Nrcy9XZWJMb2NrTW9kZS5oCkBAIC0yNiw2ICsyNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotZW51bSBjbGFzcyBXZWJMb2NrTW9kZSB7IFNoYXJlZCwgRXhjbHVzaXZlIH07CitlbnVt
IGNsYXNzIFdlYkxvY2tNb2RlIDogYm9vbCB7IFNoYXJlZCwgRXhjbHVzaXZlIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrUmVnaXN0cnku
Y3BwCmluZGV4IDgyZjEwMjBhZmQyNjdiYmQzOTI3OWQ3YTk4YjQ2NDNmYWRhZjQxYmYuLjEzYTQ5
MGFhNjEyNzIzMWJiNDJkOWE3NzE2ZmQ5NWEyY2QyMDg0MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdpc3RyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAtMzMsNTYg
KzMzLDkyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IFdlYkxvY2tSZWdpc3Ry
eTo6TG9ja0luZm8gewotICAgIFJlZjxXZWJMb2NrUmVnaXN0cnk+IHJlZ2lzdHJ5OwotICAgIFdl
YkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyOwotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGNsaWVudElEOwotICAgIFdlYkxvY2tNb2RlIG1vZGU7Ci0gICAgRnVuY3Rp
b248dm9pZChFeGNlcHRpb24mJik+IHJlbGVhc2VIYW5kbGVyOwotfTsKK2NsYXNzIExvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVkPFBlck9y
aWdpblJlZ2lzdHJ5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFBlck9yaWdpblJlZ2lzdHJ5PiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxQZXJPcmlnaW5SZWdpc3RyeT4gY3JlYXRlKExvY2Fs
V2ViTG9ja1JlZ2lzdHJ5JiwgY29uc3QgQ2xpZW50T3JpZ2luJik7CisgICAgflBlck9yaWdpblJl
Z2lzdHJ5KCk7CisKKyAgICBzdHJ1Y3QgTG9ja0luZm8geworICAgICAgICBSZWY8UGVyT3JpZ2lu
UmVnaXN0cnk+IHJlZ2lzdHJ5OworICAgICAgICBXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllcjsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQ7
CisgICAgICAgIFdlYkxvY2tNb2RlIG1vZGU7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbG9j
a1N0b2xlbkhhbmRsZXI7CisgICAgfTsKKworICAgIHZvaWQgcmVxdWVzdExvY2soV2ViTG9ja0lk
ZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIFdlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlv
bjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0
b2xlbkhhbmRsZXIpOworICAgIHZvaWQgcmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSk7CisgICAgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOworICAgIHZvaWQgc25hcHNob3QoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFu
YWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVudHNBcmVHb2luZ0F3YXkoY29uc3Qg
RnVuY3Rpb248Ym9vbChjb25zdCBMb2NrSW5mbyYpPiYgbWF0Y2hDbGllbnQpOworCitwcml2YXRl
OgorICAgIFBlck9yaWdpblJlZ2lzdHJ5KExvY2FsV2ViTG9ja1JlZ2lzdHJ5JiwgY29uc3QgQ2xp
ZW50T3JpZ2luJik7CisKKyAgICBzdHJ1Y3QgTG9ja1JlcXVlc3QgOiBMb2NrSW5mbyB7CisgICAg
ICAgIFN0cmluZyBuYW1lOworICAgICAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBncmFudGVkSGFu
ZGxlcjsKKyAgICB9OwogCi1zdHJ1Y3QgV2ViTG9ja1JlZ2lzdHJ5OjpMb2NrUmVxdWVzdCA6IExv
Y2tJbmZvIHsKLSAgICBTdHJpbmcgbmFtZTsKLSAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBncmFu
dGVkSGFuZGxlcjsKKyAgICB2b2lkIHByb2Nlc3NMb2NrUmVxdWVzdFF1ZXVlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgRGVxdWU8TG9ja1JlcXVlc3Q+Jik7CisgICAgYm9vbCBpc0dyYW50YWJsZShjb25z
dCBMb2NrUmVxdWVzdCYpIGNvbnN0OworCisgICAgV2Vha1B0cjxMb2NhbFdlYkxvY2tSZWdpc3Ry
eT4gbV9nbG9iYWxSZWdpc3RyeTsKKyAgICBDbGllbnRPcmlnaW4gbV9jbGllbnRPcmlnaW47Cisg
ICAgSGFzaE1hcDxTdHJpbmcsIERlcXVlPExvY2tSZXF1ZXN0Pj4gbV9sb2NrUmVxdWVzdFF1ZXVl
TWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8TG9ja0luZm8+PiBtX2hlbGRMb2NrczsK
IH07CiAKLXN0YXRpYyBIYXNoTWFwPENsaWVudE9yaWdpbiwgV2ViTG9ja1JlZ2lzdHJ5Kj4mIHJl
Z2lzdHJ5TWFwKCkKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpMb2NhbFdlYkxvY2tSZWdpc3RyeSgp
ID0gZGVmYXVsdDsKKworTG9jYWxXZWJMb2NrUmVnaXN0cnk6On5Mb2NhbFdlYkxvY2tSZWdpc3Ry
eSgpID0gZGVmYXVsdDsKKworYXV0byBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6ZW5zdXJlUmVnaXN0
cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pIC0+IFJlZjxQZXJP
cmlnaW5SZWdpc3RyeT4KK3sKKyAgICBpZiAoYXV0byBleGlzdGluZ1JlZ2lzdHJ5ID0gbV9wZXJP
cmlnaW5SZWdpc3RyaWVzLmdldChjbGllbnRPcmlnaW4pKQorICAgICAgICByZXR1cm4gKmV4aXN0
aW5nUmVnaXN0cnk7CisKKyAgICByZXR1cm4gUGVyT3JpZ2luUmVnaXN0cnk6OmNyZWF0ZSgqdGhp
cywgY2xpZW50T3JpZ2luKTsKK30KKworYXV0byBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6ZXhpc3Rp
bmdSZWdpc3RyeUZvck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikgY29u
c3QgLT4gUmVmUHRyPFBlck9yaWdpblJlZ2lzdHJ5PgogewotICAgIEFTU0VSVChpc01haW5SdW5M
b29wKCkpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPENsaWVudE9yaWdpbiwg
V2ViTG9ja1JlZ2lzdHJ5Kj4+IHJlZ2lzdHJ5TWFwOwotICAgIHJldHVybiByZWdpc3RyeU1hcDsK
KyAgICByZXR1cm4gbV9wZXJPcmlnaW5SZWdpc3RyaWVzLmdldChjbGllbnRPcmlnaW4pLmdldCgp
OwogfQogCi1SZWY8V2ViTG9ja1JlZ2lzdHJ5PiBXZWJMb2NrUmVnaXN0cnk6OnJlZ2lzdHJ5Rm9y
T3JpZ2luKGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQorUmVmPExvY2FsV2ViTG9ja1JlZ2lz
dHJ5OjpQZXJPcmlnaW5SZWdpc3RyeT4gTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJl
Z2lzdHJ5OjpjcmVhdGUoTG9jYWxXZWJMb2NrUmVnaXN0cnkmIGdsb2JhbFJlZ2lzdHJ5LCBjb25z
dCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKLSAgICBpZiAoYXV0byBleGlzdGluZ1Jl
Z2lzdHJ5ID0gcmVnaXN0cnlNYXAoKS5nZXQob3JpZ2luKSkKLSAgICAgICAgcmV0dXJuICpleGlz
dGluZ1JlZ2lzdHJ5OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBlck9yaWdpblJlZ2lzdHJ5
KGdsb2JhbFJlZ2lzdHJ5LCBjbGllbnRPcmlnaW4pKTsKK30KIAotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYkxvY2tSZWdpc3RyeShvcmlnaW4pKTsKK0xvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQ
ZXJPcmlnaW5SZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnkoTG9jYWxXZWJMb2NrUmVnaXN0cnkm
IGdsb2JhbFJlZ2lzdHJ5LCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKKyAgICA6
IG1fZ2xvYmFsUmVnaXN0cnkoZ2xvYmFsUmVnaXN0cnkpCisgICAgLCBtX2NsaWVudE9yaWdpbihj
bGllbnRPcmlnaW4pCit7CisgICAgZ2xvYmFsUmVnaXN0cnkubV9wZXJPcmlnaW5SZWdpc3RyaWVz
LmFkZChjbGllbnRPcmlnaW4sIFdlYWtQdHIgeyAqIHRoaXMgfSk7CiB9CiAKLVdlYkxvY2tSZWdp
c3RyeTo6V2ViTG9ja1JlZ2lzdHJ5KGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQotICAgIDog
bV9vcmlnaW4ob3JpZ2luKQorTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5
Ojp+UGVyT3JpZ2luUmVnaXN0cnkoKQogewotICAgIHJlZ2lzdHJ5TWFwKCkuYWRkKG1fb3JpZ2lu
LCB0aGlzKTsKKyAgICBpZiAobV9nbG9iYWxSZWdpc3RyeSkKKyAgICAgICAgbV9nbG9iYWxSZWdp
c3RyeS0+bV9wZXJPcmlnaW5SZWdpc3RyaWVzLnJlbW92ZShtX2NsaWVudE9yaWdpbik7CiB9CiAK
LVdlYkxvY2tSZWdpc3RyeTo6fldlYkxvY2tSZWdpc3RyeSgpCit2b2lkIExvY2FsV2ViTG9ja1Jl
Z2lzdHJ5OjpyZXF1ZXN0TG9jayhjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgV2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElELCBjb25zdCBTdHJpbmcmIG5hbWUsIFdlYkxvY2tNb2RlIG1vZGUsIGJv
b2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRl
ZEhhbmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKIHsKLSAgICBh
dXRvKiByZWdpc3RyeSA9IHJlZ2lzdHJ5TWFwKCkudGFrZShtX29yaWdpbik7Ci0gICAgQVNTRVJU
X1VOVVNFRChyZWdpc3RyeSwgcmVnaXN0cnkgPT0gdGhpcyk7CisgICAgZW5zdXJlUmVnaXN0cnlG
b3JPcmlnaW4oY2xpZW50T3JpZ2luKS0+cmVxdWVzdExvY2sobG9ja0lkZW50aWZpZXIsIGNsaWVu
dElELCBuYW1lLCBtb2RlLCBzdGVhbCwgaWZBdmFpbGFibGUsIFdURk1vdmUoZ3JhbnRlZEhhbmRs
ZXIpLCBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSk7CiB9CiAKIC8vIGh0dHBzOi8vd2ljZy5n
aXRodWIuaW8vd2ViLWxvY2tzLyNyZXF1ZXN0LWEtbG9jawotdm9pZCBXZWJMb2NrUmVnaXN0cnk6
OnJlcXVlc3RMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBXZWJM
b2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lk
KGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbiYmKT4mJiBy
ZWxlYXNlSGFuZGxlcikKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6OlBlck9yaWdpblJlZ2lz
dHJ5OjpyZXF1ZXN0TG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
V2ViTG9ja01vZGUgbW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJsZSwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZCgpPiYmIGxvY2tTdG9s
ZW5IYW5kbGVyKQogewotICAgIExvY2tSZXF1ZXN0IHJlcXVlc3QgeyB7ICp0aGlzLCBsb2NrSWRl
bnRpZmllciwgY2xpZW50SUQsIG1vZGUsIFdURk1vdmUocmVsZWFzZUhhbmRsZXIpIH0sIG5hbWUs
IFdURk1vdmUoZ3JhbnRlZEhhbmRsZXIpIH07CisgICAgTG9ja1JlcXVlc3QgcmVxdWVzdCB7IHsg
KnRoaXMsIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbW9kZSwgV1RGTW92ZShsb2NrU3RvbGVu
SGFuZGxlcikgfSwgbmFtZSwgV1RGTW92ZShncmFudGVkSGFuZGxlcikgfTsKIAogICAgIGlmIChz
dGVhbCkgewogICAgICAgICBhdXRvIGl0ID0gbV9oZWxkTG9ja3MuZmluZChuYW1lKTsKICAgICAg
ICAgaWYgKGl0ICE9IG1faGVsZExvY2tzLmVuZCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8m
IGxvY2tJbmZvIDogaXQtPnZhbHVlKQotICAgICAgICAgICAgICAgIGxvY2tJbmZvLnJlbGVhc2VI
YW5kbGVyKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJMb2NrIHdhcyBzdG9sZW4gYnkgYW5vdGhl
ciByZXF1ZXN0IiB9KTsKKyAgICAgICAgICAgICAgICBsb2NrSW5mby5sb2NrU3RvbGVuSGFuZGxl
cigpOwogICAgICAgICAgICAgbV9oZWxkTG9ja3MucmVtb3ZlKGl0KTsKICAgICAgICAgfQogICAg
IH0gZWxzZSBpZiAoaWZBdmFpbGFibGUgJiYgIWlzR3JhbnRhYmxlKHJlcXVlc3QpKSB7CkBAIC05
Nyw4ICsxMzMsMTQgQEAgdm9pZCBXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKFdlYkxvY2tJ
ZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXQKICAgICBwcm9jZXNzTG9ja1Jl
cXVlc3RRdWV1ZShuYW1lLCBxdWV1ZSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6
OnJlbGVhc2VMb2NrKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBXZWJMb2NrSWRl
bnRpZmllciBsb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBpZiAoYXV0byByZWdpc3RyeSA9IGV4aXN0aW5n
UmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKSkKKyAgICAgICAgcmVnaXN0cnktPnJlbGVh
c2VMb2NrKGxvY2tJZGVudGlmaWVyLCBuYW1lKTsKK30KKwogLy8gaHR0cHM6Ly93aWNnLmdpdGh1
Yi5pby93ZWItbG9ja3MvI2FsZ29yaXRobS1yZWxlYXNlLWxvY2sKLXZvaWQgV2ViTG9ja1JlZ2lz
dHJ5OjpyZWxlYXNlTG9jayhXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lKQordm9pZCBMb2NhbFdlYkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0
cnk6OnJlbGVhc2VMb2NrKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUpCiB7CiAgICAgYXV0byBpdCA9IG1faGVsZExvY2tzLmZpbmQobmFtZSk7CiAg
ICAgaWYgKGl0ID09IG1faGVsZExvY2tzLmVuZCgpKQpAQCAtMTE0LDggKzE1NiwxNyBAQCB2b2lk
IFdlYkxvY2tSZWdpc3RyeTo6cmVsZWFzZUxvY2soV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50
aWZpZXIsIGNvbnN0IFN0cmluZwogICAgICAgICBwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShuYW1l
LCBxdWV1ZUl0ZXJhdG9yLT52YWx1ZSk7CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0cnk6
OmFib3J0TG9ja1JlcXVlc3QoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkxv
Y2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVnaXN0cnkgPSBleGlzdGluZ1JlZ2lz
dHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbik7CisgICAgaWYgKCFyZWdpc3RyeSkKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKworICAgIHJlZ2lzdHJ5LT5hYm9ydExv
Y2tSZXF1ZXN0KGxvY2tJZGVudGlmaWVyLCBuYW1lLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vd2ViLWxvY2tzLyNhYm9ydC10aGUt
cmVxdWVzdAotdm9pZCBXZWJMb2NrUmVnaXN0cnk6OmFib3J0TG9ja1JlcXVlc3QoV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJZGVu
dGlmaWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBxdWV1ZUl0
ZXJhdG9yID0gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwLmZpbmQobmFtZSk7CiAgICAgaWYgKHF1ZXVl
SXRlcmF0b3IgPT0gbV9sb2NrUmVxdWVzdFF1ZXVlTWFwLmVuZCgpKQpAQCAtMTM3LDcgKzE4OCw3
IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KFdlYkxvY2tJZGVudGlm
aWVyIGxvY2tJZGVudGlmaWVyLCBjb25zdCBTCiB9CiAKIC8vIGh0dHBzOi8vd2ljZy5naXRodWIu
aW8vd2ViLWxvY2tzLyNncmFudGFibGUKLWJvb2wgV2ViTG9ja1JlZ2lzdHJ5Ojppc0dyYW50YWJs
ZShjb25zdCBMb2NrUmVxdWVzdCYgcmVxdWVzdCkgY29uc3QKK2Jvb2wgTG9jYWxXZWJMb2NrUmVn
aXN0cnk6OlBlck9yaWdpblJlZ2lzdHJ5Ojppc0dyYW50YWJsZShjb25zdCBMb2NrUmVxdWVzdCYg
cmVxdWVzdCkgY29uc3QKIHsKICAgICBhdXRvIHF1ZXVlSXRlcmF0b3IgPSBtX2xvY2tSZXF1ZXN0
UXVldWVNYXAuZmluZChyZXF1ZXN0Lm5hbWUpOwogICAgIGlmIChxdWV1ZUl0ZXJhdG9yICE9IG1f
bG9ja1JlcXVlc3RRdWV1ZU1hcC5lbmQoKSAmJiAmcXVldWVJdGVyYXRvci0+dmFsdWUuZmlyc3Qo
KSAhPSAmcmVxdWVzdCkKQEAgLTE1NCw3ICsyMDUsNyBAQCBib29sIFdlYkxvY2tSZWdpc3RyeTo6
aXNHcmFudGFibGUoY29uc3QgTG9ja1JlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB9CiAKIC8vIGh0
dHBzOi8vd2ljZy5naXRodWIuaW8vd2ViLWxvY2tzLyNwcm9jZXNzLXRoZS1sb2NrLXJlcXVlc3Qt
cXVldWUKLXZvaWQgV2ViTG9ja1JlZ2lzdHJ5Ojpwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25z
dCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1ZXN0PiYgcXVldWUpCit2b2lkIExvY2FsV2Vi
TG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6cHJvY2Vzc0xvY2tSZXF1ZXN0UXVldWUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBEZXF1ZTxMb2NrUmVxdWVzdD4mIHF1ZXVlKQogewogICAgIHdo
aWxlICghcXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmICghaXNHcmFudGFibGUocXVldWUu
Zmlyc3QoKSkpCkBAIC0xNjksOCArMjIwLDE3IEBAIHZvaWQgV2ViTG9ja1JlZ2lzdHJ5Ojpwcm9j
ZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExvY2tSZXF1CiAg
ICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkUXVldWUsIHJlbW92ZWRRdWV1ZS5pc0VtcHR5KCkpOwog
fQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChjb25zdCBDbGllbnRPcmln
aW4mIGNsaWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2NrTWFuYWdlcjo6
U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZWdpc3RyeSA9
IGV4aXN0aW5nUmVnaXN0cnlGb3JPcmlnaW4oY2xpZW50T3JpZ2luKTsKKyAgICBpZiAoIXJlZ2lz
dHJ5KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKworICAgIHJlZ2lz
dHJ5LT5zbmFwc2hvdChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIC8vIGh0dHBz
Oi8vd2ljZy5naXRodWIuaW8vd2ViLWxvY2tzLyNzbmFwc2hvdC10aGUtbG9jay1zdGF0ZQotdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9j
a01hbmFnZXI6OlNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBMb2NhbFdl
YkxvY2tSZWdpc3RyeTo6UGVyT3JpZ2luUmVnaXN0cnk6OnNuYXBzaG90KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViTG9ja01hbmFnZXI6OlNuYXBzaG90JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIFdlYkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCBzbmFwc2hvdDsKICAgICBmb3IgKGF1
dG8mIHBhaXIgOiBtX2xvY2tSZXF1ZXN0UXVldWVNYXApIHsKQEAgLTE4NSwxNCArMjQ1LDIxIEBA
IHZvaWQgV2ViTG9ja1JlZ2lzdHJ5OjpzbmFwc2hvdChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkxvY2tNYW5hZ2VyOjpTbmFwc2hvdCYmCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShz
bmFwc2hvdCkpOwogfQogCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpjbGllbnRJc0dvaW5n
QXdheShjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7CisgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBleGlz
dGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikpCisgICAgICAgIHJlZ2lzdHJ5LT5j
bGllbnRzQXJlR29pbmdBd2F5KFtjbGllbnRJRF0oYXV0byYgbG9ja0luZm8pIHsgcmV0dXJuIGxv
Y2tJbmZvLmNsaWVudElEID09IGNsaWVudElEOyB9KTsKK30KKwogLy8gaHR0cHM6Ly93aWNnLmdp
dGh1Yi5pby93ZWItbG9ja3MvI2FnZW50LWludGVncmF0aW9uCi12b2lkIFdlYkxvY2tSZWdpc3Ry
eTo6Y2xpZW50SXNHb2luZ0F3YXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xp
ZW50SUQpCit2b2lkIExvY2FsV2ViTG9ja1JlZ2lzdHJ5OjpQZXJPcmlnaW5SZWdpc3RyeTo6Y2xp
ZW50c0FyZUdvaW5nQXdheShjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IExvY2tJbmZvJik+JiBt
YXRjaENsaWVudCkKIHsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBpbmVmZmljaWVudC4gV2UgY291
bGQgb3B0aW1pemUgdGhpcyBieSBrZWVwaW5nIHRyYWNrIG9mIHdoaWNoIGxvY2tzIG1hcCB0byB3
aGljaCBjbGllbnRzLgogICAgIEhhc2hTZXQ8U3RyaW5nPiBuYW1lc09mUXVldWVzVG9Qcm9jZXNz
OwogCiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZXNXaXRob3V0UmVxdWVzdHM7CiAgICAgZm9yIChh
dXRvJiBwYWlyIDogbV9sb2NrUmVxdWVzdFF1ZXVlTWFwKSB7Ci0gICAgICAgIGlmICghcGFpci52
YWx1ZS5yZW1vdmVBbGxNYXRjaGluZyhbY2xpZW50SURdKGF1dG8mIHJlcXVlc3QpIHsgcmV0dXJu
IHJlcXVlc3QuY2xpZW50SUQgPT0gY2xpZW50SUQ7IH0pKQorICAgICAgICBpZiAoIXBhaXIudmFs
dWUucmVtb3ZlQWxsTWF0Y2hpbmcobWF0Y2hDbGllbnQpKQogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIGlmIChwYWlyLnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIG5hbWVzV2l0
aG91dFJlcXVlc3RzLmFwcGVuZChwYWlyLmtleSk7CkBAIC0yMDQsNyArMjcxLDcgQEAgdm9pZCBX
ZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudEkKIAogICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzV2l0aG91dExvY2tz
OwogICAgIGZvciAoYXV0byYgcGFpciA6IG1faGVsZExvY2tzKSB7Ci0gICAgICAgIGlmICghcGFp
ci52YWx1ZS5yZW1vdmVBbGxNYXRjaGluZyhbY2xpZW50SURdKGF1dG8mIGxvY2tJbmZvKSB7IHJl
dHVybiBsb2NrSW5mby5jbGllbnRJRCA9PSBjbGllbnRJRDsgfSkpCisgICAgICAgIGlmICghcGFp
ci52YWx1ZS5yZW1vdmVBbGxNYXRjaGluZyhtYXRjaENsaWVudCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgaWYgKHBhaXIudmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgbmFt
ZXNXaXRob3V0TG9ja3MuYXBwZW5kKHBhaXIua2V5KTsKQEAgLTIyMCw0ICsyODcsMTMgQEAgdm9p
ZCBXZWJMb2NrUmVnaXN0cnk6OmNsaWVudElzR29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGNsaWVudEkKICAgICB9CiB9CiAKK3ZvaWQgTG9jYWxXZWJMb2NrUmVnaXN0
cnk6OmNsaWVudHNBcmVHb2luZ0F3YXkoUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZp
ZXIpCit7CisgICAgVmVjdG9yPENsaWVudE9yaWdpbj4gY2xpZW50T3JpZ2lucyA9IGNvcHlUb1Zl
Y3RvcihtX3Blck9yaWdpblJlZ2lzdHJpZXMua2V5cygpKTsKKyAgICBmb3IgKGF1dG8mIGNsaWVu
dE9yaWdpbiA6IGNsaWVudE9yaWdpbnMpIHsKKyAgICAgICAgaWYgKGF1dG8gcmVnaXN0cnkgPSBl
eGlzdGluZ1JlZ2lzdHJ5Rm9yT3JpZ2luKGNsaWVudE9yaWdpbikpCisgICAgICAgICAgICByZWdp
c3RyeS0+Y2xpZW50c0FyZUdvaW5nQXdheShbcHJvY2Vzc0lkZW50aWZpZXJdKGF1dG8mIGxvY2tJ
bmZvKSB7IHJldHVybiBsb2NrSW5mby5jbGllbnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IHBy
b2Nlc3NJZGVudGlmaWVyOyB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tSZWdp
c3RyeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5
LmgKaW5kZXggYTZlOGQwMzUzYmRjMjA5OWEwOTI0Yzc3NjMyNGVlYWRkOTQzYTA2Yy4uODI5Y2Y1
ZjY4MjRlOTkyZTc1Njg3NGZhMjA1Mzk4Yjk2ZTAwYTQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja1JlZ2lzdHJ5LmgKQEAgLTI1LDkgKzI1LDkg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ2xpZW50T3JpZ2luLmgiCisjaW5jbHVkZSAi
UHJvY2Vzc0lkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIldlYkxvY2tJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiV2Vi
TG9ja01hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJMb2NrTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00MCwyOSArNDAsNDAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRXhjZXB0aW9uOwogc3RydWN0IFdlYkxvY2tNYW5hZ2Vy
U25hcHNob3Q7CiAKLWNsYXNzIFdlYkxvY2tSZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkxvY2tSZWdpc3RyeT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJMb2NrUmVnaXN0cnk+IHsK
K2NsYXNzIFdlYkxvY2tSZWdpc3RyeSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkxvY2tSZWdpc3Ry
eT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViTG9ja1JlZ2lzdHJ5PiByZWdpc3RyeUZv
ck9yaWdpbihjb25zdCBDbGllbnRPcmlnaW4mKTsKLSAgICB+V2ViTG9ja1JlZ2lzdHJ5KCk7Cisg
ICAgdmlydHVhbCB+V2ViTG9ja1JlZ2lzdHJ5KCkgeyB9CiAKLSAgICB2b2lkIHJlcXVlc3RMb2Nr
KFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBXZWJMb2NrTW9kZSwgYm9vbCBzdGVhbCwgYm9vbCBpZkF2YWlsYWJs
ZSwgRnVuY3Rpb248dm9pZChib29sKT4mJiBncmFudGVkSGFuZGxlciwgRnVuY3Rpb248dm9pZChF
eGNlcHRpb24mJik+JiYgcmVsZWFzZUhhbmRsZXIpOwotICAgIHZvaWQgcmVsZWFzZUxvY2soV2Vi
TG9ja0lkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSk7Ci0gICAgdm9pZCBhYm9ydExvY2tS
ZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgc25hcHNob3QoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKLSAgICB2b2lkIGNsaWVudElz
R29pbmdBd2F5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdExvY2soY29uc3QgQ2xpZW50T3JpZ2luJiwgV2ViTG9ja0lkZW50aWZpZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIFdl
YkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlvbjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRs
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZUxvY2soY29uc3QgQ2xpZW50T3JpZ2lu
JiwgV2ViTG9ja0lkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRMb2NrUmVxdWVz
dChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzbmFwc2hvdChjb25zdCBDbGll
bnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkxvY2tNYW5hZ2VyU25hcHNob3Qm
Jik+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xpZW50SXNHb2luZ0F3YXkoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKIAotcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBXZWJMb2NrUmVnaXN0cnkoY29uc3QgQ2xpZW50T3JpZ2luJik7
Citwcm90ZWN0ZWQ6CisgICAgV2ViTG9ja1JlZ2lzdHJ5KCkgPSBkZWZhdWx0OworfTsKKworY2xh
c3MgTG9jYWxXZWJMb2NrUmVnaXN0cnkgZmluYWwgOiBwdWJsaWMgV2ViTG9ja1JlZ2lzdHJ5LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8TG9jYWxXZWJMb2NrUmVnaXN0cnk+IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPExvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IExvY2FsV2ViTG9ja1JlZ2lzdHJ5KTsgfQorICAgIH5Mb2NhbFdlYkxvY2tSZWdp
c3RyeSgpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXF1ZXN0TG9jayhjb25zdCBDbGll
bnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViTG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wg
aWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhhbmRsZXIsIEZ1bmN0
aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmll
ciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSkg
ZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhYm9ydExvY2tSZXF1ZXN0KGNvbnN0IENs
aWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNuYXBzaG90KGNvbnN0IENsaWVu
dE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViTG9ja01hbmFnZXJTbmFwc2hvdCYm
KT4mJikgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGllbnRJc0dvaW5nQXdheShj
b25zdCBDbGllbnRPcmlnaW4mLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmlu
YWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGllbnRzQXJlR29pbmdBd2F5KFByb2Nlc3NJ
ZGVudGlmaWVyKTsKIAotICAgIHN0cnVjdCBMb2NrSW5mbzsKLSAgICBzdHJ1Y3QgTG9ja1JlcXVl
c3Q7Citwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIExvY2FsV2ViTG9ja1JlZ2lzdHJ5KCk7
CiAKLSAgICBib29sIGlzR3JhbnRhYmxlKGNvbnN0IExvY2tSZXF1ZXN0JikgY29uc3Q7Ci0gICAg
dm9pZCBwcm9jZXNzTG9ja1JlcXVlc3RRdWV1ZShjb25zdCBTdHJpbmcmIG5hbWUsIERlcXVlPExv
Y2tSZXF1ZXN0PiYpOworICAgIGNsYXNzIFBlck9yaWdpblJlZ2lzdHJ5OworICAgIFJlZjxQZXJP
cmlnaW5SZWdpc3RyeT4gZW5zdXJlUmVnaXN0cnlGb3JPcmlnaW4oY29uc3QgQ2xpZW50T3JpZ2lu
Jik7CisgICAgUmVmUHRyPFBlck9yaWdpblJlZ2lzdHJ5PiBleGlzdGluZ1JlZ2lzdHJ5Rm9yT3Jp
Z2luKGNvbnN0IENsaWVudE9yaWdpbiYpIGNvbnN0OwogCi0gICAgY29uc3QgQ2xpZW50T3JpZ2lu
IG1fb3JpZ2luOwotICAgIEhhc2hNYXA8U3RyaW5nLCBEZXF1ZTxMb2NrUmVxdWVzdD4+IG1fbG9j
a1JlcXVlc3RRdWV1ZU1hcDsKLSAgICBIYXNoTWFwPFN0cmluZywgVmVjdG9yPExvY2tJbmZvPj4g
bV9oZWxkTG9ja3M7CisgICAgSGFzaE1hcDxDbGllbnRPcmlnaW4sIFdlYWtQdHI8UGVyT3JpZ2lu
UmVnaXN0cnk+PiBtX3Blck9yaWdpblJlZ2lzdHJpZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggYzhjMWUzN2ZkNDQ1YmFkYjU0ZTRjZWMzODY0N2FhNjkyODhlNGVhZS4uNTI0
NWQyM2M0YzY0OTc1Mzk4OTY4MWVmODQ1MDM3ZDE3ODcyYmFlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMxMywxMCArMTMx
MywxMiBAQAogCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY1RUREOUYyMjJGNEVDMzAwQjQ2RTE2IC8qIERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjIxOEFDQjFGNzJENjRFMDA1NzRGQkUgLyogRE9NSGln
aFJlc1RpbWVTdGFtcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFMDE2QUQxRjcyRDYxRTAwMjgyQjJDIC8qIERPTUhpZ2hSZXNUaW1lU3RhbXAuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjI3M0NB
RjI2MEU1OUVGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjI3M0NBQzI2MEU1OURGMDA2RkFBOTEgLyog
U1dTY3JpcHRTdG9yYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNDYyQzdGNDEyNzU2REJFNDAwRDA4M0M4IC8qIFdlYkxvY2tJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Njc4MDJC
MjI3NDcxMTg1MDBEQTlGQjYgLyogV2ViTG9ja0lkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjJFNEM1MDI2MTZBODExMDAzQTJD
NjcgLyogU2NyaXB0QnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjJFNEM0RDI2MTZBODAxMDAzQTJDNjcgLyogU2NyaXB0QnVmZmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDYzNEM3MkMy
NzU3REFCMjAwMjZBODE1IC8qIFdlYkxvY2tNYW5hZ2VyU25hcHNob3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzgwMkIwMjc0NzExN0IwMERBOUZC
NiAvKiBXZWJMb2NrTWFuYWdlclNuYXBzaG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDYzNTIxQUQyMDgxMDkyQTAwQzI4OTIyIC8qIFdpbmRv
d1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjM1MjFBQTIwODEwOTBCMDBDMjg5MjIgLyogV2luZG93UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVE
NTEgLyogVGFnQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAq
LzsgfTsKLQkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2
MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsgfTsKKwkJNDY0NEY3RjcyNzJBMUMxQjAwNTU1
OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjQ0RjdFQjI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NjQ0RjdGODI3
MkExQzFGMDA1NTU5OUUgLyogV2ViTG9ja0dyYW50ZWRDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY0NEY3RUUyNzJBMUMxNjAwNTU1OTlF
IC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDY0NEY3RjkyNzJBMUMyMTAw
NTU1OTlFIC8qIFdlYkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0NjQ0RjdGMDI3MkExQzE2MDA1NTU5OUUgLyogV2ViTG9ja01hbmFn
ZXIuaCAqLzsgfTsKIAkJNDY0NEY3RkEyNzJBMUMyNTAwNTU1OTlFIC8qIFdlYkxvY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NDRGN0YzMjcyQTFD
MTYwMDU1NTk5RSAvKiBXZWJMb2NrLmggKi87IH07CkBAIC0zNzU3Miw3ICszNzU3NCw5IEBACiAJ
CQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NjQ0RjdGQTI3MkExQzI1MDA1NTU5OUUgLyogV2ViTG9jay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDY0NEY3RjgyNzJBMUMxRjAwNTU1OTlFIC8qIFdlYkxvY2tHcmFudGVkQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MkM3RjQxMjc1NkRCRTQwMEQwODNDOCAvKiBXZWJMb2Nr
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY0NEY3RjkyNzJBMUMyMTAwNTU1OTlF
IC8qIFdlYkxvY2tNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjM0QzcyQzI3NTdEQUIy
MDAyNkE4MTUgLyogV2ViTG9ja01hbmFnZXJTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDY0NEY3RjcyNzJBMUMxQjAwNTU1OTlFIC8qIFdlYkxvY2tNb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NjRDQUYwOTI3NDMzMUE3MDAzQjlFNDEgLyogV2ViTG9ja1JlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwN0Y1Q0ZGNTI1ODJBNTFEMDA2NjJFRjUgLyogV2ViTUF1ZGlvVXRpbGl0
aWVzQ29jb2EuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCAzYTA2NGJjNzIzMWEzNjAwY2M4M2RjNThhOWEyZTdmZjJlZTk2YjM1Li5jMDg3
ODVhZjhmYzkyNGUzNTNmZmQ0ODNkZjdiOTVkYTI0NDNhZTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgIlRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgog
I2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnku
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTExNzAs
NiArMTE3MSwyMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgQ2xpZW50
T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgQnJvYWRjYXN0Q2hhbm5lbElkZW50aWZpZXIsIFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmlu
YWwgeyB9CiB9OwogCitjbGFzcyBFbXB0eVdlYkxvY2tSZWdpc3RyeSBmaW5hbCA6IHB1YmxpYyBX
ZWJMb2NrUmVnaXN0cnkgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RW1wdHlXZWJMb2NrUmVn
aXN0cnk+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0
eVdlYkxvY2tSZWdpc3RyeSk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlcXVlc3RMb2Nr
KGNvbnN0IENsaWVudE9yaWdpbiYsIFdlYkxvY2tJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2ViTG9ja01vZGUsIGJvb2wsIGJvb2ws
IEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYsIEZ1bmN0aW9uPHZvaWQoKT4mJikgeyB9CisgICAgdm9p
ZCByZWxlYXNlTG9jayhjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRlbnRpZmllciwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQor
ICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBDbGllbnRPcmlnaW4mLCBXZWJMb2NrSWRl
bnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgc25h
cHNob3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJMb2Nr
TWFuYWdlclNuYXBzaG90JiYpPiYmKSB7IH0KKyAgICB2b2lkIGNsaWVudElzR29pbmdBd2F5KGNv
bnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSB7IH0K
K307CisKIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25maWd1cmF0aW9uV2l0aEVtcHR5Q2xpZW50
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFn
ZUNvbmZpZ3VyYXRpb24gewpAQCAtMTE4Niw2ICsxMjAxLDcgQEAgUGFnZUNvbmZpZ3VyYXRpb24g
cGFnZUNvbmZpZ3VyYXRpb25XaXRoRW1wdHlDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+
KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8RW1wdHlNZWRpYVJlY29yZGVyUHJvdmlkZXI+KCks
CiAgICAgICAgIEVtcHR5QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpjcmVhdGUoKSwKKyAgICAg
ICAgRW1wdHlXZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpLAogICAgICAgICBEdW1teVBlcm1pc3Np
b25Db250cm9sbGVyOjpjcmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVN0b3Jh
Z2VQcm92aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teU1vZGVsUGxheWVyUHJv
dmlkZXI+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDU3MDZhZDg2MjhmYjliYjJjNDk4NjUzNWM2
MzJkOWQyZGFjOTEzZWYuLmYzN2QwNTliMGViNTI2YzU0OWMwZDdkZWI0ZWE1YTA4ODBmZjBkOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNv
bmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fdXNlckNvbnRlbnRQcm92
aWRlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnVzZXJDb250ZW50UHJvdmlkZXIpKQogICAg
ICwgbV92aXNpdGVkTGlua1N0b3JlKCpXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZpc2l0ZWRM
aW5rU3RvcmUpKQogICAgICwgbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5icm9hZGNhc3RDaGFubmVsUmVnaXN0cnkpKQorICAgICwgbV93ZWJMb2Nr
UmVnaXN0cnkoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi53ZWJMb2NrUmVnaXN0cnkpKQogICAg
ICwgbV9zZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24uc2Vzc2lvbklEKQogI2lmIEVOQUJMRShW
SURFTykKICAgICAsIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGVUaW1lcigqdGhpcywg
JlBhZ2U6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyVXBkYXRlVGltZXJGaXJlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKaW5kZXggZjFlMDhiYzRmZWMwNzQ5MTZhMzczM2FkZmY2MjA3MWRhNGVkMzg1Ni4uNzc5ZDkz
YTI0NTkwNTJjMTIzMGIwMzEzMDg4MGQ3YTQ0YmZmOTY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2
Nyw2ICsxNjcsNyBAQCBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2li
bGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpdGVkTGlua1N0b3JlOwogY2xhc3MgV2ViR0xTdGF0ZVRy
YWNrZXI7CitjbGFzcyBXZWJMb2NrUmVnaXN0cnk7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0
ZXI7CiBjbGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKQEAgLTI5OCw2ICsyOTksOCBAQCBw
dWJsaWM6CiAgICAgQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBicm9hZGNhc3RDaGFubmVsUmVn
aXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsgfQogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0QnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFJlZjxCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnk+JiYpOyAvLyBPbmx5IHVzZWQgYnkgV2ViS2l0TGVnYWN5LgogCisgICAg
V2ViTG9ja1JlZ2lzdHJ5JiB3ZWJMb2NrUmVnaXN0cnkoKSB7IHJldHVybiBtX3dlYkxvY2tSZWdp
c3RyeTsgfQorCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZm9yRWFjaFBhZ2UoY29u
c3QgRnVuY3Rpb248dm9pZChQYWdlJik+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHVu
c2lnbmVkIG5vblV0aWxpdHlQYWdlQ291bnQoKTsKIApAQCAtMTEzMiw2ICsxMTM1LDcgQEAgcHJp
dmF0ZToKICAgICBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4gbV91c2VyQ29udGVudFByb3ZpZGVy
OwogICAgIFJlZjxWaXNpdGVkTGlua1N0b3JlPiBtX3Zpc2l0ZWRMaW5rU3RvcmU7CiAgICAgUmVm
PEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4gbV9icm9hZGNhc3RDaGFubmVsUmVnaXN0cnk7Cisg
ICAgUmVmPFdlYkxvY2tSZWdpc3RyeT4gbV93ZWJMb2NrUmVnaXN0cnk7CiAgICAgUmVmUHRyPFdo
ZWVsRXZlbnRUZXN0TW9uaXRvcj4gbV93aGVlbEV2ZW50VGVzdE1vbml0b3I7CiAgICAgV2Vha0hh
c2hTZXQ8QWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyPiBtX2FjdGl2aXR5U3RhdGVDaGFuZ2VP
YnNlcnZlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3Vy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5k
ZXggMTk3Yzc4ZTRmZTk4MWVlZjhjMmFkNGFmYjY1NzY2YzViMzg4ZWM3YS4uYWU0MjdiN2QyY2Zl
N2IyMjJhNTVkODVlOTgxOGIwNDQ3ODU0Y2NjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnkuaCIK
ICNpZiBFTkFCTEUoV0VCR0wpCiAjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNlbmRp
ZgpAQCAtNjMsNyArNjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhZ2VDb25maWd1
cmF0aW9uOjpQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVuaXF1
ZVJlZjxFZGl0b3JDbGllbnQ+JiYgZWRpdG9yQ2xpZW50LCBSZWY8U29ja2V0UHJvdmlkZXI+JiYg
c29ja2V0UHJvdmlkZXIsIFVuaXF1ZVJlZjxMaWJXZWJSVENQcm92aWRlcj4mJiBsaWJXZWJSVENQ
cm92aWRlciwgUmVmPENhY2hlU3RvcmFnZVByb3ZpZGVyPiYmIGNhY2hlU3RvcmFnZVByb3ZpZGVy
LCBSZWY8VXNlckNvbnRlbnRQcm92aWRlcj4mJiB1c2VyQ29udGVudFByb3ZpZGVyLCBSZWY8QmFj
a0ZvcndhcmRDbGllbnQ+JiYgYmFja0ZvcndhcmRDbGllbnQsIFJlZjxDb29raWVKYXI+JiYgY29v
a2llSmFyLCBVbmlxdWVSZWY8UHJvZ3Jlc3NUcmFja2VyQ2xpZW50PiYmIHByb2dyZXNzVHJhY2tl
ckNsaWVudCwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYmIGxvYWRlckNsaWVudEZvck1h
aW5GcmFtZSwgVW5pcXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYgc3BlZWNoUmVj
b2duaXRpb25Qcm92aWRlciwgVW5pcXVlUmVmPE1lZGlhUmVjb3JkZXJQcm92aWRlcj4mJiBtZWRp
YVJlY29yZGVyUHJvdmlkZXIsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYgYnJvYWRj
YXN0Q2hhbm5lbFJlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lv
bkNvbnRyb2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVy
LCBVbmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQor
UGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVudD4mJiBlZGl0b3JDbGllbnQsIFJlZjxTb2NrZXRQ
cm92aWRlcj4mJiBzb2NrZXRQcm92aWRlciwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYm
IGxpYldlYlJUQ1Byb3ZpZGVyLCBSZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYgY2FjaGVTdG9y
YWdlUHJvdmlkZXIsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmIHVzZXJDb250ZW50UHJvdmlk
ZXIsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiBiYWNrRm9yd2FyZENsaWVudCwgUmVmPENvb2tp
ZUphcj4mJiBjb29raWVKYXIsIFVuaXF1ZVJlZjxQcm9ncmVzc1RyYWNrZXJDbGllbnQ+JiYgcHJv
Z3Jlc3NUcmFja2VyQ2xpZW50LCBVbmlxdWVSZWY8RnJhbWVMb2FkZXJDbGllbnQ+JiYgbG9hZGVy
Q2xpZW50Rm9yTWFpbkZyYW1lLCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4m
JiBzcGVlY2hSZWNvZ25pdGlvblByb3ZpZGVyLCBVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3Zp
ZGVyPiYmIG1lZGlhUmVjb3JkZXJQcm92aWRlciwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3Ry
eT4mJiBicm9hZGNhc3RDaGFubmVsUmVnaXN0cnksIFJlZjxXZWJMb2NrUmVnaXN0cnk+JiYgd2Vi
TG9ja1JlZ2lzdHJ5LCBSZWY8UGVybWlzc2lvbkNvbnRyb2xsZXI+JiYgcGVybWlzc2lvbkNvbnRy
b2xsZXIsIFVuaXF1ZVJlZjxTdG9yYWdlUHJvdmlkZXI+JiYgc3RvcmFnZVByb3ZpZGVyLCBVbmlx
dWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJiBtb2RlbFBsYXllclByb3ZpZGVyKQogICAgIDog
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIGVkaXRvckNsaWVudChXVEZNb3ZlKGVkaXRvckNs
aWVudCkpCiAgICAgLCBzb2NrZXRQcm92aWRlcihXVEZNb3ZlKHNvY2tldFByb3ZpZGVyKSkKQEAg
LTc1LDYgKzc2LDcgQEAgUGFnZUNvbmZpZ3VyYXRpb246OlBhZ2VDb25maWd1cmF0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckMKICAgICAsIGNhY2hlU3RvcmFn
ZVByb3ZpZGVyKFdURk1vdmUoY2FjaGVTdG9yYWdlUHJvdmlkZXIpKQogICAgICwgdXNlckNvbnRl
bnRQcm92aWRlcihXVEZNb3ZlKHVzZXJDb250ZW50UHJvdmlkZXIpKQogICAgICwgYnJvYWRjYXN0
Q2hhbm5lbFJlZ2lzdHJ5KFdURk1vdmUoYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KSkKKyAgICAs
IHdlYkxvY2tSZWdpc3RyeShXVEZNb3ZlKHdlYkxvY2tSZWdpc3RyeSkpCiAgICAgLCBzcGVlY2hS
ZWNvZ25pdGlvblByb3ZpZGVyKFdURk1vdmUoc3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcikpCiAg
ICAgLCBtZWRpYVJlY29yZGVyUHJvdmlkZXIoV1RGTW92ZShtZWRpYVJlY29yZGVyUHJvdmlkZXIp
KQogICAgICwgcGVybWlzc2lvbkNvbnRyb2xsZXIoV1RGTW92ZShwZXJtaXNzaW9uQ29udHJvbGxl
cikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggN2ZiMzM0NjU3
ZTMxMjBjNWFkYmQyZDRkMmFmZmI2MDBhYjI5YmIyZi4uYmFjNmZiMmY1ZTYxZDQxN2ZmOWM1ODRj
ZGE0OGJiNDY5ZTlkMDZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
ZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aApAQCAtNzQsMTEgKzc0LDEyIEBAIGNsYXNzIFVzZXJDb250ZW50VVJMUGF0dGVybjsKIGNsYXNz
IFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKIGNsYXNz
IFdlYkdMU3RhdGVUcmFja2VyOworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5OwogCiBjbGFzcyBQYWdl
Q29uZmlndXJhdGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbmZpZ3VyYXRp
b24pOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBQYWdlQ29uZmlndXJhdGlvbihQQUw6OlNlc3Npb25JRCwgVW5pcXVlUmVmPEVkaXRvckNsaWVu
dD4mJiwgUmVmPFNvY2tldFByb3ZpZGVyPiYmLCBVbmlxdWVSZWY8TGliV2ViUlRDUHJvdmlkZXI+
JiYsIFJlZjxDYWNoZVN0b3JhZ2VQcm92aWRlcj4mJiwgUmVmPFVzZXJDb250ZW50UHJvdmlkZXI+
JiYsIFJlZjxCYWNrRm9yd2FyZENsaWVudD4mJiwgUmVmPENvb2tpZUphcj4mJiwgVW5pcXVlUmVm
PFByb2dyZXNzVHJhY2tlckNsaWVudD4mJiwgVW5pcXVlUmVmPEZyYW1lTG9hZGVyQ2xpZW50PiYm
LCBVbmlxdWVSZWY8U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1lZGlh
UmVjb3JkZXJQcm92aWRlcj4mJiwgUmVmPEJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeT4mJiwgUmVm
PFBlcm1pc3Npb25Db250cm9sbGVyPiYmLCBVbmlxdWVSZWY8U3RvcmFnZVByb3ZpZGVyPiYmLCBV
bmlxdWVSZWY8TW9kZWxQbGF5ZXJQcm92aWRlcj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFn
ZUNvbmZpZ3VyYXRpb24oUEFMOjpTZXNzaW9uSUQsIFVuaXF1ZVJlZjxFZGl0b3JDbGllbnQ+JiYs
IFJlZjxTb2NrZXRQcm92aWRlcj4mJiwgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVyPiYmLCBS
ZWY8Q2FjaGVTdG9yYWdlUHJvdmlkZXI+JiYsIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiYmLCBS
ZWY8QmFja0ZvcndhcmRDbGllbnQ+JiYsIFJlZjxDb29raWVKYXI+JiYsIFVuaXF1ZVJlZjxQcm9n
cmVzc1RyYWNrZXJDbGllbnQ+JiYsIFVuaXF1ZVJlZjxGcmFtZUxvYWRlckNsaWVudD4mJiwgVW5p
cXVlUmVmPFNwZWVjaFJlY29nbml0aW9uUHJvdmlkZXI+JiYsIFVuaXF1ZVJlZjxNZWRpYVJlY29y
ZGVyUHJvdmlkZXI+JiYsIFJlZjxCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+JiYsIFJlZjxXZWJM
b2NrUmVnaXN0cnk+JiYsIFJlZjxQZXJtaXNzaW9uQ29udHJvbGxlcj4mJiwgVW5pcXVlUmVmPFN0
b3JhZ2VQcm92aWRlcj4mJiwgVW5pcXVlUmVmPE1vZGVsUGxheWVyUHJvdmlkZXI+JiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIH5QYWdlQ29uZmlndXJhdGlvbigpOwogICAgIFBhZ2VDb25maWd1cmF0
aW9uKFBhZ2VDb25maWd1cmF0aW9uJiYpOwogCkBAIC0xMjgsNiArMTI5LDcgQEAgcHVibGljOgog
ICAgIFJlZjxVc2VyQ29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJl
ZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOwogICAgIFJlZjxCcm9hZGNh
c3RDaGFubmVsUmVnaXN0cnk+IGJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKKyAgICBSZWY8V2Vi
TG9ja1JlZ2lzdHJ5PiB3ZWJMb2NrUmVnaXN0cnk7CiAgICAgCiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZWZQdHI8RGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oCmluZGV4IDJjZWFlN2UyOTRiODMxMzdlMDMwZjdlYTlmNWViZGQ0
OTBmMjBjYzUuLmUzNmY0MjI4MzAxNzkxZmNlM2UzNzhiZjA2MTE1NTViNjk5Y2I3OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIuaApAQCAtMjUsMTIgKzI1LDExIEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiUHJvY2Vzc1F1YWxpZmllZC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdGVtcGxhdGUgPHR5cGVuYW1lPiBjbGFzcyBQcm9jZXNz
UXVhbGlmaWVkOwotCiBlbnVtIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlwZSB7
IH07CiB1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciA9IFByb2Nlc3NRdWFs
aWZpZWQ8T2JqZWN0SWRlbnRpZmllcjxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5
cGU+PjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggODJhYTVmMjJkZDcyMGMxOTE4NDZhOTQyYTM5
MTRjYmZlYWM4NmM3ZS4uZThlYWQ2MDI3M2I3NTE4OTQwMTY2MmQ0ZGZhMGIzMTczYjIyYzhiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CkBAIC0yMjksNiArMjI5LDcgQEAgc2V0KFdlYktpdF9NRVNTQUdF
U19JTl9GSUxFUwogICAgIFVJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkKICAgICBVSVBy
b2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eQogICAgIFVJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eQorICAgIFVJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eQogICAg
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkKICAgICBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5
CiAgICAgVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sCkBAIC0zMDcsNiArMzA4LDcgQEAgc2V0KFdl
YktpdF9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJV
c2VyQ29udGVudENvbnRyb2xsZXIKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9h
ZGNhc3RDaGFubmVsUmVnaXN0cnkKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYTc4OTdiOTYxYTM5ZGFmOTI3YzU0ZDEyZWZhM2M4
OTcxNDk3YjAyZi4uODU5MmQ5OWQyZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVlZWY1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTUz
LDYgKzE1Myw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9j
ZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTIxNyw2ICsyMTgs
NyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTcGVlY2hSZWNv
Z25pdGlvbkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDkzYTYxNDZkNmIxMzljYjhhMTZhMTcxYmI3
N2Q0NGJkM2I1OGI2NWIuLmE1OWU2MjNiMDllNmE5N2VmZmVkNGY5YzUyZjU3MzYzNjQ1ZWFjNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApA
QCAtMzg3LDYgKzM4Nyw5IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJTWVzc2FnZXNSZXBsaWVzCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlV2ViSW5zcGVjdG9yVUlQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZVdlYkluc3BlY3RvclVJUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1l
c3NhZ2VzUmVwbGllcy5oCkBAIC01MjYsNiArNTI5LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlc1JlcGxpZXMuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9y
VUlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSVByb3h5TWVz
c2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkxvY2tSZWdpc3RyeVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNz
YWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJM
b2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJNRE5TUmVn
aXN0ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJNRE5TUmVnaXN0ZXJNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDQ1NzQzODY1YTRhYzgzMmQzZTVkYmQ0YWZkNDM4YmQ3NTMyY2Q5MjMuLjE5
MzM4ODQ5NjFiNGJjMzA0ZjA4OWIwYjU0ZTE0ODkxYjVjMzQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE2OCw2ICsxNjgsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlV
SVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIgXAogCVVJUHJvY2Vzcy9t
YWMvU2VjSXRlbVNoaW1Qcm94eSBcCiAJVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5IFwKKwlVSVByb2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkgXAogCVVJUHJvY2Vzcy9Db2Nv
YS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5IFwKIAlVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5IFwKQEAgLTIxOCw2ICsyMTksNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwK
IAlXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYlJUQ01vbml0b3IgXAogCVdlYlByb2Nlc3Mv
TmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyIFwKIAlXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ1Jlc29sdmVyIFwKKwlXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdl
YkxvY2tSZWdpc3RyeSBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCcm9hZGNhc3RD
aGFubmVsUmVnaXN0cnkgXAogCVdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlciBcCiAJV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
cGVlY2hSZWNvZ25pdGlvbkNvbm5lY3Rpb24gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggNzZjMmRlYmFmZDkxZDE2ZjhkNzcwODkzZjQ4ODk2OTAwZGZlMjZk
Mi4uMmM4MzlhOWU5YmNkOGU5ZjEyMWRmODkzMGZmNDJmYzYwY2IyN2QwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zMTIsNiArMzEyLDcgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6
OlNvdXJjZUJ1ZmZlckFwcGVuZE1vZGUnLAogICAgICAgICAnV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25Db25uZWN0aW9uQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpVc2Vy
TWVkaWFSZXF1ZXN0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpXZWJMb2NrSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyJywKICAgICAgICAg
J1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6QXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IDNlNDNkM2UxM2E3Njc4ZjgxNGNiNmM0NzQxMjcwOWEzMzNkNzk1NGIuLmZlNjA0MTJj
MmExNTJhYjVjNDJlZmFmYzBiYjhiYTI0YTQ3ODlmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDM1LDYg
KzQzNSw3IEBAIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAogVUlQcm9jZXNzL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuY3BwCiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5jcHAKK1VJUHJvY2Vzcy9X
ZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3Bw
CiBVSVByb2Nlc3MvV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9XZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwCkBAIC03ODEsNiArNzgyLDcgQEAg
V2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCiBXZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAK
IFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHAKIAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3Bw
CiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1NoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5jcHAKIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5LmNwcApA
QCAtODQ3LDggKzg0OSw2IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMTWVzc2FnZVJlY2VpdmVy
LmNwcAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKIFBs
YXRmb3JtWFJTeXN0ZW1NZXNzYWdlUmVjZWl2ZXIuY3BwCiBQbGF0Zm9ybVhSU3lzdGVtUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCi1XZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCi0KIFJlbW90ZUFkYXB0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVCaW5k
R3JvdXBNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVCaW5kR3JvdXBMYXlvdXRNZXNzYWdlUmVj
ZWl2ZXIuY3BwCkBAIC04NzEsMyArODcxLDYgQEAgUmVtb3RlU2FtcGxlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKIFJlbW90ZVNoYWRlck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1
cmVNZXNzYWdlUmVjZWl2ZXIuY3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5j
cHAKK1JlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkJyb2FkY2Fz
dENoYW5uZWxSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1dlYkxvY2tSZWdpc3RyeVByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViTG9ja1JlZ2lzdHJ5UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTG9j
a1JlZ2lzdHJ5UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NTViZjdjYTk1MTdjZDIzMTY5ZDcxMTEx
YWJlZDFlNjdhOTM0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eS5oIgor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3Ry
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViTG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNkZWZpbmUg
TUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIG1f
cHJvY2Vzcy5jb25uZWN0aW9uKCkpCisKK1dlYkxvY2tSZWdpc3RyeVByb3h5OjpXZWJMb2NrUmVn
aXN0cnlQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJv
Y2VzcykKK3sKKyAgICBtX3Byb2Nlc3MuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJM
b2NrUmVnaXN0cnlQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1dl
YkxvY2tSZWdpc3RyeVByb3h5Ojp+V2ViTG9ja1JlZ2lzdHJ5UHJveHkoKQoreworICAgIG1fcHJv
Y2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFdlYkxvY2tSZWdpc3RyeVByb3h5
OjpyZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFdlYkNv
cmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFtZSwgV2ViQ29yZTo6
V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wgc3RlYWwsIGJvb2wgaWZBdmFpbGFibGUpCit7Cisg
ICAgTUVTU0FHRV9DSEVDSyhsb2NrSWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpID09IG1f
cHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgTUVTU0FHRV9DSEVDSyhjbGll
bnRJRC5wcm9jZXNzSWRlbnRpZmllcigpID09IG1fcHJvY2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZp
ZXIoKSk7CisKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3Ry
eSgpLnJlcXVlc3RMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50aWZpZXIsIGNs
aWVudElELCBXVEZNb3ZlKG5hbWUpLCBsb2NrTW9kZSwgc3RlYWwsIGlmQXZhaWxhYmxlLCBbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElEXShib29s
IHN1Y2Nlc3MpIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMt
Pm1fcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJMb2NrUmVnaXN0cnk6OkRpZENvbXBs
ZXRlTG9ja1JlcXVlc3QobG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBzdWNjZXNzKSwgMCk7Cisg
ICAgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGll
bnRJRF0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9w
cm9jZXNzLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6RGlkU3RlYWxMb2Nr
KGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCksIDApOworICAgIH0pOworfQorCit2b2lkIFdlYkxv
Y2tSZWdpc3RyeVByb3h5OjpyZWxlYXNlTG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGll
bnRPcmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYg
bmFtZSkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlm
aWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdF
X0NIRUNLKGNsaWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxv
Y2tSZWdpc3RyeSgpLnJlbGVhc2VMb2NrKFdURk1vdmUoY2xpZW50T3JpZ2luKSwgbG9ja0lkZW50
aWZpZXIsIGNsaWVudElELCBXVEZNb3ZlKG5hbWUpKTsKK30KKwordm9pZCBXZWJMb2NrUmVnaXN0
cnlQcm94eTo6YWJvcnRMb2NrUmVxdWVzdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBjbGllbnRP
cmlnaW4sIFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nJiYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBNRVNTQUdFX0NIRUNLKGxvY2tJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkgPT0g
bV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBNRVNTQUdFX0NIRUNLKGNs
aWVudElELnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRp
ZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3Ry
eSgpLmFib3J0TG9ja1JlcXVlc3QoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBsb2NrSWRlbnRpZmll
ciwgY2xpZW50SUQsIFdURk1vdmUobmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwordm9pZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6c25hcHNob3QoV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Oldl
YkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9w
cm9jZXNzLndlYnNpdGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5zbmFwc2hvdChXVEZN
b3ZlKGNsaWVudE9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9p
ZCBXZWJMb2NrUmVnaXN0cnlQcm94eTo6Y2xpZW50SXNHb2luZ0F3YXkoV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBjbGllbnRJRCkKK3sKKyAgICBNRVNTQUdFX0NIRUNLKGNsaWVudElELnByb2Nlc3NJ
ZGVudGlmaWVyKCkgPT0gbV9wcm9jZXNzLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICBt
X3Byb2Nlc3Mud2Vic2l0ZURhdGFTdG9yZSgpLndlYkxvY2tSZWdpc3RyeSgpLmNsaWVudElzR29p
bmdBd2F5KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgY2xpZW50SUQpOworfQorCit2b2lkIFdlYkxv
Y2tSZWdpc3RyeVByb3h5Ojpwcm9jZXNzRGlkRXhpdCgpCit7CisgICAgbV9wcm9jZXNzLndlYnNp
dGVEYXRhU3RvcmUoKS53ZWJMb2NrUmVnaXN0cnkoKS5jbGllbnRzQXJlR29pbmdBd2F5KG1fcHJv
Y2Vzcy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSk7Cit9CisKKyN1bmRlZiBNRVNTQUdFX0NIRUNL
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkxvY2tSZWdpc3RyeVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJhMzFhOWI5MmI3MTYxYzdjYWQ2MDJi
ZmJhMWI4MzY5OTczMzI3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvV2ViTG9ja0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tNb2Rl
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBDbGllbnRPcmlnaW47CitzdHJ1Y3Qg
V2ViTG9ja01hbmFnZXJTbmFwc2hvdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlByb2Nlc3NQcm94eTsKKworY2xhc3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHkgZmluYWwgOiBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYkxvY2tSZWdpc3RyeVByb3h5KFdlYlByb2Nlc3NQ
cm94eSYpOworICAgIH5XZWJMb2NrUmVnaXN0cnlQcm94eSgpOworCisgICAgdm9pZCBwcm9jZXNz
RGlkRXhpdCgpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDIE1lc3NhZ2UgaGFu
ZGxlcnMuCisgICAgdm9pZCByZXF1ZXN0TG9jayhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgV2Vi
Q29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBXZWJDb3JlOjpXZWJMb2NrTW9kZSwgYm9vbCBzdGVh
bCwgYm9vbCBpZkF2YWlsYWJsZSk7CisgICAgdm9pZCByZWxlYXNlTG9jayhXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lKTsKKyAgICB2b2lkIGFib3J0
TG9ja1JlcXVlc3QoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFdlYkNvcmU6OldlYkxvY2tJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU3RyaW5n
JiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzbmFw
c2hvdChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpXZWJMb2NrTWFuYWdlclNuYXBzaG90JiYpPiYmKTsKKyAgICB2b2lkIGNsaWVudElzR29p
bmdBd2F5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcik7CisKKyAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRi
YWJjMjU0YzQxZTBlMDE5MTU2Y2E4MTJjNDZmZTc5MDMwNTE3ZTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK21lc3NhZ2VzIC0+IFdlYkxvY2tSZWdpc3RyeVByb3h5IE5vdFJlZkNvdW50ZWQgeworICAg
IFJlcXVlc3RMb2NrKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luLCBX
ZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUsIGVudW06Ym9vbCBX
ZWJDb3JlOjpXZWJMb2NrTW9kZSBtb2RlLCBib29sIHN0ZWFsLCBib29sIGlmQXZhaWxhYmxlKQor
ICAgIFJlbGVhc2VMb2NrKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2lu
LCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgU3RyaW5nIG5hbWUpCisgICAgQWJv
cnRMb2NrUmVxdWVzdChzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIGNsaWVudE9yaWdpbiwg
V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQsIFN0cmluZyBuYW1lKSAtPiAoYm9vbCB3
YXNBYm9ydGVkKSBBc3luYworICAgIFNuYXBzaG90KHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4gY2xpZW50T3JpZ2luKSAtPiAoc3RydWN0IFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyU25hcHNo
b3Qgc25hcHNob3QpIEFzeW5jCisgICAgQ2xpZW50SXNHb2luZ0F3YXkoc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGNsaWVudElkKQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggMDI4YzhkOGVmMDcxNGM4MmViOTA0Yzk0ZTdlMjk3MWQ4NWJh
ZWIxMy4uNjY1NmUyZGRkZDNiNDJjYzcwN2U4YTI4YjVkYTlhZGE3MDgwOTlmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC00Niw2ICs0Niw3IEBA
CiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCIKKyNpbmNs
dWRlICJXZWJMb2NrUmVnaXN0cnlQcm94eS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25EYXRh
U3RvcmUuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJQYWdlR3JvdXAuaCIKQEAgLTI0MCw2ICsyNDEsNyBAQCBXZWJQcm9jZXNzUHJveHk6
OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRh
U3RvcmUqCiAgICAgLCBtX2NhcHRpdmVQb3J0YWxNb2RlKGNhcHRpdmVQb3J0YWxNb2RlKQogICAg
ICwgbV9jcm9zc09yaWdpbk1vZGUoY3Jvc3NPcmlnaW5Nb2RlKQogICAgICwgbV9zaHV0ZG93blBy
ZXZlbnRpbmdTY29wZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCBldmVudCkgeyBpZiAo
ZXZlbnQgPT0gUmVmQ291bnRlckV2ZW50OjpEZWNyZW1lbnQpIG1heWJlU2h1dERvd24oKTsgfSkK
KyAgICAsIG1fd2ViTG9ja1JlZ2lzdHJ5KHdlYnNpdGVEYXRhU3RvcmUgPyBtYWtlVW5pcXVlPFdl
YkxvY2tSZWdpc3RyeVByb3h5PigqdGhpcykgOiBudWxscHRyKQogewogICAgIFJFTEVBU0VfQVNT
RVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKICAgICBXRUJQUk9DRVNTUFJPWFlf
UkVMRUFTRV9MT0coUHJvY2VzcywgImNvbnN0cnVjdG9yOiIpOwpAQCAtMzQ1LDYgKzM0NywxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0V2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0
b3JlJiBkYXRhU3RvcmUpCiAjZW5kaWYKICAgICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0
b3JlKCk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0V2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMocHJvY2Vzc1Bvb2woKS53ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycygq
dGhpcywgZGF0YVN0b3JlKSksIDApOworCisgICAgLy8gRGVsYXkgY29uc3RydWN0aW9uIG9mIHRo
ZSBXZWJMb2NrUmVnaXN0cnlQcm94eSB1bnRpbCB0aGUgV2ViUHJvY2Vzc1Byb3h5IGhhcyBhIGRh
dGEgc3RvcmUgc2luY2UgdGhlIGRhdGEgc3RvcmUgaG9sZHMgdGhlCisgICAgLy8gTG9jYWxXZWJM
b2NrUmVnaXN0cnkuCisgICAgbV93ZWJMb2NrUmVnaXN0cnkgPSBtYWtlVW5pcXVlPFdlYkxvY2tS
ZWdpc3RyeVByb3h5PigqdGhpcyk7CiB9CiAKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5Ojppc0R1bW15
UHJvY2Vzc1Byb3h5KCkgY29uc3QKQEAgLTUyOCw2ICs1MzQsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c2h1dERvd24oKQogICAgIG1fdXNlckluaXRpYXRlZEFjdGlvbk1hcC5jbGVhcigpOwog
ICAgIG1fc2xlZXBEaXNhYmxlcnMuY2xlYXIoKTsKIAorICAgIGlmIChtX3dlYkxvY2tSZWdpc3Ry
eSkKKyAgICAgICAgbV93ZWJMb2NrUmVnaXN0cnktPnByb2Nlc3NEaWRFeGl0KCk7CisKICNpZiBF
TkFCTEUoUk9VVElOR19BUkJJVFJBVElPTikKICAgICBtX3JvdXRpbmdBcmJpdHJhdG9yLT5wcm9j
ZXNzRGlkVGVybWluYXRlKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZGE2ZGM2OGVlYmNlY2I0MjM2MjdlYzk4OWQ2YmNhYTgwMTU3NDk3
My4uZjc0NDgwZmZhN2NjOWYxODA2NTIxZTViYjA1NTFmNDQ2NmJlNTdlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDYgKzkzLDcgQEAgY2xhc3Mg
VmlzaXRlZExpbmtTdG9yZTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7CiBjbGFzcyBXZWJGcmFtZVByb3h5OworY2xh
c3MgV2ViTG9ja1JlZ2lzdHJ5UHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQ
YWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKQEAgLTY3NCw2ICs2NzUsNyBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNwZWVj
aFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI+IG1fc3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKICNlbmRpZgorICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJMb2NrUmVnaXN0cnlQcm94eT4gbV93ZWJMb2NrUmVnaXN0cnk7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZmMxZDlhZTk4
OTNkZDkxMDE2NzNmN2M4ZGFlNmYzYjliYThlMzljNy4uOTA5NzkzZTM3NTY4YzA0MmIxMDAyYTI2
YWEwMjc0Nzg0YTkxZTRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VRdW90YU1hbmFnZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9D
YWxsYmFja0FnZ3JlZ2F0b3IuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCBX
ZWJzaXRlRGF0YVN0b3JlOjpXZWJzaXRlRGF0YVN0b3JlKFJlZjxXZWJzaXRlRGF0YVN0b3JlQ29u
ZmlndXJhdGlvbj4mJiBjb25maWd1cgogI2lmIEhBVkUoQVBQX1NTTykKICAgICAsIG1fc29BdXRo
b3JpemF0aW9uQ29vcmRpbmF0b3IobWFrZVVuaXF1ZVJlZjxTT0F1dGhvcml6YXRpb25Db29yZGlu
YXRvcj4oKSkKICNlbmRpZgorICAgICwgbV93ZWJMb2NrUmVnaXN0cnkoV2ViQ29yZTo6TG9jYWxX
ZWJMb2NrUmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVn
ZXMoYWxsUHJpdmlsZWdlcygpKTsKICAgICByZWdpc3RlcldpdGhTZXNzaW9uSURNYXAoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCA2MTk2MjgwZjc2ZGExMjAyOThlMmI3YWIxNjQwNWQyZjBiYTI4OTIzLi4x
ZGUyNWE2NjA1N2YyZDY2YzYyOTllNWViYmI4MTQ2YmVlOWI4MWUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC03NSw2ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENlcnRpZmljYXRlSW5m
bzsKIGNsYXNzIFJlZ2lzdHJhYmxlRG9tYWluOwogY2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFz
cyBMb2NhbFdlYkxvY2tSZWdpc3RyeTsKIAogc3RydWN0IE1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb247CiB9CkBAIC0zMTcsNiArMzE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
Q2xpZW50KFVuaXF1ZVJlZjxXZWJzaXRlRGF0YVN0b3JlQ2xpZW50PiYmIGNsaWVudCkgeyBtX2Ns
aWVudCA9IFdURk1vdmUoY2xpZW50KTsgfQogCiAgICAgQVBJOjpIVFRQQ29va2llU3RvcmUmIGNv
b2tpZVN0b3JlKCk7CisgICAgV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnkmIHdlYkxvY2tS
ZWdpc3RyeSgpIHsgcmV0dXJuIG1fd2ViTG9ja1JlZ2lzdHJ5LmdldCgpOyB9CiAKICAgICB2b2lk
IHJlbmFtZU9yaWdpbkluV2Vic2l0ZURhdGEoVVJMJiYsIFVSTCYmLCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIApAQCAtNDcxLDYgKzQ3
Myw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGU+IG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsgLy8gTGF6aWx5IGNv
bXB1dGVkLgogI2VuZGlmCisgICAgUmVmPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5PiBt
X3dlYkxvY2tSZWdpc3RyeTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGIxMjA0ZTNjNDNiYjg2YWVkNDZiM2M1MTEwMzUz
OGVhNTcyYjhkODAuLmE0NTExNWY0ODlhYTJjY2JjOWJlYzRjZTE3ZGY2MDdiZTI4NWI1MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
OTA4LDYgKzkwOCw3IEBACiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0ODEx
RUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9OwogCQk0
NjVGNEUwNjIzMEIyRTk1MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUY0RTA1MjMw
QjJFN0MwMDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oICovOyB9OworCQk0
NjVGQTcyNjI3NTdEOTNEMDA3MjM2MkIgLyogV2ViTG9ja1JlZ2lzdHJ5UHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUZBNzIzMjc1N0Q5MTgw
MDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94eS5oICovOyB9OwogCQk0NjZCQzAzQzFGQTI2
NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM5MUZBMjY2QzkwMDJG
QTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovOyB9OwogCQk0NjcxRkYx
RjIzMjE3RUZGMDAxQjY0QzcgLyogV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFGRjFEMjMyMTdFRkYwMDFC
NjRDNyAvKiBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oICovOyB9OwogCQk0NjdFNDNFODIyNDNG
RjdEMDBCMTM5MjQgLyogV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2N0U0M0U3MjI0M0ZGNkQwMEIx
MzkyNCAvKiBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oICovOyB9OwpAQCAtNDE3Niw2
ICs0MTc3LDkgQEAKIAkJNDY1RjRFMDIyMzA3NTlENTAwM0NFREI3IC8qIFN0b3JhZ2VBcmVhSWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlQXJlYUlkZW50aWZpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY1RjRFMDMyMzA3NjA0RTAwM0NFREI3IC8qIFN0b3Jh
Z2VBcmVhSW1wbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUFyZWFJbXBsSWRl
bnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjVGNEUwNTIzMEIyRTdD
MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDY1RkE3MjMyNzU3RDkxODAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkxvY2tSZWdpc3RyeVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQ2NUZBNzI0Mjc1N0Q5MTgwMDcyMzYyQiAvKiBXZWJMb2NrUmVnaXN0cnlQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJMb2NrUmVnaXN0cnlQcm94eS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY1RkE3MjUyNzU3RDkxODAwNzIzNjJCIC8qIFdl
YkxvY2tSZWdpc3RyeVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkxvY2tSZWdpc3Ry
eVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzgxRkEyNjZD
OTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY2QkMwMzkxRkEyNjZDOTAwMkZB
OUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2NkJDMDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQxODYsNiArNDE5MCw4IEBACiAJCTQ2ODA5QTdCMjNEOTIyNTMw
MEMyOTdEMCAvKiBXZWJDb29raWVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb29raWVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2ODM1NjlBMjFFODFDQzcwMDZFMjdBMyAvKiBQcm92aXNpb25hbFBhZ2VQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm92aXNpb25hbFBhZ2VQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjgzNTY5QjIxRTgxQ0M3MDA2RTI3QTMgLyog
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0Njg5QjkwRjI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0Njg5QjkxMDI3NTZEMTQzMDAwN0M2NTEgLyogUmVtb3RlV2ViTG9ja1Jl
Z2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2OURFODAyMjczRUNDNUQwMDkzMDI3NiAv
KiBQcm9jZXNzTGF1bmNoZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFByb2Nlc3NMYXVuY2hlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NkEyQjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNw
b25zaXZlbmVzc1RpbWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJv
Y2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MjA0LDYgKzQyMTAsOCBAQAogCQk0NkNFM0IxMDIzRDhDODNEMDAx
NkE5NkEgLyogV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ2REYwNjNBMUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2RTk3NjBBMjc1N0Y2
QzkwMEFDREQzNyAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NkU5NzYwQjI3NTdGNkM5MDBBQ0RE
MzcgLyogUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZFRTI4NDcyNjlFMDQ5QjAwREQ0OEFCIC8qIFdlYkJyb2FkY2FzdENo
YW5uZWxSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0NkVFMjg0ODI2OUUwNDlCMDBERDQ4QUIgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkJyb2FkY2FzdENoYW5u
ZWxSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkVFMjg0QTI2OUUw
NTE3MDBERDQ4QUIgLyogTmV0d29ya0Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA1MzgsNiArMTA1
NDYsOSBAQAogCQkJCUNENjE3ODExMUU2REU5ODAwMEZEQTU3RCAvKiBjb2NvYSAqLywKIAkJCQky
RDI4RjNERjE4ODVDQ0I0MDA0QjlFQUUgLyogaW9zICovLAogCQkJCUJDMTExQURFMTEyRjVCOUEw
MDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJNDY4OUI5MTAyNzU2RDE0MzAwMDdDNjUxIC8qIFJlbW90
ZVdlYkxvY2tSZWdpc3RyeS5jcHAgKi8sCisJCQkJNDY4OUI5MEYyNzU2RDE0MzAwMDdDNjUxIC8q
IFJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oICovLAorCQkJCTQ2RTk3NjBCMjc1N0Y2QzkwMEFDREQz
NyAvKiBSZW1vdGVXZWJMb2NrUmVnaXN0cnkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE3Mjg0NDQx
OTU5RUQxMDAwMDdCQ0U1IC8qIFNlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwICovLAogCQkJCTFB
NzI4NDQ1MTk1OUVEMTAwMDA3QkNFNSAvKiBTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmggKi8sCiAJ
CQkJRjQzQTlDREUyNUQ3MkUyRDAwOTkwRTI2IC8qIFNoYXJlYWJsZUJpdG1hcFV0aWxpdGllcy5j
cHAgKi8sCkBAIC0xMDU0NSw2ICsxMDU1Niw3IEBACiAJCQkJQ0VEQTEyREUxNTJDQ0FFODAwRDlF
MDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oICovLAogCQkJCTQ2RUUyODQ3MjY5RTA0
OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuY3BwICovLAogCQkJCTQ2
RUUyODQ4MjY5RTA0OUIwMERENDhBQiAvKiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnkuaCAq
LywKKwkJCQk0NkU5NzYwQTI3NTdGNkM5MDBBQ0REMzcgLyogV2ViQnJvYWRjYXN0Q2hhbm5lbFJl
Z2lzdHJ5Lm1lc3NhZ2VzLmluICovLAogCQkJCUUzQTg2RkJDMjY5NThFMzMwMDU5MjY0RCAvKiBX
ZWJDYXB0aW9uUHJlZmVyZW5jZXNEZWxlZ2F0ZS5jcHAgKi8sCiAJCQkJRTNBODZGQkIyNjk1OEQ4
MzAwNTkyNjREIC8qIFdlYkNhcHRpb25QcmVmZXJlbmNlc0RlbGVnYXRlLmggKi8sCiAJCQkJQkMx
MTFBNTMxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNsaWVudC5jcHAgKi8sCkBAIC0xMDgy
OCw2ICsxMDg0MCw5IEBACiAJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXIuY3BwICovLAogCQkJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBX
ZWJHZW9sb2NhdGlvblByb3ZpZGVyLmggKi8sCiAJCQkJNTFDOEUxOUIxRjIxNjE3MjAwQkY3MzFC
IC8qIFdlYkljb25EYXRhYmFzZS5oICovLAorCQkJCTQ2NUZBNzI1Mjc1N0Q5MTgwMDcyMzYyQiAv
KiBXZWJMb2NrUmVnaXN0cnlQcm94eS5jcHAgKi8sCisJCQkJNDY1RkE3MjMyNzU3RDkxODAwNzIz
NjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5LmggKi8sCisJCQkJNDY1RkE3MjQyNzU3RDkxODAw
NzIzNjJCIC8qIFdlYkxvY2tSZWdpc3RyeVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTJEM0VG
NDQwMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwICovLAog
CQkJCTJEM0VGNDQxMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCAqLywKIAkJCQk3Q0NDQzhGODFBNUY1MEZEMDA4RkIwREEgLyogV2ViTmF2aWdhdGlvblN0YXRl
LmNwcCAqLywKQEAgLTEyNDQ5LDggKzEyNDY0LDggQEAKIAkJCQk1MTYwRTk1RTI3NEMyQTAzMDA1
NjczODggLyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYw
RTk1OTI3NEMwRDg5MDA1NjczODggLyogUHVzaEFwcEJ1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFGN0JCN0IyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKLQkJCQk1MTdCNUYyRjI3NTczODJCMDAyREMyMkQgLyogV2ViUHVzaERhZW1v
bkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJDRDY5RjI3
MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3
QjVGMkYyNzU3MzgyQjAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xMzMzNCw2ICsxMzM0OSw3IEBACiAJCQkJQkNCNjM0
NzgxMTZCRjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5
QkE1MDUxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTYyODBDNzE5MTk5NTBDMDA2QUQ5RjkgLyogV2ViS2l0UHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDY1RkE3MjYyNzU3RDkzRDAwNzIzNjJCIC8qIFdlYkxvY2tSZWdpc3Ry
eVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyog
V2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3Qjcy
NUM4MUQzNDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMzM5OCw2ICsxMzQxNCw3IEBACiAJCQkJMUExRTA5MzQxODg2MUQz
ODAwRDJEQzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb25D
b25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQg
LyogV2ViUHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTJDRDY5QTI3MjFGMEE5MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDYxQ0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90
ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0
NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTEzNTQ4LDcgKzEzNTY1LDYgQEAKIAkJCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyog
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Qzc5NUQ3MTIy
OUYzNzU3MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFBNTU1RjYxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJ
dGVtLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTdCNUYyRTI3NTczODJBMDAyREMyMkQgLyogV2Vi
UHVzaERhZW1vbkNvbm5lY3Rpb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUE1NTYwMTEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDOTM4RTExMTgwREU0NDAwODVFNUZFIC8q
IFdLQ29udGV4dFByaXZhdGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCmluZGV4IGY4NjI5YmUwMDY1MGIzOTJiOTBjNGZhMzkxOTFmYzk0ODQwZmFi
MDAuLjBiODRiYmQzNjhmZWM5ZDRkYTk2N2JmZTMxNDA2MGM4MDIzYmI0ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJbml0
aWFsaXphdGlvbkRhdGEuaCIKICNpbmNsdWRlICJXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnku
aCIKQEAgLTE0OCw2ICsxNDksNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjppbnN0YWxsU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyQ29udGV4dERhdAogICAgIHBhZ2VD
b25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRP
ckNyZWF0ZShtX3BhZ2VHcm91cElEKTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5zb2NrZXRQcm92
aWRlciA9IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUobV93ZWJQYWdlUHJveHlJRCk7CiAgICAg
cGFnZUNvbmZpZ3VyYXRpb24uYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KCk7CisgICAgcGFnZUNvbmZpZ3Vy
YXRpb24ud2ViTG9ja1JlZ2lzdHJ5ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9ja1Jl
Z2lzdHJ5KCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRQcm92aWRlciA9IG1f
dXNlckNvbnRlbnRDb250cm9sbGVyOwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmxpYldlYlJUQ1Byb3ZpZGVyID0gbWFrZVVuaXF1ZVJlZjxTZXJ2aWNlV29ya2Vy
TGliV2ViUlRDUHJvdmlkZXI+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFlYWYwOWVlNmIzNzU5Y2VkNDI3MjdmMmZmZjBlNWIzZDkzOThlOGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVt
b3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKKwor
I2luY2x1ZGUgIlJlbW90ZVdlYkxvY2tSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2Vi
TG9ja1JlZ2lzdHJ5UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBMb2NrSW5mbyB7CisgICAgRnVuY3Rpb248dm9p
ZCgpPiBsb2NrU3RvbGVuSGFuZGxlcjsKK307CisKK3N0cnVjdCBMb2NrUmVxdWVzdCA6IExvY2tJ
bmZvIHsKKyAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBsb2NrR3JhbnRlZEhhbmRsZXI7Cit9Owor
CitzdHJ1Y3QgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OjpMb2Nrc1NuYXBzaG90IHsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyLCBMb2NrUmVxdWVzdD4gcGVuZGluZ1JlcXVl
c3RzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6V2ViTG9ja0lkZW50aWZpZXIsIExvY2tJbmZvPiBo
ZWxkTG9ja3M7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBwZW5kaW5nUmVx
dWVzdHMuaXNFbXB0eSgpICYmIGhlbGRMb2Nrcy5pc0VtcHR5KCk7IH0KK307CisKK1JlbW90ZVdl
YkxvY2tSZWdpc3RyeTo6UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5KFdlYlByb2Nlc3MmIHByb2Nlc3Mp
Cit7CisgICAgcHJvY2Vzcy5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdlYkxv
Y2tSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAqdGhpcyk7Cit9CisKK1JlbW90ZVdl
YkxvY2tSZWdpc3RyeTo6flJlbW90ZVdlYkxvY2tSZWdpc3RyeSgpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKCp0aGlzKTsKK30KKwordm9pZCBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnk6OnJlcXVlc3RMb2NrKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgV2ViQ29yZTo6V2ViTG9ja01vZGUgbG9ja01vZGUsIGJvb2wg
c3RlYWwsIGJvb2wgaWZBdmFpbGFibGUsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgZ3JhbnRlZEhh
bmRsZXIsIEZ1bmN0aW9uPHZvaWQoKT4mJiBsb2NrU3RvbGVuSGFuZGxlcikKK3sKKyAgICBMb2Nr
UmVxdWVzdCByZXF1ZXN0IHsgeyBXVEZNb3ZlKGxvY2tTdG9sZW5IYW5kbGVyKSB9LCBXVEZNb3Zl
KGdyYW50ZWRIYW5kbGVyKSB9OworICAgIGF1dG8mIHNuYXBzaG90ID0gbV9sb2Nrc1NuYXBzaG90
UGVyQ2xpZW50LmVuc3VyZShjbGllbnRJRCwgW10geyByZXR1cm4gTG9ja3NTbmFwc2hvdCB7IH07
IH0pLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBzbmFwc2hvdC5wZW5kaW5nUmVxdWVzdHMuYWRkKGxv
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpKTsKKworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpSZXF1ZXN0TG9jayhj
bGllbnRPcmlnaW4sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgbmFtZSwgbG9ja01vZGUsIHN0
ZWFsLCBpZkF2YWlsYWJsZSksIDApOworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6
cmVsZWFzZUxvY2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdl
YkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJRCwgY29uc3QgU3RyaW5nJiBuYW1lKQor
eworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJRCk7
CisgICAgaWYgKGl0ICE9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5lbmQoKSkgeworICAgICAg
ICBpdC0+dmFsdWUuaGVsZExvY2tzLnJlbW92ZShsb2NrSWRlbnRpZmllcik7CisgICAgICAgIGlm
IChpdC0+dmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9sb2Nrc1NuYXBzaG90UGVyQ2xp
ZW50LnJlbW92ZShpdCk7CisgICAgfQorCisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vu
ZChNZXNzYWdlczo6V2ViTG9ja1JlZ2lzdHJ5UHJveHk6OlJlbGVhc2VMb2NrKGNsaWVudE9yaWdp
biwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3Rl
V2ViTG9ja1JlZ2lzdHJ5OjphYm9ydExvY2tSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgY2xpZW50T3JpZ2luLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpBYm9ydExvY2tSZXF1ZXN0
KGNsaWVudE9yaWdpbiwgbG9ja0lkZW50aWZpZXIsIGNsaWVudElELCBuYW1lKSwgW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvY2tJZGVudGlmaWVyLCBjbGllbnRJRCwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBkaWRBYm9ydCkgbXV0
YWJsZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBkaWRBYm9ydCkgeworICAgICAgICAgICAg
YXV0byBpdCA9IHdlYWtUaGlzLT5tX2xvY2tzU25hcHNob3RQZXJDbGllbnQuZmluZChjbGllbnRJ
RCk7CisgICAgICAgICAgICBpZiAoaXQgIT0gd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBlckNs
aWVudC5lbmQoKSkgeworICAgICAgICAgICAgICAgIGl0LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMu
cmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnZhbHVlLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fbG9ja3NTbmFwc2hvdFBl
ckNsaWVudC5yZW1vdmUoaXQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGRpZEFib3J0KTsKKyAgICB9LCAwKTsKK30KKwordm9pZCBSZW1vdGVX
ZWJMb2NrUmVnaXN0cnk6OnNuYXBzaG90KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xp
ZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2Vy
U25hcHNob3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJMb2NrUmVnaXN0cnlQcm94
eTo6U25hcHNob3QoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAp
OworfQorCit2b2lkIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTo6Y2xpZW50SXNHb2luZ0F3YXkoY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElEKQoreworICAgIG1fbG9ja3NTbmFwc2hv
dFBlckNsaWVudC5yZW1vdmUoY2xpZW50SUQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlbmQoTWVzc2FnZXM6OldlYkxvY2tSZWdpc3RyeVByb3h5OjpDbGllbnRJc0dvaW5nQXdheShj
bGllbnRPcmlnaW4sIGNsaWVudElEKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5OjpkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVyIGxv
Y2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBj
bGllbnRJRCwgYm9vbCBzdWNjZXNzKQoreworICAgIGF1dG8gaXQgPSBtX2xvY2tzU25hcHNob3RQ
ZXJDbGllbnQuZmluZChjbGllbnRJRCk7CisgICAgaWYgKGl0ID09IG1fbG9ja3NTbmFwc2hvdFBl
ckNsaWVudC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwZW5kaW5nUmVxdWVz
dCA9IGl0LT52YWx1ZS5wZW5kaW5nUmVxdWVzdHMudGFrZShsb2NrSWRlbnRpZmllcik7CisgICAg
aWYgKCFwZW5kaW5nUmVxdWVzdC5sb2NrR3JhbnRlZEhhbmRsZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gbG9ja0dyYW50ZWRIYW5kbGVyID0gV1RGTW92ZShwZW5kaW5nUmVxdWVzdC5s
b2NrR3JhbnRlZEhhbmRsZXIpOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBpdC0+dmFsdWUu
aGVsZExvY2tzLmFkZChsb2NrSWRlbnRpZmllciwgV1RGTW92ZShwZW5kaW5nUmVxdWVzdCkpOwor
ICAgIGVsc2UgeworICAgICAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5yZW1vdmUoaXQpOworICAgIH0KKworICAgIGxvY2tH
cmFudGVkSGFuZGxlcihzdWNjZXNzKTsKK30KKwordm9pZCBSZW1vdGVXZWJMb2NrUmVnaXN0cnk6
OmRpZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SUQpCit7Cisg
ICAgYXV0byBpdCA9IG1fbG9ja3NTbmFwc2hvdFBlckNsaWVudC5maW5kKGNsaWVudElEKTsKKyAg
ICBpZiAoaXQgPT0gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50LmVuZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvIGxvY2tJbmZvID0gaXQtPnZhbHVlLmhlbGRMb2Nrcy50YWtlKGxvY2tJ
ZGVudGlmaWVyKTsKKyAgICBpZiAoIWxvY2tJbmZvLmxvY2tTdG9sZW5IYW5kbGVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoaXQtPnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgbV9sb2Nr
c1NuYXBzaG90UGVyQ2xpZW50LnJlbW92ZShpdCk7CisKKyAgICBsb2NrSW5mby5sb2NrU3RvbGVu
SGFuZGxlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9SZW1vdGVXZWJMb2Nr
UmVnaXN0cnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTViMWFhZmM1NGM4YTIxNTdjNTJmZjBjZGE5NjgzNDM2
Y2IxYWFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc1F1YWxpZmllZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxv
Y2tSZWdpc3RyeS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBSZW1vdGVXZWJMb2NrUmVnaXN0cnkg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LCBwdWJsaWMgSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lz
dHJ5PiBjcmVhdGUoV2ViUHJvY2VzcyYgcHJvY2VzcykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVXZWJMb2NrUmVnaXN0cnkocHJvY2VzcykpOyB9CisgICAgflJlbW90ZVdlYkxvY2tSZWdp
c3RyeSgpOworCisgICAgLy8gV2ViQ29yZTo6V2ViTG9ja1JlZ2lzdHJ5LgorICAgIHZvaWQgcmVx
dWVzdExvY2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIFdlYkNvcmU6OldlYkxvY2tNb2RlLCBib29sIHN0ZWFsLCBib29sIGlm
QXZhaWxhYmxlLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGdyYW50ZWRIYW5kbGVyLCBGdW5jdGlv
bjx2b2lkKCk+JiYgbG9ja1N0b2xlbkhhbmRsZXIpIGZpbmFsOworICAgIHZvaWQgcmVsZWFzZUxv
Y2soY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6V2ViTG9ja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUpIGZpbmFsOworICAgIHZvaWQgYWJvcnRMb2NrUmVxdWVzdChjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mLCBXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBzbmFwc2hvdChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OldlYkxvY2tNYW5hZ2VyU25hcHNob3QmJik+JiYpIGZpbmFsOworICAgIHZvaWQgY2xpZW50SXNH
b2luZ0F3YXkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBSZW1vdGVXZWJMb2Nr
UmVnaXN0cnkoV2ViUHJvY2VzcyYpOworCisgICAgLy8gSVBDIE1lc3NhZ2UgaGFuZGxlcnMuCisg
ICAgdm9pZCBkaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVy
LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgYm9vbCBzdWNjZXNz
KTsKKyAgICB2b2lkIGRpZFN0ZWFsTG9jayhXZWJDb3JlOjpXZWJMb2NrSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworCisgICAgc3RydWN0IExv
Y2tzU25hcHNob3Q7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciwgTG9ja3NTbmFwc2hvdD4gbV9sb2Nrc1NuYXBzaG90UGVyQ2xpZW50OworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdp
c3RyeS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmE3YWVhMmJkNGJkNzcyYTJkYWRlZDRjNmY3
ZWMyNzFmZjRhZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1JlbW90ZVdlYkxvY2tSZWdpc3RyeS5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbWVzc2FnZXMgLT4gUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5
IHsKKyAgICBEaWRDb21wbGV0ZUxvY2tSZXF1ZXN0KFdlYkNvcmU6OldlYkxvY2tJZGVudGlmaWVy
IGxvY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBjbGllbnRJRCwgYm9vbCBzdWNjZXNzKTsKKyAgICBEaWRTdGVhbExvY2soV2ViQ29yZTo6V2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElEKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzkxMzVhMDBhMjExYzEyMjA0YWI5NTI1ODljN2Fi
NDU5MmEyNGQ2NC4uYjIwNTQzNWFmM2I5NmU3MjY4NjAwNTA5MzNlODI0OWUxZmE1YjA4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU4LDYg
KzU4LDcgQEAKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNs
dWRlICJSZW1vdGVXZWJJbnNwZWN0b3JVSS5oIgogI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3Rv
clVJTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVXZWJMb2NrUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGVDb252ZXJzaW9uLmgi
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCkBAIC01NzMsNiArNTc0LDcgQEAgV2ViUGFn
ZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYlNwZWVjaFJlY29nbml0
aW9uUHJvdmlkZXI+KG1faWRlbnRpZmllciksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFS
ZWNvcmRlclByb3ZpZGVyPigqdGhpcyksCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeSgpLAorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViUGVybWlzc2lvbkNvbnRyb2xsZXI6
OmNyZWF0ZSgqdGhpcyksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViU3RvcmFnZVByb3ZpZGVy
PigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYk1vZGVsUGxheWVyUHJvdmlkZXI+KCp0aGlz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDk0MzA0YjcxMWZk
NGZhZWEzYjIwZTczOWM5OTZhNDdiOGM3MmFkMzQuLmY2ZTg3NjI0NmJmZGQ2YWFkMDA3OWQwZWVj
YTNiZjczZGJlNzBmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW1vdGVMZWdhY3lDRE1GYWN0b3J5LmgiCiAj
aW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlJlbW90ZVdlYkxv
Y2tSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNv
dXJjZU1hbmFnZXIuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIlVz
ZXJEYXRhLmgiCkBAIC0yNzksNiArMjgwLDcgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAg
ICAgLCBtX3dlYkxvYWRlclN0cmF0ZWd5KCpuZXcgV2ViTG9hZGVyU3RyYXRlZ3kpCiAgICAgLCBt
X2NhY2hlU3RvcmFnZVByb3ZpZGVyKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOjpjcmVhdGUoKSkK
ICAgICAsIG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5KFdlYkJyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeTo6Y3JlYXRlKCkpCisgICAgLCBtX3dlYkxvY2tSZWdpc3RyeShSZW1vdGVXZWJMb2NrUmVn
aXN0cnk6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2Nvb2tpZUphcihXZWJDb29raWVKYXI6OmNy
ZWF0ZSgpKQogICAgICwgbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZShSZXBvcnRpbmdFbmRwb2lu
dHNDYWNoZTo6Y3JlYXRlKCkpCiAgICAgLCBtX2Ruc1ByZWZldGNoSHlzdGVyZXJpcyhbdGhpc10o
UEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6SHlzdGVyZXNp
c1N0YXRlOjpTdG9wcGVkKSBtX2Ruc1ByZWZldGNoZWRIb3N0cy5jbGVhcigpOyB9KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOWFkZTNjMDA1YWYyZTIyNzFhZmNhYmZm
ZDY4MTUyMzY3NmVmYjcwYS4uMTRjZGY3NTE1YzYyYzQ1ZGFiOWY5ZGI4MTZmZGNiMmQ4ODVjZjMz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMzIsNiArMTMyLDcg
QEAgY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbjsKIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFz
cyBSZW1vdGVMZWdhY3lDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1
cmF0aW9uRmFjdG9yeTsKK2NsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhOwogY2xhc3MgU3RvcmFnZUFyZWFNYXA7CiBjbGFz
cyBVc2VyRGF0YTsKQEAgLTM0MCw2ICszNDEsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJDYWNoZVN0
b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSB7IHJldHVybiBtX2NhY2hlU3Rv
cmFnZVByb3ZpZGVyLmdldCgpOyB9CiAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5JiBi
cm9hZGNhc3RDaGFubmVsUmVnaXN0cnkoKSB7IHJldHVybiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdp
c3RyeS5nZXQoKTsgfQorICAgIFJlbW90ZVdlYkxvY2tSZWdpc3RyeSYgd2ViTG9ja1JlZ2lzdHJ5
KCkgeyByZXR1cm4gbV93ZWJMb2NrUmVnaXN0cnkuZ2V0KCk7IH0KICAgICBXZWJDb29raWVKYXIm
IGNvb2tpZUphcigpIHsgcmV0dXJuIG1fY29va2llSmFyLmdldCgpOyB9CiAgICAgV2ViU29ja2V0
Q2hhbm5lbE1hbmFnZXImIHdlYlNvY2tldENoYW5uZWxNYW5hZ2VyKCkgeyByZXR1cm4gbV93ZWJT
b2NrZXRDaGFubmVsTWFuYWdlcjsgfQogICAgIFdlYkNvcmU6OlJlcG9ydGluZ0VuZHBvaW50c0Nh
Y2hlJiByZXBvcnRpbmdFbmRwb2ludHNDYWNoZSgpIHsgcmV0dXJuIG1fcmVwb3J0aW5nRW5kcG9p
bnRzQ2FjaGUuZ2V0KCk7IH0KQEAgLTY3Niw2ICs2NzgsNyBAQCBwcml2YXRlOgogCiAgICAgUmVm
PFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJl
ZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
OworICAgIFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwogICAg
IFJlZjxXZWJDb29raWVKYXI+IG1fY29va2llSmFyOwogICAgIFJlZjxXZWJDb3JlOjpSZXBvcnRp
bmdFbmRwb2ludHNDYWNoZT4gbV9yZXBvcnRpbmdFbmRwb2ludHNDYWNoZTsKICAgICBXZWJTb2Nr
ZXRDaGFubmVsTWFuYWdlciBtX3dlYlNvY2tldENoYW5uZWxNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDBjNzQ0ZGRjZWIzMzI2ZDA2NzE0
N2EwNmViOTEyMWZiMTBlNTdmNDUuLjU2NjQyYzIyMmQ2YmM1NDNhZjllNzU5YjYzOTMyYWE2ZWQ4
Mzg2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTIzMSw2ICsyMzEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlSklUT3BlcmF0aW9ucy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVmlldy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJMb2NrUmVnaXN0cnkuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViVmlld1Zpc3VhbElkZW50aWZpY2F0aW9uT3ZlcmxheS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET00uaD4KQEAg
LTE0MzgsNiArMTQzOSwxOCBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFBy
b3ZpZGVySWZOZWNlc3NhcnkoKQogfQogI2VuZGlmCiAKK3N0YXRpYyBSZWY8V2ViQ29yZTo6TG9j
YWxXZWJMb2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KGJvb2wgaXNQcml2
YXRlQnJvd3NpbmdFbmFibGVkKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrUHRy
PFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5Pj4gZGVmYXVsdFJlZ2lzdHJ5OworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxXZWFrUHRyPFdlYkNvcmU6OkxvY2FsV2ViTG9ja1JlZ2lzdHJ5
Pj4gcHJpdmF0ZVJlZ2lzdHJ5OworICAgIGF1dG8mIGV4aXN0aW5nUmVnaXN0cnkgPSBpc1ByaXZh
dGVCcm93c2luZ0VuYWJsZWQgPyBwcml2YXRlUmVnaXN0cnkgOiBkZWZhdWx0UmVnaXN0cnk7Cisg
ICAgaWYgKGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdS
ZWdpc3RyeS5nZXQoKTsKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2Nr
UmVnaXN0cnk6OmNyZWF0ZSgpOworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3Ry
eTsKKyAgICByZXR1cm4gcmVnaXN0cnk7Cit9CisKIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aEZyYW1lTmFtZTooTlNTdHJpbmcgKilmcmFtZU5hbWUgZ3JvdXBOYW1lOihOU1N0cmlu
ZyAqKWdyb3VwTmFtZQogewogICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kVHdv
KCk7CkBAIC0xNTQzLDYgKzE1NTYsNyBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldp
dGhGcmFtZU5hbWU6KE5TU3RyaW5nICopZnJhbWVOYW1lIGdyb3VwTmFtZTooTlNTdAogICAgICAg
ICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3BlZWNoUmVjb2duaXRpb25Qcm92aWRlcj4o
KSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJvdmlkZXI+
KCksCiAgICAgICAgIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTo6Z2V0T3JDcmVhdGUoW1tz
ZWxmIHByZWZlcmVuY2VzXSBwcml2YXRlQnJvd3NpbmdFbmFibGVkXSksCisgICAgICAgIGdldE9y
Q3JlYXRlV2ViTG9ja1JlZ2lzdHJ5KFtbc2VsZiBwcmVmZXJlbmNlc10gcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZF0pLAogICAgICAgICBXZWJDb3JlOjpEdW1teVBlcm1pc3Npb25Db250cm9sbGVyOjpj
cmVhdGUoKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teVN0b3JhZ2VQcm92
aWRlcj4oKSwKICAgICAgICAgbWFrZVVuaXF1ZVJlZjxXZWJDb3JlOjpEdW1teU1vZGVsUGxheWVy
UHJvdmlkZXI+KCkKQEAgLTE4MjQsNiArMTgzOCw3IEBAIC0gKGlkKWluaXRTaW1wbGVIVE1MRG9j
dW1lbnRXaXRoU3R5bGU6KE5TU3RyaW5nICopc3R5bGUgZnJhbWU6KENHUmVjdClmcmFtZSBwcmVm
CiAgICAgICAgIG1ha2VVbmlxdWVSZWY8V2ViQ29yZTo6RHVtbXlTcGVlY2hSZWNvZ25pdGlvblBy
b3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cm92aWRlcj4oKSwKICAgICAgICAgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OjpnZXRPckNy
ZWF0ZShbW3NlbGYgcHJlZmVyZW5jZXNdIHByaXZhdGVCcm93c2luZ0VuYWJsZWRdKSwKKyAgICAg
ICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoW1tzZWxmIHByZWZlcmVuY2VzXSBwcml2YXRl
QnJvd3NpbmdFbmFibGVkXSksCiAgICAgICAgIFdlYkNvcmU6OkR1bW15UGVybWlzc2lvbkNvbnRy
b2xsZXI6OmNyZWF0ZSgpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15U3Rv
cmFnZVByb3ZpZGVyPigpLAogICAgICAgICBtYWtlVW5pcXVlUmVmPFdlYkNvcmU6OkR1bW15TW9k
ZWxQbGF5ZXJQcm92aWRlcj4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCBm
NDYzMDc5ZDk4MWJmZTJhNThjMmEyNGIyZmY1MTA5YzI0MmQ2ZjA4Li40ZmZjZGU5YzUzMjcwMmQ5
MzRkM2M3YzEzNTUzN2NlYjI2MTVmMTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtMTczLDYgKzE3Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUpJVE9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkNvcmVUZXh0UmVuZGVyZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkxvY2tS
ZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2FnZUJyb2FkY2FzdGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNsdWRlIDxjb21kZWYuaD4K
QEAgLTI5OTIsNiArMjk5MywxNiBAQCBib29sIFdlYlZpZXc6OnNob3VsZEluaXRpYWxpemVUcmFj
a1BvaW50SGFjaygpCiAgICAgcmV0dXJuIHNob3VsZENyZWF0ZVNjcm9sbGJhcnM7CiB9CiAKK3N0
YXRpYyBSZWY8V2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk+IGdldE9yQ3JlYXRlV2ViTG9j
a1JlZ2lzdHJ5KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2Vha1B0cjxXZWJDb3Jl
OjpMb2NhbFdlYkxvY2tSZWdpc3RyeT4+IGV4aXN0aW5nUmVnaXN0cnk7CisgICAgaWYgKGV4aXN0
aW5nUmVnaXN0cnkuZ2V0KCkpCisgICAgICAgIHJldHVybiAqZXhpc3RpbmdSZWdpc3RyeS5nZXQo
KTsKKyAgICBhdXRvIHJlZ2lzdHJ5ID0gV2ViQ29yZTo6TG9jYWxXZWJMb2NrUmVnaXN0cnk6OmNy
ZWF0ZSgpOworICAgIGV4aXN0aW5nUmVnaXN0cnkuZ2V0KCkgPSByZWdpc3RyeTsKKyAgICByZXR1
cm4gcmVnaXN0cnk7Cit9CisKIEhSRVNVTFQgV2ViVmlldzo6aW5pdFdpdGhGcmFtZShSRUNUIGZy
YW1lLCBfSW5fIEJTVFIgZnJhbWVOYW1lLCBfSW5fIEJTVFIgZ3JvdXBOYW1lKQogewogICAgIEhS
RVNVTFQgaHIgPSBTX09LOwpAQCAtMzA2NSw2ICszMDc2LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojpp
bml0V2l0aEZyYW1lKFJFQ1QgZnJhbWUsIF9Jbl8gQlNUUiBmcmFtZU5hbWUsIF9Jbl8gQlNUUiBn
cm91cE4KICAgICAgICAgbWFrZVVuaXF1ZVJlZjxEdW1teVNwZWVjaFJlY29nbml0aW9uUHJvdmlk
ZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVSZWY8TWVkaWFSZWNvcmRlclByb3ZpZGVyPigpLAog
ICAgICAgICBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk6OmdldE9yQ3JlYXRlKGZhbHNlKSwK
KyAgICAgICAgZ2V0T3JDcmVhdGVXZWJMb2NrUmVnaXN0cnkoKSwKICAgICAgICAgV2ViQ29yZTo6
RHVtbXlQZXJtaXNzaW9uQ29udHJvbGxlcjo6Y3JlYXRlKCksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViQ29yZTo6RHVtbXlTdG9yYWdlUHJvdmlkZXI+KCksCiAgICAgICAgIG1ha2VVbmlxdWVS
ZWY8V2ViQ29yZTo6RHVtbXlNb2RlbFBsYXllclByb3ZpZGVyPigpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjg1YjViYWVjMzcxNjk3OTI2NmE5
ZGI0OGI3YzE1ZWRhOTk4MjY2OC4uNzllZjFjZWZiNTMzNzg1M2FjMWNhMmQ2NzE3YThmNTljOGJj
YTA4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dLMl0gTWFrZSBXZWIgTG9jayBBUEkgd29yayBhY3Jvc3MgbXVsdGlw
bGUgV2ViUHJvY2Vzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzM3MTkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIxLTEyLTAyICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OOiByMjg2MDc1IFsgQmlnIFN1ciB4ODZdIDIgVGVzdFdl
YktpdEFQSS5XZWJQdXNoRCAoQVBJLVRlc3RzKSBhcmUgY29uc3RhbnQgZmFpbHVyZXMKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvU291cmNlc0NvY29hLnR4dAppbmRleCAwZmE3M2FlNjNkMTVhMTE2ZjE4YjQ5ODFl
NGU3MDg4ZjBlNDE4NGIyLi40OWZiOTI2NmRiNDM2MzYxY2Y0MzNiYjQzMDkyNTU3ZjE3ZGVjY2M1
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1NvdXJjZXNDb2NvYS50eHQKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yOTMsNiArMjkzLDcgQEAg
VGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJzaXRlRGF0YXN0b3JlLm1tCiBUZXN0cy9XZWJLaXRDb2Nv
YS9XZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZS5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2Vi
Q3J5cHRvTWFzdGVyS2V5Lm1tCiBUZXN0cy9XZWJLaXRDb2NvYS9XZWJHTFBvbGljeS5tbQorVGVz
dHMvV2ViS2l0Q29jb2EvV2ViTG9ja3MubW0KIFRlc3RzL1dlYktpdENvY29hL1dlYlByb2Nlc3NL
aWxsSURCQ2xlYW51cC5tbQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHJvY2Vzc1Rlcm1pbmF0ZS5t
bQogVGVzdHMvV2ViS2l0Q29jb2EvV2ViUHVzaERhZW1vbi5tbQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA3ODBmMWJmOTA4MjJkOGZmMDQ2MDJhMzY2NzJmNjJhZDY4ZjYzMmZjLi4yMTAzMDc0
MjkxYzQxZTdlMjA1Mjc4MTFmYTQ1N2E5NTUxMDVhOWRkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTkzMyw2ICsxOTMzLDcgQEAKIAkJNDRDREU0RDMyNkVFNkU0MTAwOUY2QUNCIC8qIFR5
cGVDYXN0c0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VHlwZUNhc3RzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0Q0YzMUZC
MjQ5OTNGNjYwMDlDQjZDQiAvKiBDb250ZXh0TWVudUFjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0TWVudUFjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0RDUwMDhEMjZGRTlFRDYwMDBFQjEyRiAvKiBSZXRhaW5QdHJB
UkMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZXRhaW5QdHJB
UkMubW07IHBhdGggPSBucy9SZXRhaW5QdHJBUkMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ2MDYxNTQ1Mjc1ODI0QjQwMEFCNjEzRCAvKiBXZWJMb2Nrcy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkxvY2tzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NjBDMkZDODI3MDM5RDdEMDA0N0VGMTEgLyogU2VydmljZVdvcmtlclBhZ2VQcm90b2NvbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUGFnZVByb3RvY29sLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2MTJDMkI4MjEwQTZBQkYwMEI3ODhBNiAvKiBMb2FkRmlsZVRoZW5S
ZWxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2FkRmls
ZVRoZW5SZWxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2MjhDOEU4MjM2
N0FCQkMwMEIwNzNGMCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMzU3Miw2ICszNTczLDcgQEAKIAkJCQk4MzBGMkUwQjIwOUE2QTc0MDBE
MzZGRjEgLyogV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUubW0gKi8sCiAJCQkJNTdBNzk4
NTYyMjRBQjM0RTAwQTdGNkYxIC8qIFdlYkNyeXB0b01hc3RlcktleS5tbSAqLywKIAkJCQk1Qzk3
M0Y1QjFGNThFRjBBMDAzNTlDMjcgLyogV2ViR0xQb2xpY3kubW0gKi8sCisJCQkJNDYwNjE1NDUy
NzU4MjRCNDAwQUI2MTNEIC8qIFdlYkxvY2tzLm1tICovLAogCQkJCTUxNzE0RUI2MUNGOEM3QTQw
MDQ3MjNDNCAvKiBXZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0gKi8sCiAJCQkJQzFEOEVFMjEy
MDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5hdGUubW0gKi8sCiAJCQkJNUMxNTdB
MDIyNzE3QzNCMTAwRUQ1MjgwIC8qIFdlYlB1c2hEYWVtb24ubW0gKi8sCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dlYkxvY2tzLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZmU5NWZlY2QzMjE5ODQzNjdjODc4MzFlZmFiOTdkOWRhNzY3NzViCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XZWJMb2Nrcy5tbQpAQCAt
MCwwICsxLDI0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0
ICJIVFRQU2VydmVyLmgiCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
VGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVXRpbGl0aWVzLmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVh
dHVyZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2VudW0gY2xhc3MgU2hvdWxk
VXNlU2FtZVByb2Nlc3MgOiBib29sIHsgTm8sIFllcyB9OworCitzdGF0aWMgdm9pZCBydW5TbmFw
c2hvdEFjcm9zc1BhZ2VzVGVzdChTaG91bGRVc2VTYW1lUHJvY2VzcyBzaG91bGRVc2VTYW1lUHJv
Y2VzcykKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAg
IHsgIi8iLCB7ICJmb28iIH0gfQorICAgIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMSA9
IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgZm9y
IChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBl
cmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9T
dHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0
aW9uMSBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1
dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24x
LmdldCgpXSk7CisgICAgW3dlYlZpZXcxIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIu
cmVxdWVzdCgpXTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOworICAgIEVYUEVDVF9ORShwaWQxLCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25l
ID0gZmFsc2U7CisgICAgW3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6
XihOU1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwg
QCJBQ1FVSVJFRCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmll
dzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxv
Y2sgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdB
Q1FVSVJFRCcpOyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0
aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNU
X05VTEwoZXJyb3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9jZXNz
UG9vbCA9IFtjb25maWd1cmF0aW9uMSBwcm9jZXNzUG9vbF07CisgICAgZm9yIChfV0tFeHBlcmlt
ZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0
dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJM
b2Nrc0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc2hvdWxkVXNlU2Ft
ZVByb2Nlc3MgPT0gU2hvdWxkVXNlU2FtZVByb2Nlc3M6OlllcykKKyAgICAgICAgY29uZmlndXJh
dGlvbjIuZ2V0KCkuX3JlbGF0ZWRXZWJWaWV3ID0gd2ViVmlldzEuZ2V0KCk7CisgICAgYXV0byB3
ZWJWaWV3MiA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIuZ2V0
KCldKTsKKyAgICBbd2ViVmlldzIgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1
ZXN0KCldOworCisgICAgYXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmll
cl07CisgICAgaWYgKHNob3VsZFVzZVNhbWVQcm9jZXNzID09IFNob3VsZFVzZVNhbWVQcm9jZXNz
OjpZZXMpCisgICAgICAgIEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAgICAg
IEVYUEVDVF9ORShwaWQxLCBwaWQyKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmll
dzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7
CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlw
dDpAIm5hdmlnYXRvci5sb2Nrcy5yZXF1ZXN0KCdiYXInLCBsb2NrID0+IHsgd2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnQUNRVUlSRUQnKTsgcmV0dXJuIG5l
dyBQcm9taXNlKCgpID0+IHt9KTsgfSkgJiYgMSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCByZXN1
bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3MSBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNT
dHJpbmcgKm1lc3NhZ2UpIHsKKyAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIDAgcGVuZGluZyBs
b2NrcywgYW5kIDIgaGVsZCBvbmVzLgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwg
QCIwLTIiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgW3dlYlZpZXcxIGV2
YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRoZW4oc25hcHNob3Qg
PT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCcnICsg
c25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxkLmxlbmd0aCk7IH0p
ICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVy
Zm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAg
ICAgIC8vIFRoZXJlIHNob3VsZCBiZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAyIGhlbGQgb25lcy4K
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG1lc3NhZ2UsIEAiMC0yIik7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZp
Z2F0b3IubG9ja3MucXVlcnkoKS50aGVuKHNuYXBzaG90ID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5k
bGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIHNuYXBzaG90LnBlbmRpbmcubGVuZ3Ro
ICsgJy0nICsgc25hcHNob3QuaGVsZC5sZW5ndGgpOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJy
b3IpOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisK
K1RFU1QoV2ViTG9ja3MsIFNuYXBzaG90QWNyb3NzUGFnZXNJbkRpZmZlcmVudFByb2Nlc3NlcykK
K3sKKyAgICBydW5TbmFwc2hvdEFjcm9zc1BhZ2VzVGVzdChTaG91bGRVc2VTYW1lUHJvY2Vzczo6
Tm8pOworfQorCitURVNUKFdlYkxvY2tzLCBTbmFwc2hvdEFjcm9zc1BhZ2VzSW5TYW1lUHJvY2Vz
cykKK3sKKyAgICBydW5TbmFwc2hvdEFjcm9zc1BhZ2VzVGVzdChTaG91bGRVc2VTYW1lUHJvY2Vz
czo6WWVzKTsKK30KKworc3RhdGljIHZvaWQgcnVuTG9ja1JlcXVlc3RXYWl0aW5nT25Bbm90aGVy
UGFnZShTaG91bGRVc2VTYW1lUHJvY2VzcyBzaG91bGRVc2VTYW1lUHJvY2VzcykKK3sKKyAgICBU
ZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7ICJmb28i
IH0gfQorICAgIH0pOworCisgICAgYXV0byBjb25maWd1cmF0aW9uMSA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgZm9yIChfV0tFeHBlcmltZW50
YWxGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJl
c10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nr
c0FQSUVuYWJsZWQiXSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMSBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGF1dG8gd2ViVmlldzEgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24xLmdldCgpXSk7CisgICAg
W3dlYlZpZXcxIHN5bmNocm9ub3VzbHlMb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKwor
ICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3MSBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVY
UEVDVF9ORShwaWQxLCAwKTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAg
W3dlYlZpZXcxIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmluZyAqbWVz
c2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJBQ1FVSVJFRCIpOwor
ICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzEgZXZhbHVhdGVKYXZh
U2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcpOyByZXR1
cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRv
IGNvbmZpZ3VyYXRpb24yID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBjb25maWd1cmF0aW9uMi5nZXQoKS5wcm9jZXNzUG9vbCA9IFtjb25maWd1
cmF0aW9uMSBwcm9jZXNzUG9vbF07CisgICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpm
ZWF0dXJlIGluIFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc10pIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJXZWJMb2Nrc0FQSUVuYWJsZWQi
XSkgeworICAgICAgICAgICAgW1tjb25maWd1cmF0aW9uMiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc2hvdWxkVXNlU2FtZVByb2Nlc3MgPT0gU2hv
dWxkVXNlU2FtZVByb2Nlc3M6OlllcykKKyAgICAgICAgY29uZmlndXJhdGlvbjIuZ2V0KCkuX3Jl
bGF0ZWRXZWJWaWV3ID0gd2ViVmlldzEuZ2V0KCk7CisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbjIuZ2V0KCldKTsKKyAgICBbd2Vi
VmlldzIgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworCisgICAg
YXV0byBwaWQyID0gW3dlYlZpZXcyIF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgaWYgKHNo
b3VsZFVzZVNhbWVQcm9jZXNzID09IFNob3VsZFVzZVNhbWVQcm9jZXNzOjpZZXMpCisgICAgICAg
IEVYUEVDVF9FUShwaWQxLCBwaWQyKTsKKyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9ORShwaWQx
LCBwaWQyKTsKKworICAgIF9fYmxvY2sgYm9vbCBsb2NrQWNxdWlyZWQgPSBmYWxzZTsKKyAgICBb
d2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNz
YWdlKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIkFDUVVJUkVEIik7Cisg
ICAgICAgIGxvY2tBY3F1aXJlZCA9IHRydWU7CisgICAgfV07CisKKyAgICAvLyBSZXF1ZXN0aW5n
IHRoZSBzYW1lIGxvY2sgbmFtZSBhcyB3ZWJWaWV3MSBzbyB0aGUgcmVxdWVzdCBzaG91bGQgZ2V0
IHF1ZXVlZCB1bnRpbCB3ZWJWaWV3MSByZWxlYXNlcyBpdC4KKyAgICBbd2ViVmlldzIgZXZhbHVh
dGVKYXZhU2NyaXB0OkAibmF2aWdhdG9yLmxvY2tzLnJlcXVlc3QoJ2ZvbycsIGxvY2sgPT4geyB3
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdBQ1FVSVJFRCcp
OyByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pOyB9KSAmJiAxIiBjb21wbGV0aW9uSGFuZGxl
cjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJy
b3IpOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xlZXAoMC41KTsKKyAg
ICBFWFBFQ1RfRkFMU0UobG9ja0FjcXVpcmVkKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBb
d2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNz
YWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSAxIHBlbmRpbmcgbG9jaywgYW5kIDEg
aGVsZCBvbmUuCisgICAgICAgIEVYUEVDVF9XS19TVFJFUShtZXNzYWdlLCBAIjEtMSIpOworICAg
ICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAibmF2aWdhdG9yLmxvY2tzLnF1ZXJ5KCkudGhlbihzbmFwc2hvdCA9PiB7IHdlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBzbmFwc2hvdC5wZW5k
aW5nLmxlbmd0aCArICctJyArIHNuYXBzaG90LmhlbGQubGVuZ3RoKTsgfSkgJiYgMSIgY29tcGxl
dGlvbkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworCisgICAgW3dlYlZpZXcyIHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihO
U1N0cmluZyAqbWVzc2FnZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobWVzc2FnZSwgQCJB
Q1FVSVJFRCIpOworICAgICAgICBsb2NrQWNxdWlyZWQgPSB0cnVlOworICAgIH1dOworCisgICAg
Ly8gTm93IGNsb3NlIHRoZSB3ZWJWaWV3MS4gVGhpcyBzaG91bGQgcmVsZWFzZSB0aGUgJ2Zvbycg
bG9jayBhbmQgYWxsb3cgd2ViVmlldzIgdG8gYWNxdWlyZSBpdC4KKyAgICBbd2ViVmlldzEgX2Ns
b3NlXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmbG9ja0FjcXVpcmVkKTsKKwor
ICAgIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldzIgcGVyZm9ybUFmdGVyUmVjZWl2aW5nQW55
TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7CisgICAgICAgIC8vIFRoZXJlIHNob3VsZCBi
ZSAwIHBlbmRpbmcgbG9ja3MsIGFuZCAxIGhlbGQgb25lLgorICAgICAgICBFWFBFQ1RfV0tfU1RS
RVEobWVzc2FnZSwgQCIwLTEiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAg
W3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmlnYXRvci5sb2Nrcy5xdWVyeSgpLnRo
ZW4oc25hcHNob3QgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RN
ZXNzYWdlKCcnICsgc25hcHNob3QucGVuZGluZy5sZW5ndGggKyAnLScgKyBzbmFwc2hvdC5oZWxk
Lmxlbmd0aCk7IH0pICYmIDEiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9y
ICplcnJvcikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KKworVEVTVChXZWJMb2NrcywgTG9ja1Jl
cXVlc3RXYWl0aW5nT25Bbm90aGVyUGFnZUluT3RoZXJQcm9jZXNzKQoreworICAgIHJ1bkxvY2tS
ZXF1ZXN0V2FpdGluZ09uQW5vdGhlclBhZ2UoU2hvdWxkVXNlU2FtZVByb2Nlc3M6Ok5vKTsKK30K
KworVEVTVChXZWJMb2NrcywgTG9ja1JlcXVlc3RXYWl0aW5nT25Bbm90aGVyUGFnZUluU2FtZVBy
b2Nlc3MpCit7CisgICAgcnVuTG9ja1JlcXVlc3RXYWl0aW5nT25Bbm90aGVyUGFnZShTaG91bGRV
c2VTYW1lUHJvY2Vzczo6WWVzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>