<?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>192951</bug_id>
          
          <creation_ts>2018-12-20 13:09:19 -0800</creation_ts>
          <short_desc>navigator.userAgent in service workers does not reflect customUserAgent set by client</short_desc>
          <delta_ts>2018-12-21 19:24:27 -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>Service Workers</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>192952</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1490021</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-20 13:09:19 -0800</bug_when>
    <thetext>navigator.userAgent in service workers does not reflect customUserAgent set by client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490031</commentid>
    <comment_count>1</comment_count>
      <attachid>357857</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-20 13:25:04 -0800</bug_when>
    <thetext>Created attachment 357857
API test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490230</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-12-20 17:49:23 -0800</bug_when>
    <thetext>If you fix this, can you fix navigator.platform simultaneously?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490450</commentid>
    <comment_count>3</comment_count>
      <attachid>357971</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-21 13:09:09 -0800</bug_when>
    <thetext>Created attachment 357971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490476</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-21 14:14:18 -0800</bug_when>
    <thetext>I have some worries about trying to reuse a service worker with different user agents.
Here are some suggestions if we want to go down that path.

Instead of tieing the user agent with fetch, I would pass it as part of registering a service worker client (see DocumentLoader::registerTemporaryServiceWorkerClient).
Whenever a new service worker client is registered, it would update the user agent of the corresponding SWServerWorker.

That should work well if the corresponding service worker is not running.
For an existing running service worker, I am not sure what is the best option.
A message to the service worker instance could be sent to notify the user agent has changed and update its value. Or we could notify the given client to bypass the service worker.

I wonder whether adding some logging might help future debugging in breakage caused by user agent changes.
To properly detect all these cases, we would need to persist the user agent in the database, probably overkill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490539</commentid>
    <comment_count>5</comment_count>
      <attachid>357994</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-21 15:54:10 -0800</bug_when>
    <thetext>Created attachment 357994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490569</commentid>
    <comment_count>6</comment_count>
      <attachid>357994</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-12-21 16:46:36 -0800</bug_when>
    <thetext>Comment on attachment 357994
Patch

I wonder whether we should release_log the case of a client registered to a running service worker with a different user agent.
Maybe we could store the user agent in the SWServerWorker and when registering a client, check the user agent of the active worker if any?

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

&gt; Source/WebCore/workers/service/server/SWServer.cpp:743
&gt; +void SWServer::registerServiceWorkerClient(ClientOrigin&amp;&amp; clientOrigin, ServiceWorkerClientData&amp;&amp; data, const Optional&lt;ServiceWorkerRegistrationIdentifier&gt;&amp; controllingServiceWorkerRegistrationIdentifier, const String&amp; userAgent)

String&amp;&amp;

&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:138
&gt; +void WebSWContextManagerConnection::installServiceWorker(const ServiceWorkerContextData&amp; data, SessionID sessionID, const String&amp; userAgent)

String&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490593</commentid>
    <comment_count>7</comment_count>
      <attachid>358012</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-12-21 19:06:12 -0800</bug_when>
    <thetext>Created attachment 358012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490596</commentid>
    <comment_count>8</comment_count>
      <attachid>358012</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-21 19:23:18 -0800</bug_when>
    <thetext>Comment on attachment 358012
Patch

Clearing flags on attachment: 358012

Committed r239534: &lt;https://trac.webkit.org/changeset/239534&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490597</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-21 19:23:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490598</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-21 19:24:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/46914755&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357857</attachid>
            <date>2018-12-20 13:25:04 -0800</date>
            <delta_ts>2018-12-21 13:09:08 -0800</delta_ts>
            <desc>API test</desc>
            <filename>192951_api_test.patch</filename>
            <type>text/plain</type>
            <size>3960</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vydmlj
ZVdvcmtlckJhc2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0KaW5kZXggNjFkZGJjM2Q2M2EuLjkzODEyNTgzOTIwIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3Jr
ZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nl
cnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dl
YktpdC5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KICNpbXBv
cnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8
V2ViS2l0L19XS1dlYnNpdGVQb2xpY2llcy5oPgogI2ltcG9ydCA8d3RmL0RlcXVlLmg+CiAjaW1w
b3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtNjIsNyAr
NjMsNyBAQCBAZW5kCiBAaW1wbGVtZW50YXRpb24gU1dNZXNzYWdlSGFuZGxlcgogLSAodm9pZCl1
c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRl
bnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKilt
ZXNzYWdlCiB7Ci0gICAgRVhQRUNUX1RSVUUoW1ttZXNzYWdlIGJvZHldIGlzRXF1YWxUb1N0cmlu
ZzpAIk1lc3NhZ2UgZnJvbSB3b3JrZXI6IFNlcnZpY2VXb3JrZXIgcmVjZWl2ZWQ6IEhlbGxvIGZy
b20gdGhlIHdlYiBwYWdlIl0pOworICAgIEVYUEVDVF9XS19TVFJFUShAIk1lc3NhZ2UgZnJvbSB3
b3JrZXI6IFNlcnZpY2VXb3JrZXIgcmVjZWl2ZWQ6IEhlbGxvIGZyb20gdGhlIHdlYiBwYWdlIiwg
W21lc3NhZ2UgYm9keV0pOwogICAgIGRvbmUgPSB0cnVlOwogfQogQGVuZApAQCAtNTA4LDYgKzUw
OSw3NiBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBCYXNpYykKICAgICBkb25lID0gZmFsc2U7CiB9
CiAKK0BpbnRlcmZhY2UgU1dDdXN0b21Vc2VyQWdlbnREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05h
dmlnYXRpb25EZWxlZ2F0ZT4geworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gU1dDdXN0b21V
c2VyQWdlbnREZWxlZ2F0ZQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5h
dmlnYXRpb25BY3Rpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ksIF9XS1dlYnNp
dGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBfV0tXZWJzaXRlUG9saWNpZXMg
KndlYnNpdGVQb2xpY2llcyA9IFtbW19XS1dlYnNpdGVQb2xpY2llcyBhbGxvY10gaW5pdF0gYXV0
b3JlbGVhc2VdOworICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLnRhcmdldEZyYW1lLm1haW5GcmFt
ZSkKKyAgICAgICAgW3dlYnNpdGVQb2xpY2llcyBzZXRDdXN0b21Vc2VyQWdlbnQ6QCJGb28gQ3Vz
dG9tIFVzZXJBZ2VudCJdOworCisgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeUFsbG93LCB3ZWJzaXRlUG9saWNpZXMpOworfQorCitAZW5kCisKK0BpbnRlcmZhY2Ug
U1dVc2VyQWdlbnRNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5k
bGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gU1dVc2VyQWdlbnRNZXNzYWdlSGFuZGxlcgor
LSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICop
dXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1l
c3NhZ2UgKiltZXNzYWdlCit7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiTWVzc2FnZSBmcm9tIHdv
cmtlcjogRm9vIEN1c3RvbSBVc2VyQWdlbnQiLCBbbWVzc2FnZSBib2R5XSk7CisgICAgZG9uZSA9
IHRydWU7Cit9CitAZW5kCisKK3N0YXRpYyBjb25zdCBjaGFyKiB1c2VyQWdlbnRTV0J5dGVzID0g
UiJTV1JFU09VUkNFKAorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQp
ID0+IHsKKyAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UobmF2aWdhdG9yLnVzZXJBZ2VudCk7
Cit9KTsKKworKVNXUkVTT1VSQ0UiOworCitURVNUKFNlcnZpY2VXb3JrZXJzLCBVc2VyQWdlbnRP
dmVycmlkZSkKK3sKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVj
b3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgLy8gU3RhcnQgd2l0aCBhIGNsZWFuIHNsYXRlIGRh
dGEgc3RvcmUKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1v
dmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1v
ZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsK
KyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworCisgICAg
YXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInN3
Il07CisKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dTY2hlbWVzIGFsbG9jXSBpbml0
XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L21haW4uaHRtbCIsIFJl
c291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFpbkJ5dGVzIH0pOworICAgIGhhbmRsZXItPnJl
c291cmNlcy5zZXQoInN3Oi8vaG9zdC9zdy5qcyIsIFJlc291cmNlSW5mbyB7IEAiYXBwbGljYXRp
b24vamF2YXNjcmlwdCIsIHVzZXJBZ2VudFNXQnl0ZXMgfSk7CisgICAgW2NvbmZpZ3VyYXRpb24g
c2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CisK
KyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25maWd1cmF0
aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxl
OkAic3ciXTsKKworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU1dDdXN0b21Vc2VyQWdl
bnREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0
L21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworfQor
CiBURVNUKFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJvbURpc2spCiB7CiAgICAgQVNTRVJUKG1h
aW5SZWdpc3RlcmluZ1dvcmtlckJ5dGVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357971</attachid>
            <date>2018-12-21 13:09:09 -0800</date>
            <delta_ts>2018-12-21 15:54:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192951-20181221130908.patch</filename>
            <type>text/plain</type>
            <size>39280</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNTU2MmFkYTExNTA3
