<?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>179822</bug_id>
          
          <creation_ts>2017-11-17 09:03:00 -0800</creation_ts>
          <short_desc>[Service Workers] Implement &quot;Notify Controller Change&quot; algorithm</short_desc>
          <delta_ts>2017-11-27 12:41:16 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=180049</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>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>jlewis3</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373089</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 09:03:00 -0800</bug_when>
    <thetext>Implement &quot;Notify Controller Change&quot; algorithm:
- https://w3c.github.io/ServiceWorker/#notify-controller-change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373131</commentid>
    <comment_count>1</comment_count>
      <attachid>327193</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 10:18:47 -0800</bug_when>
    <thetext>Created attachment 327193
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373150</commentid>
    <comment_count>2</comment_count>
      <attachid>327194</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 10:47:00 -0800</bug_when>
    <thetext>Created attachment 327194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373390</commentid>
    <comment_count>3</comment_count>
      <attachid>327194</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-11-17 16:22:21 -0800</bug_when>
    <thetext>Comment on attachment 327194
Patch

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

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:419
&gt; +    scriptExecutionContext()-&gt;postTask([this, protectedThis = makeRef(*this)](ScriptExecutionContext&amp;) mutable {

I know the spec is written this way but It seems a bit weird to post a task here for dispatching an event.
It does not seem observable to dispatch the event directly without the post task, at least in the current context it is used.
Might be safer to stick to the spec though, not sure...

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:424
&gt; +        dispatchEvent(controllerChangeEvent);

do we need controllerChangeEvent variable?

&gt; Source/WebCore/workers/service/server/SWClientConnection.cpp:168
&gt; +void SWClientConnection::notifyClientsOfControllerChange(const HashSet&lt;uint64_t&gt;&amp; scriptExecutionContexts, const ServiceWorkerData&amp; newController)

newController can probably be an r value.

&gt; Source/WebCore/workers/service/server/SWClientConnection.cpp:177
&gt; +        client-&gt;setActiveServiceWorker(ServiceWorker::getOrCreate(*client, ServiceWorkerData { newController }));

Maybe we should assert that client has an active service worker.
Not sure whether we could also assert that we are actually changing from worker.

&gt; Source/WebCore/workers/service/server/SWServerJobQueue.cpp:235
&gt; +    // - Set clientâs active worker to registrationâs active worker.

I see client^as here.

&gt; LayoutTests/http/tests/workers/service/controller-change.html:38
&gt; +    let frame = await withFrame(scopeURL);

In sw-test-pre.js, there is an interceptedFrame function that could be reused to replace register and withFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373477</commentid>
    <comment_count>4</comment_count>
      <attachid>327293</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 18:25:26 -0800</bug_when>
    <thetext>Created attachment 327293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373481</commentid>
    <comment_count>5</comment_count>
      <attachid>327294</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 18:28:57 -0800</bug_when>
    <thetext>Created attachment 327294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373492</commentid>
    <comment_count>6</comment_count>
      <attachid>327294</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 19:42:23 -0800</bug_when>
    <thetext>Comment on attachment 327294
Patch

Clearing flags on attachment: 327294

Committed r225011: &lt;https://trac.webkit.org/changeset/225011&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373493</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 19:42:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373494</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-17 19:43:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/35629134&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375067</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-11-27 12:41:16 -0800</bug_when>
    <thetext>This change has cause the test:
imported/w3c/web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https.html
to start crashing

https://build.webkit.org/results/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/r225170%20(1241)/results.html
https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/builds/1241

See bug:
https://bugs.webkit.org/show_bug.cgi?id=180049</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327193</attachid>
            <date>2017-11-17 10:18:47 -0800</date>
            <delta_ts>2017-11-17 10:46:59 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>179822_NotifyControllerChange_wip.patch</filename>
            <type>text/plain</type>
            <size>11732</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcAppbmRleCA2NzliMGQ3ZTI0OC4uYzQwMzgwMGJjNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKQEAgLTQxMSw2ICs0MTEsMjAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyOjpyZW1vdmVSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiYgcmVnaXMK
ICAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3ZlKHJlZ2lzdHJhdGlvbi5pZGVudGlmaWVyKCkpOwog
fQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxlVGFza1RvRmlyZUNvbnRy
b2xsZXJDaGFuZ2VFdmVudCgpCit7CisgICAgaWYgKG1faXNTdG9wcGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKG1faXNTdG9wcGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGF1dG8gY29udHJvbGxlckNoYW5nZUV2ZW50ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkuY29udHJvbGxlcmNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpOworICAgICAgICBkaXNw
YXRjaEV2ZW50KGNvbnRyb2xsZXJDaGFuZ2VFdmVudCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5oCmluZGV4IDQxZTkyZTllYzE1Li5kODE2YmUyMjBhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBA
IC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbihjb25zdCBT
dHJpbmcmIGNsaWVudFVSTCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBzY2hl
ZHVsZVRhc2tUb1VwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+Jik7CiAgICAgdm9pZCBzY2hlZHVsZVRhc2tUb0Zp
cmVVcGRhdGVGb3VuZEV2ZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsK
KyAgICB2b2lkIHNjaGVkdWxlVGFza1RvRmlyZUNvbnRyb2xsZXJDaGFuZ2VFdmVudCgpOwogCiAg
ICAgdXNpbmcgUmVnaXN0cmF0aW9uc1Byb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2Vx
dWVuY2U8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+Pj47CiAgICAgdm9p
ZCBnZXRSZWdpc3RyYXRpb25zKFJlZ2lzdHJhdGlvbnNQcm9taXNlJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5l
Y3Rpb24uY3BwCmluZGV4IGIyOTU5NjRiNGI1Li42MDllOTY1OWI0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25u
ZWN0aW9uLmNwcApAQCAtMTY1LDYgKzE2NSwyMSBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6
ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZQog
ICAgIH0pOwogfQogCit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29u
dHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dHMsIGNvbnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKQoreworICAgIEFT
U0VSVCghc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMuaXNFbXB0eSgpKTsKKworICAgIGZvciAoYXV0
byYgY2xpZW50SWRlbnRpZmllciA6IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzKSB7CisgICAgICAg
IC8vIEZJWE1FOiBTdXBwb3J0IHdvcmtlciBjb250ZXh0cy4KKyAgICAgICAgYXV0byogY2xpZW50
ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAg
ICAgICAgaWYgKCFjbGllbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY2xpZW50
LT5zZXRBY3RpdmVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKCpjbGll
bnQsIFNlcnZpY2VXb3JrZXJEYXRhIHsgbmV3Q29udHJvbGxlciB9KSk7CisgICAgICAgIGlmIChh
dXRvKiBjb250YWluZXIgPSBjbGllbnQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIoKSkKKyAgICAg
ICAgICAgIGNvbnRhaW5lci0+c2NoZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50
KCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBhOWU5ZDkwZjllOS4u
ZGNmODhjNjkzYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtODYsNiArODYsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRhPiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJl
VXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNv
bnN0IEhhc2hTZXQ8dWludDY0X3Q+JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0cywgY29uc3QgU2Vy
dmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
CmluZGV4IDJmOGIwMmExZTQ1Li5hNjIzZmYxNjk0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+JikgPSAw
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclN0YXRlKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJv
bGxlckNoYW5nZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dHMsIGNvbnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKSA9IDA7CiAKICAgICBw
cm90ZWN0ZWQ6CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIENvbm5lY3Rpb24oU1dTZXJ2ZXImLCB1
aW50NjRfdCBpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IDAyNjdlNDM5NGYx
Li5hNjk4MjhiNzJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCkBAIC0yMzAsNyArMjMwLDEyIEBA
IHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6YWN0aXZhdGUoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2
ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhCiAgICAgLy8gUnVuIHRoZSBVcGRhdGUgV29ya2VyIFN0
YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgYW5kIGFj
dGl2YXRpbmcgYXMgdGhlIGFyZ3VtZW50cy4KICAgICByZWdpc3RyYXRpb24udXBkYXRlV29ya2Vy
U3RhdGUoKnJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKSwgU2VydmljZVdvcmtlclN0YXRlOjpB
Y3RpdmF0aW5nKTsKICAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50
IGNsaWVudCB3aG9zZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb24ncyBzY29wZSB1
cmwuLi4KLSAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNsaWVu
dCB3aG8gaXMgdXNpbmcgcmVnaXN0cmF0aW9uLi4uCisKKyAgICAvLyBGb3IgZWFjaCBzZXJ2aWNl
IHdvcmtlciBjbGllbnQgY2xpZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb246CisgICAgLy8g
LSBTZXQgY2xpZW504oCZcyBhY3RpdmUgd29ya2VyIHRvIHJlZ2lzdHJhdGlvbuKAmXMgYWN0aXZl
IHdvcmtlci4KKyAgICAvLyAtIEludm9rZSBOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UgYWxnb3Jp
dGhtIHdpdGggY2xpZW50IGFzIHRoZSBhcmd1bWVudC4KKyAgICByZWdpc3RyYXRpb24ubm90aWZ5
Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSgpOworCiAgICAgLy8gRklYTUU6IEludm9rZSBSdW4g
U2VydmljZSBXb3JrZXIgYWxnb3JpdGhtIHdpdGggYWN0aXZlV29ya2VyIGFzIHRoZSBhcmd1bWVu
dC4KIAogICAgIC8vIFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBhY3RpdmF0ZSBldmVudC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggOTk4YzkwYjczNWUuLjcwNjI5NjRiOWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtMTYzLDYgKzE2MywxNyBAQCB2b2lkIFNX
U2VydmVyUmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBT
ZXJ2aWNlV29ya2VyQ2xpZQogICAgICAgICBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5yZW1v
dmUoaXRlcmF0b3IpOwogfQogCisvLyBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtl
ci8jbm90aWZ5LWNvbnRyb2xsZXItY2hhbmdlCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpu
b3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKCkKK3sKKyAgICBBU1NFUlQoYWN0aXZlV29y
a2VyKCkpOworCisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRp
b24pIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3NlcnZlci5nZXRDb25uZWN0
aW9uKGl0ZW0ua2V5KSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPm5vdGlmeUNsaWVudHNPZkNv
bnRyb2xsZXJDaGFuZ2UoaXRlbS52YWx1ZSwgYWN0aXZlV29ya2VyKCktPmRhdGEoKSk7CisgICAg
fQorfQorCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyU2VydmVyQ29ubmVj
dGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5l
Y3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMucmVtb3ZlQWxsKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCBjMjMxMmQ4NDA3ZS4uMGE0
MDY3YzBjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTc4LDYgKzc4LDggQEAgcHVi
bGljOgogICAgIHZvaWQgcmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY29uc3QgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXImKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2ZXJDb25u
ZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAorICAgIHZvaWQg
bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSgpOworCiBwcml2YXRlOgogICAgIHZvaWQg
Zm9yRWFjaENvbm5lY3Rpb24oY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpDb25u
ZWN0aW9uJik+Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDg1NWY2MTEyZDhkLi4yMTA2ODBmN2EwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yOTQsNiArMjk0LDcgQEAgZGVmIGNsYXNzX3RlbXBsYXRlX2hl
YWRlcnModGVtcGxhdGVfc3RyaW5nKToKICAgICBjbGFzc190ZW1wbGF0ZV90eXBlcyA9IHsKICAg
ICAgICAgJ1dlYkNvcmU6OlJlY3RFZGdlcyc6IHsnaGVhZGVycyc6IFsnPFdlYkNvcmUvUmVjdEVk
Z2VzLmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCIn
XX0sCiAgICAgICAgICdIYXNoTWFwJzogeydoZWFkZXJzJzogWyc8d3RmL0hhc2hNYXAuaD4nXSwg
J2FyZ3VtZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKKyAgICAg
ICAgJ0hhc2hTZXQnOiB7J2hlYWRlcnMnOiBbJzx3dGYvSGFzaFNldC5oPiddLCAnYXJndW1lbnRf
Y29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnc3RkOjpv
cHRpb25hbCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9PcHRpb25hbC5oPiddLCAnYXJndW1lbnRfY29k
ZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnT3B0aW9uU2V0
JzogeydoZWFkZXJzJzogWyc8d3RmL09wdGlvblNldC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVh
ZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnVmVjdG9yJzogeydoZWFk
ZXJzJzogWyc8d3RmL1ZlY3Rvci5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFy
Z3VtZW50Q29kZXJzLmgiJ119LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cAppbmRleCBjMWYxNTRlMzVlMC4uYmZlYzQ5MmIxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDIsNiArMTAyLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpGaXJlVXBk
YXRlRm91bmRFdmVudChpZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8dWludDY0
X3Q+JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0cywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5l
d0NvbnRyb2xsZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9u
OjpOb3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRz
LCBuZXdDb250cm9sbGVyKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1cGRh
dGVXb3JrZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvcmtlciwgU2Vy
dmljZVdvcmtlclN0YXRlIHN0YXRlKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6VXBkYXRlV29ya2VyU3RhdGUod29ya2VyLCBzdGF0ZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDNmMTMyNzJjZjYyLi4wMjllYzlhZmIwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzMsNiArNzMsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVudChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJEYXRhPiYpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
clN0YXRlKSBmaW5hbDsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlm
eUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDx1aW50NjRfdD4mIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRzLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSYgbmV3
Q29udHJvbGxlcik7CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
JiwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KaW5kZXggZWZjZDY1YmVkYjcuLjk2NWEyZjBjZTViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgVXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51
bSBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUgc3RhdGUsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGE+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KQogICAgIFVwZGF0ZVdvcmtlclN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0
ZSBzdGF0ZSkKICAgICBGaXJlVXBkYXRlRm91bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIE5vdGlmeUNsaWVudHNPZkNv
bnRyb2xsZXJDaGFuZ2UoSGFzaFNldDx1aW50NjRfdD4gc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMs
IHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBuZXdDb250cm9sbGVyKQogCiAgICAg
SW5pdGlhbGl6ZVNXT3JpZ2luVGFibGVBc0VtcHR5KCkKICAgICBTZXRTV09yaWdpblRhYmxlU2hh
cmVkTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327194</attachid>
            <date>2017-11-17 10:47:00 -0800</date>
            <delta_ts>2017-11-17 18:25:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179822-20171117104700.patch</filename>
            <type>text/plain</type>
            <size>18168</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZhMjQ5MWFkM2ZmYjNi
MThhOTU5N2YwMTQ3MWQwZDMzNjFlYTY1OC4uZDZhZDI4ZTI4YzQyMTk5YTY1NjViOTRjMDRiODUw
NmM3YTYxNGIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTExLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10g
SW1wbGVtZW50ICJOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UiIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODIyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ICJOb3RpZnkg
Q29udHJvbGxlciBDaGFuZ2UiIGFsZ29yaXRobToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRo
dWIuaW8vU2VydmljZVdvcmtlci8jbm90aWZ5LWNvbnRyb2xsZXItY2hhbmdlCisKKyAgICAgICAg
VXNlIGl0IHRvIHN1cHBvcnQgc3RlcCA3IG9mICJBY3RpdmF0ZSIgYWxnb3JpdGhtOgorICAgICAg
ICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZQorCisgICAg
ICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLmh0
bWwKKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxlVGFz
a1RvRmlyZUNvbnRyb2xsZXJDaGFuZ2VFdmVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENv
bm5lY3Rpb246Om5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
ckpvYlF1ZXVlOjphY3RpdmF0ZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDE3LTExLTE3
ICBBbGkgSnVtYSAgPGFqdW1hQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgZmVhdHVy
ZSBzdGF0dXMgZm9yIFZpc3VhbCBWaWV3cG9ydCBBUEkgdG8gIkluIERldmVsb3BtZW50IgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBkZmU1Y2VjZjE2OWQzYWYyZWIyNGRjM2UyNjQ0OGNmMDEzYmRjMTRkLi44OWIzYTBi
NjM3OTVlMmFlZjhmZDY0NDVmMzY2ZDFiMjA5ZDA4YzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE3LTExLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1NlcnZpY2UgV29ya2Vyc10gSW1wbGVtZW50ICJOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2Ui
IGFsZ29yaXRobQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTc5ODIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGNsYXNzX3RlbXBsYXRl
X2hlYWRlcnMpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisK
IDIwMTctMTEtMTYgIFlvdXN1a2UgS2ltb3RvICA8eW91c3VrZS5raW1vdG9Ac29ueS5jb20+CiAK
ICAgICAgICAgW1dpbkNhaXJvXSBBZGQgbmV0d29yayAoY3VybCkgZmlsZXMgZm9yIHdpbmNhaXJv
IHdlYmtpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDY3OWIwZDdlMjQ4N2FkN2IxM2Q3YjQ2NTg0
YzZhODk1MzFiMzI4NmUuLmM0MDM4MDBiYzc5ZGNhYWFkMWExZGE3NTA4ZjhlMTdiZjM1MDU5NTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTQxMSw2ICs0MTEsMjAgQEAgdm9pZCBTZXJ2aWNlV29y
a2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
biYgcmVnaXMKICAgICBtX3JlZ2lzdHJhdGlvbnMucmVtb3ZlKHJlZ2lzdHJhdGlvbi5pZGVudGlm
aWVyKCkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxlVGFza1Rv
RmlyZUNvbnRyb2xsZXJDaGFuZ2VFdmVudCgpCit7CisgICAgaWYgKG1faXNTdG9wcGVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnBvc3RUYXNrKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKG1faXNTdG9wcGVkKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGF1dG8gY29udHJvbGxlckNoYW5nZUV2ZW50ID0gRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkuY29udHJvbGxlcmNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpOworICAg
ICAgICBkaXNwYXRjaEV2ZW50KGNvbnRyb2xsZXJDaGFuZ2VFdmVudCk7CisgICAgfSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5oCmluZGV4IDQxZTkyZTllYzE1NmNiYjMwZTExZGRiYjg5ZjI2YzU3NWVk
ZmY4YjAuLmQ4MTZiZTIyMGEwMjNlYWQyN2MzNGZkNTI1NTAxZjk3ODE3MjVkYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuaApAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRp
b24oY29uc3QgU3RyaW5nJiBjbGllbnRVUkwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogICAg
IHZvaWQgc2NoZWR1bGVUYXNrVG9VcGRhdGVSZWdpc3RyYXRpb25TdGF0ZShTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlLCBj
b25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRhPiYpOwogICAgIHZvaWQgc2NoZWR1
bGVUYXNrVG9GaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CisgICAgdm9pZCBzY2hlZHVsZVRhc2tUb0ZpcmVDb250cm9sbGVyQ2hhbmdlRXZl
bnQoKTsKIAogICAgIHVzaW5nIFJlZ2lzdHJhdGlvbnNQcm9taXNlID0gRE9NUHJvbWlzZURlZmVy
cmVkPElETFNlcXVlbmNlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPj4+
OwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhSZWdpc3RyYXRpb25zUHJvbWlzZSYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dD
bGllbnRDb25uZWN0aW9uLmNwcAppbmRleCBiMjk1OTY0YjRiNWExOTQ4YzRjZTBiNWI5M2ZkZDQ2
NjY3YTFlYmM5Li42MDllOTY1OWI0MDQ5NjNlZjBjMTBkYzZkZTAzNTUzYTRiNDJjODQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNjUsNiArMTY1LDIxIEBAIHZvaWQgU1dDbGllbnRD
b25uZWN0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllCiAgICAgfSk7CiB9CiAKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpub3RpZnlD
bGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8dWludDY0X3Q+JiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0cywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIp
Cit7CisgICAgQVNTRVJUKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0cy5pc0VtcHR5KCkpOworCisg
ICAgZm9yIChhdXRvJiBjbGllbnRJZGVudGlmaWVyIDogc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMp
IHsKKyAgICAgICAgLy8gRklYTUU6IFN1cHBvcnQgd29ya2VyIGNvbnRleHRzLgorICAgICAgICBh
dXRvKiBjbGllbnQgPSBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0KGNsaWVudElkZW50
aWZpZXIpOworICAgICAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBjbGllbnQtPnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcjo6Z2V0T3JD
cmVhdGUoKmNsaWVudCwgU2VydmljZVdvcmtlckRhdGEgeyBuZXdDb250cm9sbGVyIH0pKTsKKyAg
ICAgICAgaWYgKGF1dG8qIGNvbnRhaW5lciA9IGNsaWVudC0+c2VydmljZVdvcmtlckNvbnRhaW5l
cigpKQorICAgICAgICAgICAgY29udGFpbmVyLT5zY2hlZHVsZVRhc2tUb0ZpcmVDb250cm9sbGVy
Q2hhbmdlRXZlbnQoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGE5
ZTlkOTBmOWU5YWMxYmZlNGQ5OWQwOTkwMDI5ZmIyNTExMDEyZWYuLmRjZjg4YzY5M2I2Y2NiNDY4
ZjQyNzQwYzU1NTY3ZWRmNjkyZGIzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtODYsNiAr
ODYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3Ry
YXRpb25TdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJE
YXRhPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9s
bGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8dWludDY0X3Q+JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
cywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpOwogCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5oCmluZGV4IDJmOGIwMmExZTQ1YjYxMWZkOTBkY2Q3ZDY4NDM3NmZlNjAyNzU5
YjEuLmE2MjNmZjE2OTQ1ZWUzMGFkMWI5NWE4NzJjYzM1M2IzMmU5NjEzZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTcwLDYg
KzcwLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9u
U3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJEYXRhPiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlSW5D
bGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNs
aWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDx1aW50NjRfdD4mIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRzLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcikg
PSAwOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCBDb25uZWN0aW9u
KFNXU2VydmVyJiwgdWludDY0X3QgaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcAppbmRl
eCAwMjY3ZTQzOTRmMTQ2ZWJjMWQ4NWIyNmY1YmFiZmY1NDM3MjE1MzkxLi5hNjk4MjhiNzJlMTI3
ZWJiMGExZTNlZGRlODE5MWY0YjEwOTU0NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKQEAgLTIz
MCw3ICsyMzAsMTIgQEAgdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjphY3RpdmF0ZShTV1NlcnZlciYg
c2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmEKICAgICAvLyBSdW4gdGhlIFVw
ZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgYWN0aXZl
IHdvcmtlciBhbmQgYWN0aXZhdGluZyBhcyB0aGUgYXJndW1lbnRzLgogICAgIHJlZ2lzdHJhdGlv
bi51cGRhdGVXb3JrZXJTdGF0ZSgqcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpLCBTZXJ2aWNl
V29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpOwogICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2aWNl
IHdvcmtlciBjbGllbnQgY2xpZW50IHdob3NlIGNyZWF0aW9uIFVSTCBtYXRjaGVzIHJlZ2lzdHJh
dGlvbidzIHNjb3BlIHVybC4uLgotICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2aWNlIHdvcmtl
ciBjbGllbnQgY2xpZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb24uLi4KKworICAgIC8vIEZv
ciBlYWNoIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBjbGllbnQgd2hvIGlzIHVzaW5nIHJlZ2lzdHJh
dGlvbjoKKyAgICAvLyAtIFNldCBjbGllbnTigJlzIGFjdGl2ZSB3b3JrZXIgdG8gcmVnaXN0cmF0
aW9u4oCZcyBhY3RpdmUgd29ya2VyLgorICAgIC8vIC0gSW52b2tlIE5vdGlmeSBDb250cm9sbGVy
IENoYW5nZSBhbGdvcml0aG0gd2l0aCBjbGllbnQgYXMgdGhlIGFyZ3VtZW50LgorICAgIHJlZ2lz
dHJhdGlvbi5ub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKCk7CisKICAgICAvLyBGSVhN
RTogSW52b2tlIFJ1biBTZXJ2aWNlIFdvcmtlciBhbGdvcml0aG0gd2l0aCBhY3RpdmVXb3JrZXIg
YXMgdGhlIGFyZ3VtZW50LgogCiAgICAgLy8gUXVldWUgYSB0YXNrIHRvIGZpcmUgdGhlIGFjdGl2
YXRlIGV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA5OThjOTBiNzM1ZWU5
YjM1YTgyMzJmNjY0N2I5NzJiZTNhNDI0OWJlLi43MDYyOTY0YjlmOTdmY2U4YzcyMzhmODhmN2Ji
MmQ0ODUzN2VlZmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtMTYzLDYgKzE2
MywxNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lz
dHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZQogICAgICAgICBtX2NsaWVudHNVc2luZ1Jl
Z2lzdHJhdGlvbi5yZW1vdmUoaXRlcmF0b3IpOwogfQogCisvLyBodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci8jbm90aWZ5LWNvbnRyb2xsZXItY2hhbmdlCit2b2lkIFNXU2VydmVy
UmVnaXN0cmF0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKCkKK3sKKyAgICBB
U1NFUlQoYWN0aXZlV29ya2VyKCkpOworCisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9jbGllbnRz
VXNpbmdSZWdpc3RyYXRpb24pIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3Nl
cnZlci5nZXRDb25uZWN0aW9uKGl0ZW0ua2V5KSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPm5v
dGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoaXRlbS52YWx1ZSwgYWN0aXZlV29ya2VyKCkt
PmRhdGEoKSk7CisgICAgfQorfQorCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lz
dGVyU2VydmVyQ29ubmVjdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikK
IHsKICAgICBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMucmVtb3ZlQWxsKHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCBj
MjMxMmQ4NDA3ZWZmMDJlZDY5MjQ5YzZhNTFjMWM3NjI3ZDRjYTI1Li4wYTQwNjdjMGM1NGU4YzU3
Y2FmZDU5ZDk3OWE5MDFkMGIyMThjMTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC03
OCw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0
aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7CiAgICAgdm9pZCB1bnJl
Z2lzdGVyU2VydmVyQ29ubmVjdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cik7CiAKKyAgICB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoKTsKKwogcHJp
dmF0ZToKICAgICB2b2lkIGZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rpb248dm9p
ZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCA4NTVmNjExMmQ4ZDZkOTVmYjk4MzkxMTU3YWM5YmIzYmMzOTA4
YWNkLi4yMTA2ODBmN2EwNjk0ZjMwZmY4YmQyMGFiZWQ5OWE0MGM5OTU5NTE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTI5NCw2ICsyOTQsNyBAQCBkZWYg
Y2xhc3NfdGVtcGxhdGVfaGVhZGVycyh0ZW1wbGF0ZV9zdHJpbmcpOgogICAgIGNsYXNzX3RlbXBs
YXRlX3R5cGVzID0gewogICAgICAgICAnV2ViQ29yZTo6UmVjdEVkZ2VzJzogeydoZWFkZXJzJzog
Wyc8V2ViQ29yZS9SZWN0RWRnZXMuaD4nXSwgJ2FyZ3VtZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJB
cmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAgJ0hhc2hNYXAnOiB7J2hlYWRlcnMnOiBbJzx3
dGYvSGFzaE1hcC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29k
ZXJzLmgiJ119LAorICAgICAgICAnSGFzaFNldCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9IYXNoU2V0
Lmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCInXX0s
CiAgICAgICAgICdzdGQ6Om9wdGlvbmFsJzogeydoZWFkZXJzJzogWyc8d3RmL09wdGlvbmFsLmg+
J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCInXX0sCiAg
ICAgICAgICdPcHRpb25TZXQnOiB7J2hlYWRlcnMnOiBbJzx3dGYvT3B0aW9uU2V0Lmg+J10sICdh
cmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCInXX0sCiAgICAgICAg
ICdWZWN0b3InOiB7J2hlYWRlcnMnOiBbJzx3dGYvVmVjdG9yLmg+J10sICdhcmd1bWVudF9jb2Rl
cl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCInXX0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGMxZjE1NGUzNWUwMGIzZWY5NGNhMjIzNmE5NWU5NWNm
MDljYmUwNmIuLmJmZWM0OTJiMTM1MzQyODNiNzk4ZDIwYmY2OGFiMDdiZWQ4Zjk1YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xMDIsNiArMTAyLDExIEBA
IHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRD
b25uZWN0aW9uOjpGaXJlVXBkYXRlRm91bmRFdmVudChpZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNv
bnN0IEhhc2hTZXQ8dWludDY0X3Q+JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0cywgY29uc3QgU2Vy
dmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpOb3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRzLCBuZXdDb250cm9sbGVyKSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHdvcmtlciwgU2VydmljZVdvcmtlclN0YXRlIHN0YXRlKQogewogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6VXBkYXRlV29ya2VyU3RhdGUod29ya2VyLCBz
dGF0ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDNmMTMyNzJj
ZjYyMDU1MmRjNmVjZDdhNWFlY2ZiNzVjODliMDQ2ODQuLjAyOWVjOWFmYjA4MDM2YTA3MmNlN2Fi
NDkxMDI0MzFmZmI5YzgzMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
QEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVJlZ2lzdHJhdGlvblN0
YXRlSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0
ZVdvcmtlclN0YXRlSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBmaXJlVXBkYXRlRm91
bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmlu
YWw7CisgICAgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hT
ZXQ8dWludDY0X3Q+JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0cywgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpOwogCiAgICAgdm9pZCBzdGFydEZldGNoKHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcj4sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGVmY2Q2NWJlZGI3ZTk1YjRh
Mjk2YTA1Y2VhOTk1NTlmNjc4ZDAxNGUuLjk2NWEyZjBjZTViNDhmMjk3NzE2NDlmMWVjOTI5NDZl
N2FhZTA5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMxLDYg
KzMxLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBVcGRhdGVS
ZWdpc3RyYXRpb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25T
dGF0ZSBzdGF0ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YT4gc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpCiAgICAgVXBkYXRlV29ya2VyU3RhdGUoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGVudW0gV2ViQ29y
ZTo6U2VydmljZVdvcmtlclN0YXRlIHN0YXRlKQogICAgIEZpcmVVcGRhdGVGb3VuZEV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShIYXNoU2V0PHVpbnQ2NF90PiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0cywgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIG5l
d0NvbnRyb2xsZXIpCiAKICAgICBJbml0aWFsaXplU1dPcmlnaW5UYWJsZUFzRW1wdHkoKQogICAg
IFNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBoYW5kbGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNWNkNTYyMmVhZWNjNjU4ZTYxYjQ2OTQwNzFjYzdhN2E1NWMyMDky
NS4uODFmNzBlODUyZjY5ZGY5OGFiYmNlMjc0NTYxYzQyYmFjMWViZTE4NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE3LTExLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10gSW1wbGVtZW50ICJOb3RpZnkgQ29udHJvbGxlciBD
aGFuZ2UiIGFsZ29yaXRobQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc5ODIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jb250cm9sbGVyLWNoYW5nZS5o
dG1sOiBBZGRlZC4KKwogMjAxNy0xMS0xNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyNDkyMS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xs
ZXItY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2VkOWZl
YTA0NDIxNGZlZjRiZjI4NTIyYmYwMjY5N2EyMzhlZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTOiBmcmFtZSBoYXMgYSBjb250cm9sbGVy
CitQQVNTOiBjb250cm9sbGVyY2hhbmdlIGV2ZW50IGhhcyBiZWVuIGZpcmVkCitQQVNTOiBjb250
cm9sbGVyIGhhcyBiZWVuIHVwZGF0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjY2M2EyZDI4MDc1MTZiMTY4MTM5MWViMDU2YTViMzIxMWU2MmZlOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xs
ZXItY2hhbmdlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorbGV0IGluaXRpYWxDb250cm9sbGVyID0gbnVsbDsKKworZnVuY3Rpb24gbGlz
dGVuRm9yQ29udHJvbGxlckNoYW5nZShmcmFtZSkKK3sKKyAgICBmcmFtZS5jb250ZW50V2luZG93
Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRyb2xsZXJjaGFu
Z2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgbG9nKCJQQVNTOiBjb250cm9sbGVyY2hhbmdlIGV2
ZW50IGhhcyBiZWVuIGZpcmVkIik7CisKKyAgICAgICAgbGV0IG5ld0NvbnRyb2xsZXIgPSBmcmFt
ZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXI7CisgICAg
ICAgIGlmIChuZXdDb250cm9sbGVyICE9IG51bGwgJiYgbmV3Q29udHJvbGxlciAhPSBpbml0aWFs
Q29udHJvbGxlcikKKyAgICAgICAgICAgICBsb2coIlBBU1M6IGNvbnRyb2xsZXIgaGFzIGJlZW4g
dXBkYXRlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICAgbG9nKCJGQUlMOiBjb250cm9s
bGVyIGhhcyBub3QgYmVlbiB1cGRhdGVkIik7CisKKyAgICAgICAgZmluaXNoU1dUZXN0KCk7Cisg
ICAgfSk7Cit9CisKK2Z1bmN0aW9uIHdpdGhGcmFtZShzY29wZVVSTCkKK3sKKyAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgbGV0IGZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CisgICAgICAgIGZyYW1lLnNyYyA9IHNjb3BlVVJMOwor
ICAgICAgICBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsgcmVzb2x2ZShmcmFtZSk7IH07Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCith
c3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGxldCBzY29wZVVSTCA9ICIvIjsKKyAgICBsZXQg
cmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJl
c291cmNlcy9zZXJ2aWNlLXdvcmtlci1mZXRjaC13b3JrZXIuanMiLCB7IHNjb3BlOiBzY29wZVVS
TCB9KTsKKyAgICBhd2FpdCB3YWl0Rm9yU3RhdGUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICJh
Y3RpdmF0ZWQiKTsKKyAgICBsZXQgZnJhbWUgPSBhd2FpdCB3aXRoRnJhbWUoc2NvcGVVUkwpOwor
ICAgIGluaXRpYWxDb250cm9sbGVyID0gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5jb250cm9sbGVyOworICAgIGlmIChpbml0aWFsQ29udHJvbGxlciA9PT0gbnVs
bCkgeworICAgICAgICBsb2coIkZBSUw6IGZyYW1lIGRvZXMgbm90IGhhdmUgYSBjb250cm9sbGVy
Iik7CisgICAgICAgIGZpbmlzaFNXVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbG9nKCJQQVNTOiBmcmFtZSBoYXMgYSBjb250cm9sbGVyIik7CisgICAgCisgICAgbGlzdGVu
Rm9yQ29udHJvbGxlckNoYW5nZShmcmFtZSk7CisgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOwor
fQorCit0ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327293</attachid>
            <date>2017-11-17 18:25:26 -0800</date>
            <delta_ts>2017-11-17 18:28:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179822-20171117182525.patch</filename>
            <type>text/plain</type>
            <size>20047</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY3M2EyMzRiZDhiYzk0
ZDA2ZjU1M2YyMTJkMzk3NTQ0OGMxY2QzNS4uNGZjZTY3MmZlMTdhY2ZjNmMwMGY3NTEwYWVkNDY5
ZTdiNTY2NWE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTExLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10g
SW1wbGVtZW50ICJOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UiIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODIyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBJbXBsZW1lbnQgIk5vdGlmeSBD
b250cm9sbGVyIENoYW5nZSIgYWxnb3JpdGhtOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyLyNub3RpZnktY29udHJvbGxlci1jaGFuZ2UKKworICAgICAgICBV
c2UgaXQgdG8gc3VwcG9ydCBzdGVwIDcgb2YgIkFjdGl2YXRlIiBhbGdvcml0aG06CisgICAgICAg
IC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2FjdGl2YXRlCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UuaHRt
bAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2NoZWR1bGVUYXNr
VG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29u
bmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Sm9iUXVldWU6OmFjdGl2YXRlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6CisKIDIwMTctMTEtMTcg
IENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogVm9p
Y2VPdmVyIGluIFNhZmFyaSBkb2VzIG5vdCByZWFkIHRhYmxlIGhlYWRlciBmb3IgZmlyc3QgY2Vs
bCBpbiBmaXJzdCBib2R5IHJvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZmU1Y2VjZjE2OWQzYWYyZWIyNGRjM2Uy
NjQ0OGNmMDEzYmRjMTRkLi4yNjg2NmM1NGFjN2ZlNGJlYzA1ZTJlNjllNGU1NzlkNmRhOTAxMTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTExLTE3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10gSW1wbGVtZW50ICJO
b3RpZnkgQ29udHJvbGxlciBDaGFuZ2UiIGFsZ29yaXRobQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Ogor
ICAgICAgICAoY2xhc3NfdGVtcGxhdGVfaGVhZGVycyk6CisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246Om5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFu
Z2UpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxNy0xMS0xNiAgWW91c3VrZSBLaW1vdG8gIDx5b3Vz
dWtlLmtpbW90b0Bzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIEFkZCBuZXR3b3JrIChj
dXJsKSBmaWxlcyBmb3Igd2luY2Fpcm8gd2Via2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggNjc5
YjBkN2UyNDg3YWQ3YjEzZDdiNDY1ODRjNmE4OTUzMWIzMjg2ZS4uODk2ZDQzZDc2MzRmMjc0YjAz
ZDk4ZjEwZTQ4NmIyZmEwNWIzNTgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtNDExLDYgKzQx
MSwxOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlbW92ZVJlZ2lzdHJhdGlvbihT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJiByZWdpcwogICAgIG1fcmVnaXN0cmF0aW9ucy5yZW1v
dmUocmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlckNv
bnRhaW5lcjo6c2NoZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50KCkKK3sKKyAg
ICBpZiAobV9pc1N0b3BwZWQpCisgICAgICAgIHJldHVybjsKKworICAgIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgICAgICBpZiAobV9pc1N0
b3BwZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb250cm9sbGVyY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCA0MWU5MmU5ZWMxNTZjYmIz
MGUxMWRkYmI4OWYyNmM1NzVlZGZmOGIwLi5kODE2YmUyMjBhMDIzZWFkMjdjMzRmZDUyNTUwMWY5
NzgxNzI1ZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTY3LDYgKzY3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZ2V0UmVnaXN0cmF0aW9uKGNvbnN0IFN0cmluZyYgY2xpZW50VVJMLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlVGFza1RvVXBkYXRlUmVnaXN0cmF0aW9u
U3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4m
KTsKICAgICB2b2lkIHNjaGVkdWxlVGFza1RvRmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgc2NoZWR1bGVUYXNrVG9GaXJl
Q29udHJvbGxlckNoYW5nZUV2ZW50KCk7CiAKICAgICB1c2luZyBSZWdpc3RyYXRpb25zUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbj4+PjsKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoUmVnaXN0cmF0
aW9uc1Byb21pc2UmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYjI5NTk2NGI0YjVh
MTk0OGM0Y2UwYjViOTNmZGQ0NjY2N2ExZWJjOS4uMWE1NzQyN2Y4ZDY5OTE1NDU4NDU1NzZhNjQ0
YWZkMzE3MmE0YTc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMTY1LDYgKzE2NSwy
NCBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZQogICAgIH0pOwogfQogCit2b2lkIFNXQ2xpZW50
Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0
PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMsIFNlcnZpY2VXb3JrZXJEYXRhJiYg
bmV3Q29udHJvbGxlcikKK3sKKyAgICBBU1NFUlQoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzLmlz
RW1wdHkoKSk7CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudElkZW50aWZpZXIgOiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0cykgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCB3b3JrZXIgY29udGV4
dHMuCisgICAgICAgIGF1dG8qIGNsaWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5n
ZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIGlmICghY2xpZW50KQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgQVNTRVJUKGNsaWVudC0+YWN0aXZlU2VydmljZVdvcmtlcigp
KTsKKyAgICAgICAgQVNTRVJUKGNsaWVudC0+YWN0aXZlU2VydmljZVdvcmtlcigpLT5pZGVudGlm
aWVyKCkgIT0gbmV3Q29udHJvbGxlci5pZGVudGlmaWVyKTsKKyAgICAgICAgY2xpZW50LT5zZXRB
Y3RpdmVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXI6OmdldE9yQ3JlYXRlKCpjbGllbnQsIFNl
cnZpY2VXb3JrZXJEYXRhIHsgbmV3Q29udHJvbGxlciB9KSk7CisgICAgICAgIGlmIChhdXRvKiBj
b250YWluZXIgPSBjbGllbnQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIoKSkKKyAgICAgICAgICAg
IGNvbnRhaW5lci0+c2NoZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50KCk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBhOWU5ZDkwZjllOWFjMWJmZTRk
OTlkMDk5MDAyOWZiMjUxMTAxMmVmLi4zZTYzZDI5ZjE2ZTFhZDhhMWUyYmRiNDY2YzE2Yjc1N2Fl
YTFjZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHJvdGVjdGVk
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25T
dGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4mKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyU3RhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZVVwZGF0
ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBI
YXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMsIFNlcnZpY2VXb3JrZXJE
YXRhJiYgbmV3Q29udHJvbGxlcik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggMmY4
YjAyYTFlNDViNjExZmQ5MGRjZDdkNjg0Mzc2ZmU2MDI3NTliMS4uYTYyM2ZmMTY5NDVlZTMwYWQx
Yjk1YTg3MmNjMzUzYjMyZTk2MTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50KFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3Rh
dGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+JikgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgU2VydmljZVdvcmtlclN0YXRlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBm
aXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5n
ZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMsIGNvbnN0
IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIENvbm5lY3Rpb24oU1dTZXJ2ZXImLCB1aW50NjRfdCBp
ZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IDAyNjdlNDM5NGYxNDZlYmMxZDg1
YjI2ZjViYWJmZjU0MzcyMTUzOTEuLjgyNDJhMGYwYzJhOWFmNzI4M2Y3MjVhYTliMDcxZGE5ZjVj
Yjc5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcApAQCAtMjMwLDcgKzIzMCwxMiBAQCB2b2lkIFNX
U2VydmVySm9iUXVldWU6OmFjdGl2YXRlKFNXU2VydmVyJiBzZXJ2ZXIsIFNXU2VydmVyUmVnaXN0
cmF0aW9uJiByZWdpc3RyYQogICAgIC8vIFJ1biB0aGUgVXBkYXRlIFdvcmtlciBTdGF0ZSBhbGdv
cml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGFuZCBhY3RpdmF0aW5n
IGFzIHRoZSBhcmd1bWVudHMuCiAgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKCpy
ZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGlu
Zyk7CiAgICAgLy8gRklYTUU6IEZvciBlYWNoIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBjbGllbnQg
d2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0cmF0aW9uJ3Mgc2NvcGUgdXJsLi4uCi0g
ICAgLy8gRklYTUU6IEZvciBlYWNoIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBjbGllbnQgd2hvIGlz
IHVzaW5nIHJlZ2lzdHJhdGlvbi4uLgorCisgICAgLy8gRm9yIGVhY2ggc2VydmljZSB3b3JrZXIg
Y2xpZW50IGNsaWVudCB3aG8gaXMgdXNpbmcgcmVnaXN0cmF0aW9uOgorICAgIC8vIC0gU2V0IGNs
aWVudCdzIGFjdGl2ZSB3b3JrZXIgdG8gcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlci4KKyAg
ICAvLyAtIEludm9rZSBOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UgYWxnb3JpdGhtIHdpdGggY2xp
ZW50IGFzIHRoZSBhcmd1bWVudC4KKyAgICByZWdpc3RyYXRpb24ubm90aWZ5Q2xpZW50c09mQ29u
dHJvbGxlckNoYW5nZSgpOworCiAgICAgLy8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBXb3Jr
ZXIgYWxnb3JpdGhtIHdpdGggYWN0aXZlV29ya2VyIGFzIHRoZSBhcmd1bWVudC4KIAogICAgIC8v
IFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBhY3RpdmF0ZSBldmVudC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAKaW5kZXggOTk4YzkwYjczNWVlOWIzNWE4MjMyZjY2NDdiOTcyYmUzYTQyNDli
ZS4uNzA2Mjk2NGI5Zjk3ZmNlOGM3MjM4Zjg4ZjdiYjJkNDg1MzdlZWZmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5jcHAKQEAgLTE2Myw2ICsxNjMsMTcgQEAgdm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtl
ckNsaWUKICAgICAgICAgbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24ucmVtb3ZlKGl0ZXJhdG9y
KTsKIH0KIAorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI25vdGlmeS1j
b250cm9sbGVyLWNoYW5nZQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6bm90aWZ5Q2xpZW50
c09mQ29udHJvbGxlckNoYW5nZSgpCit7CisgICAgQVNTRVJUKGFjdGl2ZVdvcmtlcigpKTsKKwor
ICAgIGZvciAoYXV0byYgaXRlbSA6IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uKSB7CisgICAg
ICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zZXJ2ZXIuZ2V0Q29ubmVjdGlvbihpdGVtLmtl
eSkpCisgICAgICAgICAgICBjb25uZWN0aW9uLT5ub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hh
bmdlKGl0ZW0udmFsdWUsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOworICAgIH0KK30KKwogdm9p
ZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24odWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgbV9jb25uZWN0aW9uc1dpdGhD
bGllbnRSZWdpc3RyYXRpb25zLnJlbW92ZUFsbChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyUmVnaXN0cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKaW5kZXggYzIzMTJkODQwN2VmZjAyZWQ2OTI0OWM2YTUx
YzFjNzYyN2Q0Y2EyNS4uMGE0MDY3YzBjNTRlOGM1N2NhZmQ1OWQ5NzlhOTAxZDBiMjE4YzE0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtNzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciYpOwogICAgIHZvaWQgdW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24odWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCisgICAgdm9pZCBub3RpZnlDbGll
bnRzT2ZDb250cm9sbGVyQ2hhbmdlKCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCBmb3JFYWNoQ29u
bmVjdGlvbihjb25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mKT4m
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggODU1ZjYx
MTJkOGQ2ZDk1ZmI5ODM5MTE1N2FjOWJiM2JjMzkwOGFjZC4uMjEwNjgwZjdhMDY5NGYzMGZmOGJk
MjBhYmVkOTlhNDBjOTk1OTUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yOTQsNiArMjk0LDcgQEAgZGVmIGNsYXNzX3RlbXBsYXRlX2hlYWRlcnModGVt
cGxhdGVfc3RyaW5nKToKICAgICBjbGFzc190ZW1wbGF0ZV90eXBlcyA9IHsKICAgICAgICAgJ1dl
YkNvcmU6OlJlY3RFZGdlcyc6IHsnaGVhZGVycyc6IFsnPFdlYkNvcmUvUmVjdEVkZ2VzLmg+J10s
ICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCInXX0sCiAgICAg
ICAgICdIYXNoTWFwJzogeydoZWFkZXJzJzogWyc8d3RmL0hhc2hNYXAuaD4nXSwgJ2FyZ3VtZW50
X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKKyAgICAgICAgJ0hhc2hT
ZXQnOiB7J2hlYWRlcnMnOiBbJzx3dGYvSGFzaFNldC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVh
ZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnc3RkOjpvcHRpb25hbCc6
IHsnaGVhZGVycyc6IFsnPHd0Zi9PcHRpb25hbC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVy
cyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnT3B0aW9uU2V0JzogeydoZWFk
ZXJzJzogWyc8d3RmL09wdGlvblNldC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsn
IkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnVmVjdG9yJzogeydoZWFkZXJzJzogWyc8
d3RmL1ZlY3Rvci5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29k
ZXJzLmgiJ119LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBj
MWYxNTRlMzVlMDBiM2VmOTRjYTIyMzZhOTVlOTVjZjA5Y2JlMDZiLi5iZmVjNDkyYjEzNTM0Mjgz
Yjc5OGQyMGJmNjhhYjA3YmVkOGY5NWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcApAQCAtMTAyLDYgKzEwMiwxMSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6RmlyZVVwZGF0ZUZvdW5k
RXZlbnQoaWRlbnRpZmllcikpOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6bm90
aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dHMsIGNvbnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9s
bGVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Tm90aWZ5
Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShzY3JpcHRFeGVjdXRpb25Db250ZXh0cywgbmV3Q29u
dHJvbGxlcikpOworfQorCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dXBkYXRlV29ya2Vy
U3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXIsIFNlcnZpY2VXb3Jr
ZXJTdGF0ZSBzdGF0ZSkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OlVwZGF0ZVdvcmtlclN0YXRlKHdvcmtlciwgc3RhdGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaAppbmRleCAzZjEzMjcyY2Y2MjA1NTJkYzZlY2Q3YTVhZWNmYjc1Yzg5
YjA0Njg0Li4wMjllYzlhZmIwODAzNmEwNzJjZTdhYjQ5MTAyNDMxZmZiOWM4MzJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtl
ckRhdGE+JikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVXb3JrZXJTdGF0ZUluQ2xpZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3RhdGUp
IGZpbmFsOwogICAgIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5Q2xpZW50
c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dHMsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9s
bGVyKTsKIAogICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25z
dCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgppbmRleCBlZmNkNjViZWRiN2U5NWI0YTI5NmEwNWNlYTk5NTU5ZjY3OGQwMTRlLi45
NjVhMmYwY2U1YjQ4ZjI5NzcxNjQ5ZjFlYzkyOTQ2ZTdhYWUwOTRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMSw2ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNX
Q2xpZW50Q29ubmVjdGlvbiB7CiAgICAgVXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bSBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUgc3RhdGUsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGE+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogICAg
IFVwZGF0ZVdvcmtlclN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0
ZSkKICAgICBGaXJlVXBkYXRlRm91bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIE5vdGlmeUNsaWVudHNPZkNvbnRyb2xs
ZXJDaGFuZ2UoSGFzaFNldDx1aW50NjRfdD4gc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMsIHN0cnVj
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBuZXdDb250cm9sbGVyKQogCiAgICAgSW5pdGlh
bGl6ZVNXT3JpZ2luVGFibGVBc0VtcHR5KCkKICAgICBTZXRTV09yaWdpblRhYmxlU2hhcmVkTWVt
b3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2NWUxZmQ4
ODBkYTNhOWUxMDgyZmEyNzNhMmUwZTQ3NmMwZGM5NzguLjdkZjExYTMzODBmYzg5MjliNzI5ZWIw
ZjQxOTQ1MDk5YzFlMTI0NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0xMS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtTZXJ2aWNlIFdvcmtlcnNd
IEltcGxlbWVudCAiTm90aWZ5IENvbnRyb2xsZXIgQ2hhbmdlIiBhbGdvcml0aG0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTgyMgorCisgICAgICAg
IFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNv
dmVyYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxl
ci1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9jb250cm9sbGVyLWNoYW5nZS5odG1sOiBBZGRlZC4KKwogMjAxNy0xMS0xNyAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIHN2Zy9p
bi1odG1sL2J5LXJlZmVyZW5jZS5odG1sIGFzIGZsYWt5IG9uIGlPUy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRy
b2xsZXItY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2VkOWZlYTA0NDIxNGZlZjRi
ZjI4NTIyYmYwMjY5N2EyMzhlZTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitQQVNTOiBmcmFtZSBoYXMgYSBjb250cm9sbGVyCitQQVNTOiBjb250
cm9sbGVyY2hhbmdlIGV2ZW50IGhhcyBiZWVuIGZpcmVkCitQQVNTOiBjb250cm9sbGVyIGhhcyBi
ZWVuIHVwZGF0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTYxYjcx
ZGMzODAzMTRkMDk3NWNkYTNlOWY3M2JlYjI2ZTFlYTg1NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLmh0
bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
bGV0IGluaXRpYWxDb250cm9sbGVyID0gbnVsbDsKKworZnVuY3Rpb24gbGlzdGVuRm9yQ29udHJv
bGxlckNoYW5nZShmcmFtZSkKK3sKKyAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRyb2xsZXJjaGFuZ2UiLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgbG9nKCJQQVNTOiBjb250cm9sbGVyY2hhbmdlIGV2ZW50IGhhcyBiZWVu
IGZpcmVkIik7CisKKyAgICAgICAgbGV0IG5ld0NvbnRyb2xsZXIgPSBmcmFtZS5jb250ZW50V2lu
ZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXI7CisgICAgICAgIGlmIChuZXdD
b250cm9sbGVyICE9IG51bGwgJiYgbmV3Q29udHJvbGxlciAhPSBpbml0aWFsQ29udHJvbGxlcikK
KyAgICAgICAgICAgICBsb2coIlBBU1M6IGNvbnRyb2xsZXIgaGFzIGJlZW4gdXBkYXRlZCIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgbG9nKCJGQUlMOiBjb250cm9sbGVyIGhhcyBub3Qg
YmVlbiB1cGRhdGVkIik7CisKKyAgICAgICAgZmluaXNoU1dUZXN0KCk7CisgICAgfSk7Cit9CisK
K2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgbGV0IHNjb3BlVVJMID0gIi8iOworICAgIGxl
dCByZWdpc3RyYXRpb24gPSBhd2FpdCByZWdpc3RlckFuZFdhaXRGb3JBY3RpdmUoInJlc291cmNl
cy9zZXJ2aWNlLXdvcmtlci1mZXRjaC13b3JrZXIuanMiLCBzY29wZVVSTCk7CisgICAgbGV0IGZy
YW1lID0gYXdhaXQgd2l0aEZyYW1lKHNjb3BlVVJMKTsKKyAgICBpbml0aWFsQ29udHJvbGxlciA9
IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcjsK
KyAgICBpZiAoaW5pdGlhbENvbnRyb2xsZXIgPT09IG51bGwpIHsKKyAgICAgICAgbG9nKCJGQUlM
OiBmcmFtZSBkb2VzIG5vdCBoYXZlIGEgY29udHJvbGxlciIpOworICAgICAgICBmaW5pc2hTV1Rl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGxvZygiUEFTUzogZnJhbWUgaGFz
IGEgY29udHJvbGxlciIpOworICAgIAorICAgIGxpc3RlbkZvckNvbnRyb2xsZXJDaGFuZ2UoZnJh
bWUpOworICAgIHJlZ2lzdHJhdGlvbi51cGRhdGUoKTsKK30KKwordGVzdCgpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMKaW5kZXggZWQy
YTllNzJlNzQyYjgxZTI4MjJlODJkNGM2YWZjOWY5NWEwMjBhZi4uYmQ2MDg2NGZjNzczNTk1NDEx
NDgwY2EwNGFlNzM3OTE3ODllYWI4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zdy10ZXN0LXByZS5qcwpA
QCAtMzksMjkgKzM5LDM3IEBAIGZ1bmN0aW9uIGZpbmlzaFNXVGVzdCgpCiAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogfQogCi1hc3luYyBmdW5jdGlvbiBpbnRlcmNlcHRlZEZyYW1l
KHdvcmtlclVSTCwgc2NvcGVVUkwpCitmdW5jdGlvbiB3aXRoRnJhbWUoc2NvcGVVUkwpCiB7Ci0g
ICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKHdvcmtlclVSTCwgeyBzY29wZSA6IHNjb3BlVVJMIH0pOwotICAgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4gewotICAgICAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZSkKLSAgICAg
ICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmc7Ci0gICAgICAgIGlmICh3b3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQotICAgICAgICAg
ICAgcmVzb2x2ZSgpOwotICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFu
Z2UiLCAoKSA9PiB7Ci0gICAgICAgICAgICBpZiAod29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVk
IikKLSAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0g
ICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAgICAgIHZhciBm
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBsZXQgZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpZnJhbWUnKTsKICAgICAgICAgZnJhbWUuc3JjID0gc2NvcGVVUkw7CiAgICAg
ICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyByZXNvbHZlKGZyYW1lKTsgfTsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CiAgICAgfSk7CiB9CiAKK2Z1bmN0
aW9uIHJlZ2lzdGVyQW5kV2FpdEZvckFjdGl2ZSh3b3JrZXJVUkwsIHNjb3BlVVJMKQoreworICAg
IHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJVUkwsIHsgc2Nv
cGUgOiBzY29wZVVSTCB9KS50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBpZiAocmVnaXN0cmF0
aW9uLmFjdGl2ZSkKKyAgICAgICAgICAgICAgICByZXNvbHZlKHJlZ2lzdHJhdGlvbik7CisgICAg
ICAgICAgICB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAgICAgICAgIHdv
cmtlci5hZGRFdmVudExpc3RlbmVyKCJzdGF0ZWNoYW5nZSIsICgpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAod29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikKKyAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZShyZWdpc3RyYXRpb24pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiBpbnRlcmNlcHRlZEZyYW1lKHdvcmtlclVSTCwg
c2NvcGVVUkwpCit7CisgICAgYXdhaXQgcmVnaXN0ZXJBbmRXYWl0Rm9yQWN0aXZlKHdvcmtlclVS
TCwgc2NvcGVVUkwpOworICAgIHJldHVybiBhd2FpdCB3aXRoRnJhbWUoc2NvcGVVUkwpOworfQor
CiBmdW5jdGlvbiBnYygpIHsKICAgICBpZiAodHlwZW9mIEdDQ29udHJvbGxlciAhPT0gInVuZGVm
aW5lZCIpCiAgICAgICAgIEdDQ29udHJvbGxlci5jb2xsZWN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327294</attachid>
            <date>2017-11-17 18:28:57 -0800</date>
            <delta_ts>2017-11-17 19:42:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179822-20171117182857.patch</filename>
            <type>text/plain</type>
            <size>19997</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFhOTRkNzM2YWM2ZDE4
MGY4ZTMyYzVmNTE1OWI5YWMyNTcxMDY1MS4uYjhlOWY3NjUwNmI4ZTE2NzI3MjA0NmIzZWYxZDc4
OTA2MGU2MWI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE3LTExLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1NlcnZpY2UgV29ya2Vyc10g
SW1wbGVtZW50ICJOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UiIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODIyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBJbXBsZW1lbnQgIk5vdGlmeSBD
b250cm9sbGVyIENoYW5nZSIgYWxnb3JpdGhtOgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyLyNub3RpZnktY29udHJvbGxlci1jaGFuZ2UKKworICAgICAgICBV
c2UgaXQgdG8gc3VwcG9ydCBzdGVwIDcgb2YgIkFjdGl2YXRlIiBhbGdvcml0aG06CisgICAgICAg
IC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2FjdGl2YXRlCisKKyAgICAg
ICAgVGVzdDogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UuaHRt
bAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2NoZWR1bGVUYXNr
VG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29u
bmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Sm9iUXVldWU6OmFjdGl2YXRlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6CisKIDIwMTctMTEtMTcg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSBzdHJvbmds
eSB0eXBlZCBpZGVudGlmaWVyIGZvciBTV1NlcnZlcjo6Q29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
ZjRiYjczZjA5MWY2YTIzZDE3Y2Q1MzZiZWEyNTMzODg0MzgyNWIzLi43NjYzZWQzNmIxNDFiMGEx
ZTg4NjhmOGNhYTkwYzJjMDk0MzZkNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3
LTExLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1NlcnZp
Y2UgV29ya2Vyc10gSW1wbGVtZW50ICJOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UiIGFsZ29yaXRo
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODIy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoY2xhc3NfdGVtcGxhdGVfaGVhZGVycyk6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246Om5vdGlm
eUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxNy0xMS0x
NyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIHN0cm9u
Z2x5IHR5cGVkIGlkZW50aWZpZXIgZm9yIFNXU2VydmVyOjpDb25uZWN0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5jcHAKaW5kZXggMGZkMzAwZmQ2ZDY1ODY4NjQ0N2M0NjI1NDJkNjM2ZDM0NTE3NGE0OC4uYmY5
N2VmZTgyYTJhNWFmOTM0ZWM5YWI2MDNjMmJlMWIwOTlhOGNhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cApAQCAtNDExLDYgKzQxMSwxOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlbW92
ZVJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJiByZWdpcwogICAgIG1fcmVn
aXN0cmF0aW9ucy5yZW1vdmUocmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSk7CiB9CiAKK3ZvaWQg
U2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2NoZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNoYW5n
ZUV2ZW50KCkKK3sKKyAgICBpZiAobV9pc1N0b3BwZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+cG9zdFRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAg
ICAgICBpZiAobV9pc1N0b3BwZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZGlz
cGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5jb250cm9sbGVyY2hhbmdlRXZl
bnQsIGZhbHNlLCBmYWxzZSkpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCBi
OGQ1ODc2YWExOWE3NzM5NDVkZTI2NDk1ZGJkZDQ2NzZjMWI2ZmM5Li42MmJkNGRiZmQ5YzcwNmZk
Y2I3YWUwODRlNTExYTQyMmI3OTkzOTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTY3LDYgKzY3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9uKGNvbnN0IFN0cmluZyYgY2xpZW50
VVJMLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlVGFza1RvVXBk
YXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyRGF0YT4mKTsKICAgICB2b2lkIHNjaGVkdWxlVGFza1RvRmlyZVVwZGF0ZUZvdW5k
RXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgc2No
ZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50KCk7CiAKICAgICB1c2luZyBSZWdp
c3RyYXRpb25zUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExJbnRl
cmZhY2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+PjsKICAgICB2b2lkIGdldFJlZ2lzdHJh
dGlvbnMoUmVnaXN0cmF0aW9uc1Byb21pc2UmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5k
ZXggYjI5NTk2NGI0YjVhMTk0OGM0Y2UwYjViOTNmZGQ0NjY2N2ExZWJjOS4uMWE1NzQyN2Y4ZDY5
OTE1NDU4NDU1NzZhNjQ0YWZkMzE3MmE0YTc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcApA
QCAtMTY1LDYgKzE2NSwyNCBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmlyZVVwZGF0ZUZv
dW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZQogICAgIH0pOwogfQog
Cit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5n
ZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMsIFNlcnZp
Y2VXb3JrZXJEYXRhJiYgbmV3Q29udHJvbGxlcikKK3sKKyAgICBBU1NFUlQoIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRzLmlzRW1wdHkoKSk7CisKKyAgICBmb3IgKGF1dG8mIGNsaWVudElkZW50aWZp
ZXIgOiBzY3JpcHRFeGVjdXRpb25Db250ZXh0cykgeworICAgICAgICAvLyBGSVhNRTogU3VwcG9y
dCB3b3JrZXIgY29udGV4dHMuCisgICAgICAgIGF1dG8qIGNsaWVudCA9IERvY3VtZW50OjphbGxE
b2N1bWVudHNNYXAoKS5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgICAgIGlmICghY2xpZW50
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgQVNTRVJUKGNsaWVudC0+YWN0aXZl
U2VydmljZVdvcmtlcigpKTsKKyAgICAgICAgQVNTRVJUKGNsaWVudC0+YWN0aXZlU2VydmljZVdv
cmtlcigpLT5pZGVudGlmaWVyKCkgIT0gbmV3Q29udHJvbGxlci5pZGVudGlmaWVyKTsKKyAgICAg
ICAgY2xpZW50LT5zZXRBY3RpdmVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXI6OmdldE9yQ3Jl
YXRlKCpjbGllbnQsIFNlcnZpY2VXb3JrZXJEYXRhIHsgbmV3Q29udHJvbGxlciB9KSk7CisgICAg
ICAgIGlmIChhdXRvKiBjb250YWluZXIgPSBjbGllbnQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIo
KSkKKyAgICAgICAgICAgIGNvbnRhaW5lci0+c2NoZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNo
YW5nZUV2ZW50KCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA3MzQz
MmEyMzYyY2QxNDcwNmZhYTM0MzEyMmU0Yzg1ZjQ5MTkzNjRkLi40YTIzMjllZDllNjQ4NjcwZjhm
MTU0MGZlMmFlM2U3NDBmMTlhYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTg2LDYgKzg2
LDcgQEAgcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0
YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyU3RhdGUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxl
ckNoYW5nZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dHMs
IFNlcnZpY2VXb3JrZXJEYXRhJiYgbmV3Q29udHJvbGxlcik7CiAKIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEm
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKaW5kZXggZmMzZDcxNDg2ZGJjNGI1MTMyYmVjNzRhNTI0NDg2MWJiNTNiYTVjMy4uODFi
ZTAxMmM5YjlhZjgyZDI3ZGM1YmJiODFlOGYxYmNjNWJhZTA1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNzMsNiArNzMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUlu
Q2xpZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+
JikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclN0YXRlKSA9IDA7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllcikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50c09m
Q29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PHVpbnQ2NF90PiYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dHMsIGNvbnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKSA9IDA7CiAK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENvbm5lY3Rp
b24oU1dTZXJ2ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmluZGV4IDAyNjdlNDM5NGYxNDZlYmMx
ZDg1YjI2ZjViYWJmZjU0MzcyMTUzOTEuLjgyNDJhMGYwYzJhOWFmNzI4M2Y3MjVhYTliMDcxZGE5
ZjVjYjc5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJKb2JRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVlLmNwcApAQCAtMjMwLDcgKzIzMCwxMiBAQCB2b2lk
IFNXU2VydmVySm9iUXVldWU6OmFjdGl2YXRlKFNXU2VydmVyJiBzZXJ2ZXIsIFNXU2VydmVyUmVn
aXN0cmF0aW9uJiByZWdpc3RyYQogICAgIC8vIFJ1biB0aGUgVXBkYXRlIFdvcmtlciBTdGF0ZSBh
bGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGFuZCBhY3RpdmF0
aW5nIGFzIHRoZSBhcmd1bWVudHMuCiAgICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRl
KCpyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZh
dGluZyk7CiAgICAgLy8gRklYTUU6IEZvciBlYWNoIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBjbGll
bnQgd2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0cmF0aW9uJ3Mgc2NvcGUgdXJsLi4u
Ci0gICAgLy8gRklYTUU6IEZvciBlYWNoIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBjbGllbnQgd2hv
IGlzIHVzaW5nIHJlZ2lzdHJhdGlvbi4uLgorCisgICAgLy8gRm9yIGVhY2ggc2VydmljZSB3b3Jr
ZXIgY2xpZW50IGNsaWVudCB3aG8gaXMgdXNpbmcgcmVnaXN0cmF0aW9uOgorICAgIC8vIC0gU2V0
IGNsaWVudCdzIGFjdGl2ZSB3b3JrZXIgdG8gcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlci4K
KyAgICAvLyAtIEludm9rZSBOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UgYWxnb3JpdGhtIHdpdGgg
Y2xpZW50IGFzIHRoZSBhcmd1bWVudC4KKyAgICByZWdpc3RyYXRpb24ubm90aWZ5Q2xpZW50c09m
Q29udHJvbGxlckNoYW5nZSgpOworCiAgICAgLy8gRklYTUU6IEludm9rZSBSdW4gU2VydmljZSBX
b3JrZXIgYWxnb3JpdGhtIHdpdGggYWN0aXZlV29ya2VyIGFzIHRoZSBhcmd1bWVudC4KIAogICAg
IC8vIFF1ZXVlIGEgdGFzayB0byBmaXJlIHRoZSBhY3RpdmF0ZSBldmVudC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJl
Z2lzdHJhdGlvbi5jcHAKaW5kZXggNjIzMGFiMmJhNDczMjQ5MjMxNDc0OGI4Y2VkM2QwYmQ0Yjhj
MDA2Yy4uODkwNTZkNGUzZTdmYWRlMDk5ODQzZjgzOWVjNzI4YmJmMzQ0N2QyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTE2Myw2ICsxNjMsMTcgQEAgdm9pZCBTV1NlcnZlclJl
Z2lzdHJhdGlvbjo6cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdv
cmtlckNsaWUKICAgICAgICAgbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24ucmVtb3ZlKGl0ZXJh
dG9yKTsKIH0KIAorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI25vdGlm
eS1jb250cm9sbGVyLWNoYW5nZQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6bm90aWZ5Q2xp
ZW50c09mQ29udHJvbGxlckNoYW5nZSgpCit7CisgICAgQVNTRVJUKGFjdGl2ZVdvcmtlcigpKTsK
KworICAgIGZvciAoYXV0byYgaXRlbSA6IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uKSB7Cisg
ICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zZXJ2ZXIuZ2V0Q29ubmVjdGlvbihpdGVt
LmtleSkpCisgICAgICAgICAgICBjb25uZWN0aW9uLT5ub3RpZnlDbGllbnRzT2ZDb250cm9sbGVy
Q2hhbmdlKGl0ZW0udmFsdWUsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOworICAgIH0KK30KKwog
dm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24oU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKIHsK
ICAgICBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMucmVtb3ZlQWxsKHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCA0ZmMz
YzlkODViYTkzNDkyOGMwOGJmMDBlY2Y0ZGNiNGZhNWI4ODhiLi4xYjhiNTA1NTk1ODJkMTA4MjI3
NGE5YTljN2VhMjNjMTEwNzJkMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC03OCw2
ICs3OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9u
KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyU2VydmVyQ29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAorICAg
IHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSgpOworCiBwcml2YXRlOgogICAg
IHZvaWQgZm9yRWFjaENvbm5lY3Rpb24oY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVy
OjpDb25uZWN0aW9uJik+Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CmluZGV4IGFmNmUzMzJhOTU0Y2YzY2NkZmJmZWMxOTkzZDVjYmZiNjc4OGM5NDEuLmIzMzY4
NmIzMGEzZDRmNDMyODFhN2E4OTEzZWM2YzIxMzQ1YWFjYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzAwLDYgKzMwMCw3IEBAIGRlZiBjbGFzc190ZW1w
bGF0ZV9oZWFkZXJzKHRlbXBsYXRlX3N0cmluZyk6CiAgICAgY2xhc3NfdGVtcGxhdGVfdHlwZXMg
PSB7CiAgICAgICAgICdXZWJDb3JlOjpSZWN0RWRnZXMnOiB7J2hlYWRlcnMnOiBbJzxXZWJDb3Jl
L1JlY3RFZGdlcy5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29k
ZXJzLmgiJ119LAogICAgICAgICAnSGFzaE1hcCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9IYXNoTWFw
Lmg+J10sICdhcmd1bWVudF9jb2Rlcl9oZWFkZXJzJzogWyciQXJndW1lbnRDb2RlcnMuaCInXX0s
CisgICAgICAgICdIYXNoU2V0JzogeydoZWFkZXJzJzogWyc8d3RmL0hhc2hTZXQuaD4nXSwgJ2Fy
Z3VtZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAg
J3N0ZDo6b3B0aW9uYWwnOiB7J2hlYWRlcnMnOiBbJzx3dGYvT3B0aW9uYWwuaD4nXSwgJ2FyZ3Vt
ZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAgJ09w
dGlvblNldCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9PcHRpb25TZXQuaD4nXSwgJ2FyZ3VtZW50X2Nv
ZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAgJ1ZlY3Rvcic6
IHsnaGVhZGVycyc6IFsnPHd0Zi9WZWN0b3IuaD4nXSwgJ2FyZ3VtZW50X2NvZGVyX2hlYWRlcnMn
OiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAKaW5kZXggZDgxOWI5OTc1MTU4MGZiZjIxOTE1ZDk4NzZhMWY0OGFlNjc2OGRiNS4u
MDA3MjIzNjY5MjMxZTJhOWI5N2QwNTAyNDU0MzIzYWQ5YTM4ODg5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTEwMiw2ICsxMDIsMTEgQEAgdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OmZpcmVVcGRhdGVGb3VuZEV2ZW50KFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246
OkZpcmVVcGRhdGVGb3VuZEV2ZW50KGlkZW50aWZpZXIpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246Om5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNl
dDx1aW50NjRfdD4mIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzLCBjb25zdCBTZXJ2aWNlV29ya2Vy
RGF0YSYgbmV3Q29udHJvbGxlcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENv
bm5lY3Rpb246Ok5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2Uoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dHMsIG5ld0NvbnRyb2xsZXIpKTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgd29y
a2VyLCBTZXJ2aWNlV29ya2VyU3RhdGUgc3RhdGUpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpVcGRhdGVXb3JrZXJTdGF0ZSh3b3JrZXIsIHN0YXRlKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMjJkZjBhNzViYWViOWFlMmE3
NjVkNjdmY2ViMDBkMTkyZTVkZDdhZS4uOThlOTJjZTY5ZDE4ZjBkYWE2NjM2ZGJjOTA2ZDg0ZWIz
OWIxZTIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzMsNiAr
NzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJEYXRhPiYpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlV29ya2VyU3Rh
dGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclN0YXRlKSBmaW5hbDsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2
b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDx1aW50NjRf
dD4mIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
RGF0YSYgbmV3Q29udHJvbGxlcik7CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0
Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyPiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZWZjZDY1YmVkYjdlOTViNGEyOTZhMDVjZWE5
OTU1OWY2NzhkMDE0ZS4uOTY1YTJmMGNlNWI0OGYyOTc3MTY0OWYxZWM5Mjk0NmU3YWFlMDk0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzEsNiArMzEsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogICAgIFVwZGF0ZVJlZ2lzdHJhdGlv
blN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50
aWZpZXIsIGVudW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRl
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhPiBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKICAgICBVcGRhdGVXb3JrZXJTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51bSBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyU3RhdGUgc3RhdGUpCiAgICAgRmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBOb3RpZnlD
bGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8dWludDY0X3Q+IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRzLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgbmV3Q29udHJvbGxl
cikKIAogICAgIEluaXRpYWxpemVTV09yaWdpblRhYmxlQXNFbXB0eSgpCiAgICAgU2V0U1dPcmln
aW5UYWJsZVNoYXJlZE1lbW9yeShXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMjgxNDQyYzk0NTE2ZTJhYzE5ZTc0MzRiOGExMmVmODAwNjdiMzFiLi5jZjA0YzMx
ZjVjOWZlZTRlZmJmODdmYzgwYWMxOWI3MzlkYjg3MTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTctMTEtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBb
U2VydmljZSBXb3JrZXJzXSBJbXBsZW1lbnQgIk5vdGlmeSBDb250cm9sbGVyIENoYW5nZSIgYWxn
b3JpdGhtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Nzk4MjIKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFk
ZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY29udHJvbGxlci1jaGFuZ2UuaHRtbDogQWRkZWQu
CisKIDIwMTctMTEtMTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBGaXggZ3JhbW1hciB0eXBvIGluIHRlc3RzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jb250cm9sbGVyLWNo
YW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9jb250cm9sbGVyLWNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmNlZDlmZWEwNDQy
MTRmZWY0YmYyODUyMmJmMDI2OTdhMjM4ZWU3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUzogZnJhbWUgaGFzIGEgY29udHJvbGxlcgorUEFT
UzogY29udHJvbGxlcmNoYW5nZSBldmVudCBoYXMgYmVlbiBmaXJlZAorUEFTUzogY29udHJvbGxl
ciBoYXMgYmVlbiB1cGRhdGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2NvbnRyb2xsZXItY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jb250cm9sbGVyLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE2MWI3MWRjMzgwMzE0ZDA5NzVjZGEzZTlmNzNiZWIyNmUxZWE4NTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jb250cm9sbGVyLWNo
YW5nZS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2xldCBpbml0aWFsQ29udHJvbGxlciA9IG51bGw7CisKK2Z1bmN0aW9uIGxpc3RlbkZv
ckNvbnRyb2xsZXJDaGFuZ2UoZnJhbWUpCit7CisgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJjb250cm9sbGVyY2hhbmdlIiwg
ZnVuY3Rpb24oKSB7CisgICAgICAgIGxvZygiUEFTUzogY29udHJvbGxlcmNoYW5nZSBldmVudCBo
YXMgYmVlbiBmaXJlZCIpOworCisgICAgICAgIGxldCBuZXdDb250cm9sbGVyID0gZnJhbWUuY29u
dGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOworICAgICAgICBp
ZiAobmV3Q29udHJvbGxlciAhPSBudWxsICYmIG5ld0NvbnRyb2xsZXIgIT0gaW5pdGlhbENvbnRy
b2xsZXIpCisgICAgICAgICAgICAgbG9nKCJQQVNTOiBjb250cm9sbGVyIGhhcyBiZWVuIHVwZGF0
ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgIGxvZygiRkFJTDogY29udHJvbGxlciBo
YXMgbm90IGJlZW4gdXBkYXRlZCIpOworCisgICAgICAgIGZpbmlzaFNXVGVzdCgpOworICAgIH0p
OworfQorCithc3luYyBmdW5jdGlvbiB0ZXN0KCkgeworICAgIGxldCBzY29wZVVSTCA9ICIvIjsK
KyAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgcmVnaXN0ZXJBbmRXYWl0Rm9yQWN0aXZlKCJy
ZXNvdXJjZXMvc2VydmljZS13b3JrZXItZmV0Y2gtd29ya2VyLmpzIiwgc2NvcGVVUkwpOworICAg
IGxldCBmcmFtZSA9IGF3YWl0IHdpdGhGcmFtZShzY29wZVVSTCk7CisgICAgaW5pdGlhbENvbnRy
b2xsZXIgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRy
b2xsZXI7CisgICAgaWYgKGluaXRpYWxDb250cm9sbGVyID09PSBudWxsKSB7CisgICAgICAgIGxv
ZygiRkFJTDogZnJhbWUgZG9lcyBub3QgaGF2ZSBhIGNvbnRyb2xsZXIiKTsKKyAgICAgICAgZmlu
aXNoU1dUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBsb2coIlBBU1M6IGZy
YW1lIGhhcyBhIGNvbnRyb2xsZXIiKTsKKyAgICAKKyAgICBsaXN0ZW5Gb3JDb250cm9sbGVyQ2hh
bmdlKGZyYW1lKTsKKyAgICByZWdpc3RyYXRpb24udXBkYXRlKCk7Cit9CisKK3Rlc3QoKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzCmlu
ZGV4IGVkMmE5ZTcyZTc0MmI4MWUyODIyZTgyZDRjNmFmYzlmOTVhMDIwYWYuLmJkNjA4NjRmYzc3
MzU5NTQxMTQ4MGNhMDRhZTczNzkxNzg5ZWFiODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zdy10ZXN0LXByZS5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc3ctdGVzdC1w
cmUuanMKQEAgLTM5LDI5ICszOSwzNyBAQCBmdW5jdGlvbiBmaW5pc2hTV1Rlc3QoKQogICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAotYXN5bmMgZnVuY3Rpb24gaW50ZXJjZXB0
ZWRGcmFtZSh3b3JrZXJVUkwsIHNjb3BlVVJMKQorZnVuY3Rpb24gd2l0aEZyYW1lKHNjb3BlVVJM
KQogewotICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3Rlcih3b3JrZXJVUkwsIHsgc2NvcGUgOiBzY29wZVVSTCB9KTsKLSAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi5hY3RpdmUp
Ci0gICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nOwotICAgICAgICBpZiAod29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikKLSAg
ICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoInN0
YXRlY2hhbmdlIiwgKCkgPT4gewotICAgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gImFj
dGl2YXRlZCIpCi0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICB9KTsKLSAgICB9
KTsKLQotICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgICAg
ICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgbGV0IGZyYW1lID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7CiAgICAgICAgIGZyYW1lLnNyYyA9IHNjb3BlVVJM
OwogICAgICAgICBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsgcmVzb2x2ZShmcmFtZSk7IH07
CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwogICAgIH0pOwogfQog
CitmdW5jdGlvbiByZWdpc3RlckFuZFdhaXRGb3JBY3RpdmUod29ya2VyVVJMLCBzY29wZVVSTCkK
K3sKKyAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyVVJM
LCB7IHNjb3BlIDogc2NvcGVVUkwgfSkudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgaWYgKHJl
Z2lzdHJhdGlvbi5hY3RpdmUpCisgICAgICAgICAgICAgICAgcmVzb2x2ZShyZWdpc3RyYXRpb24p
OworICAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAg
ICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigic3RhdGVjaGFuZ2UiLCAoKSA9PiB7CisgICAg
ICAgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAg
ICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0aW9uKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30KKworYXN5bmMgZnVuY3Rpb24gaW50ZXJjZXB0ZWRGcmFtZSh3b3Jr
ZXJVUkwsIHNjb3BlVVJMKQoreworICAgIGF3YWl0IHJlZ2lzdGVyQW5kV2FpdEZvckFjdGl2ZSh3
b3JrZXJVUkwsIHNjb3BlVVJMKTsKKyAgICByZXR1cm4gYXdhaXQgd2l0aEZyYW1lKHNjb3BlVVJM
KTsKK30KKwogZnVuY3Rpb24gZ2MoKSB7CiAgICAgaWYgKHR5cGVvZiBHQ0NvbnRyb2xsZXIgIT09
ICJ1bmRlZmluZWQiKQogICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>