<?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>180826</bug_id>
          
          <creation_ts>2017-12-14 12:10:11 -0800</creation_ts>
          <short_desc>self.importScripts() should obey updateViaCache inside service workers</short_desc>
          <delta_ts>2017-12-14 16:00:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=180816</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1381732</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 12:10:11 -0800</bug_when>
    <thetext>self.importScripts() should obey updateViaCache inside service workers:
- https://html.spec.whatwg.org/multipage/workers.html#dom-workerglobalscope-importscripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381774</commentid>
    <comment_count>1</comment_count>
      <attachid>329390</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 13:18:32 -0800</bug_when>
    <thetext>Created attachment 329390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381840</commentid>
    <comment_count>2</comment_count>
      <attachid>329390</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-14 14:44:43 -0800</bug_when>
    <thetext>Comment on attachment 329390
Patch

r=me.
These tests would also be handy as WPT tests.
It would be good for future service worker tests that do not require any internals to be in LayoutTests/wpt/service-workers.
That will make it easy to upload them to WPT if we are in hurry right now.

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

&gt; Source/WebCore/workers/service/SWClientConnection.cpp:213
&gt; +

This dual-pattern is handy but at the same time somehow wrong:
- In ServiceWorkerProcess, we will iterate through SWContextManager (good) and all dummy documents (useless)
- In WebProcess, we will iterate through documents (good) and SWContextManager (useless and we will create one for that reason).
Wonder whether there would be a better pattern here.

&gt; Source/WebCore/workers/service/server/SWServerRegistration.h:63
&gt; +    void setLastUpdateTime(WallTime);

It seems SWServerRegistration m_lastUpdateTime is only set when we install a context.
If so, there might be a bug since it should also be set when creating a SWServerRegistration from the database.

I wonder how we can test such things without waiting 24 hours.
This would probably require having internals API to reload a SWServer from database and another to tweak SWServer registrations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381843</commentid>
    <comment_count>3</comment_count>
      <attachid>329390</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 14:49:46 -0800</bug_when>
    <thetext>Comment on attachment 329390
Patch

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

&gt;&gt; Source/WebCore/workers/service/SWClientConnection.cpp:213
&gt;&gt; +
&gt; 
&gt; This dual-pattern is handy but at the same time somehow wrong:
&gt; - In ServiceWorkerProcess, we will iterate through SWContextManager (good) and all dummy documents (useless)
&gt; - In WebProcess, we will iterate through documents (good) and SWContextManager (useless and we will create one for that reason).
&gt; Wonder whether there would be a better pattern here.

Not a new issue but I agree it&apos;d be nice to find a better pattern.

&gt;&gt; Source/WebCore/workers/service/server/SWServerRegistration.h:63
&gt;&gt; +    void setLastUpdateTime(WallTime);
&gt; 
&gt; It seems SWServerRegistration m_lastUpdateTime is only set when we install a context.
&gt; If so, there might be a bug since it should also be set when creating a SWServerRegistration from the database.
&gt; 
&gt; I wonder how we can test such things without waiting 24 hours.
&gt; This would probably require having internals API to reload a SWServer from database and another to tweak SWServer registrations.

This is not true, lastUpdateTime is saved to disk and restored from disk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381849</commentid>
    <comment_count>4</comment_count>
      <attachid>329390</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 14:57:32 -0800</bug_when>
    <thetext>Comment on attachment 329390
Patch

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

&gt;&gt;&gt; Source/WebCore/workers/service/server/SWServerRegistration.h:63
&gt;&gt;&gt; +    void setLastUpdateTime(WallTime);
&gt;&gt; 
&gt;&gt; It seems SWServerRegistration m_lastUpdateTime is only set when we install a context.
&gt;&gt; If so, there might be a bug since it should also be set when creating a SWServerRegistration from the database.
&gt;&gt; 
&gt;&gt; I wonder how we can test such things without waiting 24 hours.
&gt;&gt; This would probably require having internals API to reload a SWServer from database and another to tweak SWServer registrations.
&gt; 
&gt; This is not true, lastUpdateTime is saved to disk and restored from disk.

Actually, it looks like even though we save it to the database, it is not properly restored. I&apos;ll look into fixing this in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381851</commentid>
    <comment_count>5</comment_count>
      <attachid>329406</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 15:08:05 -0800</bug_when>
    <thetext>Created attachment 329406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381885</commentid>
    <comment_count>6</comment_count>
      <attachid>329406</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 15:59:46 -0800</bug_when>
    <thetext>Comment on attachment 329406
Patch

Clearing flags on attachment: 329406

Committed r225940: &lt;https://trac.webkit.org/changeset/225940&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381886</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-14 15:59:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381887</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-14 16:00:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/36061334&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329390</attachid>
            <date>2017-12-14 13:18:32 -0800</date>
            <delta_ts>2017-12-14 15:08:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180826-20171214131831.patch</filename>
            <type>text/plain</type>
            <size>26431</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1OTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWM5MjcxN2FmYjI5MzY1