ZTZmMDgzNjYzMTY5ZTk4Y2FhNTgwNWJiMC4uMzYwYTc5MTJhOTkyY2NjOGQ5MmQxMGFjYzEyYmMy
MWY5NzViYmI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE4LTEyLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2Vu
dCBpbiBzZXJ2aWNlIHdvcmtlcnMgZG9lcyBub3QgcmVmbGVjdCBjdXN0b21Vc2VyQWdlbnQgc2V0
IGJ5IGNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSGF2ZSBXZWJDb3JlIHBhc3MgdGhlIHVzZXIgYWdlbnQgdG8gdGhlIE5ldHdvcmsgUHJvY2Vz
cyBhZnRlciBmZXRjaGluZyBhIHNlcnZpY2Ugd29ya2VyCisgICAgICAgIHNjcmlwdCBhbmQgaGF2
ZSB0aGUgc2VydmljZSB3b3JrZXIgdXNlIHRoaXMgdXNlciBhZ2VudCB3aGVuIGl0IHN0YXJ0cyAo
ZS5nLiBmb3IKKyAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudCkuIEFsc28gaGF2ZSBXZWJDb3Jl
IHBhc3MgdGhlIHVzZXIgYWdlbnQgd2hlbmV2ZXIgYSBmZXRjaCBpcyBzZW50CisgICAgICAgIHRv
IHRoZSBzZXJ2aWNlIHdvcmtlciBhbmQgaGF2ZSB0aGUgc2VydmljZSB3b3JrZXIgdXNlIHRoYXQg
dXNlciBhZ2VudCBpZiBpdCBpcyBhCisgICAgICAgIG5hdmlnYXRpb24gbG9hZC4KKworICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpmYWlsZWRGZXRjaGluZ1NjcmlwdCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6aXNvbGF0ZWRD
b3B5IGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRl
eHREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6
OmRlY29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdC5oOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0OjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0Ojpk
ZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9y
dFJlY29yZHMpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmFkZFJlZ2lzdHJhdGlvbkZyb21TdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dXBkYXRlV29ya2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjppbnN0YWxsQ29udGV4dERhdGEpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVySm9iUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JR
dWV1ZTo6c2NyaXB0RmV0Y2hGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlcldvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtl
cjo6U1dTZXJ2ZXJXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OmNv
bnRleHREYXRhIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6c2V0VXNlckFn
ZW50KToKKwogMjAxOC0xMi0yMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIGN1c3RvbSBjb25zdHJ1Y3RvcnMgb2YgUmVhZGFibGVTdHJlYW1EZWZh
dWx0UmVhZGVyIGFuZCBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMGI5NTY0
YjcyNmEwMDNhOWZlMDQyNjAwMzEwZjU3MjFjNmM2N2NhMi4uODFlMjBjZTY5OTczMWRmM2ZiMTc2
NWRjYmJkNjJlZjYxZmM1NDI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0xMi0y
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIG5hdmlnYXRvci51
c2VyQWdlbnQgaW4gc2VydmljZSB3b3JrZXJzIGRvZXMgbm90IHJlZmxlY3QgY3VzdG9tVXNlckFn
ZW50IHNldCBieSBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5Mjk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0
RmV0Y2gpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6c3RhcnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0Ns
aWVudENvbm5lY3Rpb246OnN0YXJ0RmV0Y2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorCiAyMDE4
LTEyLTIwICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkF1dGhOXSBBZGQgYSBydW50aW1lIGZsYWcgZm9yIGxvY2FsIGF1dGhlbnRpY2F0b3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKaW5kZXggOGVkNjdmNjdjYmZkYTVhZjk2NmVmZjg5YzUzNDBiYmNlZDE4ZjU1MC4uZmYzZWNl
YjczYzQ5MThiOTJhODVlOTFlMDExN2FjNWEyYjg3YjRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTU5LDcg
KzU5LDcgQEAgdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KFNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW4KIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcih7IHsgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIoKSwgam9iSWRlbnRpZmllciB9LCByZWdpc3RyYXRpb25LZXksIHsg
fSwgeyB9LCBlcnJvciB9KTsKKyAgICBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgeyBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2JJZGVudGlmaWVyIH0sIHJlZ2lzdHJhdGlv
bktleSwgeyB9LCB7IH0sIGVycm9yLCB7IH0gfSk7CiB9CiAKIGJvb2wgU1dDbGllbnRDb25uZWN0
aW9uOjpwb3N0VGFza0ZvckpvYihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlm
aWVyLCBJc0pvYkNvbXBsZXRlIGlzSm9iQ29tcGxldGUsIFdURjo6RnVuY3Rpb248dm9pZChTZXJ2
aWNlV29ya2VySm9iJik+JiYgdGFzaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCAxYTY1ODczMTY1
YTc2MGFjNWVhMzBlMWQ5ZTA5ZmRkMjZjNWEwN2FmLi5iNjJmZmU5NWQ5MDdiNzI1MGRlZWIzYmE4
N2Q5MjllNWE4MDg4MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC01MjcsOCArNTI3LDkgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoU2Vy
dmljZVdvcmtlckpvYiYgam9iLCBjb24KIAogICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQ6IFN1Y2Nlc3NmdWx5IGZpbmlzaGVkIGZl
dGNoaW5nIHNjcmlwdCBmb3Igam9iICUiIFBSSXU2NCwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2
NCgpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlv
biwgam9iRGF0YUlkZW50aWZpZXIgPSBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0
aW9uS2V5ID0gam9iLmRhdGEoKS5yZWdpc3RyYXRpb25LZXkoKS5pc29sYXRlZENvcHkoKSwgc2Ny
aXB0ID0gc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSBjb250
ZW50U2VjdXJpdHlQb2xpY3kuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgY29ubmVjdGlvbi0+
ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcih7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3Ry
YXRpb25LZXksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB7IH0gfSk7CisgICAgU3Ry
aW5nIHVzZXJBZ2VudCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA/IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXNlckFnZW50KGpvYi5kYXRhKCkuc2NyaXB0VVJMKSA6IFN0cmluZygpOwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iRGF0
YUlkZW50aWZpZXIgPSBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uS2V5ID0g
am9iLmRhdGEoKS5yZWdpc3RyYXRpb25LZXkoKS5pc29sYXRlZENvcHkoKSwgc2NyaXB0ID0gc2Ny
aXB0Lmlzb2xhdGVkQ29weSgpLCB1c2VyQWdlbnQgPSB1c2VyQWdlbnQuaXNvbGF0ZWRDb3B5KCks
IGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29sYXRlZENv
cHkoKV0geworICAgICAgICBjb25uZWN0aW9uLT5maW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVy
KHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgc2NyaXB0LCBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIHsgfSwgdXNlckFnZW50IH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEuY3BwCmluZGV4IDJiYzRlNzNjMDYzMzM2ODc4YWIzNjY2YTlkNjk5M2U0ZGI4ZDJkZjgu
LjYwMjA2Nzc3YTZkMzliYzdiOWMwM2JlNDhkZjUyODg0MTJkYTVkNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEuY3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6aXNvbGF0ZWRDb3B5
KCkgY29uc3QKIHsKLSAgICByZXR1cm4geyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
Lmlzb2xhdGVkQ29weSgpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc2NyaXB0Lmlzb2xhdGVk
Q29weSgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3kuaXNvbGF0ZWRDb3B5KCksIHNjcmlwdFVSTC5p
c29sYXRlZENvcHkoKSwgd29ya2VyVHlwZSwgc2Vzc2lvbklELCBsb2FkZWRGcm9tRGlzaywgY3Jv
c3NUaHJlYWRDb3B5KHNjcmlwdFJlc291cmNlTWFwKSB9OworICAgIHJldHVybiB7IGpvYkRhdGFJ
ZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNvbGF0ZWRDb3B5KCksIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29s
YXRlZENvcHkoKSwgdXNlckFnZW50Lmlzb2xhdGVkQ29weSgpLCBzY3JpcHRVUkwuaXNvbGF0ZWRD
b3B5KCksIHdvcmtlclR5cGUsIHNlc3Npb25JRCwgbG9hZGVkRnJvbURpc2ssIGNyb3NzVGhyZWFk
Q29weShzY3JpcHRSZXNvdXJjZU1hcCkgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oCmluZGV4IDIzYzRjY2Y3OTFmM2IyOTYwOGU2NGZhNjJiZDdjMzQzMDhk
YTczNDEuLjRkZmI4MTc1NDgwMjYwYTdkZWZkMWFmZTMxM2UwYjU3NzQ0YTdlNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRleHREYXRhLmgKQEAgLTc1LDYgKzc1LDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSB7CiAgICAgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXI7CiAgICAgU3RyaW5nIHNjcmlwdDsKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25z
ZUhlYWRlcnMgY29udGVudFNlY3VyaXR5UG9saWN5OworICAgIFN0cmluZyB1c2VyQWdlbnQ7CiAg
ICAgVVJMIHNjcmlwdFVSTDsKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CiAgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEOwpAQCAtOTAsNyArOTEsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2RlciA8PCBqb2JEYXRhSWRlbnRpZmllciA8PCByZWdpc3RyYXRpb24gPDwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIgPDwgc2NyaXB0IDw8IGNvbnRlbnRTZWN1cml0eVBvbGljeSA8PCBzY3JpcHRV
UkwgPDwgd29ya2VyVHlwZSA8PCBzZXNzaW9uSUQgPDwgbG9hZGVkRnJvbURpc2s7CisgICAgZW5j
b2RlciA8PCBqb2JEYXRhSWRlbnRpZmllciA8PCByZWdpc3RyYXRpb24gPDwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIgPDwgc2NyaXB0IDw8IGNvbnRlbnRTZWN1cml0eVBvbGljeSA8PCB1c2VyQWdl
bnQgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGUgPDwgc2Vzc2lvbklEIDw8IGxvYWRlZEZyb21E
aXNrOwogICAgIGVuY29kZXIgPDwgc2NyaXB0UmVzb3VyY2VNYXA7CiB9CiAKQEAgLTExOSw2ICsx
MjAsMTAgQEAgT3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWMKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGNvbnRlbnRTZWN1cml0eVBvbGljeSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAK
KyAgICBTdHJpbmcgdXNlckFnZW50OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodXNlckFnZW50
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogICAgIFVSTCBzY3JpcHRVUkw7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzY3JpcHRVUkwpKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwpAQCAtMTM5LDcgKzE0NCw3IEBAIE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YT4gU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShzY3JpcHRSZXNvdXJjZU1hcCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqam9iRGF0YUlkZW50aWZpZXIp
LCBXVEZNb3ZlKCpyZWdpc3RyYXRpb24pLCBXVEZNb3ZlKCpzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciksIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShjb250ZW50U2VjdXJpdHlQb2xpY3kpLCBXVEZN
b3ZlKHNjcmlwdFVSTCksIHdvcmtlclR5cGUsIHNlc3Npb25JRCwgbG9hZGVkRnJvbURpc2ssIFdU
Rk1vdmUoc2NyaXB0UmVzb3VyY2VNYXApIH19OworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpqb2JE
YXRhSWRlbnRpZmllciksIFdURk1vdmUoKnJlZ2lzdHJhdGlvbiksIFdURk1vdmUoKnNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKSwgV1RGTW92ZShzY3JpcHQpLCBXVEZNb3ZlKGNvbnRlbnRTZWN1cml0
eVBvbGljeSksIFdURk1vdmUodXNlckFnZW50KSwgV1RGTW92ZShzY3JpcHRVUkwpLCB3b3JrZXJU
eXBlLCBzZXNzaW9uSUQsIGxvYWRlZEZyb21EaXNrLCBXVEZNb3ZlKHNjcmlwdFJlc291cmNlTWFw
KSB9fTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oCmluZGV4
IGQzOTBhYTlmMWI0NTJhNjZhNTFkOGYyNGRkZmFhODY4Zjg4MzMxMmQuLjQ2YjQwYTFiNjUyNTU4
YjU2MTBlNzNlMTg3YWNmZTNkOTNkZTk0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgKQEAgLTQwLDYg
KzQwLDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCB7CiAgICAgU3RyaW5nIHNj
cmlwdDsKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgY29udGVudFNl
Y3VyaXR5UG9saWN5OwogICAgIFJlc291cmNlRXJyb3Igc2NyaXB0RXJyb3I7CisgICAgU3RyaW5n
IHVzZXJBZ2VudDsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBk
ZWNvZGUoRGVjb2RlciYsIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwpAQCAtNDgsNyArNDks
NyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0IHsKIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+CiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBqb2JEYXRhSWRlbnRpZmllciA8PCByZWdp
c3RyYXRpb25LZXkgPDwgc2NyaXB0IDw8IGNvbnRlbnRTZWN1cml0eVBvbGljeSA8PCBzY3JpcHRF
cnJvcjsKKyAgICBlbmNvZGVyIDw8IGpvYkRhdGFJZGVudGlmaWVyIDw8IHJlZ2lzdHJhdGlvbktl
eSA8PCBzY3JpcHQgPDwgY29udGVudFNlY3VyaXR5UG9saWN5IDw8IHNjcmlwdEVycm9yIDw8IHVz
ZXJBZ2VudDsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTcxLDYgKzcyLDggQEAg
Ym9vbCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNjcmlwdEVycm9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVzZXJBZ2VudCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcAppbmRleCBiNWMyOWU5MDcyMTk4NzEzYjI0NDI5MDk0YjE4YzllYjY5ZWU0ZjIwLi4xOGI3
MGVhOGJiOTNmOTYyODRhZDUzNzZiNzJhZmMxMTAxNTE1ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRh
dGFiYXNlLmNwcApAQCAtNDAwLDcgKzQwMCw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFz
ZTo6aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uSWRlbnRpZmllciA9
IGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllclR5cGU+KCk7CiAgICAgICAgIGF1dG8gc2VydmljZVdvcmtlckRhdGEgPSBTZXJ2aWNlV29y
a2VyRGF0YSB7IHdvcmtlcklkZW50aWZpZXIsIHNjcmlwdFVSTCwgU2VydmljZVdvcmtlclN0YXRl
OjpBY3RpdmF0ZWQsICp3b3JrZXJUeXBlLCByZWdpc3RyYXRpb25JZGVudGlmaWVyIH07CiAgICAg
ICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgeyBX
VEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBVUkwob3JpZ2luVVJMLCBzY29w
ZVBhdGgpLCAqdXBkYXRlVmlhQ2FjaGUsIGxhc3RVcGRhdGVDaGVja1RpbWUsIFdURjo6bnVsbG9w
dCwgV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHNlcnZpY2VXb3JrZXJEYXRhKSB9OwotICAgICAgICBh
dXRvIGNvbnRleHREYXRhID0gU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsgV1RGOjpudWxsb3B0
LCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbiksIHdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2NyaXB0
KSwgV1RGTW92ZShjb250ZW50U2VjdXJpdHlQb2xpY3kpLCBXVEZNb3ZlKHNjcmlwdFVSTCksICp3
b3JrZXJUeXBlLCBtX3Nlc3Npb25JRCwgdHJ1ZSwgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCkg
fTsKKyAgICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7
IFdURjo6bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBX
VEZNb3ZlKHNjcmlwdCksIFdURk1vdmUoY29udGVudFNlY3VyaXR5UG9saWN5KSwgeyB9LCBXVEZN
b3ZlKHNjcmlwdFVSTCksICp3b3JrZXJUeXBlLCBtX3Nlc3Npb25JRCwgdHJ1ZSwgV1RGTW92ZShz
Y3JpcHRSZXNvdXJjZU1hcCkgfTsKIAogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbnRleHREYXRhID0gY29udGV4dERhdGEuaXNvbGF0
ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5hZGRSZWdp
c3RyYXRpb25Ub1N0b3JlKFdURk1vdmUoY29udGV4dERhdGEpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggYmNiMTk3Y2Ey
Y2E3YmY3NTk5MTExMDEzN2RkMDk5MTYxOTEzNDZiNi4uNDQ4ZWQyNTQ5N2VmODRiOTNmZmFhYjU0
MDI0MDA5OTMxNWNmZjViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFNXU2VydmVy
OjphZGRSZWdpc3RyYXRpb25Gcm9tU3RvcmUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgZGF0
YSkKICAgICBhdXRvIHJlZ2lzdHJhdGlvblB0ciA9IHJlZ2lzdHJhdGlvbi5nZXQoKTsKICAgICBh
ZGRSZWdpc3RyYXRpb24oV1RGTW92ZShyZWdpc3RyYXRpb24pKTsKIAotICAgIGF1dG8gd29ya2Vy
ID0gU1dTZXJ2ZXJXb3JrZXI6OmNyZWF0ZSgqdGhpcywgKnJlZ2lzdHJhdGlvblB0ciwgZGF0YS5z
Y3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZGF0YS53
b3JrZXJUeXBlLCBkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBIYXNoTWFwPFVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4geyBkYXRhLnNjcmlwdFJlc291
cmNlTWFwIH0pOworICAgIGF1dG8gd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmNyZWF0ZSgqdGhp
cywgKnJlZ2lzdHJhdGlvblB0ciwgZGF0YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBkYXRhLmNv
bnRlbnRTZWN1cml0eVBvbGljeSwgZGF0YS51c2VyQWdlbnQsIGRhdGEud29ya2VyVHlwZSwgZGF0
YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHsgZGF0YS5zY3JpcHRSZXNvdXJjZU1hcCB9KTsKICAg
ICByZWdpc3RyYXRpb25QdHItPnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCB3b3JrZXIucHRyKCkpOwogICAgIHdvcmtlci0+c2V0
U3RhdGUoU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0ZWQpOwogfQpAQCAtNDk0LDkgKzQ5NCw5
IEBAIHZvaWQgU1dTZXJ2ZXI6OnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24o
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU2VyCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+cmVtb3Zl
Q2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihjb25uZWN0aW9uLmlkZW50aWZpZXIoKSk7
CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihDb25uZWN0aW9uJiwgY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
c2NyaXB0LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBIYXNoTWFwPFVSTCwgU2VydmljZVdv
cmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3JpcHRSZXNvdXJjZU1hcCkKK3Zv
aWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdpc3RyYXRp
b24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBj
b25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0
eVBvbGljeSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclR5cGUgdHlwZSwgSGFzaE1h
cDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0
UmVzb3VyY2VNYXApCiB7Ci0gICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50
aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2
aWNlV29ya2VySWRlbnRpZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5
LCB1cmwsIHR5cGUsIHNlc3Npb25JRCgpLCBmYWxzZSwgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1h
cCkgfSk7CisgICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKHsgam9iRGF0YUlkZW50aWZpZXIsIHJl
Z2lzdHJhdGlvbi5kYXRhKCksIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllclR5cGU+KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB1c2VyQWdl
bnQsIHVybCwgdHlwZSwgc2Vzc2lvbklEKCksIGZhbHNlLCBXVEZNb3ZlKHNjcmlwdFJlc291cmNl
TWFwKSB9KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6dHJ5SW5zdGFsbENvbnRleHREYXRhKFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YSYmIGRhdGEpCkBAIC01NDEsNyArNTQxLDcgQEAgdm9pZCBTV1Nl
cnZlcjo6aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYg
ZGF0YSkKICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBtX3JlZ2lzdHJhdGlvbnMuZ2V0KGRhdGEu
cmVnaXN0cmF0aW9uLmtleSk7CiAgICAgUkVMRUFTRV9BU1NFUlQocmVnaXN0cmF0aW9uKTsKIAot
ICAgIGF1dG8gd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmNyZWF0ZSgqdGhpcywgKnJlZ2lzdHJh
dGlvbiwgZGF0YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0LCBkYXRhLmNvbnRlbnRTZWN1cml0eVBv
bGljeSwgZGF0YS53b3JrZXJUeXBlLCBkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBIYXNo
TWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4geyBkYXRh
LnNjcmlwdFJlc291cmNlTWFwIH0pOworICAgIGF1dG8gd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6
OmNyZWF0ZSgqdGhpcywgKnJlZ2lzdHJhdGlvbiwgZGF0YS5zY3JpcHRVUkwsIGRhdGEuc2NyaXB0
LCBkYXRhLmNvbnRlbnRTZWN1cml0eVBvbGljeSwgZGF0YS51c2VyQWdlbnQsIGRhdGEud29ya2Vy
VHlwZSwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkwsIFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+IHsgZGF0YS5zY3JpcHRSZXNvdXJjZU1h
cCB9KTsKIAogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSB3b3JrZXItPmNvbnRleHRDb25uZWN0aW9u
KCk7CiAgICAgQVNTRVJUKGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IGMzOTEwZDZiZTIxZDEyYmU1NGY0NTdm
NmJkMjAxZGQ1N2FmNjg1NGIuLmE4NjVlNmNlODAzZWQ0YzUzNTljMGYwYTY5N2FlNzA0ZWIyN2Y1
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNvbHZlVW5yZWdp
c3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25zdCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiAgICAgdm9p
ZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgRmV0Y2hPcHRp
b25zOjpDYWNoZSk7CiAKLSAgICB2b2lkIHVwZGF0ZVdvcmtlcihDb25uZWN0aW9uJiwgY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiwgV29ya2VyVHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOworICAgIHZvaWQgdXBkYXRlV29ya2Vy
KENvbm5lY3Rpb24mLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBjb25z
dCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgV29ya2VyVHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFNXU2VydmVy
V29ya2VyJik7CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNXU2VydmVyV29ya2VyJik7
CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNXU2VydmVyV29ya2VyJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1
ZXVlLmNwcAppbmRleCBkOGE4NWIwYWQzM2M0ODM5ZDkyYzViMTUzNDFhOGJlMWVlMDJmZTg5Li43
MzEzZDg4NjZmY2U0OWJlMDRmNmM4NTA4ZGIzYzM0YjlmODEyYWE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1
ZS5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnNjcmlwdEZl
dGNoRmluaXNoZWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbgogICAgIC8v
IEZJWE1FOiBVcGRhdGUgYWxsIHRoZSBpbXBvcnRlZCBzY3JpcHRzIGFzIHBlciBzcGVjLiBGb3Ig
bm93LCB3ZSBqdXN0IGRvIGFzIGlmIHRoZXJlIGlzIG5vbmUuCiAKICAgICAvLyBGSVhNRTogU3Vw
cG9ydCB0aGUgcHJvcGVyIHdvcmtlciB0eXBlIChjbGFzc2ljIHZzIG1vZHVsZSkKLSAgICBtX3Nl
cnZlci51cGRhdGVXb3JrZXIoY29ubmVjdGlvbiwgam9iLmlkZW50aWZpZXIoKSwgKnJlZ2lzdHJh
dGlvbiwgam9iLnNjcmlwdFVSTCwgcmVzdWx0LnNjcmlwdCwgcmVzdWx0LmNvbnRlbnRTZWN1cml0
eVBvbGljeSwgV29ya2VyVHlwZTo6Q2xhc3NpYywgeyB9KTsKKyAgICBtX3NlcnZlci51cGRhdGVX
b3JrZXIoY29ubmVjdGlvbiwgam9iLmlkZW50aWZpZXIoKSwgKnJlZ2lzdHJhdGlvbiwgam9iLnNj
cmlwdFVSTCwgcmVzdWx0LnNjcmlwdCwgcmVzdWx0LmNvbnRlbnRTZWN1cml0eVBvbGljeSwgcmVz
dWx0LnVzZXJBZ2VudCwgV29ya2VyVHlwZTo6Q2xhc3NpYywgeyB9KTsKIH0KIAogLy8gaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3VwZGF0ZS1hbGdvcml0aG0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5jcHAKaW5kZXggYzhiNjhlNmI5YjhmZjIzODRjMDBjNDZlZWY3NmY3MTYxOTBlOGI2OS4uZTI4
YTkwYzYwN2NmNmYwMDA5OWZjYWUyNzExNjkwOWViNDNlYTI1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAK
QEAgLTQ1LDEyICs0NSwxMyBAQCBTV1NlcnZlcldvcmtlciogU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0
aW5nV29ya2VyRm9ySWRlbnRpZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZgogfQogCiAvLyBGSVhN
RTogVXNlIHItdmFsdWUgcmVmZXJlbmNlcyBmb3Igc2NyaXB0IGFuZCBjb250ZW50U2VjdXJpdHlQ
b2xpY3kKLVNXU2VydmVyV29ya2VyOjpTV1NlcnZlcldvcmtlcihTV1NlcnZlciYgc2VydmVyLCBT
V1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBXb3JrZXJUeXBlIHR5cGUsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwKQorU1dTZXJ2ZXJX
b3JrZXI6OlNXU2VydmVyV29ya2VyKFNXU2VydmVyJiBzZXJ2ZXIsIFNXU2VydmVyUmVnaXN0cmF0
aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHNj
cmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50
U2VjdXJpdHlQb2xpY3ksIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUeXBlIHR5cGUs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8VVJMLCBTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwKQog
ICAgIDogbV9zZXJ2ZXIoc2VydmVyKQogICAgICwgbV9yZWdpc3RyYXRpb25LZXkocmVnaXN0cmF0
aW9uLmtleSgpKQogICAgICwgbV9kYXRhIHsgaWRlbnRpZmllciwgc2NyaXB0VVJMLCBTZXJ2aWNl
V29ya2VyU3RhdGU6OlJlZHVuZGFudCwgdHlwZSwgcmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSB9
CiAgICAgLCBtX3NjcmlwdChzY3JpcHQpCiAgICAgLCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeShj
b250ZW50U2VjdXJpdHlQb2xpY3kpCisgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCiAgICAg
LCBtX3NjcmlwdFJlc291cmNlTWFwKFdURk1vdmUoc2NyaXB0UmVzb3VyY2VNYXApKQogewogICAg
IG1fZGF0YS5zY3JpcHRVUkwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CkBAIC03NCw3ICs3
NSw3IEBAIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBTV1NlcnZlcldvcmtlcjo6Y29udGV4dERh
dGEoKSBjb25zdAogICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2VydmVyLmdldFJlZ2lzdHJh
dGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7CiAKLSAg
ICByZXR1cm4geyBXVEY6Om51bGxvcHQsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpLCBtX2RhdGEuaWRl
bnRpZmllciwgbV9zY3JpcHQsIG1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX2RhdGEuc2NyaXB0
VVJMLCBtX2RhdGEudHlwZSwgbV9zZXJ2ZXIuc2Vzc2lvbklEKCksIGZhbHNlLCBtX3NjcmlwdFJl
c291cmNlTWFwIH07CisgICAgcmV0dXJuIHsgV1RGOjpudWxsb3B0LCByZWdpc3RyYXRpb24tPmRh
dGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2NvbnRlbnRTZWN1cml0eVBvbGlj
eSwgbV91c2VyQWdlbnQsIG1fZGF0YS5zY3JpcHRVUkwsIG1fZGF0YS50eXBlLCBtX3NlcnZlci5z
ZXNzaW9uSUQoKSwgZmFsc2UsIG1fc2NyaXB0UmVzb3VyY2VNYXAgfTsKIH0KIAogdm9pZCBTV1Nl
cnZlcldvcmtlcjo6dGVybWluYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCBhMzFkYmE3MTQ0ODU1MTRm
NDM3ZjNhZDQwODc4Y2I1MzI1OTcyNDRiLi4wOGFkMThjYTNiNTI5YzhmNWIxMjU1YjM2NDlhNDEz
NTAxMjBkMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC0xMDUsMTMgKzEwNSwxNSBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7
IH0KICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgY29udGV4dERhdGEoKSBjb25zdDsKIAor
ICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSB7IG1fdXNlckFn
ZW50ID0gdXNlckFnZW50OyB9CisKICAgICBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbigpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbiogY29udGV4dENvbm5lY3Rpb24oKTsKIAogcHJpdmF0ZToKLSAgICBTV1NlcnZl
cldvcmtlcihTV1NlcnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYsICBXb3JrZXJUeXBlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOworICAgIFNXU2Vy
dmVyV29ya2VyKFNXU2VydmVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclR5cGUsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBv
cnRlZFNjcmlwdD4mJik7CiAKICAgICB2b2lkIGNhbGxXaGVuQWN0aXZhdGVkSGFuZGxlcihib29s
IHN1Y2Nlc3MpOwogCkBAIC0xMjAsNiArMTIyLDcgQEAgcHJpdmF0ZToKICAgICBTZXJ2aWNlV29y
a2VyRGF0YSBtX2RhdGE7CiAgICAgU3RyaW5nIG1fc2NyaXB0OwogICAgIENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyBtX2NvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAgICBTdHJp
bmcgbV91c2VyQWdlbnQ7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdFdmVudHMgeyBmYWxzZSB9Owog
ICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6Tm90UnVubmluZyB9OwogICAgIG11dGFibGUgT3B0
aW9uYWw8Q2xpZW50T3JpZ2luPiBtX29yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAKaW5kZXggOTdjYmY0NWQ4ODM4NDY4Y2EzNGE2ZjE3ZmU0M2VlNDYyY2VkNDJh
My4uOWY0NTE5Nzc0MGFlMDdkMjRkYzM1YjdiMzZlZTcyZmUwNmJjYjRhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgc2VydgogICAgIH0pOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6c3RhcnRGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlcikKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBG
ZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgZm9ybURhdGEs
IFN0cmluZyYmIHJlZmVycmVyLCBTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgYXV0byogd29y
a2VyID0gc2VydmVyKCkuYWN0aXZlV29ya2VyRnJvbVJlZ2lzdHJhdGlvbklEKHNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIXdvcmtlcikgewpAQCAtMTQ4LDcg
KzE0OCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpCiAgICAgfQogICAgIGF1dG8gc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKIAotICAgIGF1dG8gcnVu
U2VydmVyV29ya2VyQW5kU3RhcnRGZXRjaCA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMp
LCB0aGlzLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0
ID0gV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGZvcm1EYXRh
ID0gV1RGTW92ZShmb3JtRGF0YSksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlcildKGJvb2wg
c3VjY2VzcykgbXV0YWJsZSB7CisgICAgYXV0byBydW5TZXJ2ZXJXb3JrZXJBbmRTdGFydEZldGNo
ID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXMsIGZldGNoSWRlbnRpZmllciwg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRp
b25zID0gV1RGTW92ZShvcHRpb25zKSwgZm9ybURhdGEgPSBXVEZNb3ZlKGZvcm1EYXRhKSwgcmVm
ZXJyZXIgPSBXVEZNb3ZlKHJlZmVycmVyKSwgdXNlckFnZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQp
XShib29sIHN1Y2Nlc3MpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgcmV0dXJuOwogCkBAIC0xNjQsNiArMTY0LDEwIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNl
cnZpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAorICAgICAgICAvLyBNYWtlIHN1
cmUgdGhlIHNlcnZpY2Ugd29ya2VyJ3MgdXNlciBhZ2VudCBpcyB1cC10by1kYXRlIGJlZm9yZSB3
ZSBhdHRlbXB0IHRvIHJ1biBpdC4KKyAgICAgICAgaWYgKG9wdGlvbnMubW9kZSA9PSBGZXRjaE9w
dGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKQorICAgICAgICAgICAgd29ya2VyLT5zZXRVc2VyQWdlbnQo
dXNlckFnZW50KTsKKwogICAgICAgICBpZiAoIXdvcmtlci0+Y29udGV4dENvbm5lY3Rpb24oKSkK
ICAgICAgICAgICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5jcmVhdGVTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uKHdvcmtlci0+c2VjdXJpdHlPcmlnaW4oKSwgc2VydmVyKCkuc2Vzc2lv
bklEKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMzA3ZGEy
YzlmNjljNDQ0MjczMzUzYjU0MzI2NDFjZTE2Nzk1MjJhOS4uYTM5ZmRmZmJiMjcyOTg2Mjk1MWNk
MmM5ZGVkMzMyNWZjY2UwY2EzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aApAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2Vy
dmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJiYpOwogCi0gICAgdm9pZCBzdGFydEZl
dGNoKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiByZWZlcnJl
cik7CisgICAgdm9pZCBzdGFydEZldGNoKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYmLCBTdHJpbmcmJiByZWZlcnJlciwgU3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2b2lkIGNh
bmNlbEZldGNoKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwogCiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbih1
aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5k
ZXggN2NiYzIzMGE0MzMwZTI0ZWFlMmVkMGNhYjI4Yzg4ZWY5NGY3MjMzOC4uZGRhOTQ5OGNjNjEy
MzQzNTE0YmExNWM5NzA0ODA5YTkzYzA0OTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsyOSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgQWRkU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCiAgICAgUmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIp
CiAKLSAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIpCisgICAgU3RhcnRGZXRjaChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9k
eSwgU3RyaW5nIHJlZmVycmVyLCBTdHJpbmcgdXNlckFnZW50KQogICAgIENhbmNlbEZldGNoKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyKQogCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwCmluZGV4IDMwZjAzMjJmYWNi
MWFhYjc1MmMxYWMzODY1YWYzYzI0ZDBhZGIyN2YuLjI3MTU4Nzc2MWJhN2M1ZTA0NGEwMGFjNDA2
N2FkMWVkMGYyMTA3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcApAQCAtNjksNiArNjks
NyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6c3RhcnQoKQogICAgIGF1dG8mIG9w
dGlvbnMgPSBtX2xvYWRlci0+b3B0aW9ucygpOwogCiAgICAgYXV0byByZWZlcnJlciA9IHJlcXVl
c3QuaHR0cFJlZmVycmVyKCk7CisgICAgYXV0byB1c2VyQWdlbnQgPSByZXF1ZXN0Lmh0dHBVc2Vy
QWdlbnQoKTsKIAogICAgIG1fZGlkRmFpbCA9IGZhbHNlOwogICAgIG1fZGlkRmluaXNoID0gZmFs
c2U7CkBAIC03OCw3ICs3OSw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpzdGFy
dCgpCiAKICAgICBBU1NFUlQob3B0aW9ucy5zZXJ2aWNlV29ya2Vyc01vZGUgIT0gU2VydmljZVdv
cmtlcnNNb2RlOjpOb25lKTsKICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyID0gb3B0aW9ucy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllci52YWx1ZSgp
OwotICAgIG1fY29ubmVjdGlvbi0+c3RhcnRGZXRjaChtX2lkZW50aWZpZXIsIG1fc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIHJlZmVycmVyKTsK
KyAgICBtX2Nvbm5lY3Rpb24tPnN0YXJ0RmV0Y2gobV9pZGVudGlmaWVyLCBtX3NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCByZWZlcnJlciwgdXNl
ckFnZW50KTsKIAogICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6
Tm9uZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDU3NGM5MjBlYzMwNTYyNDA1YmRmYmQ3
YTllZTkyN2JkNTk3NDYyY2YuLjI3ZjQ1MDE1MzVmYjdmYjQ1ZjAwODM4NDAzNWIwNjE5YWJiMzI4
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMTk4LDkgKzE5OCw5IEBAIHZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRv
cE9yaWdpbiwgY29uCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpz
dGFydEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlcikKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzdGFydEZldGNoKFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OkZldGNoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpTdGFydEZldGNoIHsgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7
IHJlcXVlc3QuaHR0cEJvZHkoKSB9LCByZWZlcnJlciB9KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHsgcmVxdWVzdC5odHRwQm9keSgpIH0sIHJlZmVycmVyLCB1c2VyQWdl
bnQgfSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggYjkyZWViZmY5MGY5YmNkMzQ0ODhkYTdlNDk2N2I5
ZDM0OTg5MjUxYi4uNTdjNWQ0YTFlNmM5MGE5MWUyNjExNzIzYmQ1ZGEyZWFlNDgzYmQ1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKICAg
ICBib29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHN0YXJ0RmV0
Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7CisgICAgdm9p
ZCBzdGFydEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsKICAgICB2b2lkIGNhbmNlbEZldGNoKFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIpOwogCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJD
b3JlOjpEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgV2Vi
Q29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlckRh
dGEmJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBlZjY1YzQyZTNiMDIwMzI0MTNjODlhMTE1MDk1OGEw
NzBmYmVjZDMyLi4xNGE2M2FkNmU3NmFjMGU1YWM5ZTliMmNjMjMzMzQ3NWE4NjBmNDFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0xNDUsMTMgKzE0NSwxNSBAQCB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihj
b25zdCBTZXJ2aWNlV29ya2VyQ29udAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRhdGFiYXNlUHJv
dmlkZXIgPSBXZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZShtX3BhZ2VHcm91cElEKTsK
ICNlbmRpZgogCisgICAgYXV0byBlZmZlY3RpdmVVc2VyQWdlbnQgPSAgZGF0YS51c2VyQWdlbnQu
aXNOdWxsKCkgPyBtX3VzZXJBZ2VudCA6IGRhdGEudXNlckFnZW50OworCiAgICAgLy8gRklYTUU6
IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRl
eHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAgLy8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdv
cmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwg
dGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4KLSAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0g
c3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBz
ZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIG1fdXNlckFn
ZW50KTsKKyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2
aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCAr
K21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGll
bnQuZ2V0KCk7CiAgICAgbV9sb2FkZXJzLmFkZChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7
CiAKLSAgICBhdXRvIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6Y3JlYXRlKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzZXNzaW9u
SUQsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hl
U3RvcmFnZVByb3ZpZGVyKCksIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KTsKKyAgICBhdXRvIHNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRl
KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzZXNzaW9uSUQsIFdURk1vdmUoZWZm
ZWN0aXZlVXNlckFnZW50KSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJv
dmlkZXIoKSwgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogICAgIFNXQ29udGV4dE1hbmFnZXI6
OnNpbmdsZXRvbigpLnJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoV1RGTW92
ZShzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpKTsKIAogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAi
Q29udGV4dCBwcm9jZXNzIFBJRDogJWkgY3JlYXRlZCB3b3JrZXIgdGhyZWFkXG4iLCBnZXRDdXJy
ZW50UHJvY2Vzc0lEKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDcyZjYyYjJiMDVmYjM0NGEyYzM0ZjYxYzYxYjdkYjk5ZjM5NzUxMTkuLmM5
YTJiMjgxNzFlZWFkYzMxMDYwOTRkMTQ5Mjc0M2RlNWU0YWMwMTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0x
Mi0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIG5hdmlnYXRv
ci51c2VyQWdlbnQgaW4gc2VydmljZSB3b3JrZXJzIGRvZXMgbm90IHJlZmxlY3QgY3VzdG9tVXNl
ckFnZW50IHNldCBieSBjbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5Mjk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tOgorICAgICAgICAo
LVtTV0N1c3RvbVVzZXJBZ2VudERlbGVnYXRlIGluaXRXaXRoVXNlckFnZW50Ol0pOgorICAgICAg
ICAoLVtTV0N1c3RvbVVzZXJBZ2VudERlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb246dXNlckluZm86ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtT
V1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVyIGluaXRXaXRoRXhwZWN0ZWRNZXNzYWdlOl0pOgorICAg
ICAgICAoLVtTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpk
aWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKwogMjAxOC0xMi0yMCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZSBmb3IgY3Vz
dG9tVXNlckFnZW50IGNsaWVudCBzZXR0aW5nIGFuZCBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJh
c2ljLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW0KaW5kZXggMGFkZTJmOGFlNjZlYWU2ZTM2MjY4MzlmOWIyOTEzYzQ2MGI3OWE2
OS4uZTMyNGMyOWY0YWNhMDk3ZTU2NTk3NjE5NDBmZTk0NzQ2OWU3YjMwZCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29y
a2VyQmFzaWMubW0KQEAgLTUxNCwzMCArNTE0LDUwIEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIEJh
c2ljKQogfQogCiBAaW50ZXJmYWNlIFNXQ3VzdG9tVXNlckFnZW50RGVsZWdhdGUgOiBOU09iamVj
dCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IHsKKyAgICBOU1N0cmluZyAqX3VzZXJBZ2VudDsKIH0K
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFVzZXJBZ2VudDooTlNTdHJpbmcgKil1c2VyQWdlbnQ7
CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBTV0N1c3RvbVVzZXJBZ2VudERlbGVnYXRlCiAKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aFVzZXJBZ2VudDooTlNTdHJpbmcgKil1c2VyQWdlbnQKK3sK
KyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIF91c2VyQWdlbnQgPSB1c2VyQWdlbnQ7Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICop
bmF2aWdhdGlvbkFjdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vi
c2l0ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlcgogewogICAgIF9XS1dlYnNpdGVQb2xpY2ll
cyAqd2Vic2l0ZVBvbGljaWVzID0gW1tbX1dLV2Vic2l0ZVBvbGljaWVzIGFsbG9jXSBpbml0XSBh
dXRvcmVsZWFzZV07CiAgICAgaWYgKG5hdmlnYXRpb25BY3Rpb24udGFyZ2V0RnJhbWUubWFpbkZy
YW1lKQotICAgICAgICBbd2Vic2l0ZVBvbGljaWVzIHNldEN1c3RvbVVzZXJBZ2VudDpAIkZvbyBD
dXN0b20gVXNlckFnZW50Il07CisgICAgICAgIFt3ZWJzaXRlUG9saWNpZXMgc2V0Q3VzdG9tVXNl
ckFnZW50Ol91c2VyQWdlbnRdOwogCiAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93LCB3ZWJzaXRlUG9saWNpZXMpOwogfQogCiBAZW5kCiAKLUBpbnRlcmZh
Y2UgU1dVc2VyQWdlbnRNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyPgorQGludGVyZmFjZSBTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3Qg
PFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+IHsKK0BwdWJsaWMKKyAgICBOU1N0cmluZyAqZXhwZWN0
ZWRNZXNzYWdlOworfQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRXhwZWN0ZWRNZXNzYWdlOihO
U1N0cmluZyAqKWV4cGVjdGVkTWVzc2FnZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFNXVXNl
ckFnZW50TWVzc2FnZUhhbmRsZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRXhwZWN0ZWRN
ZXNzYWdlOihOU1N0cmluZyAqKV9leHBlY3RlZE1lc3NhZ2UKK3sKKyAgICBzZWxmID0gW3N1cGVy
IGluaXRdOworICAgIGV4cGVjdGVkTWVzc2FnZSA9IF9leHBlY3RlZE1lc3NhZ2U7CisgICAgcmV0
dXJuIHNlbGY7Cit9CisKIC0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250
ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVz
c2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQogewotICAgIC8vIEZJWE1FOiBuYXZpZ2F0
b3IudXNlckFnZW50IGN1cnJlbnRseSBkb2VzIG5vdCByZWZsZWN0IHRoZSBjdXN0b20gdXNlciBh
Z2VudCBzZXQgYnkgdGhlIGNsaWVudCAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5Mjk1MSkuCi0gICAgLy8gRVhQRUNUX1dLX1NUUkVRKEAiTWVzc2FnZSBmcm9tIHdv
cmtlcjogRm9vIEN1c3RvbSBVc2VyQWdlbnQiLCBbbWVzc2FnZSBib2R5XSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKGV4cGVjdGVkTWVzc2FnZSwgW21lc3NhZ2UgYm9keV0pOwogICAgIGRvbmUgPSB0
cnVlOwogfQogQGVuZApAQCAtNTYzLDcgKzU4Myw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFVz
ZXJBZ2VudE92ZXJyaWRlKQogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKIAotICAgIGF1dG8gbWVzc2FnZUhh
bmRsZXIgPSBhZG9wdE5TKFtbU1dVc2VyQWdlbnRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbU1dVc2VyQWdlbnRNZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6QCJNZXNzYWdlIGZyb20gd29y
a2VyOiBGb28gQ3VzdG9tIFVzZXJBZ2VudCJdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNv
bnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5n
ZXQoKSBuYW1lOkAic3ciXTsKIAogICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tTV1NjaGVt
ZXMgYWxsb2NdIGluaXRdKTsKQEAgLTU3MiwxMCArNTkyLDEwIEBAIFRFU1QoU2VydmljZVdvcmtl
cnMsIFVzZXJBZ2VudE92ZXJyaWRlKQogICAgIGhhbmRsZXItPmV4cGVjdGVkVXNlckFnZW50ID0g
QCJGb28gQ3VzdG9tIFVzZXJBZ2VudCI7CiAgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1l
SGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CiAKLSAgICBSZXRhaW5Q
dHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwogICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRp
b24ucHJvY2Vzc1Bvb2wgX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6
QCJzdyJdOwogCi0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTV0N1c3RvbVVzZXJBZ2Vu
dERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tT
V0N1c3RvbVVzZXJBZ2VudERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFVzZXJBZ2VudDpAIkZvbyBD
dXN0b20gVXNlckFnZW50Il0pOwogICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpk
ZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4u
aHRtbCJdXTsKQEAgLTU4Myw2ICs2MDMsMzYgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgVXNlckFn
ZW50T3ZlcnJpZGUpCiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAg
IGRvbmUgPSBmYWxzZTsKKworICAgIC8vIFJlc3RvcmUgZnJvbSBkaXNrLgorICAgIHdlYlZpZXcg
PSBudWxscHRyOworICAgIGRlbGVnYXRlID0gbnVsbHB0cjsKKyAgICBoYW5kbGVyID0gbnVsbHB0
cjsKKyAgICBtZXNzYWdlSGFuZGxlciA9IG51bGxwdHI7CisgICAgY29uZmlndXJhdGlvbiA9IG51
bGxwdHI7CisKKyAgICBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NX
VXNlckFnZW50TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoRXhwZWN0ZWRNZXNzYWdlOkAi
TWVzc2FnZSBmcm9tIHdvcmtlcjogQmFyIEN1c3RvbSBVc2VyQWdlbnQiXSk7CisgICAgW1tjb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6
bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBoYW5kbGVyID0gYWRvcHRO
UyhbW1NXU2NoZW1lcyBhbGxvY10gaW5pdF0pOworICAgIGhhbmRsZXItPnJlc291cmNlcy5zZXQo
InN3Oi8vaG9zdC9tYWluLmh0bWwiLCBSZXNvdXJjZUluZm8geyBAInRleHQvaHRtbCIsIG1haW5C
eXRlcyB9KTsKKyAgICBoYW5kbGVyLT5yZXNvdXJjZXMuc2V0KCJzdzovL2hvc3Qvc3cuanMiLCBS
ZXNvdXJjZUluZm8geyBAImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLCB1c2VyQWdlbnRTV0J5dGVz
IH0pOworICAgIGhhbmRsZXItPmV4cGVjdGVkVXNlckFnZW50ID0gQCJCYXIgQ3VzdG9tIFVzZXJB
Z2VudCI7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdl
dCgpIGZvclVSTFNjaGVtZTpAIlNXIl07CisKKyAgICB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldy5nZXQoKS5jb25m
aWd1cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2Fu
SGFuZGxlOkAic3ciXTsKKworICAgIGRlbGVnYXRlID0gYWRvcHROUyhbW1NXQ3VzdG9tVXNlckFn
ZW50RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoVXNlckFnZW50OkAiQmFyIEN1c3RvbSBVc2VyQWdl
bnQiXSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgp
XTsKKworICAgIHJlcXVlc3QgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAic3c6Ly9ob3N0L21haW4uaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7
CisgICAgZG9uZSA9IGZhbHNlOwogfQogCiBURVNUKFNlcnZpY2VXb3JrZXJzLCBSZXN0b3JlRnJv
bURpc2spCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357994</attachid>
            <date>2018-12-21 15:54:10 -0800</date>
            <delta_ts>2018-12-21 19:06:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192951-20181221155409.patch</filename>
            <type>text/plain</type>
            <size>35055</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNjNTU2MmFkYTExNTA3
ZTZmMDgzNjYzMTY5ZTk4Y2FhNTgwNWJiMC4uYmY4ZjkyYzlhY2E5MmQzNWI1MTAwYzc5NDEwYmQ2
YzljOWE0MTRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTEyLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2Vu
dCBpbiBzZXJ2aWNlIHdvcmtlcnMgZG9lcyBub3QgcmVmbGVjdCBjdXN0b21Vc2VyQWdlbnQgc2V0
IGJ5IGNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbmV2ZXIgYSBzZXJ2aWNlIHdvcmtlciBjbGllbnQgcmVnaXN0ZXJzIGl0c2VsZiwgYWxz
byBwYXNzIGl0cyBlZmZlY3RpdmUgdXNlciBhZ2VudC4KKyAgICAgICAgSW4gdGhlIG5ldHdvcmsg
cHJvY2VzcywgZm9yIGVhY2ggb3JpZ2luLCB3ZSBzdG9yZSB0aGUgbGF0ZXN0IGNsaWVudCdzIHVz
ZXIgYWdlbnQgYW5kCisgICAgICAgIHVzZSBpdCB3aGVuIHN0YXJ0aW5nIHRoZSBzZXJ2aWNlIHdv
cmtlci4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24pOgorICAgICAgICAqIGxvYWRlci9E
b2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVn
aXN0ZXJUZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2VydmljZVdv
cmtlckNsaWVudFVzZXJBZ2VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
aW5zdGFsbENvbnRleHREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpydW5TZXJ2
aWNlV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
aDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OnVzZXJBZ2VudCBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgor
CiAyMDE4LTEyLTIwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgY3VzdG9tIGNvbnN0cnVjdG9ycyBvZiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFk
ZXIgYW5kIFJlYWRhYmxlU3RyZWFtQllPQlJlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwYjk1NjRiNzI2YTAw
M2E5ZmUwNDI2MDAzMTBmNTcyMWM2YzY3Y2EyLi4xM2FhZDliZjRjYTlmNzJjZGE3YWI2MzJmMzAx
N2RhY2FjNzY5MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTEyLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2Vu
dCBpbiBzZXJ2aWNlIHdvcmtlcnMgZG9lcyBub3QgcmVmbGVjdCBjdXN0b21Vc2VyQWdlbnQgc2V0
IGJ5IGNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpp
bnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
Omluc3RhbGxTZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTgtMTIt
MjAgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0
aE5dIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgbG9jYWwgYXV0aGVudGljYXRvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggZWMyMjkyZTQ4YWYwYzM1MzUxMDExMjIwNThjYTg5NmUwZGZhMDUw
My4uMDk1ZmUyMzdjNTU0ZDU0MThjMDA0MWU2ZDhlMGIzM2RhMDdlNjI4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC04NDcyLDcgKzg0NzIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRTZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbihTV0NsaWVudENvbm5lY3Rpb24qIHNlcnZpY2VXb3JrZXJDb25u
ZQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIgPSBhY3RpdmVTZXJ2aWNlV29ya2VyKCkgPyBtYWtlT3B0aW9u
YWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+KGFjdGl2ZVNlcnZpY2VXb3Jr
ZXIoKS0+cmVnaXN0cmF0aW9uSWRlbnRpZmllcigpKSA6IFdURjo6bnVsbG9wdDsKLSAgICBtX3Nl
cnZpY2VXb3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQodG9wT3Jp
Z2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCp0aGlzLCAqc2VydmljZVdvcmtl
ckNvbm5lY3Rpb24pLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQodG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCp0aGlz
LCAqc2VydmljZVdvcmtlckNvbm5lY3Rpb24pLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCB1c2VyQWdlbnQodXJsKCkpKTsKIH0KICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBlOThiOTY4M2QxYzYwODA1
Zjc1NzljYTczNTE4N2I3NmQyNGMwMjBiLi4yMDFjY2Y2YTY4OTU5MjJmOWQzNWQ2OTg3ZjI3NGM1
MTcwMDZkOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAg
LTE3ODksNyArMTc4OSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlZ2lzdGVyVGVtcG9yYXJ5
U2VydmljZVdvcmtlckNsaWVudChjb25zdCBVUkwmIHVybCkKICAgICAgICAgdG9wT3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpOwogICAgIGVsc2UKICAgICAgICAgdG9wT3JpZ2lu
ID0gJm1fZnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPnRvcE9yaWdpbigpOwotICAgIG1f
dGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudC0+c2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudCgqdG9wT3JpZ2luLCBXVEZNb3ZlKGRhdGEpLCBtX3Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLT5pZGVudGlmaWVyKTsKKyAgICBtX3RlbXBvcmFy
eVNlcnZpY2VXb3JrZXJDbGllbnQtPnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoKnRvcE9yaWdpbiwgV1RGTW92ZShkYXRhKSwgbV9zZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YS0+aWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkudXNlckFn
ZW50KHVybCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odXJsKTsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmlu
ZGV4IGI2ZjllMTZiZjY5YjEzMTk3NjJiZTc1Y2EzYjgyMzFkZDExMDM4YjkuLjNjMDA5MTRiMTlh
MThjY2JjZWNlZmFjZTQ0ZTJlYThiYTcyZWI0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgwLDcgKzgwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRG
b3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwg
Y29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmLCBj
b25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIpID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKaW5kZXggYmNiMTk3Y2EyY2E3YmY3NTk5MTExMDEzN2RkMDk5MTYx
OTEzNDZiNi4uODRmYTc3NWE5ZDVmZDBjZmNjOTdiNTIwMTA3ZDNkZWU2MTQ2N2I2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
QEAgLTkyLDYgKzkyLDE0IEBAIE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTV1Nl
cnZlcjo6c2VydmljZVdvcmtlckNsaWVudFdpdGhPcmlnaW5CeUlEKGNvCiAgICAgcmV0dXJuIGNs
aWVudEl0ZXJhdG9yLT52YWx1ZTsKIH0KIAorU3RyaW5nIFNXU2VydmVyOjpzZXJ2aWNlV29ya2Vy
Q2xpZW50VXNlckFnZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKSBjb25zdAor
eworICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NsaWVudElkZW50aWZpZXJzUGVyT3JpZ2luLmZpbmQo
Y2xpZW50T3JpZ2luKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9jbGllbnRJZGVudGlmaWVyc1Bl
ck9yaWdpbi5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBpdGVy
YXRvci0+dmFsdWUudXNlckFnZW50OworfQorCiBTV1NlcnZlcldvcmtlciogU1dTZXJ2ZXI6OmFj
dGl2ZVdvcmtlckZyb21SZWdpc3RyYXRpb25JRChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fcmVnaXN0
cmF0aW9uc0J5SUQuZ2V0KGlkZW50aWZpZXIpOwpAQCAtNTQ4LDEwICs1NTYsMTEgQEAgdm9pZCBT
V1NlcnZlcjo6aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYgZGF0YSkKIAogICAgIHJlZ2lzdHJhdGlvbi0+c2V0UHJlSW5zdGFsbGF0aW9uV29ya2VyKHdv
cmtlci5wdHIoKSk7CiAgICAgd29ya2VyLT5zZXRTdGF0ZShTV1NlcnZlcldvcmtlcjo6U3RhdGU6
OlJ1bm5pbmcpOworICAgIGF1dG8gdXNlckFnZW50ID0gd29ya2VyLT51c2VyQWdlbnQoKTsKICAg
ICBhdXRvIHJlc3VsdCA9IG1fcnVubmluZ09yVGVybWluYXRpbmdXb3JrZXJzLmFkZChkYXRhLnNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEZNb3ZlKHdvcmtlcikpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiAKLSAgICBjb25uZWN0aW9uLT5pbnN0YWxs
U2VydmljZVdvcmtlckNvbnRleHQoZGF0YSwgbV9zZXNzaW9uSUQpOworICAgIGNvbm5lY3Rpb24t
Pmluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChkYXRhLCBtX3Nlc3Npb25JRCwgdXNlckFnZW50
KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6cnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJ1blNlcnZpY2VXb3JrZXJDYWxsYmFjayYm
IGNhbGxiYWNrKQpAQCAtNjAyLDcgKzYxMSw3IEBAIGJvb2wgU1dTZXJ2ZXI6OnJ1blNlcnZpY2VX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBhdXRvKiBjb250
ZXh0Q29ubmVjdGlvbiA9IHdvcmtlci0+Y29udGV4dENvbm5lY3Rpb24oKTsKICAgICBBU1NFUlQo
Y29udGV4dENvbm5lY3Rpb24pOwogCi0gICAgY29udGV4dENvbm5lY3Rpb24tPmluc3RhbGxTZXJ2
aWNlV29ya2VyQ29udGV4dCh3b3JrZXItPmNvbnRleHREYXRhKCksIG1fc2Vzc2lvbklEKTsKKyAg
ICBjb250ZXh0Q29ubmVjdGlvbi0+aW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KHdvcmtlci0+
Y29udGV4dERhdGEoKSwgbV9zZXNzaW9uSUQsIHdvcmtlci0+dXNlckFnZW50KCkpOwogCiAgICAg
cmV0dXJuIHRydWU7CiB9CkBAIC03MzEsNyArNzQwLDcgQEAgU1dTZXJ2ZXJSZWdpc3RyYXRpb24q
IFNXU2VydmVyOjpyZWdpc3RyYXRpb25Gcm9tU2VydmljZVdvcmtlcklkZW50aWZpZXIoU2Vydmlj
ZVcKICAgICByZXR1cm4gbV9yZWdpc3RyYXRpb25zLmdldChpdGVyYXRvci0+dmFsdWUtPnJlZ2lz
dHJhdGlvbktleSgpKTsKIH0KIAotdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVdvcmtlckNsaWVudERh
dGEmJiBkYXRhLCBjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
Zmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCit2
b2lkIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYg
Y2xpZW50T3JpZ2luLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEsIGNvbnN0IE9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQp
CiB7CiAgICAgYXV0byBjbGllbnRJZGVudGlmaWVyID0gZGF0YS5pZGVudGlmaWVyOwogCkBAIC03
NDQsNiArNzUzLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVcKIAogICAgIEFTU0VSVCghY2xp
ZW50SWRlbnRpZmllcnNGb3JPcmlnaW4uaWRlbnRpZmllcnMuY29udGFpbnMoY2xpZW50SWRlbnRp
ZmllcikpOwogICAgIGNsaWVudElkZW50aWZpZXJzRm9yT3JpZ2luLmlkZW50aWZpZXJzLmFwcGVu
ZChjbGllbnRJZGVudGlmaWVyKTsKKyAgICBjbGllbnRJZGVudGlmaWVyc0Zvck9yaWdpbi51c2Vy
QWdlbnQgPSB1c2VyQWdlbnQ7CiAgICAgY2xpZW50SWRlbnRpZmllcnNGb3JPcmlnaW4udGVybWlu
YXRlU2VydmljZVdvcmtlcnNUaW1lciA9IG51bGxwdHI7CiAKICAgICBtX2NsaWVudHNCeVNlY3Vy
aXR5T3JpZ2luLmVuc3VyZShjbGllbnRPcmlnaW4uY2xpZW50T3JpZ2luLCBbXSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggYzM5
MTBkNmJlMjFkMTJiZTU0ZjQ1N2Y2YmQyMDFkZDU3YWY2ODU0Yi4uMmEwODhkODI4OTQyYmJmYjU0
NTYzMzBlMGJjNTExNjY3ODNiZWIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyV29ya2VyKiB3b3JrZXJCeUlEKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSBjb25zdDsKICAgICBPcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4gc2VydmljZVdvcmtlckNsaWVudFdpdGhPcmlnaW5CeUlEKGNvbnN0IENsaWVudE9yaWdpbiYs
IGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJikgY29uc3Q7CisgICAgU3RyaW5n
IHNlcnZpY2VXb3JrZXJDbGllbnRVc2VyQWdlbnQoY29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJXb3JrZXIqIGFjdGl2ZVdvcmtlckZyb21SZWdp
c3RyYXRpb25JRChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1hcmtBbGxXb3JrZXJzRm9yT3JpZ2luQXNUZXJtaW5hdGVkKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwpAQCAtMTYzLDcgKzE2NCw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSGFzaFNldDxTV1NlcnZlcio+JiBhbGxTZXJ2
ZXJzKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChDbGllbnRPcmlnaW4mJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3QgT3B0
aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+Jik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYs
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENs
aWVudE9yaWdpbiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKTsKIAogICAgIHVzaW5n
IFJ1blNlcnZpY2VXb3JrZXJDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24qKT47CkBAIC0yMjAsNiArMjIxLDcgQEAgcHJpdmF0ZToKICAgICBz
dHJ1Y3QgQ2xpZW50cyB7CiAgICAgICAgIFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcj4gaWRlbnRpZmllcnM7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gdGVybWlu
YXRlU2VydmljZVdvcmtlcnNUaW1lcjsKKyAgICAgICAgU3RyaW5nIHVzZXJBZ2VudDsKICAgICB9
OwogICAgIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBDbGllbnRzPiBtX2NsaWVudElkZW50aWZpZXJz
UGVyT3JpZ2luOwogICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiBtX2NsaWVudHNCeUlkOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKaW5kZXggNzcxZGE3NWNlOTg1OTU3NmY3ZmVkOTlhZTc3NDMwMzg4
NGQ0MmIzYS4uZGY0ZjE3NWU1MWI2YThiMmVmNDY0ZTk0NGRjYmMxNzA5OTk1OWIxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC01Myw3ICs1Myw3IEBAIHB1Ymxp
YzoKICAgICBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIC8vIE1lc3NhZ2VzIHRvIHRo
ZSBTVyBob3N0IHByb2Nlc3MKLSAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJD
b250ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklEKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNl
V29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlQWN0aXZhdGVFdmVu
dChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5h
dGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5k
ZXggYzhiNjhlNmI5YjhmZjIzODRjMDBjNDZlZWY3NmY3MTYxOTBlOGI2OS4uYjRkN2I5ZDM2MWEx
ZDlkMDljY2JhZjZhZmU0YWViZjUxNGI3YTk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTEzNiw2
ICsxMzYsMTEgQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6bWF0Y2hBbGwoY29uc3QgU2VydmljZVdv
cmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYgb3B0aW9ucywgU2UKICAgICByZXR1cm4gbV9zZXJ2ZXIu
bWF0Y2hBbGwoKnRoaXMsIG9wdGlvbnMsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAorU3RyaW5n
IFNXU2VydmVyV29ya2VyOjp1c2VyQWdlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlcnZl
ci5zZXJ2aWNlV29ya2VyQ2xpZW50VXNlckFnZW50KG9yaWdpbigpKTsKK30KKwogdm9pZCBTV1Nl
cnZlcldvcmtlcjo6Y2xhaW0oKQogewogICAgIHJldHVybiBtX3NlcnZlci5jbGFpbSgqdGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmgKaW5kZXggYTMxZGJhNzE0NDg1NTE0ZjQzN2YzYWQ0MDg3OGNiNTMyNTk3MjQ0
Yi4uYTczYzg2ZGNkMmVjZDM4ZTIxY2M3ZmIyZjAzNzJmNDE4MjEzNzAxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIu
aApAQCAtMTA5LDkgKzEwOSwxMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKiBjb250ZXh0Q29ubmVjdGlvbigp
OworICAgIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBTV1NlcnZl
cldvcmtlcihTV1NlcnZlciYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyYsICBXb3JrZXJUeXBlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOworICAgIFNXU2Vy
dmVyV29ya2VyKFNXU2VydmVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VI
ZWFkZXJzJiwgV29ya2VyVHlwZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIEhhc2hNYXA8VVJM
LCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0PiYmKTsKIAogICAgIHZv
aWQgY2FsbFdoZW5BY3RpdmF0ZWRIYW5kbGVyKGJvb2wgc3VjY2Vzcyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTdjYmY0NWQ4ODM4NDY4Y2EzNGE2ZjE3
ZmU0M2VlNDYyY2VkNDJhMy4uNTlmYTQwZmMxZjM4ZWMxNDg2MTJiNzNhMzlkYTBhZTQzNzVhNjQ4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTI5MSwxMSAr
MjkxLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKHVp
bnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpEaWRHZXRSZWdpc3RyYXRpb25zIHsgcmVnaXN0cmF0aW9uTWF0
Y2hSZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9ucyB9KTsKIH0KIAotdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChTZWN1cml0eU9yaWdp
bkRhdGEmJiB0b3BPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qg
T3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBjb250cm9sbGlu
Z1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQordm9pZCBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChTZWN1cml0eU9yaWdpbkRhdGEm
JiB0b3BPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3QgT3B0aW9u
YWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkK
IHsKICAgICBhdXRvIGNsaWVudE9yaWdpbiA9IENsaWVudE9yaWdpbiB7IFdURk1vdmUodG9wT3Jp
Z2luKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKGRhdGEudXJsKSB9OwogICAgIG1fY2xp
ZW50T3JpZ2lucy5hZGQoZGF0YS5pZGVudGlmaWVyLCBjbGllbnRPcmlnaW4pOwotICAgIHNlcnZl
cigpLnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFdU
Rk1vdmUoZGF0YSksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIpOworICAgIHNlcnZlcigpLnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXVEZNb3ZlKGNs
aWVudE9yaWdpbiksIFdURk1vdmUoZGF0YSksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIHVzZXJBZ2VudCk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uaAppbmRleCAzMDdkYTJjOWY2OWM0NDQyNzMzNTNiNTQzMjY0MWNlMTY3OTUy
MmE5Li43OTE2ZTc2YzVjMjAxZTkyYmVmMzI0MzY2MGI3ZGY3MjlhM2Y3NmIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdp
biwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50
NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogCi0g
ICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cj4mKTsKKyAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsKICAgICB2b2lkIHVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyJik7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgZmluYWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggN2Ni
YzIzMGE0MzMwZTI0ZWFlMmVkMGNhYjI4Yzg4ZWY5NGY3MjMzOC4uZjc1NDNmZjgyOTU3ZjI3NDVm
ZmI5M2ZhYzU2NGJlMTZhY2RkMTk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zOSw3ICszOSw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3Qgc2Vy
dmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKQogICAgIFdoZW5SZWdp
c3RyYXRpb25SZWFkeSh1aW50NjRfdCBzZXJ2aWNlUmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFVS
TCBjbGllbnRVUkwpCiAgICAgR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBzZXJ2aWNlUmVnaXN0
cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB0b3BPcmlnaW4sIFVSTCBjbGllbnRVUkwpCi0gICAgUmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCisgICAgUmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwgT3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyB1c2VyQWdlbnQpCiAgICAg
VW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAgICBTeW5jVGVybWluYXRlV29ya2Vy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgp
IExlZ2FjeVN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKaW5kZXggZmM5YWZkNzQ2MWYzZDE0MzYxNzk4YWM3YzIyM2M3YWM4NjJlNmY5
ZC4uY2U0MGRiMTY3YjdiMTkzNGFiZmY5YWQ1NmViMmE5MWNmZTUxNzk3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTU3LDkg
KzU3LDkgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNvbm5lY3Rpb25D
bG9zZWQoKQogICAgIC8vIEZJWE1FOiBEbyB3aGF0IGhlcmUuLi4/CiB9CiAKLXZvaWQgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29u
c3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VX
b3JrZXJDb250ZXh0KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKIHsKLSAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6SW5zdGFsbFNlcnZpY2VX
b3JrZXIgeyBkYXRhLCBzZXNzaW9uSUQgfSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246Okluc3RhbGxTZXJ2aWNlV29ya2VyIHsgZGF0YSwgc2Vzc2lv
bklELCB1c2VyQWdlbnQgfSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oCmluZGV4IDAxMjlhZDhkYmVlMTU1MzllOTRjOGVlOTNiZjExZWZlZjA5NWE3NTcu
LjNiNjkwOWUyM2E1NmNjNmM0ZjFiYTNjZGJkYmUxM2Q3ZDFjM2EwNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTU3LDcgKzU3LDcg
QEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZp
bmFsOwogCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGhvc3QgV2ViUHJvY2VzcwotICAgIHZv
aWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklEKSBmaW5hbDsKKyAgICB2b2lkIGluc3RhbGxT
ZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOwogICAg
IHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNTc0
YzkyMGVjMzA1NjI0MDViZGZiZDdhOWVlOTI3YmQ1OTc0NjJjZi4uYTU1NWNhM2MwMDA4M2JkOTVl
YWVkMDMyM2Q1MmJiM2U2MDM5ODZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC05Myw5ICs5
Myw5IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRp
Zmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSksIDApOwogfQogCi12b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiBkYXRhLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQogewotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50IHsgdG9wT3JpZ2luLmRhdGEoKSwgZGF0YSwgY29udHJvbGxpbmdTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciB9KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IHRvcE9yaWdpbi5k
YXRhKCksIGRhdGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIHVzZXJBZ2VudCB9KTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnVucmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRp
ZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggYjkyZWViZmY5MGY5YmNkMzQ0ODhkYTdlNDk2N2I5
ZDM0OTg5MjUxYi4uNGM3MTJmY2RjZDMxNWMwMmNkYTc1ZGQ5NzY4NDY1ZjUzZTg4YWQ1NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVk
dWxlSm9iSW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5h
bDsKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckZldGNoUmVzdWx0JikgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSkgZmluYWw7Ci0g
ICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGEmLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcj4mKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBm
aW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRv
Y3VtZW50SWRlbnRpZmllcikgZmluYWw7CiAKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRV
UkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCmluZGV4IGVmNjVjNDJlM2IwMjAzMjQxM2M4OWExMTUwOTU4YTA3MGZiZWNk
MzIuLjc5N2NmZTI4ZTU3NjZkOWMxZmZiNWMwNTQ5MGNhYzFiYWQ1YTFhM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdl
YlByZWZlcmVuY2VzUwogICAgIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID0gc3RhdGljX2Nhc3Q8
U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgpKSk7
CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNl
V29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2
aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgU2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7CiAgICAgTE9HKFNlcnZpY2VX
b3JrZXIsICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3Jr
ZXIgZm9yIHdvcmtlciAlcyIsIGRhdGEuc2VydmljZVdvcmtlcklkZW50aWZpZXIubG9nZ2luZ1N0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCkBAIC0xNDUsMTMgKzE0NSwxNSBAQCB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBTZXJ2
aWNlV29ya2VyQ29udAogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRhdGFiYXNlUHJvdmlkZXIgPSBX
ZWJEYXRhYmFzZVByb3ZpZGVyOjpnZXRPckNyZWF0ZShtX3BhZ2VHcm91cElEKTsKICNlbmRpZgog
CisgICAgYXV0byBlZmZlY3RpdmVVc2VyQWdlbnQgPSAgdXNlckFnZW50LmlzTnVsbCgpID8gbV91
c2VyQWdlbnQgOiB1c2VyQWdlbnQ7CisKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxk
IGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rp
b24KICAgICAvLyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnQncyBkZXBlbmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkg
aGFwcGVuLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNl
cnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQs
ICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCwgbV91c2VyQWdlbnQpOworICAgIGF1dG8gZnJh
bWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRl
ckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VX
b3JrZXJJRCwgZWZmZWN0aXZlVXNlckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2Fk
ZXJDbGllbnRGb3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xv
YWRlcnMuYWRkKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIAotICAgIGF1dG8gc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbiksIGRhdGEsIHNlc3Npb25JRCwgU3RyaW5nIHsgbV91c2Vy
QWdlbnQgfSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSwg
bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpOworICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZFBy
b3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbiksIGRhdGEsIHNlc3Npb25JRCwgV1RGTW92ZShlZmZlY3RpdmVVc2VyQWdlbnQpLCBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLCBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeSk7CiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyVGhyZWFkRm9ySW5zdGFsbChXVEZNb3ZlKHNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eSkpOwogCiAgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJDb250ZXh0IHByb2Nlc3MgUElE
OiAlaSBjcmVhdGVkIHdvcmtlciB0aHJlYWRcbiIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCAzMDdmMDg3YmE1OGZiYTBlNWJiMGMz
MzBmZTg0MTY5YTg3OWRhYjI3Li43NGJmNTQxYTk2YjdhZmExYTUxZGY4ZTkwNDExMzVmZWQwNGM3
NjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTc2LDcgKzc2LDcgQEAg
cHJpdmF0ZToKIAogICAgIC8vIElQQyBtZXNzYWdlcy4KICAgICB2b2lkIHNlcnZpY2VXb3JrZXJT
dGFydGVkV2l0aE1lc3NhZ2UoT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7Ci0gICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtl
cihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25J
RCk7CisgICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQpOwogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIpOwogICAg
IHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
cik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBz
b3VyY2VEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggMDRlMDdhOGYwYWJjNjU0MTdhM2FjMjhhYWQ2MTYzMzU3NzljYjY5Mi4uZGZl
NWEzOGUxNmVjZThiZmNiMDYyZmNjZDhjNGU2MGVjZGYyMWMxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uIHsKLSAgICBJbnN0YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCisgICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcgdXNlckFnZW50KQogICAgIFN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UgcmVxdWVzdEJvZHksIFN0cmluZyByZWZlcnJlcikKICAgICBDYW5jZWxGZXRjaChX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKICAgICBQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3Nh
Z2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHNvdXJj
ZURhdGEpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggNzJmNjJiMmIwNWZiMzQ0YTJjMzRmNjFjNjFiN2RiOTlmMzk3NTExOS4uZTY2YjdiZTJiN2M5
NWMxMDliMGU1YjBjMWJjNWZjYTE2YmMxMDUxNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTEyLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2Vu
dCBpbiBzZXJ2aWNlIHdvcmtlcnMgZG9lcyBub3QgcmVmbGVjdCBjdXN0b21Vc2VyQWdlbnQgc2V0
IGJ5IGNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRXh0ZW5kIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICgtW1NXQ3Vz
dG9tVXNlckFnZW50RGVsZWdhdGUgaW5pdFdpdGhVc2VyQWdlbnQ6XSk6CisgICAgICAgICgtW1NX
Q3VzdG9tVXNlckFnZW50RGVsZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1NXVXNlckFn
ZW50TWVzc2FnZUhhbmRsZXIgaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6XSk6CisgICAgICAgICgt
W1NXVXNlckFnZW50TWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2Vp
dmVTY3JpcHRNZXNzYWdlOl0pOgorCiAyMDE4LTEyLTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlIGZvciBjdXN0b21Vc2Vy
QWdlbnQgY2xpZW50IHNldHRpbmcgYW5kIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQppbmRleCAwYWRlMmY4YWU2NmVhZTZlMzYyNjgzOWY5YjI5MTNjNDYwYjc5YTY5Li5lMzI0
YzI5ZjRhY2EwOTdlNTY1OTc2MTk0MGZlOTQ3NDY5ZTdiMzBkIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNp
Yy5tbQpAQCAtNTE0LDMwICs1MTQsNTAgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgQmFzaWMpCiB9
CiAKIEBpbnRlcmZhY2UgU1dDdXN0b21Vc2VyQWdlbnREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05h
dmlnYXRpb25EZWxlZ2F0ZT4geworICAgIE5TU3RyaW5nICpfdXNlckFnZW50OwogfQorLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoVXNlckFnZW50OihOU1N0cmluZyAqKXVzZXJBZ2VudDsKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFNXQ3VzdG9tVXNlckFnZW50RGVsZWdhdGUKIAorLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoVXNlckFnZW50OihOU1N0cmluZyAqKXVzZXJBZ2VudAoreworICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CisgICAgX3VzZXJBZ2VudCA9IHVzZXJBZ2VudDsKKyAgICByZXR1
cm4gc2VsZjsKK30KKwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0
aW9uQWN0aW9uIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5LCBfV0tXZWJzaXRlUG9s
aWNpZXMgKikpZGVjaXNpb25IYW5kbGVyCiB7CiAgICAgX1dLV2Vic2l0ZVBvbGljaWVzICp3ZWJz
aXRlUG9saWNpZXMgPSBbW1tfV0tXZWJzaXRlUG9saWNpZXMgYWxsb2NdIGluaXRdIGF1dG9yZWxl
YXNlXTsKICAgICBpZiAobmF2aWdhdGlvbkFjdGlvbi50YXJnZXRGcmFtZS5tYWluRnJhbWUpCi0g
ICAgICAgIFt3ZWJzaXRlUG9saWNpZXMgc2V0Q3VzdG9tVXNlckFnZW50OkAiRm9vIEN1c3RvbSBV
c2VyQWdlbnQiXTsKKyAgICAgICAgW3dlYnNpdGVQb2xpY2llcyBzZXRDdXN0b21Vc2VyQWdlbnQ6
X3VzZXJBZ2VudF07CiAKICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5QWxsb3csIHdlYnNpdGVQb2xpY2llcyk7CiB9CiAKIEBlbmQKIAotQGludGVyZmFjZSBTV1Vz
ZXJBZ2VudE1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+
CitAaW50ZXJmYWNlIFNXVXNlckFnZW50TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3Jp
cHRNZXNzYWdlSGFuZGxlcj4geworQHB1YmxpYworICAgIE5TU3RyaW5nICpleHBlY3RlZE1lc3Nh
Z2U7Cit9CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6KE5TU3RyaW5n
ICopZXhwZWN0ZWRNZXNzYWdlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gU1dVc2VyQWdlbnRN
ZXNzYWdlSGFuZGxlcgorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6
KE5TU3RyaW5nICopX2V4cGVjdGVkTWVzc2FnZQoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07
CisgICAgZXhwZWN0ZWRNZXNzYWdlID0gX2V4cGVjdGVkTWVzc2FnZTsKKyAgICByZXR1cm4gc2Vs
ZjsKK30KKwogLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250
cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihX
S1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCiB7Ci0gICAgLy8gRklYTUU6IG5hdmlnYXRvci51c2Vy
QWdlbnQgY3VycmVudGx5IGRvZXMgbm90IHJlZmxlY3QgdGhlIGN1c3RvbSB1c2VyIGFnZW50IHNl
dCBieSB0aGUgY2xpZW50IChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkyOTUxKS4KLSAgICAvLyBFWFBFQ1RfV0tfU1RSRVEoQCJNZXNzYWdlIGZyb20gd29ya2VyOiBG
b28gQ3VzdG9tIFVzZXJBZ2VudCIsIFttZXNzYWdlIGJvZHldKTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoZXhwZWN0ZWRNZXNzYWdlLCBbbWVzc2FnZSBib2R5XSk7CiAgICAgZG9uZSA9IHRydWU7CiB9
CiBAZW5kCkBAIC01NjMsNyArNTgzLDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgVXNlckFnZW50
T3ZlcnJpZGUpCiAKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogCi0gICAgYXV0byBtZXNzYWdlSGFuZGxlciA9
IGFkb3B0TlMoW1tTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkTWVzc2FnZTpAIk1lc3NhZ2UgZnJvbSB3b3JrZXI6IEZv
byBDdXN0b20gVXNlckFnZW50Il0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENv
bnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5h
bWU6QCJzdyJdOwogCiAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1NXU2NoZW1lcyBhbGxv
Y10gaW5pdF0pOwpAQCAtNTcyLDEwICs1OTIsMTAgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgVXNl
ckFnZW50T3ZlcnJpZGUpCiAgICAgaGFuZGxlci0+ZXhwZWN0ZWRVc2VyQWdlbnQgPSBAIkZvbyBD
dXN0b20gVXNlckFnZW50IjsKICAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVy
OmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiU1ciXTsKIAotICAgIFJldGFpblB0cjxXS1dl
YlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpXSk7CiAgICAgW3dlYlZpZXcuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9j
ZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTpAInN3Il07
CiAKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NXQ3VzdG9tVXNlckFnZW50RGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1NXQ3VzdG9t
VXNlckFnZW50RGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoVXNlckFnZW50OkAiRm9vIEN1c3RvbSBV
c2VyQWdlbnQiXSk7CiAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKIAogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1d
OwpAQCAtNTgzLDYgKzYwMywzNiBAQCBURVNUKFNlcnZpY2VXb3JrZXJzLCBVc2VyQWdlbnRPdmVy
cmlkZSkKIAogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiAgICAgZG9uZSA9
IGZhbHNlOworCisgICAgLy8gUmVzdG9yZSBmcm9tIGRpc2suCisgICAgd2ViVmlldyA9IG51bGxw
dHI7CisgICAgZGVsZWdhdGUgPSBudWxscHRyOworICAgIGhhbmRsZXIgPSBudWxscHRyOworICAg
IG1lc3NhZ2VIYW5kbGVyID0gbnVsbHB0cjsKKyAgICBjb25maWd1cmF0aW9uID0gbnVsbHB0cjsK
KworICAgIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworCisgICAgbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbU1dVc2VyQWdl
bnRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6QCJNZXNzYWdl
IGZyb20gd29ya2VyOiBCYXIgQ3VzdG9tIFVzZXJBZ2VudCJdKTsKKyAgICBbW2NvbmZpZ3VyYXRp
b24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdl
SGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIGhhbmRsZXIgPSBhZG9wdE5TKFtbU1dT
Y2hlbWVzIGFsbG9jXSBpbml0XSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9o
b3N0L21haW4uaHRtbCIsIFJlc291cmNlSW5mbyB7IEAidGV4dC9odG1sIiwgbWFpbkJ5dGVzIH0p
OworICAgIGhhbmRsZXItPnJlc291cmNlcy5zZXQoInN3Oi8vaG9zdC9zdy5qcyIsIFJlc291cmNl
SW5mbyB7IEAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIsIHVzZXJBZ2VudFNXQnl0ZXMgfSk7Cisg
ICAgaGFuZGxlci0+ZXhwZWN0ZWRVc2VyQWdlbnQgPSBAIkJhciBDdXN0b20gVXNlckFnZW50IjsK
KyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9y
VVJMU2NoZW1lOkAiU1ciXTsKKworICAgIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3LmdldCgpLmNvbmZpZ3VyYXRp
b24ucHJvY2Vzc1Bvb2wgX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGU6
QCJzdyJdOworCisgICAgZGVsZWdhdGUgPSBhZG9wdE5TKFtbU1dDdXN0b21Vc2VyQWdlbnREZWxl
Z2F0ZSBhbGxvY10gaW5pdFdpdGhVc2VyQWdlbnQ6QCJCYXIgQ3VzdG9tIFVzZXJBZ2VudCJdKTsK
KyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisg
ICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJzdzovL2hvc3QvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnJlcXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CiB9CiAKIFRFU1QoU2VydmljZVdvcmtlcnMsIFJlc3RvcmVGcm9tRGlzaykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358012</attachid>
            <date>2018-12-21 19:06:12 -0800</date>
            <delta_ts>2018-12-21 19:23:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192951-20181221190610.patch</filename>
            <type>text/plain</type>
            <size>35297</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQyOTFjY2VmYzRmODI3