NGRiYWU5YTYxZDU1ZGQ1NjgxNmVjOTVmYy4uZWRkYTY3YmIzZDM2ODNhNmU1MzRiNzk2NWRkYzYx
MGNkODkyNmZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTEyLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgc2VsZi5pbXBvcnRTY3JpcHRz
KCkgc2hvdWxkIG9iZXkgdXBkYXRlVmlhQ2FjaGUgaW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc2VsZi5pbXBvcnRT
Y3JpcHRzKCkgc2hvdWxkIG9iZXkgdXBkYXRlVmlhQ2FjaGUgaW5zaWRlIHNlcnZpY2Ugd29ya2Vy
cywgYXMgcGVyOgorICAgICAgICAtIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dvcmtlcnMuaHRtbCNkb20td29ya2VyZ2xvYmFsc2NvcGUtaW1wb3J0c2NyaXB0cworCisg
ICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBk
YXRlVmlhQ2FjaGUtYWxsLWltcG9ydFNjcmlwdHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWltcG9ydHMt
aW1wb3J0U2NyaXB0cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtbm9uZS1pbXBvcnRTY3JpcHRzLmh0bWwK
KworICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlw
dExvYWRlcjo6bG9hZFN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2Ny
aXB0TG9hZGVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnNldFJlZ2lzdHJh
dGlvbkxhc3RVcGRhdGVUaW1lKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRD
b25uZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bjo6bGFzdFVwZGF0ZVRpbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbjo6c2V0TGFzdFVwZGF0ZVRpbWUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdp
c3RyYXRpb246OnNldExhc3RVcGRhdGVUaW1lKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6CisKIDIwMTctMTItMTQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlIHdvcmtlciBzY3JpcHQgZmV0
Y2hpbmcgY3VycmVudGx5IGFsd2F5cyB1c2VzIHRoZSBuZXR3b3JrIGNhY2hlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGIwOTc1ZDE4YTQ3ZTU0YTJmMGI1MmVmZDAyMGZjZjVjZDUyNmNkNmUuLmEwOGFhMzFhZmI0YmVj
YzM3OGMyMWM4OWYwOGRiMzYzYjlkODM0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTctMTItMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBzZWxm
LmltcG9ydFNjcmlwdHMoKSBzaG91bGQgb2JleSB1cGRhdGVWaWFDYWNoZSBpbnNpZGUgc2Vydmlj
ZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODA4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzZXRSZWdpc3RyYXRp
b25MYXN0VXBkYXRlVGltZSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE3LTEyLTE0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2VydmljZSB3b3JrZXIgc2NyaXB0
IGZldGNoaW5nIGN1cnJlbnRseSBhbHdheXMgdXNlcyB0aGUgbmV0d29yayBjYWNoZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBhN2E0ZGQ4M2Nl
YjJjYjA0ODQ2OTc4ZjJiYzlhMDIyZmQ0OGQyYWFiLi44YTY2NjQ3ZDI1MDBjMDBjZmU0MWMzYTgx
M2FhODIyMzQ1NDMxNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2Jh
bFNjb3BlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
UG9saWN5LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVk
ZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKQEAgLTI2MSw2ICsyNjIsMjAgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwdHMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHVybHMpCiAgICAgICAgIGNvbXBsZXRlZFVSTHMudW5jaGVja2VkQXBw
ZW5kKFdURk1vdmUodXJsKSk7CiAgICAgfQogCisgICAgRmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNo
ZVBvbGljeSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7CisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKnRoaXMp
KSB7CisgICAgICAgIC8vIEZJWE1FOiBGdWxseSBpbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2ltcG9ydHNjcmlwdHMuCisgICAgICAgIGF1dG8mIHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKnRo
aXMpOworICAgICAgICBhdXRvJiByZWdpc3RyYXRpb24gPSBzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUucmVnaXN0cmF0aW9uKCk7CisgICAgICAgIGlmIChyZWdpc3RyYXRpb24udXBkYXRlVmlhQ2Fj
aGUoKSA9PSBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU6Ok5vbmUKKyAgICAgICAgICAgIHx8
IChyZWdpc3RyYXRpb24ubGFzdFVwZGF0ZVRpbWUoKSAmJiAoV2FsbFRpbWU6Om5vdygpIC0gcmVn
aXN0cmF0aW9uLmxhc3RVcGRhdGVUaW1lKCkpID4gODY0MDBfcykpIHsKKyAgICAgICAgICAgIGNh
Y2hlUG9saWN5ID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6Tm9DYWNoZTsKKyAgICAgICAgfQorICAg
IH0KKyNlbmRpZgorCiAgICAgZm9yIChhdXRvJiB1cmwgOiBjb21wbGV0ZWRVUkxzKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xhdGVkIHdvcmxkJ3Mg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2IvMTA0NTIwIGlzIHNvbHZl
ZC4KICAgICAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xp
Y3kgPSB0aGlzLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKTsK
QEAgLTI2OCw3ICsyODMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJHbG9iYWxTY29wZTo6
aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAogICAgICAgICBhdXRvIHNjcmlwdExv
YWRlciA9IFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCk7Ci0gICAgICAgIHNjcmlwdExvYWRl
ci0+bG9hZFN5bmNocm9ub3VzbHkodGhpcywgdXJsLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29y
cywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID8gQ29udGVudFNl
Y3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50OjpFbmZvcmNlU2NyaXB0U3JjRGlyZWN0aXZlLCByZXNvdXJjZVJlcXVl
c3RJZGVudGlmaWVyKCkpOworICAgICAgICBzY3JpcHRMb2FkZXItPmxvYWRTeW5jaHJvbm91c2x5
KHRoaXMsIHVybCwgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIGNhY2hlUG9saWN5LCBzaG91
bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgPyBDb250ZW50U2VjdXJpdHlQ
b2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5m
b3JjZW1lbnQ6OkVuZm9yY2VTY3JpcHRTcmNEaXJlY3RpdmUsIHJlc291cmNlUmVxdWVzdElkZW50
aWZpZXIoKSk7CiAKICAgICAgICAgLy8gSWYgdGhlIGZldGNoaW5nIGF0dGVtcHQgZmFpbGVkLCB0
aHJvdyBhIE5ldHdvcmtFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IGFsbCB0aGVzZSBzdGVwcy4K
ICAgICAgICAgaWYgKHNjcmlwdExvYWRlci0+ZmFpbGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggODU1YmQ4NjQwMjcyZjU3YjgyNmFi
YWEwODQ3ZjlhZThiN2UzMzk0NS4uNGRhMTNmYjk5NTA5YmNkZDZlYjYzMWY3YzY4OWY2ZDgzMjUw
OTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cApAQCAtNDMsNyArNDMsNyBAQCBXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNjcmlwdExvYWRl
cigpID0gZGVmYXVsdDsKIAogV29ya2VyU2NyaXB0TG9hZGVyOjp+V29ya2VyU2NyaXB0TG9hZGVy
KCkgPSBkZWZhdWx0OwogCi12b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZFN5bmNocm9ub3Vz
bHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgY29uc3Qg
VVJMJiB1cmwsIEZldGNoT3B0aW9uczo6TW9kZSBtb2RlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lF
bmZvcmNlbWVudCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5n
JiBpbml0aWF0b3JJZGVudGlmaWVyKQordm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmxvYWRTeW5j
aHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGNvbnN0IFVSTCYgdXJsLCBGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgRmV0Y2hPcHRpb25zOjpD
YWNoZSBjYWNoZVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgY29udGVu
dFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9ySWRlbnRp
ZmllcikKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAgICAgYXV0byYg
d29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOwpAQCAtNjIsNiArNjIsNyBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRl
cjo6bG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aQogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5jcmVk
ZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU7CiAgICAgb3B0aW9u
cy5tb2RlID0gbW9kZTsKKyAgICBvcHRpb25zLmNhY2hlID0gY2FjaGVQb2xpY3k7CiAgICAgb3B0
aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5jb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9y
Y2VtZW50OwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCmluZGV4IGM4MWY4NmNhNTYxZTUyNjBkZmVmZDI5ZWE0
ZGUxMTI0OTFlOWMzYWIuLjE5Yzg2NzQ2ZjJiMDQ3MDMzMWUzMmZlODlhYzVhZTE4YTY2NDE2MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaApAQCAtNTIs
NyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdvcmtlclNj
cmlwdExvYWRlcik7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkU3luY2hyb25vdXNseShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBDb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2FjaGUsIENv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklk
ZW50aWZpZXIpOwogICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6Q2Fj
aGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRp
YXRvcklkZW50aWZpZXIsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCopOwogCiAgICAgdm9pZCBu
b3RpZnlFcnJvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA4ZjZlNWE1ZjI0NzQ0YmU3ZDg2MGJjZDRiZjRj
OGJkOGZhN2IxMjE3Li42MjA5NGQ5ZTljZTk1MWY1ZGQxOTBkN2Q5OTNiMmM2NzU2MGU1NzUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25u
ZWN0aW9uLmNwcApAQCAtMjA3LDYgKzIwNywyNyBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6
ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZQog
ICAgIH0KIH0KIAordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNldFJlZ2lzdHJhdGlvbkxhc3RV
cGRhdGVUaW1lKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdhbGxUaW1lIGxhc3RVcGRhdGVUaW1lKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5mb3JFYWNoU2VydmljZVdvcmtl
clRocmVhZChbaWRlbnRpZmllciwgbGFzdFVwZGF0ZVRpbWVdIChhdXRvJiB3b3JrZXJUaHJlYWQp
IHsKKyAgICAgICAgd29ya2VyVGhyZWFkLnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0VGFzayhbaWRl
bnRpZmllciwgbGFzdFVwZGF0ZVRpbWVdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBjb250YWluZXIgPSBjb250ZXh0LnNlcnZpY2VXb3Jr
ZXJDb250YWluZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiByZWdpc3RyYXRpb24g
PSBjb250YWluZXItPnJlZ2lzdHJhdGlvbihpZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVnaXN0cmF0aW9uLT5zZXRMYXN0VXBkYXRlVGltZShsYXN0VXBkYXRlVGltZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZm9yIChhdXRvKiBkb2N1bWVu
dCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgeworICAgICAgICBpZiAoYXV0byogY29udGFp
bmVyID0gZG9jdW1lbnQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIoKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGNvbnRhaW5lci0+cmVnaXN0cmF0aW9uKGlkZW50aWZp
ZXIpKQorICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi0+c2V0TGFzdFVwZGF0ZVRpbWUobGFz
dFVwZGF0ZVRpbWUpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PERvY3Vt
ZW50SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgU2VydmljZVdvcmtlckRhdGEmJiBu
ZXdDb250cm9sbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXgg
MWM1MTFmMmU2MTkzYTYyNDdmYzc3MTQyZTFiY2YyYTEyZTM2ZTEzMi4uZDYwYTgxYjU1MDFmMTg2
ZDZmODhlNzA2NGRkNWQ5NDIyOTJiZmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtOTQsNiArOTQsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRhPiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJl
VXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2FsbFRpbWUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0
PERvY3VtZW50SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgU2VydmljZVdvcmtlckRh
dGEmJiBuZXdDb250cm9sbGVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJQZW5k
aW5nSm9icygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGNmYWIwZmMyYTdkMDllZjY4
NmRmNGU0MjdmODg5NTY5NWMxYjJiZjguLjBlOWZmYmM4NTIyNTlmODVmYTY3Y2Y1N2E0YWYxZWMx
MzU4OWIzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTExMiw2ICsxMTIsMTYgQEAg
U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OnVw
ZGF0ZVZpYUNhY2hlKCkgY29uc3QKICAgICByZXR1cm4gbV9yZWdpc3RyYXRpb25EYXRhLnVwZGF0
ZVZpYUNhY2hlOwogfQogCitXYWxsVGltZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpsYXN0
VXBkYXRlVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVnaXN0cmF0aW9uRGF0YS5sYXN0
VXBkYXRlVGltZTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpzZXRMYXN0
VXBkYXRlVGltZShXYWxsVGltZSBsYXN0VXBkYXRlVGltZSkKK3sKKyAgICBtX3JlZ2lzdHJhdGlv
bkRhdGEubGFzdFVwZGF0ZVRpbWUgPSBsYXN0VXBkYXRlVGltZTsKK30KKwogdm9pZCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQogewogICAgIGlmIChtX2lzU3RvcHBlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggNTZl
MTAxZGQ0MWU2YmFiZWYxZDRmZGQ4YmVlMmUxZjZkZGEyYjVmOC4uNmExYjE4NGMwY2NlMzkwN2Q1
MTI0Mzc0YjQ0NTUxZGI2NzcxYzJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC01Niw2ICs1
Niw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNjb3BlKCkgY29uc3Q7CiAgICAgU2Vy
dmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKCkgY29uc3Q7CiAKKyAgICBX
YWxsVGltZSBsYXN0VXBkYXRlVGltZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TGFzdFVwZGF0ZVRp
bWUoV2FsbFRpbWUpOworCiAgICAgdm9pZCB1cGRhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7
CiAgICAgdm9pZCB1bnJlZ2lzdGVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNGU3
YzhjMzdhMDg2ZTVhYzk2ZmRjMDI0NTM2YzQyNTk1OWUxNTIwNy4uYzQ2YWFlNDk0ZDljM2QzNTFk
YjlhYmI2YTUxMTlmY2E5NTY5ODY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtODIsNiArODIsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50KFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3Rh
dGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+JikgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgU2VydmljZVdvcmtlclN0YXRlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
aXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdhbGxUaW1lKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhh
c2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2
aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRp
ZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJikgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uY3BwCmluZGV4IGE1MzU0ZTU2ZjI0YTQ0NzQ0MjJhNDA5NTMwZjVlZmI1YzIz
ZmUxYWEuLmZhMTZhZmYwZDA0MjE0NzM5Mzc5NzkxN2JmNGQwMjUyMzA5MDdiNjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0xMDIsNiArMTAyLDE0IEBAIHZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnVwZGF0ZVdvcmtlclN0YXRlKFNXU2VydmVyV29ya2VyJiB3b3JrZXIsIFNl
cnZpY2VXb3JrCiAgICAgfSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNldExh
c3RVcGRhdGVUaW1lKFdhbGxUaW1lIHRpbWUpCit7CisgICAgbV9sYXN0VXBkYXRlVGltZSA9IHRp
bWU7CisgICAgZm9yRWFjaENvbm5lY3Rpb24oWyZdKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAg
ICAgY29ubmVjdGlvbi5zZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShpZGVudGlmaWVyKCks
IHRpbWUpOworICAgIH0pOworfQorCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmaXJlVXBk
YXRlRm91bmRFdmVudCgpCiB7CiAgICAgZm9yRWFjaENvbm5lY3Rpb24oWyZdKGF1dG8mIGNvbm5l
Y3Rpb24pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCBmYjc1Njk4NjNkOGY2ZTI2ZmRk
MGYwNjQ1NmM0YWFhOGMxNDQ0MDhiLi43ZTYyNjMzYThiZGU1N2I2MmZkM2Y3YWUwODhkNjgwMzBm
MzM3NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC02MCw3ICs2MCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzVW5pbnN0YWxsaW5nKCkgY29uc3QgeyByZXR1cm4gbV91bmluc3RhbGxp
bmc7IH0KICAgICB2b2lkIHNldElzVW5pbnN0YWxsaW5nKGJvb2wpOwogCi0gICAgdm9pZCBzZXRM
YXN0VXBkYXRlVGltZShXYWxsVGltZSB0aW1lKSB7IG1fbGFzdFVwZGF0ZVRpbWUgPSB0aW1lOyB9
CisgICAgdm9pZCBzZXRMYXN0VXBkYXRlVGltZShXYWxsVGltZSk7CiAgICAgV2FsbFRpbWUgbGFz
dFVwZGF0ZVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RVcGRhdGVUaW1lOyB9CiAKICAgICBT
ZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJldHVy
biBtX3VwZGF0ZVZpYUNhY2hlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDJiOGQwNjVkZmZkZGYwNjIzZGNiMTZmZjc2MzAzMDBjZGFhNWJmMTEuLjUzZDk0
NzFhOGQ5NTc1Y2U4ZDIxODZmZDI4MGVjZGY1ZTNkMWJjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDYsNiArMTA2LDExIEBAIHZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpGaXJl
VXBkYXRlRm91bmRFdmVudChpZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBXYWxsVGltZSBsYXN0VXBkYXRlVGltZSkKK3sK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFJlZ2lzdHJhdGlv
bkxhc3RVcGRhdGVUaW1lKGlkZW50aWZpZXIsIGxhc3RVcGRhdGVUaW1lKSk7Cit9CisKIHZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNv
bnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25z
dCBTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcikKIHsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV0NsaWVudENvbm5lY3Rpb246Ok5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2Uo
Y29udGV4dElkZW50aWZpZXJzLCBuZXdDb250cm9sbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKaW5kZXggMDcyOTQxYmRiNDMxYmViNjgzYWMxNTEyYmM2NjlkYjc4NGU2
NDQ0OS4uODA3YTJkZWFiYTU4NzgyM2ZlYzBiOTUxNjJjZDJlODZjMzk5MTk3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzgsNiArNzgsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJE
YXRhPiYpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlKSBm
aW5hbDsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHNldFJlZ2lzdHJhdGlv
bkxhc3RVcGRhdGVUaW1lKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBXYWxsVGltZSkgZmluYWw7CiAgICAgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVy
Q2hhbmdlKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4
dElkZW50aWZpZXJzLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJv
bGxlcik7CiAgICAgdm9pZCByZWdpc3RyYXRpb25SZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25S
ZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IDMzOTE1OGY4MWQ3M2E5NGVjNmNiNTQxODA2NzM3YjA3N2M5YzI2NDIuLmUyZjdhYWNhNDIwMzll
MDY3NjE1MDNmYmE5NzdmMDljMTJhNjg2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KQEAgLTMxLDYgKzMxLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0
aW9uIHsKICAgICBVcGRhdGVSZWdpc3RyYXRpb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyRGF0YT4gc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiAgICAgVXBkYXRlV29ya2Vy
U3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGVudW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlIHN0YXRlKQogICAgIEZpcmVV
cGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpCisgICAgU2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2FsbFRp
bWUgbGFzdFVwZGF0ZVRpbWUpCiAgICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShI
YXNoU2V0PFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcj4gY29udGV4dElkZW50aWZpZXJzLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgbmV3Q29udHJvbGxlcikKIAogICAgIFNl
dFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDQ2ZWM5NTg1ZTQ0ZGJjYTliNWE4
NjVjY2E0YmQyMGJkNjNkNmI2Li5lNjJjZDMyMDM5NjcwYzA4ZjY4OWRiYzVjNjcwYTM3ODIzYzAw
NjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMTItMTQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBzZWxmLmltcG9ydFNjcmlwdHMoKSBzaG91bGQgb2Jl
eSB1cGRhdGVWaWFDYWNoZSBpbnNpZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA4MjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2Uu
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBk
YXRlVmlhQ2FjaGUtYWxsLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2Fj
aGUtYWxsLWltcG9ydFNjcmlwdHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWltcG9ydHMtaW1wb3J0
U2NyaXB0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1pbXBvcnRzLWltcG9ydFNjcmlw
dHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVn
aXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLW5vbmUtaW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlv
bi11cGRhdGVWaWFDYWNoZS1ub25lLWltcG9ydFNjcmlwdHMuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2ltcG9ydC1jYWNoZWFibGUt
c2NyaXB0LXdvcmtlci5qczogQWRkZWQuCisKIDIwMTctMTItMTQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlIHdvcmtlciBzY3JpcHQgZmV0Y2hpbmcg
Y3VycmVudGx5IGFsd2F5cyB1c2VzIHRoZSBuZXR3b3JrIGNhY2hlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlh
Q2FjaGUtYWxsLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWFsbC1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzUwMGIyOTM0NDYwZWFjODA2MmU4
MWM0Mjg3Njc2NzEwMmMxMDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWFsbC1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1M6IGltcG9ydFNjcmlw
dHMoKSBsb2FkZWQgdGhlIHNjcmlwdCBjYW1lIGZyb20gdGhlIG5ldHdvcmsgY2FjaGUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0
aW9uLXVwZGF0ZVZpYUNhY2hlLWFsbC1pbXBvcnRTY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtYWxs
LWltcG9ydFNjcmlwdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2JhZDA2NTkzNjI4MTJmMzI5MjFlMmY5
NTExMjI2OTY3ZDk2YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWFsbC1pbXBvcnRT
Y3JpcHRzLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0PgorCitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQoreworICAg
IHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3IFByb21p
c2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29s
dmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRl
c3QoKQoreworICAgIHRyeSB7CisgICAgICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2ltcG9ydC1jYWNoZWFibGUt
c2NyaXB0LXdvcmtlci5qcyIsIHsgdXBkYXRlVmlhQ2FjaGU6ICJhbGwiIH0pOworICAgICAgICBs
ZXQgd29ya2VyMSA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgICAgICBhd2FpdCB3YWl0
Rm9yU3RhdGUod29ya2VyMSwgImFjdGl2YXRlZCIpOworICAgICAgICBsZXQgcmFuZG9tSWQxID0g
YXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcjEpOworCisgICAgICAgIGF3YWl0IHJl
Z2lzdHJhdGlvbi51cGRhdGUoKTsKKyAgICAgICAgbGV0IHdvcmtlcjIgPSByZWdpc3RyYXRpb24u
aW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlcjIsICJhY3RpdmF0
ZWQiKTsKKyAgICAgICAgbGV0IHJhbmRvbUlkMiA9IGF3YWl0IGdldFJhbmRvbUlkRnJvbVdvcmtl
cih3b3JrZXIyKTsKKworICAgICAgICBpZiAocmFuZG9tSWQxID09PSByYW5kb21JZDIpCisgICAg
ICAgICAgICBsb2coIlBBU1M6IGltcG9ydFNjcmlwdHMoKSBsb2FkZWQgdGhlIHNjcmlwdCBjYW1l
IGZyb20gdGhlIG5ldHdvcmsgY2FjaGUiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9n
KCJGQUlMOiBpbXBvcnRTY3JpcHRzKCkgZGlkIG5vdCBsb2FkIHRoZSBzY3JpcHQgZnJvbSB0aGUg
bmV0d29yayBjYWNoZSIpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBsb2coIkdvdCBleGNl
cHRpb246ICIgKyBlKTsKKyAgICB9CisgICAgZmluaXNoU1dUZXN0KCk7Cit9Cit0ZXN0KCk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1pbXBvcnRz
LWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWltcG9ydHMtaW1wb3J0U2Ny
aXB0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM1MDBiMjkzNDQ2MGVhYzgwNjJlODFjNDI4
NzY3NjcxMDJjMTAyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1pbXBvcnRzLWltcG9y
dFNjcmlwdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUzogaW1wb3J0U2NyaXB0
cygpIGxvYWRlZCB0aGUgc2NyaXB0IGNhbWUgZnJvbSB0aGUgbmV0d29yayBjYWNoZQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRp
b24tdXBkYXRlVmlhQ2FjaGUtaW1wb3J0cy1pbXBvcnRTY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUt
aW1wb3J0cy1pbXBvcnRTY3JpcHRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE2NjA1NDU3MDk1ODAwZWJm
MzE3MzY2NDRmNWE4N2Y0MzkyZTQyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1pbXBv
cnRzLWltcG9ydFNjcmlwdHMuaHRtbApAQCAtMCwwICsxLDQzIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3Jr
ZXIpCit7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJnZXRSYW5kb21JZCIpOworICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgcmVzb2x2ZShlLmRhdGEpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworYXN5bmMg
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgbGV0IHJlZ2lzdHJhdGlvbiA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvaW1wb3J0
LWNhY2hlYWJsZS1zY3JpcHQtd29ya2VyLmpzIiwgeyB1cGRhdGVWaWFDYWNoZTogImltcG9ydHMi
IH0pOworICAgICAgICBsZXQgd29ya2VyMSA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAg
ICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyMSwgImFjdGl2YXRlZCIpOworICAgICAgICBs
ZXQgcmFuZG9tSWQxID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcjEpOworCisg
ICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKKyAgICAgICAgbGV0IHdvcmtlcjIg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0YXRlKHdv
cmtlcjIsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgbGV0IHJhbmRvbUlkMiA9IGF3YWl0IGdldFJh
bmRvbUlkRnJvbVdvcmtlcih3b3JrZXIyKTsKKworICAgICAgICBpZiAocmFuZG9tSWQxID09PSBy
YW5kb21JZDIpCisgICAgICAgICAgICBsb2coIlBBU1M6IGltcG9ydFNjcmlwdHMoKSBsb2FkZWQg
dGhlIHNjcmlwdCBjYW1lIGZyb20gdGhlIG5ldHdvcmsgY2FjaGUiKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgbG9nKCJGQUlMOiBpbXBvcnRTY3JpcHRzKCkgZGlkIG5vdCBsb2FkIHRoZSBz
Y3JpcHQgZnJvbSB0aGUgbmV0d29yayBjYWNoZSIpOworICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICBsb2coIkdvdCBleGNlcHRpb246ICIgKyBlKTsKKyAgICB9CisgICAgZmluaXNoU1dUZXN0KCk7
Cit9Cit0ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVW
aWFDYWNoZS1ub25lLWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLW5vbmUt
aW1wb3J0U2NyaXB0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVkNzUwMGZmYmMyYWUwMTlk
ZmJjYTNmZmFmZTA3Y2FiMGQwYWI3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1ub25l
LWltcG9ydFNjcmlwdHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUzogaW1wb3J0
U2NyaXB0cygpIGRpZCBub3QgbG9hZCB0aGUgc2NyaXB0IGZyb20gdGhlIG5ldHdvcmsgY2FjaGUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVn
aXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLW5vbmUtaW1wb3J0U2NyaXB0cy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNh
Y2hlLW5vbmUtaW1wb3J0U2NyaXB0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2MzI5ZTc1MmVlMTk5MWFk
MGM0Mzk5YTM2NTFjNmVlZWRhZGNhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtbm9u
ZS1pbXBvcnRTY3JpcHRzLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2Vy
KQoreworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1
bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIGxldCByZWdpc3RyYXRpb24gPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2ltcG9ydC1j
YWNoZWFibGUtc2NyaXB0LXdvcmtlci5qcyIsIHsgdXBkYXRlVmlhQ2FjaGU6ICJub25lIiB9KTsK
KyAgICAgICAgbGV0IHdvcmtlcjEgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAg
YXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlcjEsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgbGV0IHJh
bmRvbUlkMSA9IGF3YWl0IGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIxKTsKKworICAgICAg
ICBhd2FpdCByZWdpc3RyYXRpb24udXBkYXRlKCk7CisgICAgICAgIGxldCB3b3JrZXIyID0gcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZSh3b3JrZXIy
LCAiYWN0aXZhdGVkIik7CisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2FpdCBnZXRSYW5kb21J
ZEZyb21Xb3JrZXIod29ya2VyMik7CisKKyAgICAgICAgaWYgKHJhbmRvbUlkMSA9PT0gcmFuZG9t
SWQyKQorICAgICAgICAgICAgbG9nKCJGQUlMOiBpbXBvcnRTY3JpcHRzKCkgbG9hZGVkIHRoZSBz
Y3JpcHQgY2FtZSBmcm9tIHRoZSBuZXR3b3JrIGNhY2hlIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGxvZygiUEFTUzogaW1wb3J0U2NyaXB0cygpIGRpZCBub3QgbG9hZCB0aGUgc2NyaXB0
IGZyb20gdGhlIG5ldHdvcmsgY2FjaGUiKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgbG9n
KCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVzdCgpOworfQor
dGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvaW1wb3J0LWNhY2hlYWJs
ZS1zY3JpcHQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL2ltcG9ydC1jYWNoZWFibGUtc2NyaXB0LXdvcmtlci5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZWUzNzJhZDY3ZjE2NmViOGRkYjExZWE2Mjk4NThhZTkyYjMyN2Q0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2lt
cG9ydC1jYWNoZWFibGUtc2NyaXB0LXdvcmtlci5qcwpAQCAtMCwwICsxLDIgQEAKK2ltcG9ydFNj
cmlwdHMoImNhY2hlYWJsZS1zY3JpcHQtd29ya2VyLnBocCIpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329406</attachid>
            <date>2017-12-14 15:08:05 -0800</date>
            <delta_ts>2017-12-14 15:59:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180826-20171214150804.patch</filename>
            <type>text/plain</type>
            <size>27623</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1OTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM2OTRjMzI1YmFkM2Ri