MWU0YmE4MjliN2UzMDQwYjEyYmNjZjBiYS4uNTg3MDJiOTdhNzkxOTczZjBjYWI4OTg4OWIyNjk0
OTIyMjQ0NTliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTEyLTIxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgbmF2aWdhdG9yLnVzZXJBZ2Vu
dCBpbiBzZXJ2aWNlIHdvcmtlcnMgZG9lcyBub3QgcmVmbGVjdCBjdXN0b21Vc2VyQWdlbnQgc2V0
IGJ5IGNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkyOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAg
ICBXaGVuZXZlciBhIHNlcnZpY2Ugd29ya2VyIGNsaWVudCByZWdpc3RlcnMgaXRzZWxmLCBhbHNv
IHBhc3MgaXRzIGVmZmVjdGl2ZSB1c2VyIGFnZW50LgorICAgICAgICBJbiB0aGUgbmV0d29yayBw
cm9jZXNzLCBmb3IgZWFjaCBvcmlnaW4sIHdlIHN0b3JlIHRoZSBsYXRlc3QgY2xpZW50J3MgdXNl
ciBhZ2VudCBhbmQKKyAgICAgICAgdXNlIGl0IHdoZW4gc3RhcnRpbmcgdGhlIHNlcnZpY2Ugd29y
a2VyLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbik6CisgICAgICAgICogbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZWdp
c3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzZXJ2aWNlV29y
a2VyQ2xpZW50VXNlckFnZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpp
bnN0YWxsQ29udGV4dERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJ1blNlcnZp
Y2VXb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6dXNlckFnZW50IGNvbnN0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisK
IDIwMTgtMTItMjEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFJUQ1J0cFNlbmRlci5zZXRQYXJhbWV0ZXJzKCkgZG9lcyBzZXQgYWN0aXZlIHBhcmFtZXRlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAxYTIyMmZjNjJhZGMxMTUwN2NhN2UwNGVlMTE1OWE0OWU0Zjk2NGI4Li5kNTI0
MWEzYmI1ZTY1MDY2MWI5YzMwMmQwNTkyZTdlZDM5NTljZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDE4LTEyLTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgbmF2aWdhdG9yLnVzZXJBZ2VudCBpbiBzZXJ2aWNlIHdvcmtlcnMgZG9lcyBub3QgcmVm
bGVjdCBjdXN0b21Vc2VyQWdlbnQgc2V0IGJ5IGNsaWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjoKKwogMjAxOC0xMi0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEV4cGFuZCB1c2Ugb2Ygc291cmNlQXBwbGljYXRpb25B
dWRpdERhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDljYTMwY2M3MjUxMmM4OGE2YWIw
YzgyMTIwNGNkZGFkMWFmMTQ3MmQuLmVjNjZiZTc2NjFkMjE2MDZlNTdjZDFmNzQ5Y2RjZDQyYzE3
ZjVlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODQ3Miw3ICs4NDcyLDcgQEAgdm9p
ZCBEb2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU1dDbGllbnRDb25uZWN0aW9u
KiBzZXJ2aWNlV29ya2VyQ29ubmUKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjb250cm9s
bGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyID0gYWN0aXZlU2VydmljZVdv
cmtlcigpID8gbWFrZU9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
PihhY3RpdmVTZXJ2aWNlV29ya2VyKCktPnJlZ2lzdHJhdGlvbklkZW50aWZpZXIoKSkgOiBXVEY6
Om51bGxvcHQ7Ci0gICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+cmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KHRvcE9yaWdpbigpLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbSgq
dGhpcywgKnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHRvcE9yaWdpbigpLCBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YTo6ZnJvbSgqdGhpcywgKnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKSwgY29udHJvbGxp
bmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgdXNlckFnZW50KHVybCgpKSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5k
ZXggZDUzMWRiNDkyOTJkODAxY2ExZTkzMmI1NmJjM2E1YTgwMTUxNGIwOS4uNDc1NGJlYWI3YWE5
NWE2ZjFlM2Y5MjUzMjJiOTFlOWYxNjljNTZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCkBAIC0xNzkxLDcgKzE3OTEsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpyZWdpc3RlclRlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgVVJMJiB1cmwpCiAg
ICAgICAgIHRvcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKTsKICAgICBlbHNl
CiAgICAgICAgIHRvcE9yaWdpbiA9ICZtX2ZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT50
b3BPcmlnaW4oKTsKLSAgICBtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQtPnNlcnZpY2VX
b3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoKnRvcE9yaWdpbiwg
V1RGTW92ZShkYXRhKSwgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS0+aWRlbnRpZmll
cik7CisgICAgbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50LT5zZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbi0+cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KCp0b3BPcmlnaW4sIFdURk1vdmUo
ZGF0YSksIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEtPmlkZW50aWZpZXIsIG1fZnJh
bWUtPmxvYWRlcigpLnVzZXJBZ2VudCh1cmwpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVy
bCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uaAppbmRleCBiNmY5ZTE2YmY2OWIxMzE5NzYyYmU3NWNhM2I4MjMxZGQx
MTAzOGI5Li4zYzAwOTE0YjE5YTE4Y2NiY2VjZWZhY2U0NGUyZWE4YmE3MmViNGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5o
CkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbWF5SGF2ZVNlcnZp
Y2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXI+JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSA9
IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25z
dCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGJjYjE5N2NhMmNhN2Jm
NzU5OTExMTAxMzdkZDA5OTE2MTkxMzQ2YjYuLjQzNzdiMDBkYzBlOGE0ZGU3YTI1ZTBhY2RlNzQy
OTgwNDA2MWVlNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC05Miw2ICs5MiwxNCBAQCBPcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJDbGllbnRXaXRoT3JpZ2luQnlJ
RChjbwogICAgIHJldHVybiBjbGllbnRJdGVyYXRvci0+dmFsdWU7CiB9CiAKK1N0cmluZyBTV1Nl
cnZlcjo6c2VydmljZVdvcmtlckNsaWVudFVzZXJBZ2VudChjb25zdCBDbGllbnRPcmlnaW4mIGNs
aWVudE9yaWdpbikgY29uc3QKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9jbGllbnRJZGVudGlm
aWVyc1Blck9yaWdpbi5maW5kKGNsaWVudE9yaWdpbik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1f
Y2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW4uZW5kKCkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKyAgICByZXR1cm4gaXRlcmF0b3ItPnZhbHVlLnVzZXJBZ2VudDsKK30KKwogU1dTZXJ2ZXJX
b3JrZXIqIFNXU2VydmVyOjphY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvKiByZWdp
c3RyYXRpb24gPSBtX3JlZ2lzdHJhdGlvbnNCeUlELmdldChpZGVudGlmaWVyKTsKQEAgLTU0OCwx
MCArNTU2LDExIEBAIHZvaWQgU1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0YShjb25zdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiAKICAgICByZWdpc3RyYXRpb24tPnNldFByZUlu
c3RhbGxhdGlvbldvcmtlcih3b3JrZXIucHRyKCkpOwogICAgIHdvcmtlci0+c2V0U3RhdGUoU1dT
ZXJ2ZXJXb3JrZXI6OlN0YXRlOjpSdW5uaW5nKTsKKyAgICBhdXRvIHVzZXJBZ2VudCA9IHdvcmtl
ci0+dXNlckFnZW50KCk7CiAgICAgYXV0byByZXN1bHQgPSBtX3J1bm5pbmdPclRlcm1pbmF0aW5n
V29ya2Vycy5hZGQoZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGTW92ZSh3b3JrZXIp
KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAg
Y29ubmVjdGlvbi0+aW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGRhdGEsIG1fc2Vzc2lvbklE
KTsKKyAgICBjb25uZWN0aW9uLT5pbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoZGF0YSwgbV9z
ZXNzaW9uSUQsIHVzZXJBZ2VudCk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnJ1blNlcnZpY2VXb3Jr
ZXJJZk5lY2Vzc2FyeShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBSdW5TZXJ2
aWNlV29ya2VyQ2FsbGJhY2smJiBjYWxsYmFjaykKQEAgLTYwMiw3ICs2MTEsNyBAQCBib29sIFNX
U2VydmVyOjpydW5TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiAgICAgYXV0byogY29udGV4dENvbm5lY3Rpb24gPSB3b3JrZXItPmNvbnRleHRDb25uZWN0
aW9uKCk7CiAgICAgQVNTRVJUKGNvbnRleHRDb25uZWN0aW9uKTsKIAotICAgIGNvbnRleHRDb25u
ZWN0aW9uLT5pbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQod29ya2VyLT5jb250ZXh0RGF0YSgp
LCBtX3Nlc3Npb25JRCk7CisgICAgY29udGV4dENvbm5lY3Rpb24tPmluc3RhbGxTZXJ2aWNlV29y
a2VyQ29udGV4dCh3b3JrZXItPmNvbnRleHREYXRhKCksIG1fc2Vzc2lvbklELCB3b3JrZXItPnVz
ZXJBZ2VudCgpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNzMxLDcgKzc0MCw3IEBAIFNX
U2VydmVyUmVnaXN0cmF0aW9uKiBTV1NlcnZlcjo6cmVnaXN0cmF0aW9uRnJvbVNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKFNlcnZpY2VXCiAgICAgcmV0dXJuIG1fcmVnaXN0cmF0aW9ucy5nZXQoaXRl
cmF0b3ItPnZhbHVlLT5yZWdpc3RyYXRpb25LZXkoKSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3QgT3B0aW9uYWw8U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyKQordm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVdvcmtlckNsaWVudERhdGEm
JiBkYXRhLCBjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmlu
ZyYmIHVzZXJBZ2VudCkKIHsKICAgICBhdXRvIGNsaWVudElkZW50aWZpZXIgPSBkYXRhLmlkZW50
aWZpZXI7CiAKQEAgLTc0NCw2ICs3NTMsMTEgQEAgdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVcKIAog
ICAgIEFTU0VSVCghY2xpZW50SWRlbnRpZmllcnNGb3JPcmlnaW4uaWRlbnRpZmllcnMuY29udGFp
bnMoY2xpZW50SWRlbnRpZmllcikpOwogICAgIGNsaWVudElkZW50aWZpZXJzRm9yT3JpZ2luLmlk
ZW50aWZpZXJzLmFwcGVuZChjbGllbnRJZGVudGlmaWVyKTsKKworICAgIGlmICghY2xpZW50SWRl
bnRpZmllcnNGb3JPcmlnaW4udXNlckFnZW50LmlzTnVsbCgpICYmIGNsaWVudElkZW50aWZpZXJz
Rm9yT3JpZ2luLnVzZXJBZ2VudCAhPSB1c2VyQWdlbnQpCisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFNlcnZpY2VXb3JrZXIsICIlcCAtIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQ6IFNlcnZpY2Ugd29ya2VyIGhhcyBjbGllbnRzIHVzaW5nIGRpZmZlcmVudCB1c2VyIGFn
ZW50cyIsIHRoaXMpOworICAgIGNsaWVudElkZW50aWZpZXJzRm9yT3JpZ2luLnVzZXJBZ2VudCA9
IFdURk1vdmUodXNlckFnZW50KTsKKwogICAgIGNsaWVudElkZW50aWZpZXJzRm9yT3JpZ2luLnRl
cm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXIgPSBudWxscHRyOwogCiAgICAgbV9jbGllbnRzQnlT
ZWN1cml0eU9yaWdpbi5lbnN1cmUoY2xpZW50T3JpZ2luLmNsaWVudE9yaWdpbiwgW10gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4
IGMzOTEwZDZiZTIxZDEyYmU1NGY0NTdmNmJkMjAxZGQ1N2FmNjg1NGIuLjJkNzQwNDgxMWQ0NWJl
M2U2NGEyOTNiODlkZmRkZjIxZjVmMzcxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTE0MSw2ICsxNDEsNyBAQCBwdWJsaWM6
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlcldvcmtlciogd29ya2VyQnlJRChTZXJ2aWNl
V29ya2VySWRlbnRpZmllcikgY29uc3Q7CiAgICAgT3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVu
dERhdGE+IHNlcnZpY2VXb3JrZXJDbGllbnRXaXRoT3JpZ2luQnlJRChjb25zdCBDbGllbnRPcmln
aW4mLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpIGNvbnN0OworICAgIFN0
cmluZyBzZXJ2aWNlV29ya2VyQ2xpZW50VXNlckFnZW50KGNvbnN0IENsaWVudE9yaWdpbiYpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyV29ya2VyKiBhY3RpdmVXb3JrZXJGcm9t
UmVnaXN0cmF0aW9uSUQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrQWxsV29ya2Vyc0Zvck9yaWdpbkFzVGVybWluYXRl
ZChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKQEAgLTE2Myw3ICsxNjQsNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhhc2hTZXQ8U1dTZXJ2ZXIqPiYgYWxs
U2VydmVycygpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0
IE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdp
biYmLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBjb25zdCBPcHRpb25hbDxTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBTdHJpbmcmJiB1c2VyQWdlbnQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOwogCiAgICAgdXNpbmcg
UnVuU2VydmljZVdvcmtlckNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiopPjsKQEAgLTIyMCw2ICsyMjEsNyBAQCBwcml2YXRlOgogICAgIHN0
cnVjdCBDbGllbnRzIHsKICAgICAgICAgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyPiBpZGVudGlmaWVyczsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0ZXJtaW5h
dGVTZXJ2aWNlV29ya2Vyc1RpbWVyOworICAgICAgICBTdHJpbmcgdXNlckFnZW50OwogICAgIH07
CiAgICAgSGFzaE1hcDxDbGllbnRPcmlnaW4sIENsaWVudHM+IG1fY2xpZW50SWRlbnRpZmllcnNQ
ZXJPcmlnaW47CiAgICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlckNsaWVudERhdGE+IG1fY2xpZW50c0J5SWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uaAppbmRleCA3NzFkYTc1Y2U5ODU5NTc2ZjdmZWQ5OWFlNzc0MzAzODg0
ZDQyYjNhLi5kZjRmMTc1ZTUxYjZhOGIyZWY0NjRlOTQ0ZGNiYzE3MDk5OTU5YjE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGlj
OgogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgLy8gTWVzc2FnZXMgdG8gdGhl
IFNXIGhvc3QgcHJvY2VzcwotICAgIHZpcnR1YWwgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNv
bnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0
ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRl
eCBjOGI2OGU2YjliOGZmMjM4NGMwMGM0NmVlZjc2ZjcxNjE5MGU4YjY5Li5iNGQ3YjlkMzYxYTFk
OWQwOWNjYmFmNmFmZTRhZWJmNTE0YjdhOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtMTM2LDYg
KzEzNiwxMSBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjptYXRjaEFsbChjb25zdCBTZXJ2aWNlV29y
a2VyQ2xpZW50UXVlcnlPcHRpb25zJiBvcHRpb25zLCBTZQogICAgIHJldHVybiBtX3NlcnZlci5t
YXRjaEFsbCgqdGhpcywgb3B0aW9ucywgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCitTdHJpbmcg
U1dTZXJ2ZXJXb3JrZXI6OnVzZXJBZ2VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VydmVy
LnNlcnZpY2VXb3JrZXJDbGllbnRVc2VyQWdlbnQob3JpZ2luKCkpOworfQorCiB2b2lkIFNXU2Vy
dmVyV29ya2VyOjpjbGFpbSgpCiB7CiAgICAgcmV0dXJuIG1fc2VydmVyLmNsYWltKCp0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJXb3JrZXIuaAppbmRleCBhMzFkYmE3MTQ0ODU1MTRmNDM3ZjNhZDQwODc4Y2I1MzI1OTcyNDRi
Li5hNzNjODZkY2QyZWNkMzhlMjFjYzdmYjJmMDM3MmY0MTgyMTM3MDEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5o
CkBAIC0xMDksOSArMTA5LDEwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIGNvbnRleHRDb25uZWN0aW9uKCk7
CisgICAgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFNXU2VydmVy
V29ya2VyKFNXU2VydmVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmIHNjcmlwdCwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzJiwgIFdvcmtlclR5cGUsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBIYXNoTWFwPFVSTCwg
U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJik7CisgICAgU1dTZXJ2
ZXJXb3JrZXIoU1dTZXJ2ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgc2NyaXB0LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhl
YWRlcnMmLCBXb3JrZXJUeXBlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYpOwogCiAgICAgdm9p
ZCBjYWxsV2hlbkFjdGl2YXRlZEhhbmRsZXIoYm9vbCBzdWNjZXNzKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA5N2NiZjQ1ZDg4Mzg0NjhjYTM0YTZmMTdm
ZTQzZWU0NjJjZWQ0MmEzLi43NmQ4ZmJkM2EzZDRmZTIyMDkwNzc3NjY0MzY3M2E1NGUzZmFhODA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMjkxLDExICsy
OTEsMTEgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnModWlu
dDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
V0NsaWVudENvbm5lY3Rpb246OkRpZEdldFJlZ2lzdHJhdGlvbnMgeyByZWdpc3RyYXRpb25NYXRj
aFJlcXVlc3RJZGVudGlmaWVyLCByZWdpc3RyYXRpb25zIH0pOwogfQogCi12b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNlY3VyaXR5T3JpZ2lu
RGF0YSYmIHRvcE9yaWdpbiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBP
cHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5n
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCit2b2lkIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNlY3VyaXR5T3JpZ2luRGF0YSYm
IHRvcE9yaWdpbiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBPcHRpb25h
bDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyYmIHVzZXJBZ2VudCkKIHsKICAg
ICBhdXRvIGNsaWVudE9yaWdpbiA9IENsaWVudE9yaWdpbiB7IFdURk1vdmUodG9wT3JpZ2luKSwg
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKGRhdGEudXJsKSB9OwogICAgIG1fY2xpZW50T3Jp
Z2lucy5hZGQoZGF0YS5pZGVudGlmaWVyLCBjbGllbnRPcmlnaW4pOwotICAgIHNlcnZlcigpLnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFdURk1vdmUo
ZGF0YSksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwor
ICAgIHNlcnZlcigpLnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXVEZNb3ZlKGNsaWVudE9y
aWdpbiksIFdURk1vdmUoZGF0YSksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIFdURk1vdmUodXNlckFnZW50KSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaAppbmRleCAzMDdkYTJjOWY2OWM0NDQyNzMzNTNiNTQzMjY0MWNlMTY3
OTUyMmE5Li43OTc0ZWRlNmQ2NzIyNTdmNTc3Y2FkNWZiMWU2MmEwNDZkZDI5MWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJl
cXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9y
aWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1
aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwog
Ci0gICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYm
LCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
Zmllcj4mKTsKKyAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiYsIFN0cmluZyYmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciYpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlv
bigpIGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDdjYmMy
MzBhNDMzMGUyNGVhZTJlZDBjYWIyOGM4OGVmOTRmNzIzMzguLmY3NTQzZmY4Mjk1N2YyNzQ1ZmZi
OTNmYWM1NjRiZTE2YWNkZDE5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzksNyArMzksNyBAQCBtZXNzYWdlcyAtPiBXZWJT
V1NlcnZlckNvbm5lY3Rpb24gewogICAgIE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHNlcnZp
Y2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgVVJMIGNsaWVudFVSTCkKICAgICBXaGVuUmVnaXN0
cmF0aW9uUmVhZHkodWludDY0X3Qgc2VydmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwg
Y2xpZW50VVJMKQogICAgIEdldFJlZ2lzdHJhdGlvbnModWludDY0X3Qgc2VydmljZVJlZ2lzdHJh
dGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKQotICAgIFJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEsIE9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiBjb250cm9sbGluZ1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQorICAgIFJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEsIE9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiBjb250cm9sbGluZ1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcgdXNlckFnZW50KQogICAgIFVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQogCiAgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVudGlmaWVyKSAtPiAoKSBM
ZWdhY3lTeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwCmluZGV4IGZjOWFmZDc0NjFmM2QxNDM2MTc5OGFjN2MyMjNjN2FjODYyZTZmOWQu
LmNlNDBkYjE2N2I3YjE5MzRhYmZmOWFkNTZlYjJhOTFjZmU1MTc5N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC01Nyw5ICs1
Nyw5IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uQ2xv
c2VkKCkKICAgICAvLyBGSVhNRTogRG8gd2hhdCBoZXJlLi4uPwogfQogCi12b2lkIFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29y
a2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiB7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Okluc3RhbGxTZXJ2aWNlV29y
a2VyIHsgZGF0YSwgc2Vzc2lvbklEIH0pOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpJbnN0YWxsU2VydmljZVdvcmtlciB7IGRhdGEsIHNlc3Npb25J
RCwgdXNlckFnZW50IH0pOwogfQogCiB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uaAppbmRleCAwMTI5YWQ4ZGJlZTE1NTM5ZTk0YzhlZTkzYmYxMWVmZWYwOTVhNzU3Li4z
YjY5MDllMjNhNTZjYzZjNGYxYmEzY2RiZGJlMTNkN2QxYzNhMDZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC01Nyw3ICs1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5h
bDsKIAogICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBTVyBob3N0IFdlYlByb2Nlc3MKLSAgICB2b2lk
IGluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCkgZmluYWw7CisgICAgdm9pZCBpbnN0YWxsU2Vy
dmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRh
JiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKICAgICB2
b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZp
bmFsOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDU3NGM5
MjBlYzMwNTYyNDA1YmRmYmQ3YTllZTkyN2JkNTk3NDYyY2YuLmE1NTVjYTNjMDAwODNiZDk1ZWFl
ZDAzMjNkNTJiYjNlNjAzOTg2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtOTMsOSArOTMs
OSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZSksIHNvdXJjZUlkZW50aWZp
ZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkpLCAwKTsKIH0KIAotdm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0
eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYgZGF0YSwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyKQordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYgZGF0YSwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKIHsKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCB7IHRvcE9yaWdpbi5kYXRhKCksIGRhdGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgfSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgeyB0b3BPcmlnaW4uZGF0
YSgpLCBkYXRhLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCB1c2VyQWdlbnQgfSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGI5MmVlYmZmOTBmOWJjZDM0NDg4ZGE3ZTQ5NjdiOWQz
NDk4OTI1MWIuLjRjNzEyZmNkY2QzMTVjMDJjZGE3NWRkOTc2ODQ2NWY1M2U4OGFkNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVs
ZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7
CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3VyY2UpIGZpbmFsOwotICAg
IHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiwgY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXI+JikgZmluYWw7CisgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGEmLCBjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkgZmlu
YWw7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1
bWVudElkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
LCBSZWdpc3RyYXRpb25DYWxsYmFjayYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAppbmRleCBlZjY1YzQyZTNiMDIwMzI0MTNjODlhMTE1MDk1OGEwNzBmYmVjZDMy
Li5lNDZjZjgwZWE3OWMyMzBmNGYyZjBmMmE5YjQ0NDkwYzgzYTgwYThhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQ
cmVmZXJlbmNlc1MKICAgICBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9IHN0YXRpY19jYXN0PFNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpOwog
fQogCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdv
cmtlcihjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlc3Npb25JRCBzZXNz
aW9uSUQpCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2Vydmlj
ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFNlc3Npb25JRCBz
ZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCkKIHsKICAgICBMT0coU2VydmljZVdvcmtlciwg
IldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlciBmb3Ig
d29ya2VyICVzIiwgZGF0YS5zZXJ2aWNlV29ya2VySWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKQEAgLTE0NSwxMyArMTQ1LDE3IEBAIHZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGF0YWJhc2VQcm92aWRlciA9IFdlYkRhdGFi
YXNlUHJvdmlkZXI6OmdldE9yQ3JlYXRlKG1fcGFnZUdyb3VwSUQpOwogI2VuZGlmCiAKKyAgICBh
dXRvIGVmZmVjdGl2ZVVzZXJBZ2VudCA9ICBXVEZNb3ZlKHVzZXJBZ2VudCk7CisgICAgaWYgKGVm
ZmVjdGl2ZVVzZXJBZ2VudC5pc051bGwoKSkKKyAgICAgICAgZWZmZWN0aXZlVXNlckFnZW50ID0g
bV91c2VyQWdlbnQ7CisKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vdmVk
IGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24KICAgICAv
LyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQncyBkZXBl
bmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkgaGFwcGVuLgot
ICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3Jr
ZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2
aW91c1NlcnZpY2VXb3JrZXJJRCwgbV91c2VyQWdlbnQpOworICAgIGF1dG8gZnJhbWVMb2FkZXJD
bGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4o
KnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCwg
ZWZmZWN0aXZlVXNlckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRlcnMuYWRk
KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIAotICAgIGF1dG8gc2VydmljZVdvcmtlclRo
cmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbiksIGRhdGEsIHNlc3Npb25JRCwgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSwgbV9zdG9yYWdl
QmxvY2tpbmdQb2xpY3kpOworICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbiks
IGRhdGEsIHNlc3Npb25JRCwgV1RGTW92ZShlZmZlY3RpdmVVc2VyQWdlbnQpLCBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLCBtX3N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk7CiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucmVnaXN0ZXJTZXJ2aWNl
V29ya2VyVGhyZWFkRm9ySW5zdGFsbChXVEZNb3ZlKHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkp
OwogCiAgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJDb250ZXh0IHByb2Nlc3MgUElEOiAlaSBjcmVh
dGVkIHdvcmtlciB0aHJlYWRcbiIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCAzMDdmMDg3YmE1OGZiYTBlNWJiMGMzMzBmZTg0MTY5
YTg3OWRhYjI3Li4wZDI0MTQ0OTgyMzI0ZjJlY2M4NjZjMGZiNDE2NWY1NzY5N2QxNTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToK
IAogICAgIC8vIElQQyBtZXNzYWdlcy4KICAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0
aE1lc3NhZ2UoT3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
PiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0
aW9uTWVzc2FnZSkgZmluYWw7Ci0gICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCk7CisgICAg
dm9pZCBpbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2b2lk
IHN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKICAgICB2b2lkIGNhbmNlbEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDA0
ZTA3YThmMGFiYzY1NDE3YTNhYzI4YWFkNjE2MzM1Nzc5Y2I2OTIuLmRmZTVhMzhlMTZlY2U4YmZj
YjA2MmZjY2Q4YzRlNjBlY2RmMjFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3IEBACiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogCiBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7
Ci0gICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSBjb250ZXh0RGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIElu
c3RhbGxTZXJ2aWNlV29ya2VyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEgY29udGV4dERhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHVzZXJBZ2Vu
dCkKICAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdl
YkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVl
c3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIpCiAgICAgQ2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2Fn
ZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA5ZTI2YjlkY2U4
NmFiMDhkMTcxMzA0M2RkNjU4NDMzZTM4MDYzMDcuLmI4ZDZhYWMzZjE2YWEwOWY1YTUxNDZmNGM5
NmNjMDBjNzI4ZTQ2ZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0xMi0yMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgorCisgICAgICAgIG5hdmlnYXRvci51c2VyQWdlbnQgaW4gc2VydmljZSB3
b3JrZXJzIGRvZXMgbm90IHJlZmxlY3QgY3VzdG9tVXNlckFnZW50IHNldCBieSBjbGllbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjk1MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgRXh0ZW5kIEFQSSB0
ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisgICAgICAgICgtW1NXQ3VzdG9tVXNlckFnZW50RGVs
ZWdhdGUgaW5pdFdpdGhVc2VyQWdlbnQ6XSk6CisgICAgICAgICgtW1NXQ3VzdG9tVXNlckFnZW50
RGVsZWdhdGUgX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5m
bzpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1NXVXNlckFnZW50TWVzc2FnZUhhbmRs
ZXIgaW5pdFdpdGhFeHBlY3RlZE1lc3NhZ2U6XSk6CisgICAgICAgICgtW1NXVXNlckFnZW50TWVz
c2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdl
Ol0pOgorCiAyMDE4LTEyLTIxICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dlYkF1dGhOXSB1c2VyUHJlc2VuY2Ugc2hvdWxkIGFsd2F5cyBiZSB0cnVlCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VX
b3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tCmluZGV4IDBhZGUyZjhhZTY2ZWFlNmUzNjI2ODM5ZjliMjkxM2M0
NjBiNzlhNjkuLmUzMjRjMjlmNGFjYTA5N2U1NjU5NzYxOTQwZmU5NDc0NjllN2IzMGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtl
ckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2Vy
dmljZVdvcmtlckJhc2ljLm1tCkBAIC01MTQsMzAgKzUxNCw1MCBAQCBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBCYXNpYykKIH0KIAogQGludGVyZmFjZSBTV0N1c3RvbVVzZXJBZ2VudERlbGVnYXRlIDog
TlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPiB7CisgICAgTlNTdHJpbmcgKl91c2VyQWdl
bnQ7CiB9CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhVc2VyQWdlbnQ6KE5TU3RyaW5nICopdXNl
ckFnZW50OwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gU1dDdXN0b21Vc2VyQWdlbnREZWxlZ2F0
ZQogCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhVc2VyQWdlbnQ6KE5TU3RyaW5nICopdXNlckFn
ZW50Cit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBfdXNlckFnZW50ID0gdXNlckFn
ZW50OworICAgIHJldHVybiBzZWxmOworfQorCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFj
dGlvbiAqKW5hdmlnYXRpb25BY3Rpb24gdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNl
ckluZm8gZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3ks
IF9XS1dlYnNpdGVQb2xpY2llcyAqKSlkZWNpc2lvbkhhbmRsZXIKIHsKICAgICBfV0tXZWJzaXRl
UG9saWNpZXMgKndlYnNpdGVQb2xpY2llcyA9IFtbW19XS1dlYnNpdGVQb2xpY2llcyBhbGxvY10g
aW5pdF0gYXV0b3JlbGVhc2VdOwogICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLnRhcmdldEZyYW1l
Lm1haW5GcmFtZSkKLSAgICAgICAgW3dlYnNpdGVQb2xpY2llcyBzZXRDdXN0b21Vc2VyQWdlbnQ6
QCJGb28gQ3VzdG9tIFVzZXJBZ2VudCJdOworICAgICAgICBbd2Vic2l0ZVBvbGljaWVzIHNldEN1
c3RvbVVzZXJBZ2VudDpfdXNlckFnZW50XTsKIAogICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdywgd2Vic2l0ZVBvbGljaWVzKTsKIH0KIAogQGVuZAogCi1A
aW50ZXJmYWNlIFNXVXNlckFnZW50TWVzc2FnZUhhbmRsZXIgOiBOU09iamVjdCA8V0tTY3JpcHRN
ZXNzYWdlSGFuZGxlcj4KK0BpbnRlcmZhY2UgU1dVc2VyQWdlbnRNZXNzYWdlSGFuZGxlciA6IE5T
T2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPiB7CitAcHVibGljCisgICAgTlNTdHJpbmcg
KmV4cGVjdGVkTWVzc2FnZTsKK30KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEV4cGVjdGVkTWVz
c2FnZTooTlNTdHJpbmcgKilleHBlY3RlZE1lc3NhZ2U7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlv
biBTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVyCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEV4
cGVjdGVkTWVzc2FnZTooTlNTdHJpbmcgKilfZXhwZWN0ZWRNZXNzYWdlCit7CisgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKKyAgICBleHBlY3RlZE1lc3NhZ2UgPSBfZXhwZWN0ZWRNZXNzYWdlOwor
ICAgIHJldHVybiBzZWxmOworfQorCiAtICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tV
c2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNj
cmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKIHsKLSAgICAvLyBGSVhNRTog
bmF2aWdhdG9yLnVzZXJBZ2VudCBjdXJyZW50bHkgZG9lcyBub3QgcmVmbGVjdCB0aGUgY3VzdG9t
IHVzZXIgYWdlbnQgc2V0IGJ5IHRoZSBjbGllbnQgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTI5NTEpLgotICAgIC8vIEVYUEVDVF9XS19TVFJFUShAIk1lc3NhZ2Ug
ZnJvbSB3b3JrZXI6IEZvbyBDdXN0b20gVXNlckFnZW50IiwgW21lc3NhZ2UgYm9keV0pOworICAg
IEVYUEVDVF9XS19TVFJFUShleHBlY3RlZE1lc3NhZ2UsIFttZXNzYWdlIGJvZHldKTsKICAgICBk
b25lID0gdHJ1ZTsKIH0KIEBlbmQKQEAgLTU2Myw3ICs1ODMsNyBAQCBURVNUKFNlcnZpY2VXb3Jr
ZXJzLCBVc2VyQWdlbnRPdmVycmlkZSkKIAogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAKLSAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXVXNlckFnZW50TWVzc2FnZUhhbmRsZXIgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXVXNlckFnZW50
TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRXaXRoRXhwZWN0ZWRNZXNzYWdlOkAiTWVzc2FnZSBm
cm9tIHdvcmtlcjogRm9vIEN1c3RvbSBVc2VyQWdlbnQiXSk7CiAgICAgW1tjb25maWd1cmF0aW9u
IHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhh
bmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CiAKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtb
U1dTY2hlbWVzIGFsbG9jXSBpbml0XSk7CkBAIC01NzIsMTAgKzU5MiwxMCBAQCBURVNUKFNlcnZp
Y2VXb3JrZXJzLCBVc2VyQWdlbnRPdmVycmlkZSkKICAgICBoYW5kbGVyLT5leHBlY3RlZFVzZXJB
Z2VudCA9IEAiRm9vIEN1c3RvbSBVc2VyQWdlbnQiOwogICAgIFtjb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJTVyJdOwogCi0gICAg
UmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBbd2ViVmlldy5nZXQoKS5jb25m
aWd1cmF0aW9uLnByb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2Fu
SGFuZGxlOkAic3ciXTsKIAotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbU1dDdXN0b21V
c2VyQWdlbnREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbU1dDdXN0b21Vc2VyQWdlbnREZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhVc2VyQWdlbnQ6
QCJGb28gQ3VzdG9tIFVzZXJBZ2VudCJdKTsKICAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9z
dC9tYWluLmh0bWwiXV07CkBAIC01ODMsNiArNjAzLDM2IEBAIFRFU1QoU2VydmljZVdvcmtlcnMs
IFVzZXJBZ2VudE92ZXJyaWRlKQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKICAgICBkb25lID0gZmFsc2U7CisKKyAgICAvLyBSZXN0b3JlIGZyb20gZGlzay4KKyAgICB3
ZWJWaWV3ID0gbnVsbHB0cjsKKyAgICBkZWxlZ2F0ZSA9IG51bGxwdHI7CisgICAgaGFuZGxlciA9
IG51bGxwdHI7CisgICAgbWVzc2FnZUhhbmRsZXIgPSBudWxscHRyOworICAgIGNvbmZpZ3VyYXRp
b24gPSBudWxscHRyOworCisgICAgY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisKKyAgICBtZXNzYWdlSGFuZGxlciA9IGFkb3B0
TlMoW1tTV1VzZXJBZ2VudE1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0V2l0aEV4cGVjdGVkTWVz
c2FnZTpAIk1lc3NhZ2UgZnJvbSB3b3JrZXI6IEJhciBDdXN0b20gVXNlckFnZW50Il0pOworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgaGFuZGxlciA9
IGFkb3B0TlMoW1tTV1NjaGVtZXMgYWxsb2NdIGluaXRdKTsKKyAgICBoYW5kbGVyLT5yZXNvdXJj
ZXMuc2V0KCJzdzovL2hvc3QvbWFpbi5odG1sIiwgUmVzb3VyY2VJbmZvIHsgQCJ0ZXh0L2h0bWwi
LCBtYWluQnl0ZXMgfSk7CisgICAgaGFuZGxlci0+cmVzb3VyY2VzLnNldCgic3c6Ly9ob3N0L3N3
LmpzIiwgUmVzb3VyY2VJbmZvIHsgQCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiwgdXNlckFnZW50
U1dCeXRlcyB9KTsKKyAgICBoYW5kbGVyLT5leHBlY3RlZFVzZXJBZ2VudCA9IEAiQmFyIEN1c3Rv
bSBVc2VyQWdlbnQiOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFu
ZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJTVyJdOworCisgICAgd2ViVmlldyA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3dlYlZpZXcuZ2V0
KCkuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29y
a2Vyc0NhbkhhbmRsZTpAInN3Il07CisKKyAgICBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tTV0N1c3Rv
bVVzZXJBZ2VudERlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFVzZXJBZ2VudDpAIkJhciBDdXN0b20g
VXNlckFnZW50Il0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpb
TlNVUkwgVVJMV2l0aFN0cmluZzpAInN3Oi8vaG9zdC9tYWluLmh0bWwiXV07CisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKIH0KIAogVEVTVChTZXJ2aWNlV29ya2VycywgUmVz
dG9yZUZyb21EaXNrKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>