YmUyODlmY2RhOTIwODFjMDlhN2VlNjlmNS4uYWNjNjcwNTQ5ZTQ0ZmY0NTllZTgwNmNhM2VmYjk2
NmY3NTdiN2ExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTEyLTE0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgc2VsZi5pbXBvcnRTY3JpcHRz
KCkgc2hvdWxkIG9iZXkgdXBkYXRlVmlhQ2FjaGUgaW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODI2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBzZWxmLmltcG9ydFNj
cmlwdHMoKSBzaG91bGQgb2JleSB1cGRhdGVWaWFDYWNoZSBpbnNpZGUgc2VydmljZSB3b3JrZXJz
LCBhcyBwZXI6CisgICAgICAgIC0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBh
Z2Uvd29ya2Vycy5odG1sI2RvbS13b3JrZXJnbG9iYWxzY29wZS1pbXBvcnRzY3JpcHRzCisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRh
dGVWaWFDYWNoZS1hbGwtaW1wb3J0U2NyaXB0cy5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtaW1wb3J0cy1p
bXBvcnRTY3JpcHRzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1ub25lLWltcG9ydFNjcmlwdHMuaHRtbAor
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6aW1wb3J0U2NyaXB0cyk6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
TG9hZGVyOjpsb2FkU3luY2hyb25vdXNseSk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0UmVnaXN0cmF0
aW9uTGFzdFVwZGF0ZVRpbWUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
OjpsYXN0VXBkYXRlVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjpzZXRMYXN0VXBkYXRlVGltZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6c2V0TGFzdFVwZGF0ZVRpbWUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAxNy0xMi0xNCAgSm9obiBXaWxhbmRl
ciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9yYWdlIEFjY2VzcyBBUEk6IElt
cGxlbWVudCBmcmFtZS1zcGVjaWZpYyBhY2Nlc3MgaW4gdGhlIGRvY3VtZW50LmNvb2tpZSBsYXll
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBiZDQ1ZTJkNWE0OTMwNjMyMDIwYmNjNTRhOWQ4MDYxYzNiOGI4MDg0Li45
NWVhZTE5ZDVkMTRjY2E2NmVjNmYyNTAyMTNkNDNmMTQwNTVlMWVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE3LTEyLTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgc2VsZi5pbXBvcnRTY3JpcHRzKCkgc2hvdWxkIG9iZXkgdXBkYXRlVmlhQ2FjaGUg
aW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgwODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpz
ZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE3LTEy
LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OIChyMjI1Nzg5KTogQVBJIHRlc3RzIFdLUHJvY2Vzc1Bvb2wuSW5pdGlhbFdhcm1lZFByb2Nl
c3NVc2VkIGFuZCBXZWJLaXQuV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzIGFyZSBmYWlsaW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBh
N2E0ZGQ4M2NlYjJjYjA0ODQ2OTc4ZjJiYzlhMDIyZmQ0OGQyYWFiLi44YTY2NjQ3ZDI1MDBjMDBj
ZmU0MWMzYTgxM2FhODIyMzQ1NDMxNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFNv
dXJjZUNvZGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luUG9saWN5LmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgi
CiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKQEAgLTI2MSw2ICsy
NjIsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV29ya2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlw
dHMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHVybHMpCiAgICAgICAgIGNvbXBsZXRlZFVSTHMudW5j
aGVja2VkQXBwZW5kKFdURk1vdmUodXJsKSk7CiAgICAgfQogCisgICAgRmV0Y2hPcHRpb25zOjpD
YWNoZSBjYWNoZVBvbGljeSA9IEZldGNoT3B0aW9uczo6Q2FjaGU6OkRlZmF1bHQ7CisKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oKnRoaXMpKSB7CisgICAgICAgIC8vIEZJWE1FOiBGdWxseSBpbXBsZW1lbnQgaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2ltcG9ydHNjcmlwdHMuCisgICAgICAgIGF1dG8m
IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZT4oKnRoaXMpOworICAgICAgICBhdXRvJiByZWdpc3RyYXRpb24gPSBzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUucmVnaXN0cmF0aW9uKCk7CisgICAgICAgIGlmIChyZWdpc3RyYXRpb24udXBk
YXRlVmlhQ2FjaGUoKSA9PSBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU6Ok5vbmUKKyAgICAg
ICAgICAgIHx8IChyZWdpc3RyYXRpb24ubGFzdFVwZGF0ZVRpbWUoKSAmJiAoV2FsbFRpbWU6Om5v
dygpIC0gcmVnaXN0cmF0aW9uLmxhc3RVcGRhdGVUaW1lKCkpID4gODY0MDBfcykpIHsKKyAgICAg
ICAgICAgIGNhY2hlUG9saWN5ID0gRmV0Y2hPcHRpb25zOjpDYWNoZTo6Tm9DYWNoZTsKKyAgICAg
ICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgZm9yIChhdXRvJiB1cmwgOiBjb21wbGV0ZWRVUkxz
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xhdGVk
IHdvcmxkJ3MgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2IvMTA0NTIw
IGlzIHNvbHZlZC4KICAgICAgICAgYm9vbCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2Vj
dXJpdHlQb2xpY3kgPSB0aGlzLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQ
b2xpY3koKTsKQEAgLTI2OCw3ICsyODMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXb3JrZXJHbG9i
YWxTY29wZTo6aW1wb3J0U2NyaXB0cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdXJscykKICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAogICAgICAgICBhdXRv
IHNjcmlwdExvYWRlciA9IFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCk7Ci0gICAgICAgIHNj
cmlwdExvYWRlci0+bG9hZFN5bmNocm9ub3VzbHkodGhpcywgdXJsLCBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5vQ29ycywgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5ID8g
Q29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlU2NyaXB0U3JjRGlyZWN0aXZlLCByZXNv
dXJjZVJlcXVlc3RJZGVudGlmaWVyKCkpOworICAgICAgICBzY3JpcHRMb2FkZXItPmxvYWRTeW5j
aHJvbm91c2x5KHRoaXMsIHVybCwgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIGNhY2hlUG9s
aWN5LCBzaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3kgPyBDb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5
UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VTY3JpcHRTcmNEaXJlY3RpdmUsIHJlc291cmNlUmVx
dWVzdElkZW50aWZpZXIoKSk7CiAKICAgICAgICAgLy8gSWYgdGhlIGZldGNoaW5nIGF0dGVtcHQg
ZmFpbGVkLCB0aHJvdyBhIE5ldHdvcmtFcnJvciBleGNlcHRpb24gYW5kIGFib3J0IGFsbCB0aGVz
ZSBzdGVwcy4KICAgICAgICAgaWYgKHNjcmlwdExvYWRlci0+ZmFpbGVkKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggODU1YmQ4NjQwMjcy
ZjU3YjgyNmFiYWEwODQ3ZjlhZThiN2UzMzk0NS4uNGRhMTNmYjk5NTA5YmNkZDZlYjYzMWY3YzY4
OWY2ZDgzMjUwOTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBXb3JrZXJTY3JpcHRMb2FkZXI6OldvcmtlclNj
cmlwdExvYWRlcigpID0gZGVmYXVsdDsKIAogV29ya2VyU2NyaXB0TG9hZGVyOjp+V29ya2VyU2Ny
aXB0TG9hZGVyKCkgPSBkZWZhdWx0OwogCi12b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZFN5
bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgY29uc3QgVVJMJiB1cmwsIEZldGNoT3B0aW9uczo6TW9kZSBtb2RlLCBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudCBjb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29u
c3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKQordm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6
OmxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIGNvbnN0IFVSTCYgdXJsLCBGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgRmV0Y2hP
cHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1l
bnQgY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0IFN0cmluZyYgaW5pdGlh
dG9ySWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAg
ICAgYXV0byYgd29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4o
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwpAQCAtNjIsNiArNjIsNyBAQCB2b2lkIFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZFN5bmNocm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aQogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0
aW9ucy5jcmVkZW50aWFscyA9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGU7CiAg
ICAgb3B0aW9ucy5tb2RlID0gbW9kZTsKKyAgICBvcHRpb25zLmNhY2hlID0gY2FjaGVQb2xpY3k7
CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7CiAgICAgb3B0
aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IGNvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50OwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCmluZGV4IGM4MWY4NmNhNTYxZTUyNjBk
ZmVmZDI5ZWE0ZGUxMTI0OTFlOWMzYWIuLjE5Yzg2NzQ2ZjJiMDQ3MDMzMWUzMmZlODlhYzVhZTE4
YTY2NDE2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIu
aApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdvcmtlclNjcmlwdExvYWRlcik7CiAgICAgfQogCi0gICAgdm9pZCBsb2FkU3luY2hyb25vdXNs
eShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2Rl
LCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5nJiBpbml0aWF0
b3JJZGVudGlmaWVyKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0aW9uczo6
Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGlu
aXRpYXRvcklkZW50aWZpZXIpOwogICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIEZldGNoT3B0
aW9uczo6Q2FjaGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJp
bmcmIGluaXRpYXRvcklkZW50aWZpZXIsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCopOwogCiAg
ICAgdm9pZCBub3RpZnlFcnJvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA4ZjZlNWE1ZjI0NzQ0YmU3ZDg2
MGJjZDRiZjRjOGJkOGZhN2IxMjE3Li42MjA5NGQ5ZTljZTk1MWY1ZGQxOTBkN2Q5OTNiMmM2NzU2
MGU1NzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGll
bnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dD
bGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjA3LDYgKzIwNywyNyBAQCB2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZQogICAgIH0KIH0KIAordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNldFJlZ2lzdHJh
dGlvbkxhc3RVcGRhdGVUaW1lKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdhbGxUaW1lIGxhc3RVcGRhdGVUaW1lKQoreworICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5mb3JFYWNoU2Vy
dmljZVdvcmtlclRocmVhZChbaWRlbnRpZmllciwgbGFzdFVwZGF0ZVRpbWVdIChhdXRvJiB3b3Jr
ZXJUaHJlYWQpIHsKKyAgICAgICAgd29ya2VyVGhyZWFkLnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0
VGFzayhbaWRlbnRpZmllciwgbGFzdFVwZGF0ZVRpbWVdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBjb250YWluZXIgPSBjb250ZXh0LnNl
cnZpY2VXb3JrZXJDb250YWluZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiByZWdp
c3RyYXRpb24gPSBjb250YWluZXItPnJlZ2lzdHJhdGlvbihpZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmVnaXN0cmF0aW9uLT5zZXRMYXN0VXBkYXRlVGltZShsYXN0VXBkYXRlVGlt
ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZm9yIChhdXRv
KiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgeworICAgICAgICBpZiAoYXV0
byogY29udGFpbmVyID0gZG9jdW1lbnQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIoKSkgeworICAg
ICAgICAgICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGNvbnRhaW5lci0+cmVnaXN0cmF0aW9u
KGlkZW50aWZpZXIpKQorICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi0+c2V0TGFzdFVwZGF0
ZVRpbWUobGFzdFVwZGF0ZVRpbWUpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lkIFNXQ2xp
ZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNo
U2V0PERvY3VtZW50SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgU2VydmljZVdvcmtl
ckRhdGEmJiBuZXdDb250cm9sbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmgKaW5kZXggMWM1MTFmMmU2MTkzYTYyNDdmYzc3MTQyZTFiY2YyYTEyZTM2ZTEzMi4uZDYwYTgx
YjU1MDFmMTg2ZDZmODhlNzA2NGRkNWQ5NDIyOTJiZmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtOTQsNiArOTQs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3RyYXRp
b25TdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRh
PiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
Zmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRl
VGltZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2FsbFRpbWUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25z
dCBIYXNoU2V0PERvY3VtZW50SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgU2Vydmlj
ZVdvcmtlckRhdGEmJiBuZXdDb250cm9sbGVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
Y2xlYXJQZW5kaW5nSm9icygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGNmYWIwZmMy
YTdkMDllZjY4NmRmNGU0MjdmODg5NTY5NWMxYjJiZjguLjBlOWZmYmM4NTIyNTlmODVmYTY3Y2Y1
N2E0YWYxZWMxMzU4OWIzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTExMiw2ICsx
MTIsMTYgQEAgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb246OnVwZGF0ZVZpYUNhY2hlKCkgY29uc3QKICAgICByZXR1cm4gbV9yZWdpc3RyYXRpb25E
YXRhLnVwZGF0ZVZpYUNhY2hlOwogfQogCitXYWxsVGltZSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uOjpsYXN0VXBkYXRlVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVnaXN0cmF0aW9u
RGF0YS5sYXN0VXBkYXRlVGltZTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
OjpzZXRMYXN0VXBkYXRlVGltZShXYWxsVGltZSBsYXN0VXBkYXRlVGltZSkKK3sKKyAgICBtX3Jl
Z2lzdHJhdGlvbkRhdGEubGFzdFVwZGF0ZVRpbWUgPSBsYXN0VXBkYXRlVGltZTsKK30KKwogdm9p
ZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp1cGRhdGUoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQogewogICAgIGlmIChtX2lzU3RvcHBlZCkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgK
aW5kZXggNTZlMTAxZGQ0MWU2YmFiZWYxZDRmZGQ4YmVlMmUxZjZkZGEyYjVmOC4uNmExYjE4NGMw
Y2NlMzkwN2Q1MTI0Mzc0YjQ0NTUxZGI2NzcxYzJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBA
IC01Niw2ICs1Niw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNjb3BlKCkgY29uc3Q7
CiAgICAgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKCkgY29uc3Q7
CiAKKyAgICBXYWxsVGltZSBsYXN0VXBkYXRlVGltZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TGFz
dFVwZGF0ZVRpbWUoV2FsbFRpbWUpOworCiAgICAgdm9pZCB1cGRhdGUoUmVmPERlZmVycmVkUHJv
bWlzZT4mJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
Y3BwCmluZGV4IDJjYTYzZTU3ODgzZDBmNjEzMzdkOWU5YzI1MTRkODc3NTBhMzlmZDIuLjk0Zjlm
YTA1NjMwMTFjZjNiODJhOTAxZTJhNjk2MTQ4NDhkYWMxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0xMTYsNyArMTE2
LDkgQEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYmIGRhdGEpCiAgICAgLy8gUGFnZXMgc2hvdWxkIG5vdCBoYXZlIGJlZW4g
YWJsZSB0byBtYWtlIGEgbmV3IHJlZ2lzdHJhdGlvbiB0byB0aGlzIGtleSB3aGlsZSB0aGUgaW1w
b3J0IHdhcyBzdGlsbCB0YWtpbmcgcGxhY2UuCiAgICAgQVNTRVJUKCFtX3JlZ2lzdHJhdGlvbnMu
Y29udGFpbnMoZGF0YS5yZWdpc3RyYXRpb24ua2V5KSk7CiAKLSAgICBhZGRSZWdpc3RyYXRpb24o
c3RkOjptYWtlX3VuaXF1ZTxTV1NlcnZlclJlZ2lzdHJhdGlvbj4oKnRoaXMsIGRhdGEucmVnaXN0
cmF0aW9uLmtleSwgZGF0YS5yZWdpc3RyYXRpb24udXBkYXRlVmlhQ2FjaGUsIGRhdGEucmVnaXN0
cmF0aW9uLnNjb3BlVVJMLCBkYXRhLnNjcmlwdFVSTCkpOworICAgIGF1dG8gcmVnaXN0cmF0aW9u
ID0gc3RkOjptYWtlX3VuaXF1ZTxTV1NlcnZlclJlZ2lzdHJhdGlvbj4oKnRoaXMsIGRhdGEucmVn
aXN0cmF0aW9uLmtleSwgZGF0YS5yZWdpc3RyYXRpb24udXBkYXRlVmlhQ2FjaGUsIGRhdGEucmVn
aXN0cmF0aW9uLnNjb3BlVVJMLCBkYXRhLnNjcmlwdFVSTCk7CisgICAgcmVnaXN0cmF0aW9uLT5z
ZXRMYXN0VXBkYXRlVGltZShkYXRhLnJlZ2lzdHJhdGlvbi5sYXN0VXBkYXRlVGltZSk7CisgICAg
YWRkUmVnaXN0cmF0aW9uKFdURk1vdmUocmVnaXN0cmF0aW9uKSk7CiAgICAgdHJ5SW5zdGFsbENv
bnRleHREYXRhKFdURk1vdmUoZGF0YSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNGU3YzhjMzdhMDg2ZTVhYzk2ZmRj
MDI0NTM2YzQyNTk1OWUxNTIwNy4uYzQ2YWFlNDk0ZDljM2QzNTFkYjlhYmI2YTUxMTlmY2E5NTY5
ODY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuaApAQCAtODIsNiArODIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckRhdGE+JikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlV29ya2VyU3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdv
cmtlclN0YXRlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVu
dChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOworICAgICAgICB2aXJ0
dWFsIHZvaWQgc2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIFdhbGxUaW1lKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVu
dGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYgbmV3
Q29udHJvbGxlcikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0cmF0aW9uUmVhZHko
dWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEmJikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmlu
ZGV4IGE1MzU0ZTU2ZjI0YTQ0NzQ0MjJhNDA5NTMwZjVlZmI1YzIzZmUxYWEuLmZhMTZhZmYwZDA0
MjE0NzM5Mzc5NzkxN2JmNGQwMjUyMzA5MDdiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwCkBAIC0xMDIsNiArMTAyLDE0IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVwZGF0
ZVdvcmtlclN0YXRlKFNXU2VydmVyV29ya2VyJiB3b3JrZXIsIFNlcnZpY2VXb3JrCiAgICAgfSk7
CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNldExhc3RVcGRhdGVUaW1lKFdhbGxU
aW1lIHRpbWUpCit7CisgICAgbV9sYXN0VXBkYXRlVGltZSA9IHRpbWU7CisgICAgZm9yRWFjaENv
bm5lY3Rpb24oWyZdKGF1dG8mIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgY29ubmVjdGlvbi5zZXRS
ZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShpZGVudGlmaWVyKCksIHRpbWUpOworICAgIH0pOwor
fQorCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudCgpCiB7
CiAgICAgZm9yRWFjaENvbm5lY3Rpb24oWyZdKGF1dG8mIGNvbm5lY3Rpb24pIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uaAppbmRleCBmYjc1Njk4NjNkOGY2ZTI2ZmRkMGYwNjQ1NmM0YWFhOGMxNDQ0
MDhiLi43ZTYyNjMzYThiZGU1N2I2MmZkM2Y3YWUwODhkNjgwMzBmMzM3NjQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzVW5p
bnN0YWxsaW5nKCkgY29uc3QgeyByZXR1cm4gbV91bmluc3RhbGxpbmc7IH0KICAgICB2b2lkIHNl
dElzVW5pbnN0YWxsaW5nKGJvb2wpOwogCi0gICAgdm9pZCBzZXRMYXN0VXBkYXRlVGltZShXYWxs
VGltZSB0aW1lKSB7IG1fbGFzdFVwZGF0ZVRpbWUgPSB0aW1lOyB9CisgICAgdm9pZCBzZXRMYXN0
VXBkYXRlVGltZShXYWxsVGltZSk7CiAgICAgV2FsbFRpbWUgbGFzdFVwZGF0ZVRpbWUoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RVcGRhdGVUaW1lOyB9CiAKICAgICBTZXJ2aWNlV29ya2VyVXBkYXRl
VmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVZpYUNhY2hl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IDJiOGQwNjVk
ZmZkZGYwNjIzZGNiMTZmZjc2MzAzMDBjZGFhNWJmMTEuLjUzZDk0NzFhOGQ5NTc1Y2U4ZDIxODZm
ZDI4MGVjZGY1ZTNkMWJjMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwCkBAIC0xMDYsNiArMTA2LDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmaXJl
VXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpGaXJlVXBkYXRlRm91bmRFdmVudChp
ZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzZXRSZWdpc3Ry
YXRpb25MYXN0VXBkYXRlVGltZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXYWxsVGltZSBsYXN0VXBkYXRlVGltZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFJlZ2lzdHJhdGlvbkxhc3RVcGRhdGVUaW1lKGlk
ZW50aWZpZXIsIGxhc3RVcGRhdGVUaW1lKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1l
bnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0
YSYgbmV3Q29udHJvbGxlcikKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5l
Y3Rpb246Ok5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29udGV4dElkZW50aWZpZXJz
LCBuZXdDb250cm9sbGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5k
ZXggMDcyOTQxYmRiNDMxYmViNjgzYWMxNTEyYmM2NjlkYjc4NGU2NDQ0OS4uODA3YTJkZWFiYTU4
NzgyM2ZlYzBiOTUxNjJjZDJlODZjMzk5MTk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uaApAQCAtNzgsNiArNzgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmVn
aXN0cmF0aW9uU3RhdGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhPiYpIGZpbmFsOwogICAg
IHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlKSBmaW5hbDsKICAgICB2b2lkIGZp
cmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHNldFJlZ2lzdHJhdGlvbkxhc3RVcGRhdGVUaW1lKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXYWxsVGltZSkgZmlu
YWw7CiAgICAgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hT
ZXQ8V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcik7CiAgICAgdm9pZCBy
ZWdpc3RyYXRpb25SZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDMzOTE1OGY4MWQ3M2E5NGVj
NmNiNTQxODA2NzM3YjA3N2M5YzI2NDIuLmUyZjdhYWNhNDIwMzllMDY3NjE1MDNmYmE5NzdmMDlj
MTJhNjg2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMxLDYg
KzMxLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBVcGRhdGVS
ZWdpc3RyYXRpb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25T
dGF0ZSBzdGF0ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YT4gc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpCiAgICAgVXBkYXRlV29ya2VyU3RhdGUoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGVudW0gV2ViQ29y
ZTo6U2VydmljZVdvcmtlclN0YXRlIHN0YXRlKQogICAgIEZpcmVVcGRhdGVGb3VuZEV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgU2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2FsbFRpbWUgbGFzdFVwZGF0ZVRpbWUp
CiAgICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShIYXNoU2V0PFdlYkNvcmU6OkRv
Y3VtZW50SWRlbnRpZmllcj4gY29udGV4dElkZW50aWZpZXJzLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckRhdGEgbmV3Q29udHJvbGxlcikKIAogICAgIFNldFNXT3JpZ2luVGFibGVJc0lt
cG9ydGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBlZjcwNGEwNzJmOTZhZWI1YjcwYTI0MDVmNDMxNjBiMjVjZWQ1MmU0
Li4wMzk5MzdhMjU4ZGFlODYzOGRkMGI4MmE4NjZiOTJkYjRmYzFjZjJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTctMTItMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBzZWxmLmltcG9ydFNjcmlwdHMoKSBzaG91bGQgb2JleSB1cGRhdGVWaWFDYWNoZSBp
bnNpZGUgc2VydmljZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODA4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1hbGwtaW1w
b3J0U2NyaXB0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1hbGwtaW1wb3J0U2NyaXB0
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdp
c3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtaW1wb3J0cy1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0
aW9uLXVwZGF0ZVZpYUNhY2hlLWltcG9ydHMtaW1wb3J0U2NyaXB0cy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlh
Q2FjaGUtbm9uZS1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLW5v
bmUtaW1wb3J0U2NyaXB0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvaW1wb3J0LWNhY2hlYWJsZS1zY3JpcHQtd29ya2VyLmpzOiBB
ZGRlZC4KKwogMjAxNy0xMi0xNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9yYWdlIEFjY2VzcyBBUEk6IEltcGxlbWVudCBmcmFtZS1zcGVjaWZpYyBh
Y2Nlc3MgaW4gdGhlIGRvY3VtZW50LmNvb2tpZSBsYXllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hl
LWFsbC1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1hbGwtaW1wb3J0U2Ny
aXB0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM1MDBiMjkzNDQ2MGVhYzgwNjJlODFjNDI4
NzY3NjcxMDJjMTAyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1hbGwtaW1wb3J0U2Ny
aXB0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTOiBpbXBvcnRTY3JpcHRzKCkg
bG9hZGVkIHRoZSBzY3JpcHQgY2FtZSBmcm9tIHRoZSBuZXR3b3JrIGNhY2hlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11
cGRhdGVWaWFDYWNoZS1hbGwtaW1wb3J0U2NyaXB0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWFsbC1pbXBv
cnRTY3JpcHRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNiYWQwNjU5MzYyODEyZjMyOTIxZTJmOTUxMTIy
Njk2N2Q5NmIyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1hbGwtaW1wb3J0U2NyaXB0
cy5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKworZnVuY3Rpb24gZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcikKK3sKKyAgICB3b3Jr
ZXIucG9zdE1lc3NhZ2UoImdldFJhbmRvbUlkIik7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50
TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICByZXNvbHZlKGUu
ZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICB0cnkgeworICAgICAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9pbXBvcnQtY2FjaGVhYmxlLXNjcmlw
dC13b3JrZXIuanMiLCB7IHVwZGF0ZVZpYUNhY2hlOiAiYWxsIiB9KTsKKyAgICAgICAgbGV0IHdv
cmtlcjEgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgYXdhaXQgd2FpdEZvclN0
YXRlKHdvcmtlcjEsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgbGV0IHJhbmRvbUlkMSA9IGF3YWl0
IGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIxKTsKKworICAgICAgICBhd2FpdCByZWdpc3Ry
YXRpb24udXBkYXRlKCk7CisgICAgICAgIGxldCB3b3JrZXIyID0gcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmc7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZSh3b3JrZXIyLCAiYWN0aXZhdGVkIik7
CisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29y
a2VyMik7CisKKyAgICAgICAgaWYgKHJhbmRvbUlkMSA9PT0gcmFuZG9tSWQyKQorICAgICAgICAg
ICAgbG9nKCJQQVNTOiBpbXBvcnRTY3JpcHRzKCkgbG9hZGVkIHRoZSBzY3JpcHQgY2FtZSBmcm9t
IHRoZSBuZXR3b3JrIGNhY2hlIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZygiRkFJ
TDogaW1wb3J0U2NyaXB0cygpIGRpZCBub3QgbG9hZCB0aGUgc2NyaXB0IGZyb20gdGhlIG5ldHdv
cmsgY2FjaGUiKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgbG9nKCJHb3QgZXhjZXB0aW9u
OiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVzdCgpOworfQordGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtaW1wb3J0cy1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1pbXBvcnRzLWltcG9ydFNjcmlwdHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzNTAwYjI5MzQ0NjBlYWM4MDYyZTgxYzQyODc2NzY3
MTAyYzEwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtaW1wb3J0cy1pbXBvcnRTY3Jp
cHRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1M6IGltcG9ydFNjcmlwdHMoKSBs
b2FkZWQgdGhlIHNjcmlwdCBjYW1lIGZyb20gdGhlIG5ldHdvcmsgY2FjaGUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVw
ZGF0ZVZpYUNhY2hlLWltcG9ydHMtaW1wb3J0U2NyaXB0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLWltcG9y
dHMtaW1wb3J0U2NyaXB0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhNjYwNTQ1NzA5NTgwMGViZjMxNzM2
NjQ0ZjVhODdmNDM5MmU0MjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtaW1wb3J0cy1p
bXBvcnRTY3JpcHRzLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyKQor
eworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0UmFuZG9tSWQiKTsKKyAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0
aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIGxldCByZWdpc3RyYXRpb24gPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2ltcG9ydC1jYWNo
ZWFibGUtc2NyaXB0LXdvcmtlci5qcyIsIHsgdXBkYXRlVmlhQ2FjaGU6ICJpbXBvcnRzIiB9KTsK
KyAgICAgICAgbGV0IHdvcmtlcjEgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAg
YXdhaXQgd2FpdEZvclN0YXRlKHdvcmtlcjEsICJhY3RpdmF0ZWQiKTsKKyAgICAgICAgbGV0IHJh
bmRvbUlkMSA9IGF3YWl0IGdldFJhbmRvbUlkRnJvbVdvcmtlcih3b3JrZXIxKTsKKworICAgICAg
ICBhd2FpdCByZWdpc3RyYXRpb24udXBkYXRlKCk7CisgICAgICAgIGxldCB3b3JrZXIyID0gcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIGF3YWl0IHdhaXRGb3JTdGF0ZSh3b3JrZXIy
LCAiYWN0aXZhdGVkIik7CisgICAgICAgIGxldCByYW5kb21JZDIgPSBhd2FpdCBnZXRSYW5kb21J
ZEZyb21Xb3JrZXIod29ya2VyMik7CisKKyAgICAgICAgaWYgKHJhbmRvbUlkMSA9PT0gcmFuZG9t
SWQyKQorICAgICAgICAgICAgbG9nKCJQQVNTOiBpbXBvcnRTY3JpcHRzKCkgbG9hZGVkIHRoZSBz
Y3JpcHQgY2FtZSBmcm9tIHRoZSBuZXR3b3JrIGNhY2hlIik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIGxvZygiRkFJTDogaW1wb3J0U2NyaXB0cygpIGRpZCBub3QgbG9hZCB0aGUgc2NyaXB0
IGZyb20gdGhlIG5ldHdvcmsgY2FjaGUiKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgbG9n
KCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVzdCgpOworfQor
dGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2Fj
aGUtbm9uZS1pbXBvcnRTY3JpcHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1ub25lLWltcG9y
dFNjcmlwdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlZDc1MDBmZmJjMmFlMDE5ZGZiY2Ez
ZmZhZmUwN2NhYjBkMGFiNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZWdpc3RyYXRpb24tdXBkYXRlVmlhQ2FjaGUtbm9uZS1pbXBv
cnRTY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1M6IGltcG9ydFNjcmlw
dHMoKSBkaWQgbm90IGxvYWQgdGhlIHNjcmlwdCBmcm9tIHRoZSBuZXR3b3JrIGNhY2hlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJh
dGlvbi11cGRhdGVWaWFDYWNoZS1ub25lLWltcG9ydFNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi11cGRhdGVWaWFDYWNoZS1u
b25lLWltcG9ydFNjcmlwdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjMyOWU3NTJlZTE5OTFhZDBjNDM5
OWEzNjUxYzZlZWVkYWRjYTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVnaXN0cmF0aW9uLXVwZGF0ZVZpYUNhY2hlLW5vbmUtaW1w
b3J0U2NyaXB0cy5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKworZnVuY3Rpb24gZ2V0UmFuZG9tSWRGcm9tV29ya2VyKHdvcmtlcikKK3sK
KyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldFJhbmRvbUlkIik7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBy
ZXNvbHZlKGUuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9pbXBvcnQtY2FjaGVh
YmxlLXNjcmlwdC13b3JrZXIuanMiLCB7IHVwZGF0ZVZpYUNhY2hlOiAibm9uZSIgfSk7CisgICAg
ICAgIGxldCB3b3JrZXIxID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIGF3YWl0
IHdhaXRGb3JTdGF0ZSh3b3JrZXIxLCAiYWN0aXZhdGVkIik7CisgICAgICAgIGxldCByYW5kb21J
ZDEgPSBhd2FpdCBnZXRSYW5kb21JZEZyb21Xb3JrZXIod29ya2VyMSk7CisKKyAgICAgICAgYXdh
aXQgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOworICAgICAgICBsZXQgd29ya2VyMiA9IHJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nOworICAgICAgICBhd2FpdCB3YWl0Rm9yU3RhdGUod29ya2VyMiwgImFj
dGl2YXRlZCIpOworICAgICAgICBsZXQgcmFuZG9tSWQyID0gYXdhaXQgZ2V0UmFuZG9tSWRGcm9t
V29ya2VyKHdvcmtlcjIpOworCisgICAgICAgIGlmIChyYW5kb21JZDEgPT09IHJhbmRvbUlkMikK
KyAgICAgICAgICAgIGxvZygiRkFJTDogaW1wb3J0U2NyaXB0cygpIGxvYWRlZCB0aGUgc2NyaXB0
IGNhbWUgZnJvbSB0aGUgbmV0d29yayBjYWNoZSIpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBsb2coIlBBU1M6IGltcG9ydFNjcmlwdHMoKSBkaWQgbm90IGxvYWQgdGhlIHNjcmlwdCBmcm9t
IHRoZSBuZXR3b3JrIGNhY2hlIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGxvZygiR290
IGV4Y2VwdGlvbjogIiArIGUpOworICAgIH0KKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KK3Rlc3Qo
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2ltcG9ydC1jYWNoZWFibGUtc2Ny
aXB0LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9pbXBvcnQtY2FjaGVhYmxlLXNjcmlwdC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVl
MzcyYWQ2N2YxNjZlYjhkZGIxMWVhNjI5ODU4YWU5MmIzMjdkNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9pbXBvcnQt
Y2FjaGVhYmxlLXNjcmlwdC13b3JrZXIuanMKQEAgLTAsMCArMSwyIEBACitpbXBvcnRTY3JpcHRz
KCJjYWNoZWFibGUtc2NyaXB0LXdvcmtlci5waHAiKTsKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>