<?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>218546</bug_id>
          
          <creation_ts>2020-11-03 16:40:39 -0800</creation_ts>
          <short_desc>window.event may get set on wrong global when dispatching an event</short_desc>
          <delta_ts>2020-11-04 18:24:21 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke</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>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704277</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-03 16:40:39 -0800</bug_when>
    <thetext>window.event may get set on wrong global when dispatching an event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704279</commentid>
    <comment_count>1</comment_count>
      <attachid>413122</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-03 16:41:03 -0800</bug_when>
    <thetext>Created attachment 413122
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704416</commentid>
    <comment_count>2</comment_count>
      <attachid>413163</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-04 07:54:17 -0800</bug_when>
    <thetext>Created attachment 413163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704422</commentid>
    <comment_count>3</comment_count>
      <attachid>413165</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-04 08:05:09 -0800</bug_when>
    <thetext>Created attachment 413165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704486</commentid>
    <comment_count>4</comment_count>
      <attachid>413165</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-04 10:31:15 -0800</bug_when>
    <thetext>Comment on attachment 413165
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        &apos;current event&apos;, stating that global the &apos;listener callbackâs associated Realmâs global

that global the =&gt; that global is the

&gt; Source/WebCore/bindings/js/JSDOMWindowBase.h:114
&gt; +    Event* m_currentEvent { nullptr };

Can we use RefPtr here?

&gt; Source/WebCore/bindings/js/JSErrorHandler.cpp:83
&gt; +        Event* savedEvent = nullptr;

Can we use RefPtr here?

&gt; Source/WebCore/bindings/js/JSErrorHandler.cpp:86
&gt; +            jsFunctionWindow-&gt;currentEvent();

I think you meant to assign to savedEvent here? Seems like a bug. Might need a new test.

&gt; Source/WebCore/bindings/js/JSEventListener.cpp:166
&gt; +    Event* savedEvent = nullptr;

Can we use RefPtr here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704507</commentid>
    <comment_count>5</comment_count>
      <attachid>413165</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-04 10:54:00 -0800</bug_when>
    <thetext>Comment on attachment 413165
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSDOMWindowBase.h:114
&gt;&gt; +    Event* m_currentEvent { nullptr };
&gt; 
&gt; Can we use RefPtr here?

I am merely moving the code so this is not new. I think we can make it a RefPtr though, even if not strictly needed for safety.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704516</commentid>
    <comment_count>6</comment_count>
      <attachid>413182</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-04 11:05:22 -0800</bug_when>
    <thetext>Created attachment 413182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704519</commentid>
    <comment_count>7</comment_count>
      <attachid>413184</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-04 11:10:54 -0800</bug_when>
    <thetext>Created attachment 413184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704649</commentid>
    <comment_count>8</comment_count>
      <attachid>413221</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-04 16:11:35 -0800</bug_when>
    <thetext>Created attachment 413221
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704698</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-04 18:23:36 -0800</bug_when>
    <thetext>Committed r269414: &lt;https://trac.webkit.org/changeset/269414&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413221.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704699</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-04 18:24:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/71060677&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413122</attachid>
            <date>2020-11-03 16:41:03 -0800</date>
            <delta_ts>2020-11-04 07:54:15 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>218546_wip.patch</filename>
            <type>text/plain</type>
            <size>3314</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVudC1n
bG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBlYjk1NzQ1MDcyOWEuLmIzYTQ1
YjczOTM3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL2V2ZW50LWdsb2JhbC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2
ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDgg
QEAKIAotRkFJTCB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xv
YmFsOiBFdmVudFRhcmdldCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRl
ZmluZWQgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIgotRkFJTCB3aW5k
b3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBYTUxIdHRwUmVx
dWVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdv
dCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIgorUEFTUyB3aW5kb3cuZXZlbnQgZm9y
IGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBFdmVudFRhcmdldAorUEFTUyB3aW5k
b3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBYTUxIdHRwUmVx
dWVzdAogUEFTUyB3aW5kb3cuZXZlbnQgYW5kIGVsZW1lbnQgZnJvbSBhbm90aGVyIGRvY3VtZW50
Ci1GQUlMIHdpbmRvdy5ldmVudCBhbmQgbW92aW5nIGFuIGVsZW1lbnQgcG9zdC1kaXNwYXRjaCBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIiBi
dXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorUEFTUyB3aW5kb3cuZXZlbnQgYW5kIG1vdmlu
ZyBhbiBlbGVtZW50IHBvc3QtZGlzcGF0Y2gKIEZBSUwgd2luZG93LmV2ZW50IHNob3VsZCBub3Qg
YmUgYWZmZWN0ZWQgYnkgbm9kZXMgbW92aW5nIHBvc3QtZGlzcGF0Y2ggYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IEV2ZW50XSIKLUZBSUwgTGlzdGVuZXIgZnJvbSBhIGRpZmZlcmVudCBnbG9iYWwgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIgYnV0
IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK1BBU1MgTGlzdGVuZXIgZnJvbSBhIGRpZmZlcmVu
dCBnbG9iYWwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5jcHAKaW5kZXggOTNhOTJmMjk5YmIzLi43OWU5MGQzY2U3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcApAQCAtMTE0LDYgKzExNCw4IEBA
IHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgaWYgKCFqc0Z1bmN0aW9uKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBhdXRvKiBqc0Z1bmN0aW9uR2xvYmFsID0ganNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4oanNGdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCkpOworCiAgICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3Qoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgbV9pc29sYXRlZFdvcmxkKTsKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTYzLDEyICsxNjUsMTIgQEAgdm9pZCBKU0V2ZW50TGlzdGVuZXI6Omhh
bmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQK
ICAgICBhcmdzLmFwcGVuZCh0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwg
JmV2ZW50KSk7CiAgICAgQVNTRVJUKCFhcmdzLmhhc092ZXJmbG93ZWQoKSk7CiAKLSAgICBFdmVu
dCogc2F2ZWRFdmVudCA9IGdsb2JhbE9iamVjdC0+Y3VycmVudEV2ZW50KCk7CisgICAgRXZlbnQq
IHNhdmVkRXZlbnQgPSBqc0Z1bmN0aW9uR2xvYmFsLT5jdXJyZW50RXZlbnQoKTsKIAogICAgIC8v
IHdpbmRvdy5ldmVudCBzaG91bGQgbm90IGJlIHNldCB3aGVuIHRoZSB0YXJnZXQgaXMgaW5zaWRl
IGEgc2hhZG93IHRyZWUsIGFzIHBlciB0aGUgRE9NIHNwZWNpZmljYXRpb24uCiAgICAgYm9vbCBp
c1RhcmdldEluc2lkZVNoYWRvd1RyZWUgPSBpczxOb2RlPihldmVudC5jdXJyZW50VGFyZ2V0KCkp
ICYmIGRvd25jYXN0PE5vZGU+KCpldmVudC5jdXJyZW50VGFyZ2V0KCkpLmlzSW5TaGFkb3dUcmVl
KCk7CiAgICAgaWYgKCFpc1RhcmdldEluc2lkZVNoYWRvd1RyZWUpCi0gICAgICAgIGdsb2JhbE9i
amVjdC0+c2V0Q3VycmVudEV2ZW50KCZldmVudCk7CisgICAgICAgIGpzRnVuY3Rpb25HbG9iYWwt
PnNldEN1cnJlbnRFdmVudCgmZXZlbnQpOwogCiAgICAgVk1FbnRyeVNjb3BlIGVudHJ5U2NvcGUo
dm0sIHZtLmVudHJ5U2NvcGUgPyB2bS5lbnRyeVNjb3BlLT5nbG9iYWxPYmplY3QoKSA6IGdsb2Jh
bE9iamVjdCk7CiAKQEAgLTE4MCw3ICsxODIsNyBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dAog
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oJnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOwogCi0gICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2
ZWRFdmVudCk7CisgICAganNGdW5jdGlvbkdsb2JhbC0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZl
bnQpOwogCiAgICAgYXV0byBoYW5kbGVFeGNlcHRpb25JZk5lZWRlZCA9IFsmXSAoKSAtPiBib29s
IHsKICAgICAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3BlPihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413163</attachid>
            <date>2020-11-04 07:54:17 -0800</date>
            <delta_ts>2020-11-04 08:05:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218546-20201104075416.patch</filename>
            <type>text/plain</type>
            <size>10726</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM3YzZhZjRjNjE3OTdm
NzY4N2U1ZDViODYzNDI3MTE1ZjlhMTlmMC4uYzI3MmYyNmUzNzk2M2IyNmU5YzBhNWE0NDk5ZjZm
YjFiZjNmM2E0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgd2luZG93LmV2ZW50IG1heSBn
ZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRpc3BhdGNoaW5nIGFuIGV2ZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1NDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBwZXIgdGhlIHNwZWNp
ZmljYXRpb24gWzFdLCB3aGlsZSBpbnZva2luZyBhbiBldmVudCBsaXN0ZW5lciwgd2Ugc2hvdWxk
IHNldCB0aGUgZ2xvYmFsJ3MKKyAgICAgICAgJ2N1cnJlbnQgZXZlbnQnLCBzdGF0aW5nIHRoYXQg
Z2xvYmFsIHRoZSAnbGlzdGVuZXIgY2FsbGJhY2vigJlzIGFzc29jaWF0ZWQgUmVhbG3igJlzIGds
b2JhbAorICAgICAgICBvYmplY3QnLiBJdCBhbHNvIHN0YXRlcyB3ZSBzaG91bGQgZG8gc28gb25s
eSBpZiBnbG9iYWwgaXMgYSBXaW5kb3cgb2JqZWN0LiBQcmV2aW91c2x5LAorICAgICAgICB3ZSB3
ZXJlIHNldHRpbmcgdGhlICdjdXJyZW50IGV2ZW50JyBvbiB0aGUgd3JvbmcgZ2xvYmFsLiBXZSB3
ZXJlIHVzaW5nIHRoZSBnbG9iYWwgb2YgdGhlCisgICAgICAgIG9iamVjdCB0aGUgZXZlbnQgbGlz
dGVuZXIgd2FzIHJlZ2lzdGVyZWQgb24uCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jY29uY2VwdC1ldmVudC1saXN0ZW5lci1pbm5lci1pbnZva2UKKworICAgICAg
ICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzZXRDdXJyZW50RXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpjdXJyZW50RXZlbnQgY29u
c3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJy
b3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQpOgorCiAyMDIwLTExLTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlcGxhY2UgRGlzcGxheUxpc3Q6Oml0ZW1Db3VudCB3aXRoIERpc3BsYXlM
aXN0Ojppc0VtcHR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHAKaW5kZXggMTVlMTY0MGVjZjVmYjNjYTc5ZTNjNTljZTMxYjRhNWY2ZjJmM2Uz
Ni4uNGU3NjhiODA3N2EwNDE2MjI0ODVkYWVjZDZlZDRhMmJjZGJjNTAwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMjU3LDE2
ICsyNTcsNiBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdGhpc09iamVjdC0+bV9idWlsdGluSW50
ZXJuYWxGdW5jdGlvbnMudmlzaXQodmlzaXRvcik7CiB9CiAKLXZvaWQgSlNET01HbG9iYWxPYmpl
Y3Q6OnNldEN1cnJlbnRFdmVudChFdmVudCogY3VycmVudEV2ZW50KQotewotICAgIG1fY3VycmVu
dEV2ZW50ID0gY3VycmVudEV2ZW50OwotfQotCi1FdmVudCogSlNET01HbG9iYWxPYmplY3Q6OmN1
cnJlbnRFdmVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY3VycmVudEV2ZW50OwotfQotCiB2
b2lkIEpTRE9NR2xvYmFsT2JqZWN0Ojpwcm9taXNlUmVqZWN0aW9uVHJhY2tlcihKU0dsb2JhbE9i
amVjdCoganNHbG9iYWxPYmplY3QsIEpTUHJvbWlzZSogcHJvbWlzZSwgSlNQcm9taXNlUmVqZWN0
aW9uT3BlcmF0aW9uIG9wZXJhdGlvbikKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjdGhlLWhvc3Rwcm9taXNlcmVqZWN0aW9u
dHJhY2tlci1pbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggNzA2MTM3MDQ2MDM2Y2UyZjQ4YTZkNzNhMzgxOTQwN2Ix
OGUyOTg1Ni4uMWU0ZTBmNjliNTRmZGJjYTMzMGVlOWY5NTdhMmM1NDRhMDFjYWQ4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC02OSw5
ICs2OSw2IEBAIHB1YmxpYzoKICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9uIGVh
c2llci4KICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gdGhp
czsgfQogCi0gICAgdm9pZCBzZXRDdXJyZW50RXZlbnQoRXZlbnQqKTsKLSAgICBFdmVudCogY3Vy
cmVudEV2ZW50KCkgY29uc3Q7Ci0KICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6
SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOwogCiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KQEAgLTExNiw4ICsxMTMsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgYWRkQnVpbHRpbkdsb2JhbHMoSlNDOjpWTSYpOwogICAgIGZyaWVuZCB2b2lk
IEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFsT2JqZWN0
Jik7CiAKLSAgICBFdmVudCogbV9jdXJyZW50RXZlbnQgeyBudWxscHRyIH07Ci0KICAgICBKU0J1
aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucyBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4
IGIwOTQ2ZTI1YTlhMGRmYWJlOWI5MjM4MGJhYjNkNzk0YWU4YWJmZWQuLjMyMzkyNzhjODlmNTUz
OTRiYmZmZGI5N2I1ZGQ4ZGVhM2IxZDE2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMjUwLDYgKzI1MCwxNiBAQCB2b2lkIEpTRE9N
V2luZG93QmFzZTo6d2lsbFJlbW92ZUZyb21XaW5kb3dQcm94eSgpCiAgICAgc2V0Q3VycmVudEV2
ZW50KDApOwogfQogCit2b2lkIEpTRE9NV2luZG93QmFzZTo6c2V0Q3VycmVudEV2ZW50KEV2ZW50
KiBjdXJyZW50RXZlbnQpCit7CisgICAgbV9jdXJyZW50RXZlbnQgPSBjdXJyZW50RXZlbnQ7Cit9
CisKK0V2ZW50KiBKU0RPTVdpbmRvd0Jhc2U6OmN1cnJlbnRFdmVudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY3VycmVudEV2ZW50OworfQorCiBKU1dpbmRvd1Byb3h5JiBKU0RPTVdpbmRvd0Jh
c2U6OnByb3h5KCkgY29uc3QKIHsKICAgICByZXR1cm4gKmpzQ2FzdDxKU1dpbmRvd1Byb3h5Kj4o
JkpTRE9NR2xvYmFsT2JqZWN0Ojpwcm94eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNDU2ZmMxNDY1NTZlMTI0MmNmNTA2NmI3MTAyZWJh
YzU5YTgxYWFkYi4uZGEwMTE2OWZjMDVkYjMwYzFlYjZjNTgyNWI3ZjQ0MjMwYjY5MGIyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTg3LDYg
Kzg3LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgZmlyZUZyYW1lQ2xlYXJlZFdhdGNo
cG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyopOwogCisgICAgdm9pZCBzZXRDdXJyZW50RXZlbnQo
RXZlbnQqKTsKKyAgICBFdmVudCogY3VycmVudEV2ZW50KCkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBKU0RPTVdpbmRvd0Jhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPERP
TVdpbmRvdz4mJiwgSlNXaW5kb3dQcm94eSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpWTSYsIEpTV2luZG93UHJveHkqKTsKQEAgLTEwOCw2ICsxMTEsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAKICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CisgICAgRXZlbnQqIG1fY3Vy
cmVudEV2ZW50IHsgbnVsbHB0ciB9OwogfTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIERPTVdpbmRvdyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGRjYTg0YTVhM2RiYzViMDM4
YjE3M2ViM2FhMDAyYzU0ZDQxZTFiM2UuLjI2OWZmM2I0MTIwN2RiNDM2OTE1ZjFlN2NmNzI5ODIz
N2IwNjJhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxl
ci5jcHAKQEAgLTc5LDggKzc5LDEyIEBAIHZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgaWYg
KGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKICAgICAgICAgUmVmPEpT
RXJyb3JIYW5kbGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAotICAgICAgICBFdmVudCogc2F2
ZWRFdmVudCA9IGdsb2JhbE9iamVjdC0+Y3VycmVudEV2ZW50KCk7Ci0gICAgICAgIGdsb2JhbE9i
amVjdC0+c2V0Q3VycmVudEV2ZW50KCZldmVudCk7CisgICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50
ID0gbnVsbHB0cjsKKyAgICAgICAgYXV0byoganNGdW5jdGlvbldpbmRvdyA9IGpzRHluYW1pY0Nh
c3Q8SlNET01XaW5kb3cqPih2bSwganNGdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCkpOworICAgICAg
ICBpZiAoanNGdW5jdGlvbldpbmRvdykgeworICAgICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+
Y3VycmVudEV2ZW50KCk7CisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50
RXZlbnQoJmV2ZW50KTsKKyAgICAgICAgfQogCiAgICAgICAgIGF1dG8mIGVycm9yRXZlbnQgPSBk
b3duY2FzdDxFcnJvckV2ZW50PihldmVudCk7CiAKQEAgLTEwMiw3ICsxMDYsOCBAQCB2b2lkIEpT
RXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LAogCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q2FsbEZ1bmN0aW9uKCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAotICAgICAgICBnbG9iYWxP
YmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50KTsKKyAgICAgICAgaWYgKGpzRnVuY3Rp
b25XaW5kb3cpCisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50RXZlbnQo
c2F2ZWRFdmVudCk7CiAKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgIHJlcG9y
dEV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIGV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCA5M2E5MmYyOTliYjM1OTgwZjIz
MDc3YzE3N2E2ODBhNWU0OTEyOTg5Li5kOGM5NjE2ZTE3ZjFiOTYyZDRkNWYwNDU0YjMwNTI2NDhi
OGY2Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlz
dGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5l
ci5jcHAKQEAgLTE2MywxMiArMTYzLDE2IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVF
dmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAg
YXJncy5hcHBlbmQodG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICZldmVu
dCkpOwogICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxvd2VkKCkpOwogCi0gICAgRXZlbnQqIHNh
dmVkRXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOwotCi0gICAgLy8gd2luZG93
LmV2ZW50IHNob3VsZCBub3QgYmUgc2V0IHdoZW4gdGhlIHRhcmdldCBpcyBpbnNpZGUgYSBzaGFk
b3cgdHJlZSwgYXMgcGVyIHRoZSBET00gc3BlY2lmaWNhdGlvbi4KLSAgICBib29sIGlzVGFyZ2V0
SW5zaWRlU2hhZG93VHJlZSA9IGlzPE5vZGU+KGV2ZW50LmN1cnJlbnRUYXJnZXQoKSkgJiYgZG93
bmNhc3Q8Tm9kZT4oKmV2ZW50LmN1cnJlbnRUYXJnZXQoKSkuaXNJblNoYWRvd1RyZWUoKTsKLSAg
ICBpZiAoIWlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSkKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5z
ZXRDdXJyZW50RXZlbnQoJmV2ZW50KTsKKyAgICBFdmVudCogc2F2ZWRFdmVudCA9IG51bGxwdHI7
CisgICAgYXV0byoganNGdW5jdGlvbldpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cq
Pih2bSwganNGdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCkpOworICAgIGlmIChqc0Z1bmN0aW9uV2lu
ZG93KSB7CisgICAgICAgIHNhdmVkRXZlbnQgPSBqc0Z1bmN0aW9uV2luZG93LT5jdXJyZW50RXZl
bnQoKTsKKworICAgICAgICAvLyB3aW5kb3cuZXZlbnQgc2hvdWxkIG5vdCBiZSBzZXQgd2hlbiB0
aGUgdGFyZ2V0IGlzIGluc2lkZSBhIHNoYWRvdyB0cmVlLCBhcyBwZXIgdGhlIERPTSBzcGVjaWZp
Y2F0aW9uLgorICAgICAgICBib29sIGlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSA9IGlzPE5vZGU+
KGV2ZW50LmN1cnJlbnRUYXJnZXQoKSkgJiYgZG93bmNhc3Q8Tm9kZT4oKmV2ZW50LmN1cnJlbnRU
YXJnZXQoKSkuaXNJblNoYWRvd1RyZWUoKTsKKyAgICAgICAgaWYgKCFpc1RhcmdldEluc2lkZVNo
YWRvd1RyZWUpCisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50RXZlbnQo
JmV2ZW50KTsKKyAgICB9CiAKICAgICBWTUVudHJ5U2NvcGUgZW50cnlTY29wZSh2bSwgdm0uZW50
cnlTY29wZSA/IHZtLmVudHJ5U2NvcGUtPmdsb2JhbE9iamVjdCgpIDogZ2xvYmFsT2JqZWN0KTsK
IApAQCAtMTgwLDcgKzE4NCw4IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbigmc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCk7CiAKLSAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50KTsK
KyAgICBpZiAoanNGdW5jdGlvbldpbmRvdykKKyAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0
Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOwogCiAgICAgYXV0byBoYW5kbGVFeGNlcHRpb25JZk5l
ZWRlZCA9IFsmXSAoKSAtPiBib29sIHsKICAgICAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3Bl
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
aW5kZXggNjBlMTYyZTVhNzM2OThiYTBmNmU4ZDlkOWQ0ODNjM2FkYTVjOTVhMC4uZmRlMWYzNTJi
MWY2NjRlNDI1ZTQ2ZTE1OGUzNjAwMWM2ZDAzYjc5ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICB3aW5kb3cuZXZlbnQgbWF5IGdldCBzZXQgb24gd3Jvbmcg
Z2xvYmFsIHdoZW4gZGlzcGF0Y2hpbmcgYW4gZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUgV1BUIHRlc3QgdGhhdCBpcyBub3cg
cGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2V2ZW50
LWdsb2JhbC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0OgorCiAyMDIwLTExLTAzICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb3BhcmFtLWludGVyZmFj
ZS9rLXJhdGUtcGFubmVyLWNvbm5lY3Rpb25zLmh0bWwgZmFpbHMgb24gc29tZSBwbGF0Zm9ybXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVudC1n
bG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dAppbmRleCBlYjk1NzQ1MDcyOWE2NDExNGZj
OTIwYzVmNTBiMTc4OGNkNDI3ODQ2Li5iM2E0NWI3MzkzN2FkODNkNWRkMjA3NWU4Njk5Zjk4ZThh
Nzg4ODQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFsLWV4dHJhLndpbmRvdy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL2V2ZW50LWdsb2JhbC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0xLDggKzEsOCBA
QAogCi1GQUlMIHdpbmRvdy5ldmVudCBmb3IgY29uc3RydWN0b3JzIGZyb20gYW5vdGhlciBnbG9i
YWw6IEV2ZW50VGFyZ2V0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVm
aW5lZCBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBFdmVudF0iCi1GQUlMIHdpbmRv
dy5ldmVudCBmb3IgY29uc3RydWN0b3JzIGZyb20gYW5vdGhlciBnbG9iYWw6IFhNTEh0dHBSZXF1
ZXN0IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVuZGVmaW5lZCBidXQgZ290
IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBFdmVudF0iCitQQVNTIHdpbmRvdy5ldmVudCBmb3Ig
Y29uc3RydWN0b3JzIGZyb20gYW5vdGhlciBnbG9iYWw6IEV2ZW50VGFyZ2V0CitQQVNTIHdpbmRv
dy5ldmVudCBmb3IgY29uc3RydWN0b3JzIGZyb20gYW5vdGhlciBnbG9iYWw6IFhNTEh0dHBSZXF1
ZXN0CiBQQVNTIHdpbmRvdy5ldmVudCBhbmQgZWxlbWVudCBmcm9tIGFub3RoZXIgZG9jdW1lbnQK
LUZBSUwgd2luZG93LmV2ZW50IGFuZCBtb3ZpbmcgYW4gZWxlbWVudCBwb3N0LWRpc3BhdGNoIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIG9iamVjdCAiW29iamVjdCBFdmVudF0iIGJ1
dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitQQVNTIHdpbmRvdy5ldmVudCBhbmQgbW92aW5n
IGFuIGVsZW1lbnQgcG9zdC1kaXNwYXRjaAogRkFJTCB3aW5kb3cuZXZlbnQgc2hvdWxkIG5vdCBi
ZSBhZmZlY3RlZCBieSBub2RlcyBtb3ZpbmcgcG9zdC1kaXNwYXRjaCBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltv
YmplY3QgRXZlbnRdIgotRkFJTCBMaXN0ZW5lciBmcm9tIGEgZGlmZmVyZW50IGdsb2JhbCBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIiBidXQg
Z290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorUEFTUyBMaXN0ZW5lciBmcm9tIGEgZGlmZmVyZW50
IGdsb2JhbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413165</attachid>
            <date>2020-11-04 08:05:09 -0800</date>
            <delta_ts>2020-11-04 11:05:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218546-20201104080509.patch</filename>
            <type>text/plain</type>
            <size>10874</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkOWZlMDcyNWRkZWMw
NGExZWJlZDhkYjgyMjRkY2I5ZTM3ZTdhMy4uZmExMjFhNDEzMGFmMTdkOGY3OWM0NmI1MjIxZGMw
ZTU0ZDUxNjM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgd2luZG93LmV2ZW50IG1heSBn
ZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRpc3BhdGNoaW5nIGFuIGV2ZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1NDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBwZXIgdGhlIHNwZWNp
ZmljYXRpb24gWzFdLCB3aGlsZSBpbnZva2luZyBhbiBldmVudCBsaXN0ZW5lciwgd2Ugc2hvdWxk
IHNldCB0aGUgZ2xvYmFsJ3MKKyAgICAgICAgJ2N1cnJlbnQgZXZlbnQnLCBzdGF0aW5nIHRoYXQg
Z2xvYmFsIHRoZSAnbGlzdGVuZXIgY2FsbGJhY2vigJlzIGFzc29jaWF0ZWQgUmVhbG3igJlzIGds
b2JhbAorICAgICAgICBvYmplY3QnLiBJdCBhbHNvIHN0YXRlcyB3ZSBzaG91bGQgZG8gc28gb25s
eSBpZiBnbG9iYWwgaXMgYSBXaW5kb3cgb2JqZWN0LiBQcmV2aW91c2x5LAorICAgICAgICB3ZSB3
ZXJlIHNldHRpbmcgdGhlICdjdXJyZW50IGV2ZW50JyBvbiB0aGUgd3JvbmcgZ2xvYmFsLiBXZSB3
ZXJlIHVzaW5nIHRoZSBnbG9iYWwgb2YgdGhlCisgICAgICAgIG9iamVjdCB0aGUgZXZlbnQgbGlz
dGVuZXIgd2FzIHJlZ2lzdGVyZWQgb24uCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jY29uY2VwdC1ldmVudC1saXN0ZW5lci1pbm5lci1pbnZva2UKKworICAgICAg
ICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3QuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzZXRDdXJyZW50RXZl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpjdXJyZW50RXZlbnQgY29u
c3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJy
b3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVudExp
c3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZl
bnQpOgorCiAyMDIwLTExLTAzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgog
CiAgICAgICAgIGFsaWduLWl0ZW1zIHNob3VsZCBiZSBhIGRpc2NyZXRlIGFuaW1hdGFibGUgcHJv
cGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmNwcAppbmRleCAxNWUxNjQwZWNmNWZiM2NhNzllM2M1OWNlMzFiNGE1ZjZmMmYzZTM2Li40ZTc2
OGI4MDc3YTA0MTYyMjQ4NWRhZWNkNmVkNGEyYmNkYmM1MDBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC0yNTcsMTYgKzI1Nyw2
IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKICAgICB0aGlzT2JqZWN0LT5tX2J1aWx0aW5JbnRlcm5hbEZ1
bmN0aW9ucy52aXNpdCh2aXNpdG9yKTsKIH0KIAotdm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6c2V0
Q3VycmVudEV2ZW50KEV2ZW50KiBjdXJyZW50RXZlbnQpCi17Ci0gICAgbV9jdXJyZW50RXZlbnQg
PSBjdXJyZW50RXZlbnQ7Ci19Ci0KLUV2ZW50KiBKU0RPTUdsb2JhbE9iamVjdDo6Y3VycmVudEV2
ZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jdXJyZW50RXZlbnQ7Ci19Ci0KIHZvaWQgSlNE
T01HbG9iYWxPYmplY3Q6OnByb21pc2VSZWplY3Rpb25UcmFja2VyKEpTR2xvYmFsT2JqZWN0KiBq
c0dsb2JhbE9iamVjdCwgSlNQcm9taXNlKiBwcm9taXNlLCBKU1Byb21pc2VSZWplY3Rpb25PcGVy
YXRpb24gb3BlcmF0aW9uKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCN0aGUtaG9zdHByb21pc2VyZWplY3Rpb250cmFja2Vy
LWltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaAppbmRleCA3MDYxMzcwNDYwMzZjZTJmNDhhNmQ3M2EzODE5NDA3YjE4ZTI5ODU2
Li4xZTRlMGY2OWI1NGZkYmNhMzMwZWU5Zjk1N2EyYzU0NGEwMWNhZDgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTY5LDkgKzY5LDYg
QEAgcHVibGljOgogICAgIC8vIE1ha2UgYmluZGluZyBjb2RlIGdlbmVyYXRpb24gZWFzaWVyLgog
ICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiB0aGlzOyB9CiAK
LSAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOwotICAgIEV2ZW50KiBjdXJyZW50RXZl
bnQoKSBjb25zdDsKLQogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwq
LCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpAQCAtMTE2LDggKzExMyw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBhZGRCdWlsdGluR2xvYmFscyhKU0M6OlZNJik7CiAgICAgZnJpZW5kIHZvaWQgSlNCdWls
dGluSW50ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3QmKTsKIAot
ICAgIEV2ZW50KiBtX2N1cnJlbnRFdmVudCB7IG51bGxwdHIgfTsKLQogICAgIEpTQnVpbHRpbklu
dGVybmFsRnVuY3Rpb25zIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYjA5NDZl
MjVhOWEwZGZhYmU5YjkyMzgwYmFiM2Q3OTRhZThhYmZlZC4uMzIzOTI3OGM4OWY1NTM5NGJiZmZk
Yjk3YjVkZDhkZWEzYjFkMTZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0yNTAsNiArMjUwLDE2IEBAIHZvaWQgSlNET01XaW5kb3dC
YXNlOjp3aWxsUmVtb3ZlRnJvbVdpbmRvd1Byb3h5KCkKICAgICBzZXRDdXJyZW50RXZlbnQoMCk7
CiB9CiAKK3ZvaWQgSlNET01XaW5kb3dCYXNlOjpzZXRDdXJyZW50RXZlbnQoRXZlbnQqIGN1cnJl
bnRFdmVudCkKK3sKKyAgICBtX2N1cnJlbnRFdmVudCA9IGN1cnJlbnRFdmVudDsKK30KKworRXZl
bnQqIEpTRE9NV2luZG93QmFzZTo6Y3VycmVudEV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jdXJyZW50RXZlbnQ7Cit9CisKIEpTV2luZG93UHJveHkmIEpTRE9NV2luZG93QmFzZTo6cHJv
eHkoKSBjb25zdAogewogICAgIHJldHVybiAqanNDYXN0PEpTV2luZG93UHJveHkqPigmSlNET01H
bG9iYWxPYmplY3Q6OnByb3h5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaAppbmRleCA0NTZmYzE0NjU1NmUxMjQyY2Y1MDY2YjcxMDJlYmFjNTlhODFh
YWRiLi5kYTAxMTY5ZmMwNWRiMzBjMWViNmM1ODI1YjdmNDQyMzBiNjkwYjI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtODcsNiArODcsOSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNG
b3JXaW5kb3coRE9NV2luZG93Kik7CiAKKyAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCop
OworICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEpT
RE9NV2luZG93QmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8RE9NV2luZG93
PiYmLCBKU1dpbmRvd1Byb3h5Kik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwg
SlNXaW5kb3dQcm94eSopOwpAQCAtMTA4LDYgKzExMSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd3JhcHBlZDsKKyAgICBFdmVudCogbV9jdXJyZW50RXZl
bnQgeyBudWxscHRyIH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgRE9NV2luZG93Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKaW5kZXggZGNhODRhNWEzZGJjNWIwMzhiMTczZWIz
YWEwMDJjNTRkNDFlMWIzZS4uOGJkY2IwNmU4YjA4NjgxMGM4YjU2NmJkMzFiNzk4ZGZkY2JhZmY2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNET01Db252
ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKKyNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU0V4ZWNT
dGF0ZS5oIgogI2luY2x1ZGUgIkpTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmgiCkBAIC03OSw4
ICs4MCwxMiBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgIGlmIChjYWxsRGF0YS50eXBl
ICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKSB7CiAgICAgICAgIFJlZjxKU0Vycm9ySGFuZGxlcj4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKLSAgICAgICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBnbG9i
YWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJl
bnRFdmVudCgmZXZlbnQpOworICAgICAgICBFdmVudCogc2F2ZWRFdmVudCA9IG51bGxwdHI7Cisg
ICAgICAgIGF1dG8qIGpzRnVuY3Rpb25XaW5kb3cgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93
Kj4odm0sIGpzRnVuY3Rpb24tPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgaWYgKGpzRnVuY3Rp
b25XaW5kb3cpIHsKKyAgICAgICAgICAgIGpzRnVuY3Rpb25XaW5kb3ctPmN1cnJlbnRFdmVudCgp
OworICAgICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0Q3VycmVudEV2ZW50KCZldmVudCk7
CisgICAgICAgIH0KIAogICAgICAgICBhdXRvJiBlcnJvckV2ZW50ID0gZG93bmNhc3Q8RXJyb3JF
dmVudD4oZXZlbnQpOwogCkBAIC0xMDIsNyArMTA3LDggQEAgdm9pZCBKU0Vycm9ySGFuZGxlcjo6
aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwKIAogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbigm
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJy
ZW50RXZlbnQoc2F2ZWRFdmVudCk7CisgICAgICAgIGlmIChqc0Z1bmN0aW9uV2luZG93KQorICAg
ICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQpOwog
CiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAgICAgICAgICByZXBvcnRFeGNlcHRpb24oZ2xv
YmFsT2JqZWN0LCBleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTNhOTJmMjk5YmIzNTk4MGYyMzA3N2MxNzdhNjgwYTVl
NDkxMjk4OS4uZDhjOTYxNmUxN2YxYjk2MmQ0ZDVmMDQ1NGIzMDUyNjQ4YjhmNmM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwCkBAIC0xNjMs
MTIgKzE2MywxNiBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dAogICAgIGFyZ3MuYXBwZW5kKHRv
SlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCAmZXZlbnQpKTsKICAgICBBU1NF
UlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKIAotICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xv
YmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLQotICAgIC8vIHdpbmRvdy5ldmVudCBzaG91bGQg
bm90IGJlIHNldCB3aGVuIHRoZSB0YXJnZXQgaXMgaW5zaWRlIGEgc2hhZG93IHRyZWUsIGFzIHBl
ciB0aGUgRE9NIHNwZWNpZmljYXRpb24uCi0gICAgYm9vbCBpc1RhcmdldEluc2lkZVNoYWRvd1Ry
ZWUgPSBpczxOb2RlPihldmVudC5jdXJyZW50VGFyZ2V0KCkpICYmIGRvd25jYXN0PE5vZGU+KCpl
dmVudC5jdXJyZW50VGFyZ2V0KCkpLmlzSW5TaGFkb3dUcmVlKCk7Ci0gICAgaWYgKCFpc1Rhcmdl
dEluc2lkZVNoYWRvd1RyZWUpCi0gICAgICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50
KCZldmVudCk7CisgICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBudWxscHRyOworICAgIGF1dG8qIGpz
RnVuY3Rpb25XaW5kb3cgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93Kj4odm0sIGpzRnVuY3Rp
b24tPmdsb2JhbE9iamVjdCgpKTsKKyAgICBpZiAoanNGdW5jdGlvbldpbmRvdykgeworICAgICAg
ICBzYXZlZEV2ZW50ID0ganNGdW5jdGlvbldpbmRvdy0+Y3VycmVudEV2ZW50KCk7CisKKyAgICAg
ICAgLy8gd2luZG93LmV2ZW50IHNob3VsZCBub3QgYmUgc2V0IHdoZW4gdGhlIHRhcmdldCBpcyBp
bnNpZGUgYSBzaGFkb3cgdHJlZSwgYXMgcGVyIHRoZSBET00gc3BlY2lmaWNhdGlvbi4KKyAgICAg
ICAgYm9vbCBpc1RhcmdldEluc2lkZVNoYWRvd1RyZWUgPSBpczxOb2RlPihldmVudC5jdXJyZW50
VGFyZ2V0KCkpICYmIGRvd25jYXN0PE5vZGU+KCpldmVudC5jdXJyZW50VGFyZ2V0KCkpLmlzSW5T
aGFkb3dUcmVlKCk7CisgICAgICAgIGlmICghaXNUYXJnZXRJbnNpZGVTaGFkb3dUcmVlKQorICAg
ICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0Q3VycmVudEV2ZW50KCZldmVudCk7CisgICAg
fQogCiAgICAgVk1FbnRyeVNjb3BlIGVudHJ5U2NvcGUodm0sIHZtLmVudHJ5U2NvcGUgPyB2bS5l
bnRyeVNjb3BlLT5nbG9iYWxPYmplY3QoKSA6IGdsb2JhbE9iamVjdCk7CiAKQEAgLTE4MCw3ICsx
ODQsOCBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dAogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogCi0gICAg
Z2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2ZWRFdmVudCk7CisgICAgaWYgKGpzRnVu
Y3Rpb25XaW5kb3cpCisgICAgICAgIGpzRnVuY3Rpb25XaW5kb3ctPnNldEN1cnJlbnRFdmVudChz
YXZlZEV2ZW50KTsKIAogICAgIGF1dG8gaGFuZGxlRXhjZXB0aW9uSWZOZWVkZWQgPSBbJl0gKCkg
LT4gYm9vbCB7CiAgICAgICAgIGlmIChpczxXb3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDcyMWFhMTQ5
YzMzOWNiMGI2ZGIzYzZlODcwOWZlMTc1NTBjMTg0ZGEuLjUwOWU0ZDYxNGU3Nzk2M2QzMjViZjcy
YjgwNDRhM2Q5MWZlM2VlYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTExLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgd2luZG93LmV2ZW50IG1heSBnZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRp
c3BhdGNoaW5nIGFuIGV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTg1NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEu
d2luZG93LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0xMS0wNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGV4cGVyaW1lbnRhbDogYW5kIGludGVybmFsOiBw
cmVmaXhlcyBmcm9tIHRlc3QgaGVhZGVyIGNvbW1hbmRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFs
LWV4dHJhLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFsLWV4dHJhLndpbmRvdy1leHBl
Y3RlZC50eHQKaW5kZXggZWI5NTc0NTA3MjlhNjQxMTRmYzkyMGM1ZjUwYjE3ODhjZDQyNzg0Ni4u
YjNhNDViNzM5MzdhZDgzZDVkZDIwNzVlODY5OWY5OGU4YTc4ODg0OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2V2ZW50
LWdsb2JhbC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEu
d2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCB3aW5kb3cuZXZlbnQg
Zm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBFdmVudFRhcmdldCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBv
YmplY3QgIltvYmplY3QgRXZlbnRdIgotRkFJTCB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9y
cyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBYTUxIdHRwUmVxdWVzdCBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmpl
Y3QgRXZlbnRdIgorUEFTUyB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3Ro
ZXIgZ2xvYmFsOiBFdmVudFRhcmdldAorUEFTUyB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9y
cyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBYTUxIdHRwUmVxdWVzdAogUEFTUyB3aW5kb3cuZXZlbnQg
YW5kIGVsZW1lbnQgZnJvbSBhbm90aGVyIGRvY3VtZW50Ci1GQUlMIHdpbmRvdy5ldmVudCBhbmQg
bW92aW5nIGFuIGVsZW1lbnQgcG9zdC1kaXNwYXRjaCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
b2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVm
aW5lZAorUEFTUyB3aW5kb3cuZXZlbnQgYW5kIG1vdmluZyBhbiBlbGVtZW50IHBvc3QtZGlzcGF0
Y2gKIEZBSUwgd2luZG93LmV2ZW50IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgbm9kZXMgbW92
aW5nIHBvc3QtZGlzcGF0Y2ggYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKLUZBSUwgTGlz
dGVuZXIgZnJvbSBhIGRpZmZlcmVudCBnbG9iYWwgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9i
amVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmlu
ZWQKK1BBU1MgTGlzdGVuZXIgZnJvbSBhIGRpZmZlcmVudCBnbG9iYWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413182</attachid>
            <date>2020-11-04 11:05:22 -0800</date>
            <delta_ts>2020-11-04 16:11:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218546-20201104110520.patch</filename>
            <type>text/plain</type>
            <size>18584</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkOWZlMDcyNWRkZWMw
NGExZWJlZDhkYjgyMjRkY2I5ZTM3ZTdhMy4uZGEzNmE4MTEyY2NhYTU0ZmI0Mzg5ODJhN2Y2NmM0
OTUxMGU2YmQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgd2luZG93LmV2ZW50IG1heSBn
ZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRpc3BhdGNoaW5nIGFuIGV2ZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1NDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBwZXIgdGhlIHNwZWNp
ZmljYXRpb24gWzFdLCB3aGlsZSBpbnZva2luZyBhbiBldmVudCBsaXN0ZW5lciwgd2Ugc2hvdWxk
IHNldCB0aGUgZ2xvYmFsJ3MKKyAgICAgICAgJ2N1cnJlbnQgZXZlbnQnLCBzdGF0aW5nIHRoYXQg
Z2xvYmFsIHRoZSAnbGlzdGVuZXIgY2FsbGJhY2vigJlzIGFzc29jaWF0ZWQgUmVhbG3igJlzIGds
b2JhbAorICAgICAgICBvYmplY3QnLiBJdCBhbHNvIHN0YXRlcyB3ZSBzaG91bGQgZG8gc28gb25s
eSBpZiBnbG9iYWwgaXMgYSBXaW5kb3cgb2JqZWN0LiBQcmV2aW91c2x5LAorICAgICAgICB3ZSB3
ZXJlIHNldHRpbmcgdGhlICdjdXJyZW50IGV2ZW50JyBvbiB0aGUgd3JvbmcgZ2xvYmFsLiBXZSB3
ZXJlIHVzaW5nIHRoZSBnbG9iYWwgb2YgdGhlCisgICAgICAgIG9iamVjdCB0aGUgZXZlbnQgbGlz
dGVuZXIgd2FzIHJlZ2lzdGVyZWQgb24uCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jY29uY2VwdC1ldmVudC1saXN0ZW5lci1pbm5lci1pbnZva2UKKworICAgICAg
ICBUZXN0czogZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1yZWN1cnNpdmUuaHRtbAorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6c2V0
Q3VycmVudEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6Y3VycmVu
dEV2ZW50IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50TGlzdGVuZXI6
OmhhbmRsZUV2ZW50KToKKwogMjAyMC0xMS0wMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBhbGlnbi1pdGVtcyBzaG91bGQgYmUgYSBkaXNjcmV0ZSBhbmlt
YXRhYmxlIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5jcHAKaW5kZXggMTVlMTY0MGVjZjVmYjNjYTc5ZTNjNTljZTMxYjRhNWY2ZjJm
M2UzNi4uNGU3NjhiODA3N2EwNDE2MjI0ODVkYWVjZDZlZDRhMmJjZGJjNTAwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtMjU3
LDE2ICsyNTcsNiBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2Vs
bCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdGhpc09iamVjdC0+bV9idWlsdGlu
SW50ZXJuYWxGdW5jdGlvbnMudmlzaXQodmlzaXRvcik7CiB9CiAKLXZvaWQgSlNET01HbG9iYWxP
YmplY3Q6OnNldEN1cnJlbnRFdmVudChFdmVudCogY3VycmVudEV2ZW50KQotewotICAgIG1fY3Vy
cmVudEV2ZW50ID0gY3VycmVudEV2ZW50OwotfQotCi1FdmVudCogSlNET01HbG9iYWxPYmplY3Q6
OmN1cnJlbnRFdmVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY3VycmVudEV2ZW50OwotfQot
CiB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0Ojpwcm9taXNlUmVqZWN0aW9uVHJhY2tlcihKU0dsb2Jh
bE9iamVjdCoganNHbG9iYWxPYmplY3QsIEpTUHJvbWlzZSogcHJvbWlzZSwgSlNQcm9taXNlUmVq
ZWN0aW9uT3BlcmF0aW9uIG9wZXJhdGlvbikKIHsKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS93ZWJhcHBhcGlzLmh0bWwjdGhlLWhvc3Rwcm9taXNlcmVqZWN0
aW9udHJhY2tlci1pbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggNzA2MTM3MDQ2MDM2Y2UyZjQ4YTZkNzNhMzgxOTQw
N2IxOGUyOTg1Ni4uMWU0ZTBmNjliNTRmZGJjYTMzMGVlOWY5NTdhMmM1NDRhMDFjYWQ4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC02
OSw5ICs2OSw2IEBAIHB1YmxpYzoKICAgICAvLyBNYWtlIGJpbmRpbmcgY29kZSBnZW5lcmF0aW9u
IGVhc2llci4KICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4g
dGhpczsgfQogCi0gICAgdm9pZCBzZXRDdXJyZW50RXZlbnQoRXZlbnQqKTsKLSAgICBFdmVudCog
Y3VycmVudEV2ZW50KCkgY29uc3Q7Ci0KICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Qzo6SlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOwogCiAgICAgRE9NV3JhcHBlcldvcmxkJiB3
b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KQEAgLTExNiw4ICsxMTMsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgYWRkQnVpbHRpbkdsb2JhbHMoSlNDOjpWTSYpOwogICAgIGZyaWVuZCB2
b2lkIEpTQnVpbHRpbkludGVybmFsRnVuY3Rpb25zOjppbml0aWFsaXplKEpTRE9NR2xvYmFsT2Jq
ZWN0Jik7CiAKLSAgICBFdmVudCogbV9jdXJyZW50RXZlbnQgeyBudWxscHRyIH07Ci0KICAgICBK
U0J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucyBtX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9uczsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmlu
ZGV4IGIwOTQ2ZTI1YTlhMGRmYWJlOWI5MjM4MGJhYjNkNzk0YWU4YWJmZWQuLmNkMTA4N2I5M2I5
NmM4YjM4MWU2OTljYmM4MTE5M2JiMDMxNzkyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtMjUwLDYgKzI1MCwxNiBAQCB2b2lkIEpT
RE9NV2luZG93QmFzZTo6d2lsbFJlbW92ZUZyb21XaW5kb3dQcm94eSgpCiAgICAgc2V0Q3VycmVu
dEV2ZW50KDApOwogfQogCit2b2lkIEpTRE9NV2luZG93QmFzZTo6c2V0Q3VycmVudEV2ZW50KEV2
ZW50KiBjdXJyZW50RXZlbnQpCit7CisgICAgbV9jdXJyZW50RXZlbnQgPSBjdXJyZW50RXZlbnQ7
Cit9CisKK0V2ZW50KiBKU0RPTVdpbmRvd0Jhc2U6OmN1cnJlbnRFdmVudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fY3VycmVudEV2ZW50LmdldCgpOworfQorCiBKU1dpbmRvd1Byb3h5JiBKU0RP
TVdpbmRvd0Jhc2U6OnByb3h5KCkgY29uc3QKIHsKICAgICByZXR1cm4gKmpzQ2FzdDxKU1dpbmRv
d1Byb3h5Kj4oJkpTRE9NR2xvYmFsT2JqZWN0Ojpwcm94eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNDU2ZmMxNDY1NTZlMTI0MmNmNTA2
NmI3MTAyZWJhYzU5YTgxYWFkYi4uNTQ1M2UyYTJkZWY0YWUxZGE1MmIwMGVhNDAxOWE3MTgwMjA5
NTk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
QEAgLTg3LDYgKzg3LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgZmlyZUZyYW1lQ2xl
YXJlZFdhdGNocG9pbnRzRm9yV2luZG93KERPTVdpbmRvdyopOwogCisgICAgdm9pZCBzZXRDdXJy
ZW50RXZlbnQoRXZlbnQqKTsKKyAgICBFdmVudCogY3VycmVudEV2ZW50KCkgY29uc3Q7CisKIHBy
b3RlY3RlZDoKICAgICBKU0RPTVdpbmRvd0Jhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwg
UmVmUHRyPERPTVdpbmRvdz4mJiwgSlNXaW5kb3dQcm94eSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNDOjpWTSYsIEpTV2luZG93UHJveHkqKTsKQEAgLTEwOCw2ICsxMTEsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICAgICBSZWZQdHI8RE9NV2luZG93PiBtX3dyYXBwZWQ7CisgICAgUmVm
UHRyPEV2ZW50PiBtX2N1cnJlbnRFdmVudDsKIH07CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBET01XaW5kb3cmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAppbmRleCBkY2E4NGE1YTNkYmM1
YjAzOGIxNzNlYjNhYTAwMmM1NGQ0MWUxYjNlLi43MmEwNjI3ZWRjNThiNTFjZGUwYjVjOWExM2Ji
ZDFmYmIzYmEzNWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vy
cm9ySGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhh
bmRsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
ICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5o
IgorI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1
ZGUgIkpTRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24u
aCIKQEAgLTc5LDggKzgwLDEyIEBAIHZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgaWYgKGNh
bGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpIHsKICAgICAgICAgUmVmPEpTRXJy
b3JIYW5kbGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAotICAgICAgICBFdmVudCogc2F2ZWRF
dmVudCA9IGdsb2JhbE9iamVjdC0+Y3VycmVudEV2ZW50KCk7Ci0gICAgICAgIGdsb2JhbE9iamVj
dC0+c2V0Q3VycmVudEV2ZW50KCZldmVudCk7CisgICAgICAgIFJlZlB0cjxFdmVudD4gc2F2ZWRF
dmVudDsKKyAgICAgICAgYXV0byoganNGdW5jdGlvbldpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNE
T01XaW5kb3cqPih2bSwganNGdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCkpOworICAgICAgICBpZiAo
anNGdW5jdGlvbldpbmRvdykgeworICAgICAgICAgICAgc2F2ZWRFdmVudCA9IGpzRnVuY3Rpb25X
aW5kb3ctPmN1cnJlbnRFdmVudCgpOworICAgICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0
Q3VycmVudEV2ZW50KCZldmVudCk7CisgICAgICAgIH0KIAogICAgICAgICBhdXRvJiBlcnJvckV2
ZW50ID0gZG93bmNhc3Q8RXJyb3JFdmVudD4oZXZlbnQpOwogCkBAIC0xMDIsNyArMTA3LDggQEAg
dm9pZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKIAogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENhbGxGdW5jdGlvbigmc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKLSAgICAgICAg
Z2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2ZWRFdmVudCk7CisgICAgICAgIGlmIChq
c0Z1bmN0aW9uV2luZG93KQorICAgICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0Q3VycmVu
dEV2ZW50KHNhdmVkRXZlbnQuZ2V0KCkpOwogCiAgICAgICAgIGlmIChleGNlcHRpb24pCiAgICAg
ICAgICAgICByZXBvcnRFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBleGNlcHRpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggOTNhOTJm
Mjk5YmIzNTk4MGYyMzA3N2MxNzdhNjgwYTVlNDkxMjk4OS4uYmNhZTU3OWVmNzQ2OGMzNzUwM2M2
NDJiNzE2MjNhYmYxMzQyNDE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50TGlzdGVuZXIuY3BwCkBAIC0xNjMsMTIgKzE2MywxNiBAQCB2b2lkIEpTRXZlbnRMaXN0
ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9u
Q29udGV4dAogICAgIGFyZ3MuYXBwZW5kKHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFs
T2JqZWN0LCAmZXZlbnQpKTsKICAgICBBU1NFUlQoIWFyZ3MuaGFzT3ZlcmZsb3dlZCgpKTsKIAot
ICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xvYmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLQot
ICAgIC8vIHdpbmRvdy5ldmVudCBzaG91bGQgbm90IGJlIHNldCB3aGVuIHRoZSB0YXJnZXQgaXMg
aW5zaWRlIGEgc2hhZG93IHRyZWUsIGFzIHBlciB0aGUgRE9NIHNwZWNpZmljYXRpb24uCi0gICAg
Ym9vbCBpc1RhcmdldEluc2lkZVNoYWRvd1RyZWUgPSBpczxOb2RlPihldmVudC5jdXJyZW50VGFy
Z2V0KCkpICYmIGRvd25jYXN0PE5vZGU+KCpldmVudC5jdXJyZW50VGFyZ2V0KCkpLmlzSW5TaGFk
b3dUcmVlKCk7Ci0gICAgaWYgKCFpc1RhcmdldEluc2lkZVNoYWRvd1RyZWUpCi0gICAgICAgIGds
b2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KCZldmVudCk7CisgICAgUmVmUHRyPEV2ZW50PiBz
YXZlZEV2ZW50OworICAgIGF1dG8qIGpzRnVuY3Rpb25XaW5kb3cgPSBqc0R5bmFtaWNDYXN0PEpT
RE9NV2luZG93Kj4odm0sIGpzRnVuY3Rpb24tPmdsb2JhbE9iamVjdCgpKTsKKyAgICBpZiAoanNG
dW5jdGlvbldpbmRvdykgeworICAgICAgICBzYXZlZEV2ZW50ID0ganNGdW5jdGlvbldpbmRvdy0+
Y3VycmVudEV2ZW50KCk7CisKKyAgICAgICAgLy8gd2luZG93LmV2ZW50IHNob3VsZCBub3QgYmUg
c2V0IHdoZW4gdGhlIHRhcmdldCBpcyBpbnNpZGUgYSBzaGFkb3cgdHJlZSwgYXMgcGVyIHRoZSBE
T00gc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgYm9vbCBpc1RhcmdldEluc2lkZVNoYWRvd1RyZWUg
PSBpczxOb2RlPihldmVudC5jdXJyZW50VGFyZ2V0KCkpICYmIGRvd25jYXN0PE5vZGU+KCpldmVu
dC5jdXJyZW50VGFyZ2V0KCkpLmlzSW5TaGFkb3dUcmVlKCk7CisgICAgICAgIGlmICghaXNUYXJn
ZXRJbnNpZGVTaGFkb3dUcmVlKQorICAgICAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0Q3Vy
cmVudEV2ZW50KCZldmVudCk7CisgICAgfQogCiAgICAgVk1FbnRyeVNjb3BlIGVudHJ5U2NvcGUo
dm0sIHZtLmVudHJ5U2NvcGUgPyB2bS5lbnRyeVNjb3BlLT5nbG9iYWxPYmplY3QoKSA6IGdsb2Jh
bE9iamVjdCk7CiAKQEAgLTE4MCw3ICsxODQsOCBAQCB2b2lkIEpTRXZlbnRMaXN0ZW5lcjo6aGFu
ZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dAog
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDYWxsRnVuY3Rpb24oJnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOwogCi0gICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoc2F2
ZWRFdmVudCk7CisgICAgaWYgKGpzRnVuY3Rpb25XaW5kb3cpCisgICAgICAgIGpzRnVuY3Rpb25X
aW5kb3ctPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50LmdldCgpKTsKIAogICAgIGF1dG8gaGFu
ZGxlRXhjZXB0aW9uSWZOZWVkZWQgPSBbJl0gKCkgLT4gYm9vbCB7CiAgICAgICAgIGlmIChpczxX
b3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMzQx
ZDkwZjVlMzEyZWEyOTA4NTZiMDVmYmJiZjViODIxMTA2Y2I2Li42MWFlMDNlOGNmZThhNjA1ODI3
ODZhNWY4OTg1NThiYzE3NjlhNmYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMTEtMDQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICB3aW5kb3cuZXZlbnQg
bWF5IGdldCBzZXQgb24gd3JvbmcgZ2xvYmFsIHdoZW4gZGlzcGF0Y2hpbmcgYW4gZXZlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU0NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4dGVuZCBsYXlv
dXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1v
bmVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93
LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1yZWN1cnNpdmUuaHRtbDogQWRkZWQu
CisKIDIwMjAtMTEtMDQgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBVcGRhdGUgYmFzZWxpbmVz
IG9mIGZhaWxpbmcgdGVzdHMgdGhhdCBzaG91bGQgYmUgYWN0dWFsbHkgcGFzc2luZy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQ0NTAwMzQ0NmFkMDVkMmRkODRjNzNiYWQwN2Uw
NjRlODZhNTFkMGEuLjgyY2U2ZGFjZWVkMjg4OTkwMDY5OTU4YTA1Y2FmMjgxMzhkNGI3NzkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTA0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgd2luZG93LmV2ZW50
IG1heSBnZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRpc3BhdGNoaW5nIGFuIGV2ZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1NDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5l
IFdQVCB0ZXN0IHRoYXQgaXMgbm93IHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dDoK
KwogMjAyMC0xMS0wNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tIHRlc3RzIGZyb20gdXBzdHJlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTcwMDg2Y2U0MjZhZTFmYzk1Mjk0ODBkZTZmODM0ODk5
MjFkNTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LWV2ZW50LW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3RzIHRoYXQg
d2luZG93LmV2ZW50IGlzIHNldCBvbiB0aGUgcmlnaHQgZ2xvYmFsIHdoZW4gYW4gZXJyb3IgZXZl
bnQgaXMgZmlyZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG90aGVy
V2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1Mgd2luZG93LmV2ZW50IGlzIHVuZGVmaW5l
ZC4KK0Rpc3BhdGNoaW5nIGVycm9yIGV2ZW50CitQQVNTIG90aGVyV2luZG93LmV2ZW50IGlzIHVu
ZGVmaW5lZC4KK1BBU1MgcGFzc2VkRXZlbnQgaXMgd2luZG93LmV2ZW50CitQQVNTIG90aGVyV2lu
ZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1Mgd2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1
cnNpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50
LW9uZXJyb3ItcmVjdXJzaXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2ZiNGJlZDc4Yjc0
OThmYTMxMTczZDYzNGM3MDllMWYwMTAzNTRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIxIEBACitUZXN0cyB0aGF0IHdpbmRvdy5ldmVudCBpcyBzZXQgb24gdGhl
IHJpZ2h0IGdsb2JhbCB3aGVuIGFuIGVycm9yIGV2ZW50IGlzIGZpcmVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQu
CitQQVNTIHdpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitEaXNwYXRjaGluZyBlcnJvciBldmVu
dAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50
IGlzIHdpbmRvdy5ldmVudAorRGlzcGF0Y2hpbmcgcmVjdXJzaXZlIGVycm9yIGV2ZW50CitQQVNT
IG90aGVyV2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1MgcGFzc2VkRXZlbnQgaXMgd2lu
ZG93LmV2ZW50CitQQVNTIG90aGVyV2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1MgcGFz
c2VkRXZlbnQgaXMgd2luZG93LmV2ZW50CitQQVNTIG90aGVyV2luZG93LmV2ZW50IGlzIHVuZGVm
aW5lZC4KK1BBU1Mgd2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1cnNpdmUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLXJlY3Vyc2l2ZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ3YTkwODdhMWMyOTU2OTM5YmY5ZThlZGE2MTJhYjZmMGU1N2Q2YzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJv
ci1yZWN1cnNpdmUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdpbmRvdy5ldmVudCBpcyBz
ZXQgb24gdGhlIHJpZ2h0IGdsb2JhbCB3aGVuIGFuIGVycm9yIGV2ZW50IGlzIGZpcmVkLiIpOwor
CitsZXQgZGlzcGF0Y2hlZFJlY3Vyc2l2ZUV2ZW50ID0gZmFsc2U7CisKK2NvbnN0IG90aGVyV2lu
ZG93ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
ZnJhbWUiKSkuY29udGVudFdpbmRvdzsKK290aGVyV2luZG93Lm9uZXJyb3IgPSAoZSkgPT4gewor
ICAgIHBhc3NlZEV2ZW50ID0gZTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cu
ZXZlbnQiKTsKKyAgICBzaG91bGRCZSgicGFzc2VkRXZlbnQiLCAid2luZG93LmV2ZW50Iik7CisK
KyAgICBpZiAoIWRpc3BhdGNoZWRSZWN1cnNpdmVFdmVudCkgeworICAgICAgICBkaXNwYXRjaGVk
UmVjdXJzaXZlRXZlbnQgPSB0cnVlOworICAgICAgICBkZWJ1ZygiRGlzcGF0Y2hpbmcgcmVjdXJz
aXZlIGVycm9yIGV2ZW50Iik7CisgICAgICAgIG90aGVyV2luZG93LmRpc3BhdGNoRXZlbnQobmV3
IEV2ZW50KCJlcnJvciIpKTsKKworICAgICAgICBwYXNzZWRFdmVudCA9IGU7CisgICAgICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5ldmVudCIpOworICAgICAgICBzaG91bGRCZSgi
cGFzc2VkRXZlbnQiLCAid2luZG93LmV2ZW50Iik7CisgICAgfQorfQorc2hvdWxkQmVVbmRlZmlu
ZWQoIm90aGVyV2luZG93LmV2ZW50Iik7CitzaG91bGRCZVVuZGVmaW5lZCgid2luZG93LmV2ZW50
Iik7CitkZWJ1ZygiRGlzcGF0Y2hpbmcgZXJyb3IgZXZlbnQiKTsKK290aGVyV2luZG93LmRpc3Bh
dGNoRXZlbnQobmV3IEV2ZW50KCJlcnJvciIpKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldp
bmRvdy5ldmVudCIpOworc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy5ldmVudCIpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctZXZlbnQtb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2lu
ZG93LWV2ZW50LW9uZXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTUxYzNmNzc0NGNhNDcwYjgwYWVi
YzkwZGI2NDRiOTk3NzliOTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3IuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdp
bmRvdy5ldmVudCBpcyBzZXQgb24gdGhlIHJpZ2h0IGdsb2JhbCB3aGVuIGFuIGVycm9yIGV2ZW50
IGlzIGZpcmVkLiIpOworCitjb25zdCBvdGhlcldpbmRvdyA9IGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLmNvbnRlbnRXaW5kb3c7Citv
dGhlcldpbmRvdy5vbmVycm9yID0gKGUpID0+IHsKKyAgICBwYXNzZWRFdmVudCA9IGU7CisgICAg
c2hvdWxkQmVVbmRlZmluZWQoIm90aGVyV2luZG93LmV2ZW50Iik7CisgICAgc2hvdWxkQmUoInBh
c3NlZEV2ZW50IiwgIndpbmRvdy5ldmVudCIpOworfQorc2hvdWxkQmVVbmRlZmluZWQoIm90aGVy
V2luZG93LmV2ZW50Iik7CitzaG91bGRCZVVuZGVmaW5lZCgid2luZG93LmV2ZW50Iik7CitkZWJ1
ZygiRGlzcGF0Y2hpbmcgZXJyb3IgZXZlbnQiKTsKK290aGVyV2luZG93LmRpc3BhdGNoRXZlbnQo
bmV3IEV2ZW50KCJlcnJvciIpKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5ldmVu
dCIpOworc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy5ldmVudCIpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ct
ZXZlbnQtcmVjdXJzaXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1ldmVudC1yZWN1cnNpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MjZkN2NjNzk2
ZTRjZDFjMTcxYWI3ZjdmYzlhYjRkMzE3NTViNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtcmVjdXJzaXZlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIxIEBACitUZXN0cyB0aGF0IHdpbmRvdy5ldmVudCBpcyBzZXQgb24gdGhlIHJpZ2h0
IGdsb2JhbCB3aGVuIGFuIGV2ZW50IGlzIGZpcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHdpbmRv
dy5ldmVudCBpcyB1bmRlZmluZWQuCitEaXNwYXRjaGluZyBlcnJvciBldmVudAorUEFTUyBvdGhl
cldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5l
dmVudAorRGlzcGF0Y2hpbmcgcmVjdXJzaXZlIGVycm9yIGV2ZW50CitQQVNTIG90aGVyV2luZG93
LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1MgcGFzc2VkRXZlbnQgaXMgd2luZG93LmV2ZW50CitQ
QVNTIG90aGVyV2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1MgcGFzc2VkRXZlbnQgaXMg
d2luZG93LmV2ZW50CitQQVNTIG90aGVyV2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1Mg
d2luZG93LmV2ZW50IGlzIHVuZGVmaW5lZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy93aW5kb3ctZXZlbnQtcmVjdXJzaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctZXZlbnQtcmVjdXJzaXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM4NjdhOWFiYmQyOTNjMzlh
YTdkZmRkZTc2YmM2NTk5YTUzNmQyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3dpbmRvdy1ldmVudC1yZWN1cnNpdmUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHdpbmRvdy5ldmVudCBpcyBzZXQgb24gdGhlIHJpZ2h0IGdsb2JhbCB3aGVuIGFuIGV2ZW50
IGlzIGZpcmVkLiIpOworCitsZXQgZGlzcGF0Y2hlZFJlY3Vyc2l2ZUV2ZW50ID0gZmFsc2U7CisK
K2NvbnN0IG90aGVyV2luZG93ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKSkuY29udGVudFdpbmRvdzsKK290aGVyV2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImZvbyIsIChlKSA9PiB7CisgICAgcGFzc2VkRXZlbnQgPSBlOworICAgIHNo
b3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5ldmVudCIpOworICAgIHNob3VsZEJlKCJwYXNz
ZWRFdmVudCIsICJ3aW5kb3cuZXZlbnQiKTsKKworICAgIGlmICghZGlzcGF0Y2hlZFJlY3Vyc2l2
ZUV2ZW50KSB7CisgICAgICAgIGRpc3BhdGNoZWRSZWN1cnNpdmVFdmVudCA9IHRydWU7CisgICAg
ICAgIGRlYnVnKCJEaXNwYXRjaGluZyByZWN1cnNpdmUgZXJyb3IgZXZlbnQiKTsKKyAgICAgICAg
b3RoZXJXaW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImZvbyIpKTsKKworICAgICAgICBw
YXNzZWRFdmVudCA9IGU7CisgICAgICAgIHNob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5l
dmVudCIpOworICAgICAgICBzaG91bGRCZSgicGFzc2VkRXZlbnQiLCAid2luZG93LmV2ZW50Iik7
CisgICAgfQorfSk7CitzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKK3No
b3VsZEJlVW5kZWZpbmVkKCJ3aW5kb3cuZXZlbnQiKTsKK2RlYnVnKCJEaXNwYXRjaGluZyBlcnJv
ciBldmVudCIpOworb3RoZXJXaW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImZvbyIpKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5ldmVudCIpOworc2hvdWxkQmVVbmRlZmlu
ZWQoIndpbmRvdy5ldmVudCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvZXZlbnQtZ2xvYmFsLWV4dHJhLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFsLWV4
dHJhLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXggZWI5NTc0NTA3MjlhNjQxMTRmYzkyMGM1ZjUw
YjE3ODhjZDQyNzg0Ni4uYjNhNDViNzM5MzdhZDgzZDVkZDIwNzVlODY5OWY5OGU4YTc4ODg0OSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL2V2ZW50LWdsb2JhbC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVu
dC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJ
TCB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBFdmVu
dFRhcmdldCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0
IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIgotRkFJTCB3aW5kb3cuZXZlbnQg
Zm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBYTUxIdHRwUmVxdWVzdCBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0
KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIgorUEFTUyB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVj
dG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBFdmVudFRhcmdldAorUEFTUyB3aW5kb3cuZXZlbnQg
Zm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBYTUxIdHRwUmVxdWVzdAogUEFT
UyB3aW5kb3cuZXZlbnQgYW5kIGVsZW1lbnQgZnJvbSBhbm90aGVyIGRvY3VtZW50Ci1GQUlMIHdp
bmRvdy5ldmVudCBhbmQgbW92aW5nIGFuIGVsZW1lbnQgcG9zdC1kaXNwYXRjaCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIiBidXQgZ290ICh1
bmRlZmluZWQpIHVuZGVmaW5lZAorUEFTUyB3aW5kb3cuZXZlbnQgYW5kIG1vdmluZyBhbiBlbGVt
ZW50IHBvc3QtZGlzcGF0Y2gKIEZBSUwgd2luZG93LmV2ZW50IHNob3VsZCBub3QgYmUgYWZmZWN0
ZWQgYnkgbm9kZXMgbW92aW5nIHBvc3QtZGlzcGF0Y2ggYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
KHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2
ZW50XSIKLUZBSUwgTGlzdGVuZXIgZnJvbSBhIGRpZmZlcmVudCBnbG9iYWwgYXNzZXJ0X2VxdWFs
czogZXhwZWN0ZWQgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIgYnV0IGdvdCAodW5k
ZWZpbmVkKSB1bmRlZmluZWQKK1BBU1MgTGlzdGVuZXIgZnJvbSBhIGRpZmZlcmVudCBnbG9iYWwK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413184</attachid>
            <date>2020-11-04 11:10:54 -0800</date>
            <delta_ts>2020-11-04 16:09:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218546-20201104111053.patch</filename>
            <type>text/plain</type>
            <size>108086</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkOWZlMDcyNWRkZWMw
NGExZWJlZDhkYjgyMjRkY2I5ZTM3ZTdhMy4uMjQzYjc5ZjZlYWNjOGQ1MjRjOTc5NTA4ZGM3MGNl
ZmM5MDg0MTFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgd2luZG93LmV2ZW50IG1heSBn
ZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRpc3BhdGNoaW5nIGFuIGV2ZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1NDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBwZXIgdGhlIHNwZWNp
ZmljYXRpb24gWzFdLCB3aGlsZSBpbnZva2luZyBhbiBldmVudCBsaXN0ZW5lciwgd2Ugc2hvdWxk
IHNldCB0aGUgZ2xvYmFsJ3MKKyAgICAgICAgJ2N1cnJlbnQgZXZlbnQnLCBzdGF0aW5nIHRoYXQg
Z2xvYmFsIGlzIHRoZSAibGlzdGVuZXIgY2FsbGJhY2sncyBhc3NvY2lhdGVkIFJlYWxtJ3MgZ2xv
YmFsCisgICAgICAgIG9iamVjdCIuIEl0IGFsc28gc3RhdGVzIHdlIHNob3VsZCBkbyBzbyBvbmx5
IGlmIGdsb2JhbCBpcyBhIFdpbmRvdyBvYmplY3QuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdl
cmUgc2V0dGluZyB0aGUgJ2N1cnJlbnQgZXZlbnQnIG9uIHRoZSB3cm9uZyBnbG9iYWwuIFdlIHdl
cmUgdXNpbmcgdGhlIGdsb2JhbCBvZiB0aGUKKyAgICAgICAgb2JqZWN0IHRoZSBldmVudCBsaXN0
ZW5lciB3YXMgcmVnaXN0ZXJlZCBvbi4KKworICAgICAgICBbMV0gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNjb25jZXB0LWV2ZW50LWxpc3RlbmVyLWlubmVyLWludm9rZQorCisgICAgICAg
IFRlc3RzOiBmYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1cnNpdmUuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3IuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2ZS5odG1sCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzZXRD
dXJyZW50RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpjdXJyZW50
RXZlbnQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQpOgorCiAyMDIwLTExLTAzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIGFsaWduLWl0ZW1zIHNob3VsZCBiZSBhIGRpc2NyZXRlIGFuaW1h
dGFibGUgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcAppbmRleCAxNWUxNjQwZWNmNWZiM2NhNzllM2M1OWNlMzFiNGE1ZjZmMmYz
ZTM2Li40ZTc2OGI4MDc3YTA0MTYyMjQ4NWRhZWNkNmVkNGEyYmNkYmM1MDBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC0yNTcs
MTYgKzI1Nyw2IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB0aGlzT2JqZWN0LT5tX2J1aWx0aW5J
bnRlcm5hbEZ1bmN0aW9ucy52aXNpdCh2aXNpdG9yKTsKIH0KIAotdm9pZCBKU0RPTUdsb2JhbE9i
amVjdDo6c2V0Q3VycmVudEV2ZW50KEV2ZW50KiBjdXJyZW50RXZlbnQpCi17Ci0gICAgbV9jdXJy
ZW50RXZlbnQgPSBjdXJyZW50RXZlbnQ7Ci19Ci0KLUV2ZW50KiBKU0RPTUdsb2JhbE9iamVjdDo6
Y3VycmVudEV2ZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jdXJyZW50RXZlbnQ7Ci19Ci0K
IHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OnByb21pc2VSZWplY3Rpb25UcmFja2VyKEpTR2xvYmFs
T2JqZWN0KiBqc0dsb2JhbE9iamVjdCwgSlNQcm9taXNlKiBwcm9taXNlLCBKU1Byb21pc2VSZWpl
Y3Rpb25PcGVyYXRpb24gb3BlcmF0aW9uKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3dlYmFwcGFwaXMuaHRtbCN0aGUtaG9zdHByb21pc2VyZWplY3Rp
b250cmFja2VyLWltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaAppbmRleCA3MDYxMzcwNDYwMzZjZTJmNDhhNmQ3M2EzODE5NDA3
YjE4ZTI5ODU2Li4xZTRlMGY2OWI1NGZkYmNhMzMwZWU5Zjk1N2EyYzU0NGEwMWNhZDgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTY5
LDkgKzY5LDYgQEAgcHVibGljOgogICAgIC8vIE1ha2UgYmluZGluZyBjb2RlIGdlbmVyYXRpb24g
ZWFzaWVyLgogICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiB0
aGlzOyB9CiAKLSAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOwotICAgIEV2ZW50KiBj
dXJyZW50RXZlbnQoKSBjb25zdDsKLQogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
OjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKICAgICBET01XcmFwcGVyV29ybGQmIHdv
cmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpAQCAtMTE2LDggKzExMyw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhZGRCdWlsdGluR2xvYmFscyhKU0M6OlZNJik7CiAgICAgZnJpZW5kIHZv
aWQgSlNCdWlsdGluSW50ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmpl
Y3QmKTsKIAotICAgIEV2ZW50KiBtX2N1cnJlbnRFdmVudCB7IG51bGxwdHIgfTsKLQogICAgIEpT
QnVpbHRpbkludGVybmFsRnVuY3Rpb25zIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5k
ZXggYjA5NDZlMjVhOWEwZGZhYmU5YjkyMzgwYmFiM2Q3OTRhZThhYmZlZC4uY2QxMDg3YjkzYjk2
YzhiMzgxZTY5OWNiYzgxMTkzYmIwMzE3OTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC0yNTAsNiArMjUwLDE2IEBAIHZvaWQgSlNE
T01XaW5kb3dCYXNlOjp3aWxsUmVtb3ZlRnJvbVdpbmRvd1Byb3h5KCkKICAgICBzZXRDdXJyZW50
RXZlbnQoMCk7CiB9CiAKK3ZvaWQgSlNET01XaW5kb3dCYXNlOjpzZXRDdXJyZW50RXZlbnQoRXZl
bnQqIGN1cnJlbnRFdmVudCkKK3sKKyAgICBtX2N1cnJlbnRFdmVudCA9IGN1cnJlbnRFdmVudDsK
K30KKworRXZlbnQqIEpTRE9NV2luZG93QmFzZTo6Y3VycmVudEV2ZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jdXJyZW50RXZlbnQuZ2V0KCk7Cit9CisKIEpTV2luZG93UHJveHkmIEpTRE9N
V2luZG93QmFzZTo6cHJveHkoKSBjb25zdAogewogICAgIHJldHVybiAqanNDYXN0PEpTV2luZG93
UHJveHkqPigmSlNET01HbG9iYWxPYmplY3Q6OnByb3h5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA0NTZmYzE0NjU1NmUxMjQyY2Y1MDY2
YjcxMDJlYmFjNTlhODFhYWRiLi41NDUzZTJhMmRlZjRhZTFkYTUyYjAwZWE0MDE5YTcxODAyMDk1
OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApA
QCAtODcsNiArODcsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBmaXJlRnJhbWVDbGVh
cmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93Kik7CiAKKyAgICB2b2lkIHNldEN1cnJl
bnRFdmVudChFdmVudCopOworICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIEpTRE9NV2luZG93QmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBS
ZWZQdHI8RE9NV2luZG93PiYmLCBKU1dpbmRvd1Byb3h5Kik7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJiwgSlNXaW5kb3dQcm94eSopOwpAQCAtMTA4LDYgKzExMSw3IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd3JhcHBlZDsKKyAgICBSZWZQ
dHI8RXZlbnQ+IG1fY3VycmVudEV2ZW50OwogfTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIERPTVdpbmRvdyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGRjYTg0YTVhM2RiYzVi
MDM4YjE3M2ViM2FhMDAyYzU0ZDQxZTFiM2UuLjcyYTA2MjdlZGM1OGI1MWNkZTBiNWM5YTEzYmJk
MWZiYjNiYTM1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJy
b3JIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFu
ZGxlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
IkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgi
CisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0V2ZW50LmgiCiAjaW5jbHVk
ZSAiSlNFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
IgpAQCAtNzksOCArODAsMTIgQEAgdm9pZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICBpZiAoY2Fs
bERhdGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSkgewogICAgICAgICBSZWY8SlNFcnJv
ckhhbmRsZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCi0gICAgICAgIEV2ZW50KiBzYXZlZEV2
ZW50ID0gZ2xvYmFsT2JqZWN0LT5jdXJyZW50RXZlbnQoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0
LT5zZXRDdXJyZW50RXZlbnQoJmV2ZW50KTsKKyAgICAgICAgUmVmUHRyPEV2ZW50PiBzYXZlZEV2
ZW50OworICAgICAgICBhdXRvKiBqc0Z1bmN0aW9uV2luZG93ID0ganNEeW5hbWljQ2FzdDxKU0RP
TVdpbmRvdyo+KHZtLCBqc0Z1bmN0aW9uLT5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGlmIChq
c0Z1bmN0aW9uV2luZG93KSB7CisgICAgICAgICAgICBzYXZlZEV2ZW50ID0ganNGdW5jdGlvbldp
bmRvdy0+Y3VycmVudEV2ZW50KCk7CisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRD
dXJyZW50RXZlbnQoJmV2ZW50KTsKKyAgICAgICAgfQogCiAgICAgICAgIGF1dG8mIGVycm9yRXZl
bnQgPSBkb3duY2FzdDxFcnJvckV2ZW50PihldmVudCk7CiAKQEAgLTEwMiw3ICsxMDcsOCBAQCB2
b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0LAogCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ2FsbEZ1bmN0aW9uKCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAotICAgICAgICBn
bG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50KTsKKyAgICAgICAgaWYgKGpz
RnVuY3Rpb25XaW5kb3cpCisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50
RXZlbnQoc2F2ZWRFdmVudC5nZXQoKSk7CiAKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAg
ICAgICAgIHJlcG9ydEV4Y2VwdGlvbihnbG9iYWxPYmplY3QsIGV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCA5M2E5MmYy
OTliYjM1OTgwZjIzMDc3YzE3N2E2ODBhNWU0OTEyOTg5Li5iY2FlNTc5ZWY3NDY4YzM3NTAzYzY0
MmI3MTYyM2FiZjEzNDI0MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTE2MywxMiArMTYzLDE2IEBAIHZvaWQgSlNFdmVudExpc3Rl
bmVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0CiAgICAgYXJncy5hcHBlbmQodG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsICZldmVudCkpOwogICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxvd2VkKCkpOwogCi0g
ICAgRXZlbnQqIHNhdmVkRXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOwotCi0g
ICAgLy8gd2luZG93LmV2ZW50IHNob3VsZCBub3QgYmUgc2V0IHdoZW4gdGhlIHRhcmdldCBpcyBp
bnNpZGUgYSBzaGFkb3cgdHJlZSwgYXMgcGVyIHRoZSBET00gc3BlY2lmaWNhdGlvbi4KLSAgICBi
b29sIGlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSA9IGlzPE5vZGU+KGV2ZW50LmN1cnJlbnRUYXJn
ZXQoKSkgJiYgZG93bmNhc3Q8Tm9kZT4oKmV2ZW50LmN1cnJlbnRUYXJnZXQoKSkuaXNJblNoYWRv
d1RyZWUoKTsKLSAgICBpZiAoIWlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSkKLSAgICAgICAgZ2xv
YmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoJmV2ZW50KTsKKyAgICBSZWZQdHI8RXZlbnQ+IHNh
dmVkRXZlbnQ7CisgICAgYXV0byoganNGdW5jdGlvbldpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNE
T01XaW5kb3cqPih2bSwganNGdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCkpOworICAgIGlmIChqc0Z1
bmN0aW9uV2luZG93KSB7CisgICAgICAgIHNhdmVkRXZlbnQgPSBqc0Z1bmN0aW9uV2luZG93LT5j
dXJyZW50RXZlbnQoKTsKKworICAgICAgICAvLyB3aW5kb3cuZXZlbnQgc2hvdWxkIG5vdCBiZSBz
ZXQgd2hlbiB0aGUgdGFyZ2V0IGlzIGluc2lkZSBhIHNoYWRvdyB0cmVlLCBhcyBwZXIgdGhlIERP
TSBzcGVjaWZpY2F0aW9uLgorICAgICAgICBib29sIGlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSA9
IGlzPE5vZGU+KGV2ZW50LmN1cnJlbnRUYXJnZXQoKSkgJiYgZG93bmNhc3Q8Tm9kZT4oKmV2ZW50
LmN1cnJlbnRUYXJnZXQoKSkuaXNJblNoYWRvd1RyZWUoKTsKKyAgICAgICAgaWYgKCFpc1Rhcmdl
dEluc2lkZVNoYWRvd1RyZWUpCisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJy
ZW50RXZlbnQoJmV2ZW50KTsKKyAgICB9CiAKICAgICBWTUVudHJ5U2NvcGUgZW50cnlTY29wZSh2
bSwgdm0uZW50cnlTY29wZSA/IHZtLmVudHJ5U2NvcGUtPmdsb2JhbE9iamVjdCgpIDogZ2xvYmFs
T2JqZWN0KTsKIApAQCAtMTgwLDcgKzE4NCw4IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAK
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbigmc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7CiAKLSAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZl
ZEV2ZW50KTsKKyAgICBpZiAoanNGdW5jdGlvbldpbmRvdykKKyAgICAgICAganNGdW5jdGlvbldp
bmRvdy0+c2V0Q3VycmVudEV2ZW50KHNhdmVkRXZlbnQuZ2V0KCkpOwogCiAgICAgYXV0byBoYW5k
bGVFeGNlcHRpb25JZk5lZWRlZCA9IFsmXSAoKSAtPiBib29sIHsKICAgICAgICAgaWYgKGlzPFdv
cmtlckdsb2JhbFNjb3BlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEzNDFk
OTBmNWUzMTJlYTI5MDg1NmIwNWZiYmJmNWI4MjExMDZjYjYuLjYxYWUwM2U4Y2ZlOGE2MDU4Mjc4
NmE1Zjg5ODU1OGJjMTc2OWE2ZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMS0wNCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIHdpbmRvdy5ldmVudCBt
YXkgZ2V0IHNldCBvbiB3cm9uZyBnbG9iYWwgd2hlbiBkaXNwYXRjaGluZyBhbiBldmVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0ZW5kIGxheW91
dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9u
ZXJyb3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ct
ZXZlbnQtb25lcnJvci1yZWN1cnNpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1cnNpdmUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3IuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2ZS5odG1sOiBBZGRlZC4K
KwogMjAyMC0xMS0wNCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSBiYXNlbGluZXMg
b2YgZmFpbGluZyB0ZXN0cyB0aGF0IHNob3VsZCBiZSBhY3R1YWxseSBwYXNzaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDhjMDQ2YTg0Nzc1Zjg2Y2MwNmZmZTI3M2RlNTJl
NjE5ZDk0ZDNiZi4uODJjZTZkYWNlZWQyODg5OTAwNjk5NThhMDVjYWYyODEzOGQ0Yjc3OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMTEtMDQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICB3aW5kb3cuZXZlbnQg
bWF5IGdldCBzZXQgb24gd3JvbmcgZ2xvYmFsIHdoZW4gZGlzcGF0Y2hpbmcgYW4gZXZlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU0NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUg
V1BUIHRlc3QgdGhhdCBpcyBub3cgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL2V2ZW50LWdsb2JhbC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0Ogor
CisyMDIwLTExLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVzeW5jIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20gdGVzdHMgZnJvbSB1cHN0cmVhbQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTcwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVzeW5jIHdlYi1wbGF0
Zm9ybS10ZXN0cy9kb20gdGVzdHMgZnJvbSB1cHN0cmVhbSA3YTI4N2M5ZTI2ZmJjMTJjOTEuCisK
KyAgICAgICAgKiByZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbjoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tLyo6IFVwZGF0ZWQKKwogMjAyMC0xMS0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9wYXJhbS1pbnRlcmZhY2Uvay1y
YXRlLXBhbm5lci1jb25uZWN0aW9ucy5odG1sIGZhaWxzIG9uIHNvbWUgcGxhdGZvcm1zCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU3MDA4NmNlNDI2YWUxZmM5NTI5NDgwZGU2ZjgzNDg5
OTIxZDU2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRv
dy1ldmVudC1vbmVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0
IHdpbmRvdy5ldmVudCBpcyBzZXQgb24gdGhlIHJpZ2h0IGdsb2JhbCB3aGVuIGFuIGVycm9yIGV2
ZW50IGlzIGZpcmVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvdGhl
cldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHdpbmRvdy5ldmVudCBpcyB1bmRlZmlu
ZWQuCitEaXNwYXRjaGluZyBlcnJvciBldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1
bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAorUEFTUyBvdGhlcldp
bmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHdpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVj
dXJzaXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVu
dC1vbmVycm9yLXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNmYjRiZWQ3OGI3
NDk4ZmEzMTE3M2Q2MzRjNzA5ZTFmMDEwMzU0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLXJlY3Vyc2l2ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMSBAQAorVGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRo
ZSByaWdodCBnbG9iYWwgd2hlbiBhbiBlcnJvciBldmVudCBpcyBmaXJlZC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgb3RoZXJXaW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVk
LgorUEFTUyB3aW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorRGlzcGF0Y2hpbmcgZXJyb3IgZXZl
bnQKK1BBU1Mgb3RoZXJXaW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorUEFTUyBwYXNzZWRFdmVu
dCBpcyB3aW5kb3cuZXZlbnQKK0Rpc3BhdGNoaW5nIHJlY3Vyc2l2ZSBlcnJvciBldmVudAorUEFT
UyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdp
bmRvdy5ldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBh
c3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRl
ZmluZWQuCitQQVNTIHdpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1cnNpdmUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kN2E5MDg3YTFjMjk1NjkzOWJmOWU4ZWRhNjEyYWI2ZjBlNTdkNmM2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJy
b3ItcmVjdXJzaXZlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMg
c2V0IG9uIHRoZSByaWdodCBnbG9iYWwgd2hlbiBhbiBlcnJvciBldmVudCBpcyBmaXJlZC4iKTsK
KworbGV0IGRpc3BhdGNoZWRSZWN1cnNpdmVFdmVudCA9IGZhbHNlOworCitjb25zdCBvdGhlcldp
bmRvdyA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIikpLmNvbnRlbnRXaW5kb3c7CitvdGhlcldpbmRvdy5vbmVycm9yID0gKGUpID0+IHsK
KyAgICBwYXNzZWRFdmVudCA9IGU7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoIm90aGVyV2luZG93
LmV2ZW50Iik7CisgICAgc2hvdWxkQmUoInBhc3NlZEV2ZW50IiwgIndpbmRvdy5ldmVudCIpOwor
CisgICAgaWYgKCFkaXNwYXRjaGVkUmVjdXJzaXZlRXZlbnQpIHsKKyAgICAgICAgZGlzcGF0Y2hl
ZFJlY3Vyc2l2ZUV2ZW50ID0gdHJ1ZTsKKyAgICAgICAgZGVidWcoIkRpc3BhdGNoaW5nIHJlY3Vy
c2l2ZSBlcnJvciBldmVudCIpOworICAgICAgICBvdGhlcldpbmRvdy5kaXNwYXRjaEV2ZW50KG5l
dyBFdmVudCgiZXJyb3IiKSk7CisKKyAgICAgICAgcGFzc2VkRXZlbnQgPSBlOworICAgICAgICBz
aG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKKyAgICAgICAgc2hvdWxkQmUo
InBhc3NlZEV2ZW50IiwgIndpbmRvdy5ldmVudCIpOworICAgIH0KK30KK3Nob3VsZEJlVW5kZWZp
bmVkKCJvdGhlcldpbmRvdy5ldmVudCIpOworc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy5ldmVu
dCIpOworZGVidWcoIkRpc3BhdGNoaW5nIGVycm9yIGV2ZW50Iik7CitvdGhlcldpbmRvdy5kaXNw
YXRjaEV2ZW50KG5ldyBFdmVudCgiZXJyb3IiKSk7CitzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJX
aW5kb3cuZXZlbnQiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJ3aW5kb3cuZXZlbnQiKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LWV2ZW50LW9uZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dp
bmRvdy1ldmVudC1vbmVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1MWMzZjc3NDRjYTQ3MGI4MGFl
YmM5MGRiNjQ0Yjk5Nzc5Yjk1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3
aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRoZSByaWdodCBnbG9iYWwgd2hlbiBhbiBlcnJvciBldmVu
dCBpcyBmaXJlZC4iKTsKKworY29uc3Qgb3RoZXJXaW5kb3cgPSBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKS5jb250ZW50V2luZG93Owor
b3RoZXJXaW5kb3cub25lcnJvciA9IChlKSA9PiB7CisgICAgcGFzc2VkRXZlbnQgPSBlOworICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5ldmVudCIpOworICAgIHNob3VsZEJlKCJw
YXNzZWRFdmVudCIsICJ3aW5kb3cuZXZlbnQiKTsKK30KK3Nob3VsZEJlVW5kZWZpbmVkKCJvdGhl
cldpbmRvdy5ldmVudCIpOworc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy5ldmVudCIpOworZGVi
dWcoIkRpc3BhdGNoaW5nIGVycm9yIGV2ZW50Iik7CitvdGhlcldpbmRvdy5kaXNwYXRjaEV2ZW50
KG5ldyBFdmVudCgiZXJyb3IiKSk7CitzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZl
bnQiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJ3aW5kb3cuZXZlbnQiKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93
LWV2ZW50LXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93
aW5kb3ctZXZlbnQtcmVjdXJzaXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjI2ZDdjYzc5
NmU0Y2QxYzE3MWFiN2Y3ZmM5YWI0ZDMxNzU1YjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMSBAQAorVGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRoZSByaWdo
dCBnbG9iYWwgd2hlbiBhbiBldmVudCBpcyBmaXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgb3RoZXJXaW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorUEFTUyB3aW5k
b3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorRGlzcGF0Y2hpbmcgZXJyb3IgZXZlbnQKK1BBU1Mgb3Ro
ZXJXaW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorUEFTUyBwYXNzZWRFdmVudCBpcyB3aW5kb3cu
ZXZlbnQKK0Rpc3BhdGNoaW5nIHJlY3Vyc2l2ZSBlcnJvciBldmVudAorUEFTUyBvdGhlcldpbmRv
dy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAor
UEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlz
IHdpbmRvdy5ldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNT
IHdpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LWV2ZW50LXJlY3Vyc2l2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzODY3YTlhYmJkMjkzYzM5
YWE3ZGZkZGU3NmJjNjU5OWE1MzZkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtcmVjdXJzaXZlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMg
dGhhdCB3aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRoZSByaWdodCBnbG9iYWwgd2hlbiBhbiBldmVu
dCBpcyBmaXJlZC4iKTsKKworbGV0IGRpc3BhdGNoZWRSZWN1cnNpdmVFdmVudCA9IGZhbHNlOwor
Citjb25zdCBvdGhlcldpbmRvdyA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLmNvbnRlbnRXaW5kb3c7CitvdGhlcldpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJmb28iLCAoZSkgPT4geworICAgIHBhc3NlZEV2ZW50ID0gZTsKKyAgICBz
aG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKKyAgICBzaG91bGRCZSgicGFz
c2VkRXZlbnQiLCAid2luZG93LmV2ZW50Iik7CisKKyAgICBpZiAoIWRpc3BhdGNoZWRSZWN1cnNp
dmVFdmVudCkgeworICAgICAgICBkaXNwYXRjaGVkUmVjdXJzaXZlRXZlbnQgPSB0cnVlOworICAg
ICAgICBkZWJ1ZygiRGlzcGF0Y2hpbmcgcmVjdXJzaXZlIGVycm9yIGV2ZW50Iik7CisgICAgICAg
IG90aGVyV2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJmb28iKSk7CisKKyAgICAgICAg
cGFzc2VkRXZlbnQgPSBlOworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cu
ZXZlbnQiKTsKKyAgICAgICAgc2hvdWxkQmUoInBhc3NlZEV2ZW50IiwgIndpbmRvdy5ldmVudCIp
OworICAgIH0KK30pOworc2hvdWxkQmVVbmRlZmluZWQoIm90aGVyV2luZG93LmV2ZW50Iik7Citz
aG91bGRCZVVuZGVmaW5lZCgid2luZG93LmV2ZW50Iik7CitkZWJ1ZygiRGlzcGF0Y2hpbmcgZXJy
b3IgZXZlbnQiKTsKK290aGVyV2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJmb28iKSk7
CitzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKK3Nob3VsZEJlVW5kZWZp
bmVkKCJ3aW5kb3cuZXZlbnQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5q
c29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5q
c29uCmluZGV4IDQwMDRiZDg4YWZlZGE0YzRmNTE1ZGM3OTRhYmQ2YjQ2ODUzYmU1YjUuLmUwZTJm
YTM2YzI4NzdiYTE4MzU1NmNlNjVlOGUwOTA2MTY5ZjcyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KQEAgLTEy
NjUsNyArMTI2NSwxMCBAQAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMv
RXZlbnRMaXN0ZW5lci1pbmN1bWJlbnQtZ2xvYmFsLXN1YmZyYW1lLTIuc3ViLmh0bWwiLAogICAg
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnRMaXN0ZW5lci1pbmN1bWJl
bnQtZ2xvYmFsLXN1YnN1YmZyYW1lLnN1Yi5odG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL3JlcGxhY2UtZXZlbnQtbGlzdGVuZXItbnVsbC1icm93c2luZy1jb250
ZXh0LWNyYXNoLmh0bWwiLAorICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
T01JbXBsZW1lbnRhdGlvbi1jcmVhdGVEb2N1bWVudC13aXRoLW51bGwtYnJvd3NpbmctY29udGV4
dC1jcmFzaC5odG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRE9N
SW1wbGVtZW50YXRpb24tY3JlYXRlSFRNTERvY3VtZW50LXdpdGgtbnVsbC1icm93c2luZy1jb250
ZXh0LWNyYXNoLmh0bWwiLAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9F
bGVtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWNoYW5nZS1kb2N1bWVudC1IVE1MTmVzcy1pZnJh
bWUueG1sIiwKKyAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1jbG9u
ZU5vZGUtb24taW5hY3RpdmUtZG9jdW1lbnQtY3Jhc2guaHRtbCIsCiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtaXNFcXVhbE5vZGUtaWZyYW1lMS54bWwiLAogICAg
ICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWlzRXF1YWxOb2RlLWlmcmFt
ZTIueG1sIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1wYXJl
bnROb2RlLWlmcmFtZS5odG1sIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1v
bmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9BZGRFdmVudExpc3RlbmVyT3B0aW9ucy1vbmNlLWV4cGVjdGVkLnR4
dAppbmRleCBhYTgxMjc0YjQ0ZWRhYmJmMjAzYjNhYTAzNjliOTViZTYyYmUyMWM1Li43MjRjNWQ3
YTRhYmJmZDhlMWQ5ZTFmZDUwZjUzZGM4MjFjNTU2MTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvQWRkRXZlbnRMaXN0
ZW5lck9wdGlvbnMtb25jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25z
LW9uY2UtZXhwZWN0ZWQudHh0CkBAIC0yLDQgKzIsNSBAQAogUEFTUyBPbmNlIGxpc3RlbmVyIHNo
b3VsZCBiZSBpbnZva2VkIG9ubHkgb25jZQogUEFTUyBPbmNlIGxpc3RlbmVyIHNob3VsZCBiZSBp
bnZva2VkIG9ubHkgb25jZSBldmVuIGlmIHRoZSBldmVudCBpcyBuZXN0ZWQKIFBBU1MgT25jZSBs
aXN0ZW5lciBzaG91bGQgYmUgYWRkZWQgLyByZW1vdmVkIGxpa2Ugbm9ybWFsIGxpc3RlbmVycwor
UEFTUyBNdWx0aXBsZSBvbmNlIGxpc3RlbmVycyBzaG91bGQgYmUgaW52b2tlZCBldmVuIGlmIHRo
ZSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gaXMgc2V0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9BZGRFdmVudExp
c3RlbmVyT3B0aW9ucy1vbmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMtb25jZS5odG1s
CmluZGV4IGFlNzUwNzAyYzc5ZDBlMmY0OTM1MzdhZGUxYzc4NTU4OTg3ZjUzNmUuLjM2MWM4Mzhi
NzM2MjU4NjQyYzBiZjVmMjZmMjQzNTQ0ZWRmMjIyNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9BZGRFdmVudExpc3Rl
bmVyT3B0aW9ucy1vbmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0FkZEV2ZW50TGlzdGVuZXJPcHRpb25zLW9uY2UuaHRt
bApAQCAtNzgsNCArNzgsMjEgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgYXNzZXJ0X2VxdWFscyhp
bnZva2VkX2NvdW50LCAwLCAiVGhlIGhhbmRsZXIgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIik7
CiB9LCAiT25jZSBsaXN0ZW5lciBzaG91bGQgYmUgYWRkZWQgLyByZW1vdmVkIGxpa2Ugbm9ybWFs
IGxpc3RlbmVycyIpOwogCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaW52b2tlZF9jb3VudCA9
IDA7CisKKyAgZm9yIChsZXQgbiA9IDQ7IG4gPiAwOyBuLS0pIHsKKyAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCd0ZXN0JywgKGUpID0+IHsKKyAgICAgIGludm9rZWRfY291bnQrKzsKKyAg
ICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CisgICAgfSwge29uY2U6IHRydWV9KTsK
KyAgfQorCisgIGZvciAobGV0IG4gPSA0OyBuID4gMDsgbi0tKSB7CisgICAgZG9jdW1lbnQuZGlz
cGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Rlc3QnKSk7CisgIH0KKworICBhc3NlcnRfZXF1YWxzKGlu
dm9rZWRfY291bnQsIDQsICJUaGUgbGlzdGVuZXJzIHNob3VsZCBiZSBpbnZva2VkIik7Cit9LCAi
TXVsdGlwbGUgb25jZSBsaXN0ZW5lcnMgc2hvdWxkIGJlIGludm9rZWQgZXZlbiBpZiB0aGUgc3Rv
cEltbWVkaWF0ZVByb3BhZ2F0aW9uIGlzIHNldCIpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC1kaXNwYXRjaC1jbGljay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtZGlzcGF0Y2gtY2xpY2stZXhw
ZWN0ZWQudHh0CmluZGV4IDhlODY4ZTZhZTI3YTI5MDFjMzhlM2FkM2U3MmVhZmQ5YjRjZDA5YWUu
LmNmYTViOTA0MzQ4NTgyODg4NmEyOWQ3ODFjNTlkMWVhN2UzZWU4YzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVu
dC1kaXNwYXRjaC1jbGljay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLWNsaWNrLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDYgQEAKIAorSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCisKIFBBU1MgYmFzaWMgd2l0aCBjbGljaygpCiBQQVNTIGJhc2ljIHdpdGgg
ZGlzcGF0Y2hFdmVudCgpCiBQQVNTIGJhc2ljIHdpdGggd3JvbmcgZXZlbnQgY2xhc3MKQEAgLTE0
LDUgKzE2LDE2IEBAIFBBU1MgZGlzY29ubmVjdGVkIGNoZWNrYm94IHNob3VsZCBiZSBjaGVja2Vk
CiBQQVNTIGRpc2Nvbm5lY3RlZCByYWRpbyBzaG91bGQgYmUgY2hlY2tlZAogUEFTUyBkaXNjb25u
ZWN0ZWQgY2hlY2tib3ggc2hvdWxkIGJlIGNoZWNrZWQgZnJvbSBkaXNwYXRjaEV2ZW50KG5ldyBN
b3VzZUV2ZW50KCdjbGljaycpKQogUEFTUyBkaXNjb25uZWN0ZWQgcmFkaW8gc2hvdWxkIGJlIGNo
ZWNrZWQgZnJvbSBkaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKQorUEFTUyBk
aXNhYmxlZCBjaGVja2JveCBzaG91bGQgYmUgY2hlY2tlZCBmcm9tIGRpc3BhdGNoRXZlbnQobmV3
IE1vdXNlRXZlbnQoImNsaWNrIikpCitQQVNTIGRpc2FibGVkIHJhZGlvIHNob3VsZCBiZSBjaGVj
a2VkIGZyb20gZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2siKSkKK1RJTUVPVVQg
ZGlzYWJsZWQgY2hlY2tib3ggc2hvdWxkIGZpcmUgb25jbGljayBUZXN0IHRpbWVkIG91dAorVElN
RU9VVCBkaXNhYmxlZCByYWRpbyBzaG91bGQgZmlyZSBvbmNsaWNrIFRlc3QgdGltZWQgb3V0CitU
SU1FT1VUIGRpc2FibGVkIGNoZWNrYm94IHNob3VsZCBnZXQgbGVnYWN5LWNhbmNlbGVkLWFjdGl2
YXRpb24gYmVoYXZpb3IgVGVzdCB0aW1lZCBvdXQKK1RJTUVPVVQgZGlzYWJsZWQgcmFkaW8gc2hv
dWxkIGdldCBsZWdhY3ktY2FuY2VsZWQtYWN0aXZhdGlvbiBiZWhhdmlvciBUZXN0IHRpbWVkIG91
dAorUEFTUyBkaXNhYmxlZCBjaGVja2JveCBzaG91bGQgZ2V0IGxlZ2FjeS1jYW5jZWxlZC1hY3Rp
dmF0aW9uIGJlaGF2aW9yIDIKK0ZBSUwgZGlzYWJsZWQgcmFkaW8gc2hvdWxkIGdldCBsZWdhY3kt
Y2FuY2VsZWQtYWN0aXZhdGlvbiBiZWhhdmlvciAyIGFzc2VydF9mYWxzZTogZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKIFBBU1MgZGlzY29ubmVjdGVkIGZvcm0gc2hvdWxkIG5vdCBzdWJtaXQKK1BB
U1MgZGlzYWJsZWQgc3VibWl0IGJ1dHRvbiBzaG91bGQgbm90IGFjdGl2YXRlCitQQVNTIHN1Ym1p
dCBidXR0b24gc2hvdWxkIG5vdCBhY3RpdmF0ZSBpZiB0aGUgZXZlbnQgbGlzdGVuZXIgZGlzYWJs
ZXMgaXQKK1BBU1Mgc3VibWl0IGJ1dHRvbiB0aGF0IG1vcnBoZWQgZnJvbSBjaGVja2JveCBzaG91
bGQgbm90IGFjdGl2YXRlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC1kaXNwYXRjaC1jbGljay5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2
ZW50LWRpc3BhdGNoLWNsaWNrLmh0bWwKaW5kZXggNzY5MGY3NTNkOWNkMGI0N2YyYzJjMjUzNTI1
NzZjYWVkOTcwY2QxOS4uYmJjNDA4ZGY4ODI1NjY2OGU3ZjRjYWNjMDgzNzA2NWMzYzdkMWMxNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLWNsaWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLWNs
aWNrLmh0bWwKQEAgLTIwOSw2ICsyMDksODYgQEAgYXN5bmNfdGVzdCh0ID0+IHsKICAgaW5wdXQu
ZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnY2xpY2snKSk7CiB9LCBgZGlzY29ubmVjdGVk
IHJhZGlvIHNob3VsZCBiZSBjaGVja2VkIGZyb20gZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVu
dCgnY2xpY2snKSlgKTsKIAordGVzdCgoKSA9PiB7CisgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgaW5wdXQudHlwZSA9ICJjaGVja2JveCI7CisgIGlu
cHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVu
dCgiY2xpY2siKSk7CisgIGFzc2VydF90cnVlKGlucHV0LmNoZWNrZWQpOworfSwgYGRpc2FibGVk
IGNoZWNrYm94IHNob3VsZCBiZSBjaGVja2VkIGZyb20gZGlzcGF0Y2hFdmVudChuZXcgTW91c2VF
dmVudCgiY2xpY2siKSlgKTsKKwordGVzdCgoKSA9PiB7CisgIGNvbnN0IGlucHV0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgaW5wdXQudHlwZSA9ICJyYWRpbyI7CisgIGlu
cHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVu
dCgiY2xpY2siKSk7CisgIGFzc2VydF90cnVlKGlucHV0LmNoZWNrZWQpOworfSwgYGRpc2FibGVk
IHJhZGlvIHNob3VsZCBiZSBjaGVja2VkIGZyb20gZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVu
dCgiY2xpY2siKSlgKTsKKworYXN5bmNfdGVzdCh0ID0+IHsKKyAgY29uc3QgaW5wdXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICBpbnB1dC50eXBlID0gImNoZWNrYm94IjsK
KyAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICBpbnB1dC5vbmNsaWNrID0gdC5zdGVwX2Z1bmNf
ZG9uZSgpOworICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJjbGljayIpKTsK
K30sIGBkaXNhYmxlZCBjaGVja2JveCBzaG91bGQgZmlyZSBvbmNsaWNrYCk7CisKK2FzeW5jX3Rl
c3QodCA9PiB7CisgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQi
KTsKKyAgaW5wdXQudHlwZSA9ICJyYWRpbyI7CisgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAg
aW5wdXQub25jbGljayA9IHQuc3RlcF9mdW5jX2RvbmUoKTsKKyAgaW5wdXQuZGlzcGF0Y2hFdmVu
dChuZXcgTW91c2VFdmVudCgiY2xpY2siKSk7Cit9LCBgZGlzYWJsZWQgcmFkaW8gc2hvdWxkIGZp
cmUgb25jbGlja2ApOworCithc3luY190ZXN0KHQgPT4geworICBjb25zdCBpbnB1dCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgIGlucHV0LnR5cGUgPSAiY2hlY2tib3giOwor
ICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgIGlucHV0Lm9uY2xpY2sgPSB0LnN0ZXBfZnVuYyhl
diA9PiB7CisgICAgYXNzZXJ0X3RydWUoaW5wdXQuY2hlY2tlZCk7CisgICAgZXYucHJldmVudERl
ZmF1bHQoKTsKKyAgICBxdWV1ZU1pY3JvdGFzayh0LnN0ZXBfZnVuY19kb25lKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9mYWxzZShpbnB1dC5jaGVja2VkKTsKKyAgICB9KSk7CisgIH0pOworICBpbnB1
dC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJjbGljayIsIHsgY2FuY2VsYWJsZTogdHJ1
ZSB9KSk7Cit9LCBgZGlzYWJsZWQgY2hlY2tib3ggc2hvdWxkIGdldCBsZWdhY3ktY2FuY2VsZWQt
YWN0aXZhdGlvbiBiZWhhdmlvcmApOworCithc3luY190ZXN0KHQgPT4geworICBjb25zdCBpbnB1
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgIGlucHV0LnR5cGUgPSAicmFk
aW8iOworICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgIGlucHV0Lm9uY2xpY2sgPSB0LnN0ZXBf
ZnVuYyhldiA9PiB7CisgICAgYXNzZXJ0X3RydWUoaW5wdXQuY2hlY2tlZCk7CisgICAgZXYucHJl
dmVudERlZmF1bHQoKTsKKyAgICBxdWV1ZU1pY3JvdGFzayh0LnN0ZXBfZnVuY19kb25lKCgpID0+
IHsKKyAgICAgIGFzc2VydF9mYWxzZShpbnB1dC5jaGVja2VkKTsKKyAgICB9KSk7CisgIH0pOwor
ICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJjbGljayIsIHsgY2FuY2VsYWJs
ZTogdHJ1ZSB9KSk7Cit9LCBgZGlzYWJsZWQgcmFkaW8gc2hvdWxkIGdldCBsZWdhY3ktY2FuY2Vs
ZWQtYWN0aXZhdGlvbiBiZWhhdmlvcmApOworCit0ZXN0KHQgPT4geworICBjb25zdCBpbnB1dCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgIGlucHV0LnR5cGUgPSAiY2hlY2ti
b3giOworICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgIGNvbnN0IGV2ID0gbmV3IE1vdXNlRXZl
bnQoImNsaWNrIiwgeyBjYW5jZWxhYmxlOiB0cnVlIH0pOworICBldi5wcmV2ZW50RGVmYXVsdCgp
OworICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2KTsKKyAgYXNzZXJ0X2ZhbHNlKGlucHV0LmNoZWNr
ZWQpOworfSwgYGRpc2FibGVkIGNoZWNrYm94IHNob3VsZCBnZXQgbGVnYWN5LWNhbmNlbGVkLWFj
dGl2YXRpb24gYmVoYXZpb3IgMmApOworCit0ZXN0KHQgPT4geworICBjb25zdCBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgIGlucHV0LnR5cGUgPSAicmFkaW8iOwor
ICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgIGNvbnN0IGV2ID0gbmV3IE1vdXNlRXZlbnQoImNs
aWNrIiwgeyBjYW5jZWxhYmxlOiB0cnVlIH0pOworICBldi5wcmV2ZW50RGVmYXVsdCgpOworICBp
bnB1dC5kaXNwYXRjaEV2ZW50KGV2KTsKKyAgYXNzZXJ0X2ZhbHNlKGlucHV0LmNoZWNrZWQpOwor
fSwgYGRpc2FibGVkIHJhZGlvIHNob3VsZCBnZXQgbGVnYWN5LWNhbmNlbGVkLWFjdGl2YXRpb24g
YmVoYXZpb3IgMmApOworCiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgdmFyIGZvcm0gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIikKICAgdmFyIGRpZFN1Ym1pdCA9IGZhbHNlCkBA
IC0yMjIsNCArMzAyLDUwIEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICBhc3NlcnRfZmFs
c2UoZGlkU3VibWl0KQogICB0LmRvbmUoKQogfSwgImRpc2Nvbm5lY3RlZCBmb3JtIHNob3VsZCBu
b3Qgc3VibWl0IikKKworYXN5bmNfdGVzdCh0ID0+IHsKKyAgY29uc3QgZm9ybSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTsKKyAgZm9ybS5vbnN1Ym1pdCA9IHQuc3RlcF9mdW5jKGV2
ID0+IHsKKyAgICBldi5wcmV2ZW50RGVmYXVsdCgpOworICAgIGFzc2VydF91bnJlYWNoZWQoIlRo
ZSBmb3JtIGlzIHVuZXhwZWN0ZWRseSBzdWJtaXR0ZWQuIik7CisgIH0pOworICBkdW1wLmFwcGVu
ZChmb3JtKTsKKyAgY29uc3QgaW5wdXQgPSBmb3JtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0IikpOworICBpbnB1dC50eXBlID0gInN1Ym1pdCIKKyAgaW5wdXQuZGlz
YWJsZWQgPSB0cnVlOworICBpbnB1dC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJjbGlj
ayIsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7CisgIHQuZG9uZSgpOworfSwgImRpc2FibGVkIHN1
Ym1pdCBidXR0b24gc2hvdWxkIG5vdCBhY3RpdmF0ZSIpOworCithc3luY190ZXN0KHQgPT4gewor
ICBjb25zdCBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpOworICBmb3JtLm9u
c3VibWl0ID0gdC5zdGVwX2Z1bmMoZXYgPT4geworICAgIGV2LnByZXZlbnREZWZhdWx0KCk7Cisg
ICAgYXNzZXJ0X3VucmVhY2hlZCgiVGhlIGZvcm0gaXMgdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4i
KTsKKyAgfSk7CisgIGR1bXAuYXBwZW5kKGZvcm0pOworICBjb25zdCBpbnB1dCA9IGZvcm0uYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7CisgIGlucHV0Lm9uY2xp
Y2sgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgaW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICB9
KTsKKyAgaW5wdXQudHlwZSA9ICJzdWJtaXQiCisgIGlucHV0LmRpc3BhdGNoRXZlbnQobmV3IE1v
dXNlRXZlbnQoImNsaWNrIiwgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTsKKyAgdC5kb25lKCk7Cit9
LCAic3VibWl0IGJ1dHRvbiBzaG91bGQgbm90IGFjdGl2YXRlIGlmIHRoZSBldmVudCBsaXN0ZW5l
ciBkaXNhYmxlcyBpdCIpOworCithc3luY190ZXN0KHQgPT4geworICBjb25zdCBmb3JtID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpOworICBmb3JtLm9uc3VibWl0ID0gdC5zdGVwX2Z1
bmMoZXYgPT4geworICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CisgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiVGhlIGZvcm0gaXMgdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4iKTsKKyAgfSk7CisgIGR1bXAu
YXBwZW5kKGZvcm0pOworICBjb25zdCBpbnB1dCA9IGZvcm0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7CisgIGlucHV0Lm9uY2xpY2sgPSB0LnN0ZXBfZnVuYygo
KSA9PiB7CisgICAgaW5wdXQudHlwZSA9ICJzdWJtaXQiCisgICAgaW5wdXQuZGlzYWJsZWQgPSB0
cnVlOworICB9KTsKKyAgaW5wdXQuY2xpY2soKTsKKyAgdC5kb25lKCk7Cit9LCAic3VibWl0IGJ1
dHRvbiB0aGF0IG1vcnBoZWQgZnJvbSBjaGVja2JveCBzaG91bGQgbm90IGFjdGl2YXRlIik7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC1kaXNwYXRjaC1jbGljay50ZW50YXRpdmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL0V2ZW50LWRpc3BhdGNoLWNsaWNrLnRlbnRhdGl2ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWI2YzU1MDc1ZDQ1NDUxYTliYWE2NjUxNDUyYzdjZDFhYjMxZTUyMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2V2ZW50cy9FdmVudC1kaXNwYXRjaC1jbGljay50ZW50YXRpdmUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOCBAQAorCitQQVNTIGRpc2FibGVkIGNoZWNrYm94IHNob3VsZCBub3QgYmUgY2hlY2tl
ZCBmcm9tIGxhYmVsIGNsaWNrCitQQVNTIGRpc2FibGVkIHJhZGlvIHNob3VsZCBub3QgYmUgY2hl
Y2tlZCBmcm9tIGxhYmVsIGNsaWNrCitQQVNTIGRpc2FibGVkIGNoZWNrYm94IHNob3VsZCBub3Qg
YmUgY2hlY2tlZCBmcm9tIGxhYmVsIGNsaWNrIGJ5IGRpc3BhdGNoRXZlbnQKK1BBU1MgZGlzYWJs
ZWQgcmFkaW8gc2hvdWxkIG5vdCBiZSBjaGVja2VkIGZyb20gbGFiZWwgY2xpY2sgYnkgZGlzcGF0
Y2hFdmVudAorRkFJTCBjaGVja2JveCBtb3JwaGVkIGludG8gYW5vdGhlciB0eXBlIHNob3VsZCBu
b3QgbXV0YXRlIGNoZWNrZWQgc3RhdGUgYXNzZXJ0X2ZhbHNlOiBleHBlY3RlZCBmYWxzZSBnb3Qg
dHJ1ZQorRkFJTCByYWRpbyBtb3JwaGVkIGludG8gYW5vdGhlciB0eXBlIHNob3VsZCBub3Qgc3Rl
YWwgdGhlIGV4aXN0aW5nIGNoZWNrZWQgc3RhdGUgYXNzZXJ0X2ZhbHNlOiBleHBlY3RlZCBmYWxz
ZSBnb3QgdHJ1ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtZGlzcGF0Y2gtY2xpY2sudGVudGF0aXZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvRXZlbnQtZGlzcGF0Y2gtY2xpY2sudGVudGF0aXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZkYWU1
NWVmMmFiNDhkZjA4NDJjMDUwYjc4NDRiM2U1Mjk5NmRlNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVu
dC1kaXNwYXRjaC1jbGljay50ZW50YXRpdmUuaHRtbApAQCAtMCwwICsxLDc4IEBACis8IWRvY3R5
cGUgaHRtbD4KKzx0aXRsZT5DbGlja3Mgb24gaW5wdXQgZWxlbWVudDwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPWR1bXAg
c3R5bGU9ZGlzcGxheTpub25lPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBkdW1wID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImR1bXAiKQorCit0ZXN0KHQgPT4geworICBjb25zdCBpbnB1dCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgIGlucHV0LnR5cGUgPSAiY2hlY2tib3gi
OworICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgIGNvbnN0IGxhYmVsID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibGFiZWwiKTsKKyAgbGFiZWwuYXBwZW5kKGlucHV0KTsKKyAgZHVtcC5hcHBl
bmQobGFiZWwpOworICBsYWJlbC5jbGljaygpOworICBhc3NlcnRfZmFsc2UoaW5wdXQuY2hlY2tl
ZCk7Cit9LCAiZGlzYWJsZWQgY2hlY2tib3ggc2hvdWxkIG5vdCBiZSBjaGVja2VkIGZyb20gbGFi
ZWwgY2xpY2siKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOworICBpbnB1dC50eXBlID0gInJhZGlvIjsKKyAgaW5wdXQuZGlz
YWJsZWQgPSB0cnVlOworICBjb25zdCBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxh
YmVsIik7CisgIGxhYmVsLmFwcGVuZChpbnB1dCk7CisgIGR1bXAuYXBwZW5kKGxhYmVsKTsKKyAg
bGFiZWwuY2xpY2soKTsKKyAgYXNzZXJ0X2ZhbHNlKGlucHV0LmNoZWNrZWQpOworfSwgImRpc2Fi
bGVkIHJhZGlvIHNob3VsZCBub3QgYmUgY2hlY2tlZCBmcm9tIGxhYmVsIGNsaWNrIik7CisKK3Rl
c3QodCA9PiB7CisgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQi
KTsKKyAgaW5wdXQudHlwZSA9ICJjaGVja2JveCI7CisgIGlucHV0LmRpc2FibGVkID0gdHJ1ZTsK
KyAgY29uc3QgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOworICBsYWJl
bC5hcHBlbmQoaW5wdXQpOworICBkdW1wLmFwcGVuZChsYWJlbCk7CisgIGxhYmVsLmRpc3BhdGNo
RXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIikpOworICBhc3NlcnRfZmFsc2UoaW5wdXQuY2hl
Y2tlZCk7Cit9LCAiZGlzYWJsZWQgY2hlY2tib3ggc2hvdWxkIG5vdCBiZSBjaGVja2VkIGZyb20g
bGFiZWwgY2xpY2sgYnkgZGlzcGF0Y2hFdmVudCIpOworCit0ZXN0KHQgPT4geworICBjb25zdCBp
bnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgIGlucHV0LnR5cGUgPSAi
cmFkaW8iOworICBpbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgIGNvbnN0IGxhYmVsID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTsKKyAgbGFiZWwuYXBwZW5kKGlucHV0KTsKKyAgZHVt
cC5hcHBlbmQobGFiZWwpOworICBsYWJlbC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJj
bGljayIpKTsKKyAgYXNzZXJ0X2ZhbHNlKGlucHV0LmNoZWNrZWQpOworfSwgImRpc2FibGVkIHJh
ZGlvIHNob3VsZCBub3QgYmUgY2hlY2tlZCBmcm9tIGxhYmVsIGNsaWNrIGJ5IGRpc3BhdGNoRXZl
bnQiKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgY2hlY2tib3ggPSBkdW1wLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOworICBjaGVja2JveC50eXBlID0gImNo
ZWNrYm94IjsKKyAgY2hlY2tib3gub25jbGljayA9IGV2ID0+IHsKKyAgICBjaGVja2JveC50eXBl
ID0gImRhdGUiOworICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CisgIH07CisgIGNoZWNrYm94LmRp
c3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIiwgeyBjYW5jZWxhYmxlOiB0cnVlIH0p
KTsKKyAgYXNzZXJ0X2ZhbHNlKGNoZWNrYm94LmNoZWNrZWQpOworfSwgImNoZWNrYm94IG1vcnBo
ZWQgaW50byBhbm90aGVyIHR5cGUgc2hvdWxkIG5vdCBtdXRhdGUgY2hlY2tlZCBzdGF0ZSIpOwor
Cit0ZXN0KHQgPT4geworICBjb25zdCByYWRpbzEgPSBkdW1wLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOworICBjb25zdCByYWRpbzIgPSBkdW1wLmFwcGVuZENo
aWxkKHJhZGlvMS5jbG9uZU5vZGUoKSk7CisgIHJhZGlvMS50eXBlID0gcmFkaW8yLnR5cGUgPSAi
cmFkaW8iOworICByYWRpbzEubmFtZSA9IHJhZGlvMi5uYW1lID0gImZvbyI7CisgIHJhZGlvMi5j
aGVja2VkID0gdHJ1ZTsKKyAgcmFkaW8xLm9uY2xpY2sgPSBldiA9PiB7CisgICAgcmFkaW8xLnR5
cGUgPSAiZGF0ZSI7CisgICAgZXYucHJldmVudERlZmF1bHQoKTsKKyAgfTsKKyAgcmFkaW8xLmRp
c3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoImNsaWNrIiwgeyBjYW5jZWxhYmxlOiB0cnVlIH0p
KTsKKyAgYXNzZXJ0X2ZhbHNlKHJhZGlvMS5jaGVja2VkKTsKKyAgYXNzZXJ0X3RydWUocmFkaW8y
LmNoZWNrZWQpOworfSwgInJhZGlvIG1vcnBoZWQgaW50byBhbm90aGVyIHR5cGUgc2hvdWxkIG5v
dCBzdGVhbCB0aGUgZXhpc3RpbmcgY2hlY2tlZCBzdGF0ZSIpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvRXZlbnQtZGlzcGF0Y2gtcmVkaXNwYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLXJlZGlzcGF0
Y2guaHRtbAppbmRleCA4OTNmNTdmMDc3MDNjMDY5ZTIwY2Y1MmQ5NmVkMWU1NjhmNDAwZDlmLi43
ODY5YWEwMGRlODQ2ZjgwN2I1MmFiMWM5MzM3N2Y2N2I2OTNhYTQzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQt
ZGlzcGF0Y2gtcmVkaXNwYXRjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC1kaXNwYXRjaC1yZWRpc3BhdGNoLmh0
bWwKQEAgLTQ3LDcgKzQ3LDcgQEAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBsb2Fk
RXZlbnQgPT4gewogICAgIGFzc2VydF90cnVlKGNvbnRlbnRMb2FkZWRFdmVudC5pc1RydXN0ZWQs
ICJSZWNlaXZlZCBET01Db250ZW50TG9hZGVkIGV2ZW50IHNob3VsZCBiZSB0cnVzdGVkIGJlZm9y
ZSByZWRpc3BhdGNoaW5nIik7CiAgICAgYnV0dG9uRWxlbWVudC5kaXNwYXRjaEV2ZW50KGNvbnRl
bnRMb2FkZWRFdmVudCk7CiAgICAgYXNzZXJ0X2ZhbHNlKGNvbnRlbnRMb2FkZWRFdmVudC5pc1Ry
dXN0ZWQsICJSZWNlaXZlZCBET01Db250ZW50TG9hZGVkIGV2ZW50IHNob3VsZG4ndCBiZSB0cnVz
dGVkIGFmdGVyIHJlZGlzcGF0Y2hpbmciKTsKLSAgICBhc3NlcnRfdHJ1ZSh1bnRydXN0ZWRDb250
ZW50TG9hZGVkRXZlbnQgIT09IHVuZGVmaW5lZCwgIlVudHJ1c3RlZCBET01Db250ZW50TG9hZGVk
IGV2ZW50IHNob3VsZCd2ZSBiZWVuIGZpcmVkIik7CisgICAgYXNzZXJ0X25vdF9lcXVhbHModW50
cnVzdGVkQ29udGVudExvYWRlZEV2ZW50LCB1bmRlZmluZWQsICJVbnRydXN0ZWQgRE9NQ29udGVu
dExvYWRlZCBldmVudCBzaG91bGQndmUgYmVlbiBmaXJlZCIpOwogICAgIHRlc3RfY29udGVudExv
YWRlZF9yZWRpc3BhdGNoaW5nLmRvbmUoKTsKICAgfSk7CiB9LCB7Y2FwdHVyZTogdHJ1ZSwgb25j
ZTogdHJ1ZX0pOwpAQCAtMTE0LDcgKzExNCw3IEBAIGFzeW5jIGZ1bmN0aW9uIHRlc3RNb3VzZVVw
QW5kQ2xpY2tFdmVudCgpIHsKICAgICAgIC5zZW5kKCkKICAgICAgIC50aGVuKCgpID0+IHsKICAg
ICAgICAgdGVzdF9tb3VzZXVwX3JlZGlzcGF0Y2hpbmcuc3RlcCgoKSA9PiB7Ci0gICAgICAgICAg
YXNzZXJ0X3RydWUoY2xpY2tFdmVudCAhPT0gdW5kZWZpbmVkLCAibW91c2V1cCBhbmQgY2xpY2sg
ZXZlbnRzIHNob3VsZCd2ZSBiZWVuIGZpcmVkIik7CisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVh
bHMoY2xpY2tFdmVudCwgdW5kZWZpbmVkLCAibW91c2V1cCBhbmQgY2xpY2sgZXZlbnRzIHNob3Vs
ZCd2ZSBiZWVuIGZpcmVkIik7CiAgICAgICAgIH0pOwogICAgICAgICB0ZXN0X21vdXNldXBfcmVk
aXNwYXRjaGluZy5kb25lKCk7CiAgICAgICAgIHRlc3RfcmVkaXNwYXRjaGluZ19vZl9kaXNwYXRj
aGluZ19ldmVudC5kb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFsLWV4dHJhLndpbmRvdy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFsLWV4dHJhLndpbmRvdy1leHBlY3RlZC50eHQKaW5kZXgg
ZWI5NTc0NTA3MjlhNjQxMTRmYzkyMGM1ZjUwYjE3ODhjZDQyNzg0Ni4uYjNhNDViNzM5MzdhZDgz
ZDVkZDIwNzVlODY5OWY5OGU4YTc4ODg0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2V2ZW50LWdsb2JhbC1leHRyYS53
aW5kb3ctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVudC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVk
LnR4dApAQCAtMSw4ICsxLDggQEAKIAotRkFJTCB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9y
cyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBFdmVudFRhcmdldCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAodW5kZWZpbmVkKSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3Qg
RXZlbnRdIgotRkFJTCB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIg
Z2xvYmFsOiBYTUxIdHRwUmVxdWVzdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAodW5kZWZpbmVk
KSB1bmRlZmluZWQgYnV0IGdvdCAob2JqZWN0KSBvYmplY3QgIltvYmplY3QgRXZlbnRdIgorUEFT
UyB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIgZ2xvYmFsOiBFdmVu
dFRhcmdldAorUEFTUyB3aW5kb3cuZXZlbnQgZm9yIGNvbnN0cnVjdG9ycyBmcm9tIGFub3RoZXIg
Z2xvYmFsOiBYTUxIdHRwUmVxdWVzdAogUEFTUyB3aW5kb3cuZXZlbnQgYW5kIGVsZW1lbnQgZnJv
bSBhbm90aGVyIGRvY3VtZW50Ci1GQUlMIHdpbmRvdy5ldmVudCBhbmQgbW92aW5nIGFuIGVsZW1l
bnQgcG9zdC1kaXNwYXRjaCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBvYmplY3Qg
IltvYmplY3QgRXZlbnRdIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorUEFTUyB3aW5k
b3cuZXZlbnQgYW5kIG1vdmluZyBhbiBlbGVtZW50IHBvc3QtZGlzcGF0Y2gKIEZBSUwgd2luZG93
LmV2ZW50IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgbm9kZXMgbW92aW5nIHBvc3QtZGlzcGF0
Y2ggYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKLUZBSUwgTGlzdGVuZXIgZnJvbSBhIGRp
ZmZlcmVudCBnbG9iYWwgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgb2JqZWN0ICJb
b2JqZWN0IEV2ZW50XSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK1BBU1MgTGlzdGVu
ZXIgZnJvbSBhIGRpZmZlcmVudCBnbG9iYWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Ny
b2xsLWRlbHRhcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9vdmVyc2Nyb2xsLWRlbHRhcy5odG1sCmluZGV4IDA5
MWNmZDA2MzFiNDU0YmFiYWViOGMzMmRkMjg5NDY4YjZkNTA5ZDMuLjZmMGI3N2YyMmVkYTJhYjQ5
Nzg1OWNlOGIwYmNhZmMyNjFiNjZjNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvb3ZlcnNjcm9sbC1k
ZWx0YXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL292ZXJzY3JvbGwtZGVsdGFzLmh0bWwKQEAgLTExLDYg
KzExLDExIEBACiAgIGhlaWdodDogNTAwcHg7CiAgIGJhY2tncm91bmQ6IHJlZDsKIH0KK2h0bWws
IGJvZHkgeworICAvKiBQcmV2ZW50IGFueSBidWlsdC1pbiBicm93c2VyIG92ZXJzY3JvbGwgZmVh
dHVyZXMgZnJvbSBjb25zdW1pbmcgdGhlIHNjcm9sbAorICAgKiBkZWx0YXMgKi8KKyAgb3ZlcnNj
cm9sbC1iZWhhdmlvcjogbm9uZTsKK30KIAogPC9zdHlsZT4KIApAQCAtNDYsNiArNTEsMTEgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIHNj
cm9sbGVuZF9yZWNlaXZlZDsgfSwKICAgICAgICAgJ0RvY3VtZW50IGRpZCBub3QgcmVjZWl2ZSBz
Y3JvbGxlbmQgZXZlbnQuJyk7CiAKKyAgICAvLyBFdmVuIHRob3VnaCB3ZSByZXF1ZXN0IDMwMCBw
aXhlbHMgb2Ygc2Nyb2xsLCB0aGUgQVBJIGFib3ZlIGRvZXNuJ3QKKyAgICAvLyBndWFyYW50ZWUg
aG93IG11Y2ggc2Nyb2xsIGRlbHRhIHdpbGwgYmUgZ2VuZXJhdGVkIC0gZGlmZmVyZW50IGJyb3dz
ZXJzCisgICAgLy8gY2FuIGNvbnN1bWUgZGlmZmVyZW50IGFtb3VudHMgZm9yICJ0b3VjaCBzbG9w
IiAoZm9yIGV4YW1wbGUpLiBFbnN1cmUgdGhlCisgICAgLy8gb3ZlcnNjcm9sbCByZWFjaGVzIGF0
IGxlYXN0IDEwMCBwaXhlbHMgd2hpY2ggaXMgYSBmYWlybHkgY29uc2VydmF0aXZlCisgICAgLy8g
dmFsdWUuCiAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihvdmVyc2Nyb2xsZWRfeV9kZWx0YXMubGVu
Z3RoLCAwLCAiVGhlcmUgc2hvdWxkIGJlIGF0IGxlYXN0IG9uZSBvdmVyc2Nyb2xsIGV2ZW50cyB3
aGVuIG92ZXJzY3JvbGxpbmcuIik7CiAgICAgYXNzZXJ0X2VxdWFscyhvdmVyc2Nyb2xsZWRfeF9k
ZWx0YXMuZmlsdGVyKGZ1bmN0aW9uKHgpeyByZXR1cm4geCE9MDsgfSkubGVuZ3RoLCAwLCAiVGhl
IGRlbHRhWCBhdHRyaWJ1dGUgbXVzdCBiZSAwIHdoZW4gdGhlcmUgaXMgbm8gc2Nyb2xsaW5nIGlu
IHggZGlyZWN0aW9uLiIpOwogICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1YWwoTWF0aC5tYXgoLi4u
b3ZlcnNjcm9sbGVkX3lfZGVsdGFzKSwgMCwgIlRoZSBkZWx0YVkgYXR0cmlidXRlIG11c3QgYmUg
PD0gMCB3aGVuIHRoZXJlIGlzIG92ZXJzY3JvbGxpbmcgaW4gdXAgZGlyZWN0aW9uLiIpOwpAQCAt
NjEsMTAgKzcxLDE0IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgYXdhaXQgd2FpdEZvcigo
KSA9PiB7IHJldHVybiBzY3JvbGxlbmRfcmVjZWl2ZWQ7IH0sCiAgICAgICAgICdEb2N1bWVudCBk
aWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50LicpOwogCisgICAgLy8gVE9ETyhib2thbik6
IEl0IGxvb2tzIGxpa2UgQ2hyb21lIGluYXBwcm9wcmlhdGVseSBmaWx0ZXJzIHNvbWUgc2Nyb2xs
CisgICAgLy8gZXZlbnRzIGRlc3BpdGUgfG92ZXJzY3JvbGwtYmVoYXZpb3J8IGJlaW5nIHNldCB0
byBub25lLiBUaGUgb3ZlcnNjcm9sbAorICAgIC8vIGFtb3VudCBoZXJlIGhhcyBiZWVuIGxvb3Nl
bmVkIGJ1dCB0aGlzIHNob3VsZCBiZSBmaXhlZCBpbiBDaHJvbWUuCisgICAgLy8gaHR0cHM6Ly9j
cmJ1Zy5jb20vMTExMjE4My4KICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKG92ZXJzY3JvbGxlZF95
X2RlbHRhcy5sZW5ndGgsIDAsICJUaGVyZSBzaG91bGQgYmUgYXQgbGVhc3Qgb25lIG92ZXJzY3Jv
bGwgZXZlbnRzIHdoZW4gb3ZlcnNjcm9sbGluZy4iKTsKICAgICBhc3NlcnRfZXF1YWxzKG92ZXJz
Y3JvbGxlZF95X2RlbHRhcy5maWx0ZXIoZnVuY3Rpb24oeCl7IHJldHVybiB4IT0wOyB9KS5sZW5n
dGgsIDAsICJUaGUgZGVsdGFZIGF0dHJpYnV0ZSBtdXN0IGJlIDAgd2hlbiB0aGVyZSBpcyBubyBz
Y3JvbGxpbmcgaW4geSBkaXJlY3Rpb24uIik7CiAgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChN
YXRoLm1heCguLi5vdmVyc2Nyb2xsZWRfeF9kZWx0YXMpLCAwLCAiVGhlIGRlbHRhWCBhdHRyaWJ1
dGUgbXVzdCBiZSA8PSAwIHdoZW4gdGhlcmUgaXMgb3ZlcnNjcm9sbGluZyBpbiBsZWZ0IGRpcmVj
dGlvbi4iKTsKLSAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKE1hdGgubWluKC4uLm92ZXJzY3Jv
bGxlZF94X2RlbHRhcyksLTEwMCwgIlRoZSBkZWx0YVggYXR0cmlidXRlIG11c3QgYmUgdGhlIG51
bWJlciBvZiBwaXhlbHMgb3ZlcnNjcm9sbGVkLiIpOworICAgIGFzc2VydF9sZXNzX3RoYW5fZXF1
YWwoTWF0aC5taW4oLi4ub3ZlcnNjcm9sbGVkX3hfZGVsdGFzKSwtNTAsICJUaGUgZGVsdGFYIGF0
dHJpYnV0ZSBtdXN0IGJlIHRoZSBudW1iZXIgb2YgcGl4ZWxzIG92ZXJzY3JvbGxlZC4iKTsKIAog
ICB9LCAnVGVzdHMgdGhhdCB0aGUgZG9jdW1lbnQgZ2V0cyBvdmVyc2Nyb2xsIGV2ZW50IHdpdGgg
cmlnaHQgZGVsdGFYL1kgYXR0cmlidXRlcy4nKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Ny
b2xsX3N1cHBvcnQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ldmVudHMvc2Nyb2xsaW5nL3Njcm9sbF9zdXBwb3J0LmpzCmluZGV4IDZmZDFiMzIy
OTRiYjg5MzNiNWU5OTE4ZWE4MjYwYjg3M2I5ODdmOGEuLjBhNzNmMzRmZWZjOGFiNTM5NjJlMWEx
NWNlNWZiNmU4YzBiNDVhOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsX3N1cHBvcnQuanMK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL3Njcm9sbGluZy9zY3JvbGxfc3VwcG9ydC5qcwpAQCAtODMsMyArODMsMTUgQEAgZnVuY3Rp
b24gdG91Y2hTY3JvbGxJblRhcmdldChwaXhlbHNfdG9fc2Nyb2xsLCB0YXJnZXQsIGRpcmVjdGlv
biwgcGF1c2VfdGltZV9pbl8KIGZ1bmN0aW9uIHRvdWNoRmxpbmdJblRhcmdldChwaXhlbHNfdG9f
c2Nyb2xsLCB0YXJnZXQsIGRpcmVjdGlvbikgewogICB0b3VjaFNjcm9sbEluVGFyZ2V0KHBpeGVs
c190b19zY3JvbGwsIHRhcmdldCwgZGlyZWN0aW9uLCAwIC8qIHBhdXNlX3RpbWUgKi8pOwogfQor
CitmdW5jdGlvbiBtb3VzZUFjdGlvbnNJblRhcmdldCh0YXJnZXQsIG9yaWdpbiwgZGVsdGEsIHBh
dXNlX3RpbWVfaW5fbXMgPSAxMDApIHsKKyAgcmV0dXJuIG5ldyB0ZXN0X2RyaXZlci5BY3Rpb25z
KCkKKyAgICAuYWRkUG9pbnRlcigicG9pbnRlcjEiLCAibW91c2UiKQorICAgIC5wb2ludGVyTW92
ZShvcmlnaW4ueCwgb3JpZ2luLnksIHsgb3JpZ2luOiB0YXJnZXQgfSkKKyAgICAucG9pbnRlckRv
d24oKQorICAgIC5wb2ludGVyTW92ZShvcmlnaW4ueCArIGRlbHRhLngsIG9yaWdpbi55ICsgZGVs
dGEueSwgeyBvcmlnaW46IHRhcmdldCB9KQorICAgIC5wb2ludGVyTW92ZShvcmlnaW4ueCArIGRl
bHRhLnggKiAyLCBvcmlnaW4ueSArIGRlbHRhLnkgKiAyLCB7IG9yaWdpbjogdGFyZ2V0IH0pCisg
ICAgLnBhdXNlKHBhdXNlX3RpbWVfaW5fbXMpCisgICAgLnBvaW50ZXJVcCgpCisgICAgLnNlbmQo
KTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZvci11c2VyLXNjcm9s
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
ZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZm9yLXVzZXItc2Nyb2xsLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzBmMTY1NzFjZDgzMjAxZTAzOWZkOWU2ODJlMGNjYTZiODU2OWQ3NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZvci11c2VyLXNjcm9sbC5odG1s
CkBAIC0wLDAgKzEsMTM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3Rkcml2ZXItYWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
b2xsX3N1cHBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorICAgICN0YXJnZXREaXYgeworICAg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIG92ZXJm
bG93OiBzY3JvbGw7CisgICAgfQorCisgICAgI2lubmVyRGl2IHsKKyAgICAgICAgd2lkdGg6IDQw
MHB4OworICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keSBzdHlsZT0ibWFyZ2luOjAiIG9ubG9hZD1ydW5UZXN0KCk+CisgICAgPGRpdiBpZD0idGFy
Z2V0RGl2Ij4KKyAgICAgICAgPGRpdiBpZD0iaW5uZXJEaXYiPgorICAgICAgICA8L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvYm9keT4KKworPHNjcmlwdD4KK3ZhciB0YXJnZXRfZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicpOwordmFyIHNjcm9sbGVuZF9hcnJpdmVkID0gZmFs
c2U7CisKK2Z1bmN0aW9uIG9uU2Nyb2xsRW5kKGV2ZW50KSB7CisgICAgYXNzZXJ0X2ZhbHNlKGV2
ZW50LmNhbmNlbGFibGUpOworICAgIGFzc2VydF9mYWxzZShldmVudC5idWJibGVzKTsKKyAgICBz
Y3JvbGxlbmRfYXJyaXZlZCA9IHRydWU7Cit9CisKK2Z1bmN0aW9uIHJlc2V0VGFyZ2V0U2Nyb2xs
U3RhdGUoKSB7CisgICAgdGFyZ2V0X2Rpdi5zY3JvbGxUb3AgPSAwOworICAgIHRhcmdldF9kaXYu
c2Nyb2xsTGVmdCA9IDA7Cit9CisKK2Z1bmN0aW9uIGNoZWNrRmluYWxQb3NpdGlvbih0YXJnZXQs
IHBvc2l0aW9uLCBwYXVzZV90aW1lX2luX21zKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgc3RlcF90aW1lb3V0KCgpID0+IHsKKyAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocG9zaXRpb24ueCwg
dGFyZ2V0LnNjcm9sbExlZnQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwb3NpdGlvbi55
LCB0YXJnZXQuc2Nyb2xsVG9wKTsKKyAgICAgICAgfSwgcGF1c2VfdGltZV9pbl9tcyk7CisgICAg
fSk7Cit9CisKK3RhcmdldF9kaXYuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwgb25TY3Jv
bGxFbmQpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAo
dCkgPT4geworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMg
c2VudCB0byB3aW5kb3cuCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxl
bmQiLAorICAgICAgICAgICAgdC51bnJlYWNoZWRfZnVuYygid2luZG93IGdvdCB1bmV4cGVjdGVk
IHNjcm9sbGVuZCBldmVudC4iKSk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29t
bWl0KCk7CisgICAgICAgIHNjcm9sbGVuZF9hcnJpdmVkID0gZmFsc2U7CisKKyAgICAgICAgLy8g
UGVyZm9ybSBkcmFnIGFjdGlvbiBvbiB0YXJnZXQgZGl2IGFuZCB3YWl0IGZvciB0YXJnZXRfZGl2
IHRvIGdldCBzY3JvbGxlbmQgZXZlbnQuCisgICAgICAgIHZhciBvcmlnaW4gPSB7IHg6IHRhcmdl
dF9kaXYub2Zmc2V0V2lkdGggLyAyLCB5OiB0YXJnZXRfZGl2Lm9mZnNldEhlaWdodCAtIDUwIH07
CisgICAgICAgIHZhciBkZWx0YSA9IHsgeDogMCwgeTogNDAgfTsKKyAgICAgICAgYXdhaXQgbW91
c2VBY3Rpb25zSW5UYXJnZXQodGFyZ2V0X2Rpdiwgb3JpZ2luLCBkZWx0YSwgMzAwKTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvcigoKSA9PiB7IHJldHVybiBzY3JvbGxlbmRfYXJyaXZlZDsgfSwKKyAg
ICAgICAgICAgICd0YXJnZXRfZGl2IGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZlbnQgYWZ0
ZXIgZHJhZ2dpbmcgc2Nyb2xsIG9uIHRhcmdldC4nKTsKKyAgICAgICAgYXNzZXJ0X3RydWUodGFy
Z2V0X2Rpdi5zY3JvbGxUb3AgPiAwKTsKKyAgICAgICAgYXdhaXQgY2hlY2tGaW5hbFBvc2l0aW9u
KHRhcmdldF9kaXYsIHt4OiB0YXJnZXRfZGl2LnNjcm9sbExlZnQsIHk6IHRhcmdldF9kaXYuc2Ny
b2xsVG9wfSwgMzAwKTsKKyAgICB9LCAnVGVzdHMgdGhhdCB0aGUgdGFyZ2V0X2RpdiBnZXRzIHNj
cm9sbGVuZCBldmVudCB3aGVuIGRyYWdnaW5nIHNjcm9sbCBvbiB0YXJnZXQuJyk7CisKKyAgICBw
cm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgICAgICAgcmVzZXRUYXJnZXRTY3JvbGxTdGF0
ZSgpOworICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCBubyBzY3JvbGxlbmQgZXZlbnQgaXMgc2Vu
dCB0byB3aW5kb3cuCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGxlbmQi
LAorICAgICAgICAgICAgdC51bnJlYWNoZWRfZnVuYygid2luZG93IGdvdCB1bmV4cGVjdGVkIHNj
cm9sbGVuZCBldmVudC4iKSk7CisgICAgICAgIGF3YWl0IHdhaXRGb3JDb21wb3NpdG9yQ29tbWl0
KCk7CisgICAgICAgIHNjcm9sbGVuZF9hcnJpdmVkID0gZmFsc2U7CisKKyAgICAgICAgLy8gSGl0
IHRoZSBzY3JvbGxiYXIgb2YgdGFyZ2V0IGRpdiBhbmQgd2FpdCBmb3IgdGFyZ2V0X2RpdiB0byBn
ZXQgc2Nyb2xsZW5kIGV2ZW50LgorICAgICAgICB2YXIgc2Nyb2xsYmFyX3dpZHRoID0gdGFyZ2V0
X2Rpdi5vZmZzZXRXaWR0aCAtIHRhcmdldF9kaXYuY2xpZW50V2lkdGg7CisgICAgICAgIGFzc2Vy
dF90cnVlKHNjcm9sbGJhcl93aWR0aCA+IDAsICJUaGlzIHRlc3QgcmVxdWlyZXMgc2Nyb2xsYmFy
LiIpOworICAgICAgICB2YXIgb3JpZ2luID0ge3g6IHRhcmdldF9kaXYub2Zmc2V0V2lkdGggLSBz
Y3JvbGxiYXJfd2lkdGggLyAyLCB5OiB0YXJnZXRfZGl2Lm9mZnNldEhlaWdodCAtIDUwfTsKKyAg
ICAgICAgdmFyIGRlbHRhID0ge3g6IDAsIHk6IDB9OworICAgICAgICBhd2FpdCBtb3VzZUFjdGlv
bnNJblRhcmdldCh0YXJnZXRfZGl2LCBvcmlnaW4sIGRlbHRhLCAxMDApOworICAgICAgICBhd2Fp
dCB3YWl0Rm9yKCgpID0+IHsgcmV0dXJuIHNjcm9sbGVuZF9hcnJpdmVkOyB9LAorICAgICAgICAg
ICAgJ3RhcmdldF9kaXYgZGlkIG5vdCByZWNlaXZlIHNjcm9sbGVuZCBldmVudCBhZnRlciBjbGlj
a2luZyBzY3JvbGxiYXIgb24gdGFyZ2V0LicpOworICAgICAgICBhc3NlcnRfdHJ1ZSh0YXJnZXRf
ZGl2LnNjcm9sbFRvcCA+IDApOworICAgICAgICBhd2FpdCBjaGVja0ZpbmFsUG9zaXRpb24odGFy
Z2V0X2RpdiwgeyB4OiB0YXJnZXRfZGl2LnNjcm9sbExlZnQsIHk6IHRhcmdldF9kaXYuc2Nyb2xs
VG9wIH0sIDMwMCk7CisgICAgfSwgJ1Rlc3RzIHRoYXQgdGhlIHRhcmdldF9kaXYgZ2V0cyBzY3Jv
bGxlbmQgZXZlbnQgd2hlbiBjbGljayBzY3JvbGxiYXIgb24gdGFyZ2V0LicpOworCisgICAgcHJv
bWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgICAgIHJlc2V0VGFyZ2V0U2Nyb2xsU3RhdGUo
KTsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xsZW5kIGV2ZW50IGlzIHNlbnQg
dG8gd2luZG93LgorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwK
KyAgICAgICAgICAgIHQudW5yZWFjaGVkX2Z1bmMoIndpbmRvdyBnb3QgdW5leHBlY3RlZCBzY3Jv
bGxlbmQgZXZlbnQuIikpOworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgp
OworICAgICAgICBzY3JvbGxlbmRfYXJyaXZlZCA9IGZhbHNlOworCisKKyAgICAgICAgLy8gRHJh
ZyB0aGUgdGh1bWIgb2YgdGFyZ2V0IGRpdi4KKyAgICAgICAgdmFyIHNjcm9sbGJhcl93aWR0aCA9
IHRhcmdldF9kaXYub2Zmc2V0V2lkdGggLSB0YXJnZXRfZGl2LmNsaWVudFdpZHRoOworICAgICAg
ICBhc3NlcnRfdHJ1ZShzY3JvbGxiYXJfd2lkdGggPiAwLCAiVGhpcyB0ZXN0IHJlcXVpcmVzIHNj
cm9sbGJhci4iKTsKKyAgICAgICAgdmFyIG9yaWdpbiA9IHsgeDogdGFyZ2V0X2Rpdi5vZmZzZXRX
aWR0aCAtIHNjcm9sbGJhcl93aWR0aCAvIDIsIHk6IDUwIH07CisgICAgICAgIHZhciBkZWx0YSA9
IHsgeDogMCwgeTogMjAgfTsKKyAgICAgICAgYXdhaXQgbW91c2VBY3Rpb25zSW5UYXJnZXQodGFy
Z2V0X2Rpdiwgb3JpZ2luLCBkZWx0YSwgMTAwKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9
PiB7IHJldHVybiBzY3JvbGxlbmRfYXJyaXZlZDsgfSwKKyAgICAgICAgICAgICd0YXJnZXRfZGl2
IGRpZCBub3QgcmVjZWl2ZSBzY3JvbGxlbmQgZXZlbnQgYWZ0ZXIgZHJhZ2dpbmcgdGhlIHRodW1i
IG9mIHRhcmdldC4nKTsKKyAgICAgICAgYXNzZXJ0X3RydWUodGFyZ2V0X2Rpdi5zY3JvbGxUb3Ag
PiAwKTsKKyAgICAgICAgYXdhaXQgY2hlY2tGaW5hbFBvc2l0aW9uKHRhcmdldF9kaXYsIHsgeDog
dGFyZ2V0X2Rpdi5zY3JvbGxMZWZ0LCB5OiB0YXJnZXRfZGl2LnNjcm9sbFRvcCB9LCAzMDApOwor
ICAgIH0sICdUZXN0cyB0aGF0IHRoZSB0YXJnZXRfZGl2IGdldHMgc2Nyb2xsZW5kIGV2ZW50IHdo
ZW4gZHJhZyB0aGUgdGh1bWIgb2YgdGFyZ2V0LicpOworCisgICAgcHJvbWlzZV90ZXN0KGFzeW5j
ICh0KSA9PiB7CisgICAgICAgIHJlc2V0VGFyZ2V0U2Nyb2xsU3RhdGUoKTsKKyAgICAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgbm8gc2Nyb2xsZW5kIGV2ZW50IGlzIHNlbnQgdG8gd2luZG93LgorICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIiwKKyAgICAgICAgICAgIHQu
dW5yZWFjaGVkX2Z1bmMoIndpbmRvdyBnb3QgdW5leHBlY3RlZCBzY3JvbGxlbmQgZXZlbnQuIikp
OworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9zaXRvckNvbW1pdCgpOworICAgICAgICBzY3Jv
bGxlbmRfYXJyaXZlZCA9IGZhbHNlOworCisgICAgICAgIC8vIEhpdCBhbmQgYWN0aXZlIHRoZSB0
YXJnZXQgZGl2LgorICAgICAgICB2YXIgb3JpZ2luID0geyB4OiB0YXJnZXRfZGl2Lm9mZnNldFdp
ZHRoIC8gMiwgeTogdGFyZ2V0X2Rpdi5vZmZzZXRIZWlnaHQgLyAyfTsKKyAgICAgICAgdmFyIGRl
bHRhID0geyB4OiAwLCB5OiAwIH07CisgICAgICAgIGF3YWl0IG1vdXNlQWN0aW9uc0luVGFyZ2V0
KHRhcmdldF9kaXYsIG9yaWdpbiwgZGVsdGEsIDEwMCk7CisgICAgICAgIC8vIFNlbmQgRE9XTiBr
ZXkgdG8gdGhlIHRhcmdldCBkaXYuCisgICAgICAgIHdpbmRvdy50ZXN0X2RyaXZlci5zZW5kX2tl
eXModGFyZ2V0X2RpdiwgJ1x1ZTAxNScpOworCisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4g
eyByZXR1cm4gc2Nyb2xsZW5kX2Fycml2ZWQ7IH0sCisgICAgICAgICAgICAndGFyZ2V0X2RpdiBk
aWQgbm90IHJlY2VpdmUgc2Nyb2xsZW5kIGV2ZW50IGFmdGVyIHNlbmRpbmcgRE9XTiBrZXkgdG8g
dGFyZ2V0LicpOworICAgICAgICBhc3NlcnRfdHJ1ZSh0YXJnZXRfZGl2LnNjcm9sbFRvcCA+IDAp
OworICAgICAgICBhd2FpdCBjaGVja0ZpbmFsUG9zaXRpb24odGFyZ2V0X2RpdiwgeyB4OiB0YXJn
ZXRfZGl2LnNjcm9sbExlZnQsIHk6IHRhcmdldF9kaXYuc2Nyb2xsVG9wIH0sIDMwMCk7CisgICAg
fSwgJ1Rlc3RzIHRoYXQgdGhlIHRhcmdldF9kaXYgZ2V0cyBzY3JvbGxlbmQgZXZlbnQgd2hlbiBz
ZW5kIERPV04ga2V5IHRvIHRhcmdldC4nKTsKK30KKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL3Njcm9sbGluZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvdzNjLWltcG9ydC5sb2cKaW5k
ZXggYTI3YzRiZTczMTE4Y2NlZmZmNjQ5YTA0N2FkNjQ0NjhlMzI5Yzg4Ny4uZDAwMzQ5ZWI1NmU1
NThiMjQxMzMzOTgyYTRhNGU3YjJlMDJjMTFjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy93M2MtaW1w
b3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ldmVudHMvc2Nyb2xsaW5nL3czYy1pbXBvcnQubG9nCkBAIC0yOCwzICsyOCw0IEBAIExp
c3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZmlyZWQtdG8tZWxlbWVudC13
aXRoLW92ZXJzY3JvbGwtYmVoYXZpb3IuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZp
cmVkLXRvLXNjcm9sbGVkLWVsZW1lbnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9zY3JvbGxpbmcvc2Nyb2xsZW5kLWV2ZW50LWZp
cmVkLXRvLXdpbmRvdy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vZXZlbnRzL3Njcm9sbGluZy9zY3JvbGxlbmQtZXZlbnQtZm9yLXVzZXItc2Ny
b2xsLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL2V2ZW50cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy93M2MtaW1wb3J0LmxvZwppbmRleCA1
MTlhMmJiNDdiYTUxNGNkNzU5MTlhMDRkODJiZmY5NWExZThhY2VjLi4yN2RiYWNhYzc2MGZmZWVj
MzA0YWVmMmE4NDgxNWQ1MWY1ODQ5NmY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvdzNjLWltcG9ydC5sb2cKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL3cz
Yy1pbXBvcnQubG9nCkBAIC0yNiw2ICsyNiw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3Bh
dGNoLWJ1YmJsZXMtZmFsc2UuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9FdmVudC1kaXNwYXRjaC1idWJibGVzLXRydWUuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9F
dmVudC1kaXNwYXRjaC1jbGljay5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLWNsaWNrLnRlbnRhdGl2ZS5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZl
bnRzL0V2ZW50LWRpc3BhdGNoLWRldGFjaGVkLWNsaWNrLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvRXZlbnQtZGlzcGF0Y2gtZGV0
YWNoZWQtaW5wdXQtYW5kLWNoYW5nZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL0V2ZW50LWRpc3BhdGNoLWhhbmRsZXJzLWNoYW5n
ZWQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvRE9NSW1wbGVtZW50YXRpb24tY3JlYXRlRG9jdW1lbnQtd2l0aC1u
dWxsLWJyb3dzaW5nLWNvbnRleHQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZURv
Y3VtZW50LXdpdGgtbnVsbC1icm93c2luZy1jb250ZXh0LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzkzOTNkMGEwOTViMDBlZmM3MWI0MDMwZWEyY2ZjZWNhYTk0ZDgwNQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZURvY3VtZW50LXdpdGgtbnVsbC1icm93c2luZy1jb250
ZXh0LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPHRpdGxlPkRPTUltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCk8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJOYXRlIENoYXBpbiIgaHJlZj0ibWFp
bHRvOmphcGhldEBjaHJvbWl1bS5vcmciPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cHM6Ly9k
b20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9taW1wbGVtZW50YXRpb24tY3JlYXRlZG9jdW1lbnQi
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hy
b21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMDg2ODAxIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29u
dGVudD0iQ2FsbGluZyBvbiBjcmVhdGVEb2N1bWVudCgpIG9uIGEgRE9NSW1wbGVtZW50YXRpb24g
ZnJvbSBhIGRvY3VtZW50IHdpdGggYSBudWxsIGJyb3dzaW5nIGNvbnRleHQgc2hvdWxkIG5vdCBj
cmFzaCIvPgorPGlmcmFtZSBpZD0iaSI+PC9pZnJhbWU+Cis8c2NyaXB0PgordmFyIGRvYyA9IGku
Y29udGVudERvY3VtZW50OworaS5yZW1vdmUoKTsKK2RvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVE
b2N1bWVudCgiIiwgIiIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9ET01JbXBsZW1lbnRhdGlvbi1j
cmVhdGVIVE1MRG9jdW1lbnQtd2l0aC1udWxsLWJyb3dzaW5nLWNvbnRleHQtY3Jhc2guaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RP
TUltcGxlbWVudGF0aW9uLWNyZWF0ZUhUTUxEb2N1bWVudC13aXRoLW51bGwtYnJvd3NpbmctY29u
dGV4dC1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwY2Q2ZjFmNzRiMjJhYTA3ODU5MjI3NjkwMzAw
OTRmMWJjZDhlYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9ET01JbXBsZW1lbnRhdGlvbi1jcmVhdGVIVE1M
RG9jdW1lbnQtd2l0aC1udWxsLWJyb3dzaW5nLWNvbnRleHQtY3Jhc2guaHRtbApAQCAtMCwwICsx
LDEzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+RE9N
SW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJOYXRlIENoYXBpbiIgaHJlZj0ibWFpbHRvOmphcGhldEBjaHJvbWl1bS5v
cmciPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNk
b20tZG9taW1wbGVtZW50YXRpb24tY3JlYXRlaHRtbGRvY3VtZW50Ij4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRh
aWw/aWQ9MTA4NjgwMCI+Cis8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkNhbGxpbmcgb24g
Y3JlYXRlSFRNTERvY3VtZW50KCkgb24gYSBET01JbXBsZW1lbnRhdGlvbiBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhIG51bGwgYnJvd3NpbmcgY29udGV4dCBzaG91bGQgbm90IGNyYXNoIi8+Cis8aWZy
YW1lIGlkPSJpIj48L2lmcmFtZT4KKzxzY3JpcHQ+Cit2YXIgZG9jID0gaS5jb250ZW50RG9jdW1l
bnQ7CitpLnJlbW92ZSgpOworZG9jLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgp
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9ET01JbXBsZW1lbnRhdGlvbi1jcmVhdGVIVE1MRG9jdW1l
bnQtd2l0aC1zYXZlZC1pbXBsZW1lbnRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9ET01JbXBsZW1lbnRhdGlv
bi1jcmVhdGVIVE1MRG9jdW1lbnQtd2l0aC1zYXZlZC1pbXBsZW1lbnRhdGlvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDljYzVjZWFhNjM5MDczMzg3ZTQ5MGI2NDI0OWViNDdiNzBkOWZlZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZUhUTUxEb2N1bWVudC13aXRo
LXNhdmVkLWltcGxlbWVudGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBjcmVhdGVIVE1MRG9jdW1lbnQoKTogZnJvbSBhIHNhdmVkIGFuZCBkZXRhY2hlZCBpbXBsZW1l
bnRhdGlvbiBkb2VzIG5vdCByZXR1cm4gbnVsbAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9ET01JbXBsZW1lbnRhdGlv
bi1jcmVhdGVIVE1MRG9jdW1lbnQtd2l0aC1zYXZlZC1pbXBsZW1lbnRhdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRE9NSW1w
bGVtZW50YXRpb24tY3JlYXRlSFRNTERvY3VtZW50LXdpdGgtc2F2ZWQtaW1wbGVtZW50YXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYWUyMjY2MGJmYjVkZWYwOWExMWFkOWM4YjlkOTVkOGQ2OGZlOWNk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvRE9NSW1wbGVtZW50YXRpb24tY3JlYXRlSFRNTERvY3VtZW50LXdp
dGgtc2F2ZWQtaW1wbGVtZW50YXRpb24uaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5ET01JbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQ8L3RpdGxl
PgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20t
ZG9taW1wbGVtZW50YXRpb24tY3JlYXRlaHRtbGRvY3VtZW50Ij4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8
c2NyaXB0PgorLy8gVGVzdCB0aGUgZG9jdW1lbnQgbG9jYXRpb24gZ2V0dGVyIGlzIG51bGwgb3V0
c2lkZSBvZiBicm93c2VyIGNvbnRleHQKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHZhciBpZnJhbWUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWUpOworICB2YXIgaW1wbGVtZW50YXRpb24gPSBpZnJhbWUuY29udGVudERv
Y3VtZW50LmltcGxlbWVudGF0aW9uOworICBpZnJhbWUucmVtb3ZlKCk7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKGltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpLCBudWxsKTsKK30sICJj
cmVhdGVIVE1MRG9jdW1lbnQoKTogZnJvbSBhIHNhdmVkIGFuZCBkZXRhY2hlZCBpbXBsZW1lbnRh
dGlvbiBkb2VzIG5vdCByZXR1cm4gbnVsbCIpCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50
LWNvbnRlbnRUeXBlL3N1cHBvcnQvY29udGVudHR5cGVfc2V0dGVyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY29udGVu
dFR5cGUvc3VwcG9ydC9jb250ZW50dHlwZV9zZXR0ZXIucHkKaW5kZXggMDJlZmY2NTNjY2Y5YzM5
MjNjYzJlMDcwZDI0OTA1MGQ3N2RhM2U4Ny4uYzRiMWY4ZGYyN2MxZWYwM2VjYmU3YjZlOGQ0ZTIz
OGQ4OTk3MjQ4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY29udGVudFR5cGUvc3VwcG9ydC9jb250ZW50
dHlwZV9zZXR0ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtY29udGVudFR5cGUvc3VwcG9ydC9jb250ZW50dHlw
ZV9zZXR0ZXIucHkKQEAgLTEsMjAgKzEsMjAgQEAKIGRlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNl
KToKLSAgICB0eXBlID0gcmVxdWVzdC5HRVQuZmlyc3QoInR5cGUiLCBOb25lKQotICAgIHN1YnR5
cGUgPSByZXF1ZXN0LkdFVC5maXJzdCgic3VidHlwZSIsIE5vbmUpCisgICAgdHlwZSA9IHJlcXVl
c3QuR0VULmZpcnN0KGIidHlwZSIsIE5vbmUpCisgICAgc3VidHlwZSA9IHJlcXVlc3QuR0VULmZp
cnN0KGIic3VidHlwZSIsIE5vbmUpCiAgICAgaWYgdHlwZSBhbmQgc3VidHlwZToKLSAgICAgICAg
cmVzcG9uc2UuaGVhZGVyc1siQ29udGVudC1UeXBlIl0gPSB0eXBlICsgIi8iICsgc3VidHlwZQor
ICAgICAgICByZXNwb25zZS5oZWFkZXJzW2IiQ29udGVudC1UeXBlIl0gPSB0eXBlICsgYiIvIiAr
IHN1YnR5cGUKIAotICAgIHJlbW92ZUNvbnRlbnRUeXBlID0gcmVxdWVzdC5HRVQuZmlyc3QoInJl
bW92ZUNvbnRlbnRUeXBlIiwgTm9uZSkKKyAgICByZW1vdmVDb250ZW50VHlwZSA9IHJlcXVlc3Qu
R0VULmZpcnN0KGIicmVtb3ZlQ29udGVudFR5cGUiLCBOb25lKQogICAgIGlmIHJlbW92ZUNvbnRl
bnRUeXBlOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkZWwgcmVzcG9uc2UuaGVhZGVyc1si
Q29udGVudC1UeXBlIl0KKyAgICAgICAgICAgIGRlbCByZXNwb25zZS5oZWFkZXJzW2IiQ29udGVu
dC1UeXBlIl0KICAgICAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICAgICAgcGFzcwogCi0g
ICAgY29udGVudCA9ICc8aGVhZD4nCi0gICAgbWltZUhlYWQgPSByZXF1ZXN0LkdFVC5maXJzdCgi
bWltZSIsIE5vbmUpOworICAgIGNvbnRlbnQgPSBiJzxoZWFkPicKKyAgICBtaW1lSGVhZCA9IHJl
cXVlc3QuR0VULmZpcnN0KGIibWltZSIsIE5vbmUpOwogICAgIGlmIG1pbWVIZWFkOgotICAgICAg
ICBjb250ZW50ICs9ICc8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9IiVz
OyBjaGFyc2V0PXV0Zi04Ii8+JyAlIG1pbWVIZWFkCi0gICAgY29udGVudCArPSAiPC9oZWFkPiIK
KyAgICAgICAgY29udGVudCArPSBiJzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29u
dGVudD0iJXM7IGNoYXJzZXQ9dXRmLTgiLz4nICUgbWltZUhlYWQKKyAgICBjb250ZW50ICs9IGIi
PC9oZWFkPiIKIAogICAgIHJldHVybiBjb250ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1jcmVhdGVF
bGVtZW50LW5hbWVzcGFjZS10ZXN0cy9nZW5lcmF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQt
bmFtZXNwYWNlLXRlc3RzL2dlbmVyYXRlLnB5CmluZGV4IDgxMTQxM2RiZTJkZmRjZmVjMmMwN2Jj
MDliZGQ3NzYzYzcxYjc1NWEuLmEwYmNhNTQ2Yzc1ZmRiYTg3M2I1YTk5ZDJlNTkzYWNkZGEyZTU0
OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2dlbmVy
YXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0RvY3VtZW50LWNyZWF0ZUVsZW1lbnQtbmFtZXNwYWNlLXRlc3RzL2dlbmVyYXRl
LnB5CkBAIC01LDI1ICs1LDI1IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rp
b24KIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCi1USElTX05BTUUgPSAiZ2VuZXJhdGUucHkiCitU
SElTX05BTUUgPSB1ImdlbmVyYXRlLnB5IgogCiAjIE5vdGU6IHRoZXNlIGxpc3RzIG11c3QgYmUg
a2VwdCBpbiBzeW5jIHdpdGggdGhlIGxpc3RzIGluCiAjIERvY3VtZW50LWNyZWF0ZUVsZW1lbnQt
bmFtZXNwYWNlLmh0bWwsIGFuZCB0aGlzIHNjcmlwdCBtdXN0IGJlIHJ1biB3aGVuZXZlcgogIyB0
aGUgbGlzdHMgYXJlIHVwZGF0ZWQuICAoV2UgY291bGQga2VlcCB0aGUgbGlzdHMgaW4gYSBzaGFy
ZWQgSlNPTiBmaWxlLCBidXQKICMgc2VlbXMgbGlrZSB0b28gbXVjaCBlZmZvcnQuKQogRklMRVMg
PSAoCi0gICAgKCJlbXB0eSIsICIiKSwKLSAgICAoIm1pbmltYWxfaHRtbCIsICI8IWRvY3R5cGUg
aHRtbD48dGl0bGU+PC90aXRsZT4iKSwKKyAgICAodSJlbXB0eSIsIHUiIiksCisgICAgKHUibWlu
aW1hbF9odG1sIiwgdSI8IWRvY3R5cGUgaHRtbD48dGl0bGU+PC90aXRsZT4iKSwKIAotICAgICgi
eGh0bWwiLCAnPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjwvaHRt
bD4nKSwKLSAgICAoInN2ZyIsICc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyI+PC9zdmc+JyksCi0gICAgKCJtYXRobWwiLCAnPG1hdGhtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OC9NYXRoL01hdGhNTCI+PC9tYXRobWw+JyksCisgICAgKHUieGh0bWwiLCB1Jzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48L2h0bWw+JyksCisgICAg
KHUic3ZnIiwgdSc8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+
JyksCisgICAgKHUibWF0aG1sIiwgdSc8bWF0aG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk4L01hdGgvTWF0aE1MIj48L21hdGhtbD4nKSwKIAotICAgICgiYmFyZV94aHRtbCIsICI8aHRt
bD48L2h0bWw+IiksCi0gICAgKCJiYXJlX3N2ZyIsICI8c3ZnPjwvc3ZnPiIpLAotICAgICgiYmFy
ZV9tYXRobWwiLCAiPG1hdGg+PC9tYXRoPiIpLAorICAgICh1ImJhcmVfeGh0bWwiLCB1IjxodG1s
PjwvaHRtbD4iKSwKKyAgICAodSJiYXJlX3N2ZyIsIHUiPHN2Zz48L3N2Zz4iKSwKKyAgICAodSJi
YXJlX21hdGhtbCIsIHUiPG1hdGg+PC9tYXRoPiIpLAogCi0gICAgKCJ4aHRtbF9uc19yZW1vdmVk
IiwgIiIiXAorICAgICh1InhodG1sX25zX3JlbW92ZWQiLCB1IiIiXAogPGh0bWwgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgogICA8aGVhZD48c2NyaXB0PgogICAgIHZhciBu
ZXdSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG51bGwsICJodG1sIik7CkBAIC0zMiw3
ICszMiw3IEBAIEZJTEVTID0gKAogICA8L3NjcmlwdD48L2hlYWQ+CiA8L2h0bWw+CiAiIiIpLAot
ICAgICgieGh0bWxfbnNfY2hhbmdlZCIsICIiIlwKKyAgICAodSJ4aHRtbF9uc19jaGFuZ2VkIiwg
dSIiIlwKIDxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KICAgPGhl
YWQ+PHNjcmlwdD4KICAgICB2YXIgbmV3Um9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygi
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCAiYWJjIik7CkBAIC00NCwzNiArNDQsMzYgQEAg
RklMRVMgPSAoCiApCiAKIEVYVEVOU0lPTlMgPSAoCi0gICAgImh0bWwiLAotICAgICJ4aHRtbCIs
Ci0gICAgInhtbCIsCi0gICAgInN2ZyIsCisgICAgdSJodG1sIiwKKyAgICB1InhodG1sIiwKKyAg
ICB1InhtbCIsCisgICAgdSJzdmciLAogICAgICMgV2FzIG5vdCBhYmxlIHRvIGdldCBzZXJ2ZXIg
TUlNRSB0eXBlIHdvcmtpbmcgcHJvcGVybHkgOigKICAgICAjIm1tbCIsCiApCiAKIGRlZiBfX21h
aW5fXygpOgogICAgIGlmIGxlbihzeXMuYXJndikgPiAxOgotICAgICAgICBwcmludCgiTm8gYXJn
dW1lbnRzIGV4cGVjdGVkLCBhYm9ydGluZyIpCisgICAgICAgIHByaW50KHUiTm8gYXJndW1lbnRz
IGV4cGVjdGVkLCBhYm9ydGluZyIpCiAgICAgICAgIHJldHVybgogCiAgICAgaWYgbm90IG9zLmFj
Y2VzcyhUSElTX05BTUUsIG9zLkZfT0spOgotICAgICAgICBwcmludCgiTXVzdCBiZSBydW4gZnJv
bSB0aGUgZGlyZWN0b3J5IG9mICIgKyBUSElTX05BTUUgKyAiLCBhYm9ydGluZyIpCisgICAgICAg
IHByaW50KHUiTXVzdCBiZSBydW4gZnJvbSB0aGUgZGlyZWN0b3J5IG9mICIgKyBUSElTX05BTUUg
KyB1IiwgYWJvcnRpbmciKQogICAgICAgICByZXR1cm4KIAotICAgIGZvciBuYW1lIGluIG9zLmxp
c3RkaXIoIi4iKToKKyAgICBmb3IgbmFtZSBpbiBvcy5saXN0ZGlyKHUiLiIpOgogICAgICAgICBp
ZiBuYW1lID09IFRISVNfTkFNRToKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIG9zLnJl
bW92ZShuYW1lKQogCi0gICAgbWFuaWZlc3QgPSBvcGVuKCJNQU5JRkVTVCIsICJ3IikKKyAgICBt
YW5pZmVzdCA9IG9wZW4odSJNQU5JRkVTVCIsIHUidyIpCiAKICAgICBmb3IgbmFtZSwgY29udGVu
dHMgaW4gRklMRVM6CiAgICAgICAgIGZvciBleHRlbnNpb24gaW4gRVhURU5TSU9OUzoKLSAgICAg
ICAgICAgIGYgPSBvcGVuKG5hbWUgKyAiLiIgKyBleHRlbnNpb24sICJ3IikKKyAgICAgICAgICAg
IGYgPSBvcGVuKG5hbWUgKyB1Ii4iICsgZXh0ZW5zaW9uLCB1InciKQogICAgICAgICAgICAgZi53
cml0ZShjb250ZW50cykKICAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICAgICAgbWFuaWZl
c3Qud3JpdGUoInN1cHBvcnQgIiArIG5hbWUgKyAiLiIgKyBleHRlbnNpb24gKyAiXG4iKQorICAg
ICAgICAgICAgbWFuaWZlc3Qud3JpdGUodSJzdXBwb3J0ICIgKyBuYW1lICsgdSIuIiArIGV4dGVu
c2lvbiArIHUiXG4iKQogCiAgICAgbWFuaWZlc3QuY2xvc2UoKQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50
LXNldEF0dHJpYnV0ZS1jcmJ1Zy0xMTM4NDg3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtc2V0QXR0cmli
dXRlLWNyYnVnLTExMzg0ODctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZDRlYTFlNzliY2Uz
ZDRlMzMwMGU4YTk3MDlkYTE0MTRjYzg3Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXNldEF0
dHJpYnV0ZS1jcmJ1Zy0xMTM4NDg3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBBdHRyaWJ1dGVzIGZpcnN0IHNlZW4gaW4gbWl4ZWQgQVNDSUkgY2FzZSBzaG91bGQgbm90IGJl
IGNvcnJ1cHRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1zZXRBdHRyaWJ1dGUtY3JidWctMTEzODQ4
Ny5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvRWxlbWVudC1zZXRBdHRyaWJ1dGUtY3JidWctMTEzODQ4Ny5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlhYTllZDgxMzllZWRkMTM0MTk1MGI0ZTk4NmQxNmFiN2Q1MTQzN2YKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9FbGVtZW50LXNldEF0dHJpYnV0ZS1jcmJ1Zy0xMTM4NDg3Lmh0bWwKQEAgLTAsMCArMSwyMiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBjcmJ1Zy5jb20v
MTEzODQ4Ny4KKy8vCisvLyBJdCB3YXMgcG9zc2libGUgZm9yIGEgbm9uLUFTQ0lJLWxvd2VyY2Fz
ZSBzdHJpbmcgdG8gYmUgdXNlZCB3aGVuIGluc2VydGluZworLy8gaW50byB0aGUgYXR0cmlidXRl
IGNvbGxlY3Rpb24gaWYgYSBoYXNodGFibGUgZW5jb3VudGVyZWQgaXQgZHVyaW5nIHByb2JpbmcK
Ky8vIHdoaWxlIGxvb2tpbmcgZm9yIHRoZSBBU0NJSS1sb3dlcmNhc2UgZXF1aXZhbGVudC4KKy8v
CisvLyBUaGlzIGNhdXNlZCBzdWNoIGEgc3RyaW5nIHRvIGJlIGlsbGVnYWxseSB1c2VkIGFzIGFu
IGF0dHJpYnV0ZSBuYW1lLCB0aHVzCisvLyBjYXVzaW5nIGluY29uc2lzdGVudCBiZWhhdmlvciBp
biBmdXR1cmUgYXR0cmlidXRlIGxvb2t1cC4KK3Rlc3QoKCkgPT4geworICBjb25zdCBlbCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICBlbC5zZXRBdHRyaWJ1dGUoJ2xhYmVsWFFM
JywgJ2FiYycpOworICBlbC5zZXRBdHRyaWJ1dGUoJ192YWx1ZVhRTCcsICdkZWYnKTsKKyAgYXNz
ZXJ0X2VxdWFscyhlbC5nZXRBdHRyaWJ1dGUoJ2xhYmVsWFFMJyksICdhYmMnKTsKKyAgYXNzZXJ0
X2VxdWFscyhlbC5nZXRBdHRyaWJ1dGUoJ2xhYmVseHFsJyksICdhYmMnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhlbC5nZXRBdHRyaWJ1dGUoJ192YWx1ZVhRTCcpLCAnZGVmJyk7CisgIGFzc2VydF9lcXVh
bHMoZWwuZ2V0QXR0cmlidXRlKCdfdmFsdWV4cWwnKSwgJ2RlZicpOworfSwgIkF0dHJpYnV0ZXMg
Zmlyc3Qgc2VlbiBpbiBtaXhlZCBBU0NJSSBjYXNlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkLiIp
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9NdXRhdGlvbk9ic2VydmVyLWNhbGxiYWNrLWFyZ3VtZW50
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9NdXRhdGlvbk9ic2VydmVyLWNhbGxiYWNrLWFyZ3VtZW50cy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmYyZjM5NjE1MjI0Mjc3ZWVjZGVmZmE0MjkwNzc4Yzc5Zjg3Yjll
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL011dGF0aW9uT2JzZXJ2ZXItY2FsbGJhY2stYXJndW1lbnRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDYWxsYmFjayBpcyBpbnZva2VkIHdp
dGggfHRoaXN8IHZhbHVlIG9mIE11dGF0aW9uT2JzZXJ2ZXIgYW5kIHR3byBhcmd1bWVudHMKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvTXV0YXRpb25PYnNlcnZlci1jYWxsYmFjay1hcmd1bWVudHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL011dGF0aW9u
T2JzZXJ2ZXItY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDY0NzU4Y2I0ZmEw
MGQyNWFkM2RhZmU1NzZhMDA5OGM5MDI5MjJiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL011dGF0aW9uT2Jz
ZXJ2ZXItY2FsbGJhY2stYXJndW1lbnRzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBF
IEhUTUw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPk11dGF0aW9uT2JzZXJ2ZXI6IGNh
bGxiYWNrIGFyZ3VtZW50czwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
ZG9tLnNwZWMud2hhdHdnLm9yZy8jbm90aWZ5LW11dGF0aW9uLW9ic2VydmVycyI+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJtby10
YXJnZXQiPjwvZGl2PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisidXNlIHN0cmlj
dCI7CisKK2FzeW5jX3Rlc3QodCA9PiB7CisgIGNvbnN0IG1vVGFyZ2V0ID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI21vLXRhcmdldCIpOworICBjb25zdCBtbyA9IG5ldyBNdXRhdGlvbk9ic2Vy
dmVyKGZ1bmN0aW9uKHJlY29yZHMsIG9ic2VydmVyKSB7CisgICAgdC5zdGVwKCgpID0+IHsKKyAg
ICAgIGFzc2VydF9lcXVhbHModGhpcywgbW8pOworICAgICAgYXNzZXJ0X2VxdWFscyhhcmd1bWVu
dHMubGVuZ3RoLCAyKTsKKyAgICAgIGFzc2VydF90cnVlKEFycmF5LmlzQXJyYXkocmVjb3Jkcykp
OworICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmRzLmxlbmd0aCwgMSk7CisgICAgICBhc3NlcnRf
dHJ1ZShyZWNvcmRzWzBdIGluc3RhbmNlb2YgTXV0YXRpb25SZWNvcmQpOworICAgICAgYXNzZXJ0
X2VxdWFscyhvYnNlcnZlciwgbW8pOworCisgICAgICBtby5kaXNjb25uZWN0KCk7CisgICAgICB0
LmRvbmUoKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgbW8ub2JzZXJ2ZShtb1RhcmdldCwge2F0dHJp
YnV0ZXM6IHRydWV9KTsKKyAgbW9UYXJnZXQuY2xhc3NOYW1lID0gInRyaWdnZXItbXV0YXRpb24i
OworfSwgIkNhbGxiYWNrIGlzIGludm9rZWQgd2l0aCB8dGhpc3wgdmFsdWUgb2YgTXV0YXRpb25P
YnNlcnZlciBhbmQgdHdvIGFyZ3VtZW50cyIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWNs
b25lTm9kZS1vbi1pbmFjdGl2ZS1kb2N1bWVudC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1jbG9uZU5vZGUtb24t
aW5hY3RpdmUtZG9jdW1lbnQtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmQ3YTFlNmE1MDBlNTY3
MWMxZTBhNzFjNWRjYjk2M2NhYjcyN2JhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTm9kZS1jbG9uZU5vZGUt
b24taW5hY3RpdmUtZG9jdW1lbnQtY3Jhc2guaHRtbApAQCAtMCwwICsxLDYgQEAKKzxpZnJhbWUg
aWQ9ImkiPjwvaWZyYW1lPgorPHNjcmlwdD4KK3ZhciBkb2MgPSBpLmNvbnRlbnREb2N1bWVudDsK
K2kucmVtb3ZlKCk7Citkb2MuY2xvbmVOb2RlKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL1BhcmVu
dE5vZGUtcmVwbGFjZUNoaWxkcmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9QYXJlbnROb2RlLXJlcGxhY2VDaGlsZHJlbi5odG1s
CmluZGV4IGNkNDg5N2MzNzg0ZmNjZGViYjM2NTVkZDY5MjIzNDM3ZjYzZDAwZDUuLjhmMmZkYTlk
OTljMTU0ZjdiOGViMDhhZWZlMDYwNGJmMzdjYjRhMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL1BhcmVudE5vZGUtcmVw
bGFjZUNoaWxkcmVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvUGFyZW50Tm9kZS1yZXBsYWNlQ2hpbGRyZW4uaHRtbApAQCAt
MTAyLDE0ICsxMDIsMTQgQEAKIAogICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25P
YnNlcnZlcihtdXRhdGlvbnMgPT4gewogICAgICAgICB0LnN0ZXAoKCkgPT4gewotICAgICAgICAg
IGFzc2VydF9lcXVhbHMocGhhc2UsIDEpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMobXV0YXRp
b25zLmxlbmd0aCwgMSk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwaGFzZSwgMSwgInBoYXNl
Iik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtdXRhdGlvbnMubGVuZ3RoLCAxLCAibXV0YXRp
b25zLmxlbmd0aCIpOwogICAgICAgICAgIGNvbnN0IG11dGF0aW9uID0gbXV0YXRpb25zWzBdOwot
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobXV0YXRpb24udHlwZSwgImNoaWxkTGlzdCIpOwotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGgsIDIpOwotICAg
ICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm11dGF0aW9uLmFkZGVkTm9kZXNdLCBpbnNl
cnRpb25zKTsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKG11dGF0aW9uLnJlbW92ZWROb2Rlcy5s
ZW5ndGgsIDIpOwotICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoWy4uLm11dGF0aW9uLnJl
bW92ZWROb2Rlc10sIGNoaWxkcmVuKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG11dGF0aW9u
LnR5cGUsICJjaGlsZExpc3QiLCAibXV0YXRpb24udHlwZSIpOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMobXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGgsIDIsICJhZGRlZCBub2RlcyBsZW5ndGgi
KTsKKyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVz
XSwgaW5zZXJ0aW9ucywgImFkZGVkIG5vZGVzIik7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyht
dXRhdGlvbi5yZW1vdmVkTm9kZXMubGVuZ3RoLCAyLCAicmVtb3ZlZCBub2RlcyBsZW5ndGgiKTsK
KyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKFsuLi5tdXRhdGlvbi5yZW1vdmVkTm9kZXNd
LCBjaGlsZHJlbiwgInJlbW92ZWQgbm9kZXMiKTsKICAgICAgICAgfSk7CiAgICAgICAgIHQuZG9u
ZSgpOwogICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9lbmNvZGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2VuY29kaW5nLnB5CmluZGV4IDVm
ODg5ZThkYjJhNTVjZGZkMjNiMDA4M2E0NWExNDdhOWZiODdhYjIuLjI4MWFhMGJjZTQ5MTYyNDY1
ZjRhMDExZmE1MGI4YmJlODMxZTIxM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2VuY29kaW5nLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2VuY29kaW5n
LnB5CkBAIC0xLDUgKzEsMTAgQEAKLWZyb20gY2dpIGltcG9ydCBlc2NhcGUKK3RyeToKKyAgICBm
cm9tIGNnaSBpbXBvcnQgZXNjYXBlCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSBodG1s
IGltcG9ydCBlc2NhcGUKKworZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgaXNvbW9ycGhpY19k
ZWNvZGUKIAogZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgIGxhYmVsID0gcmVxdWVz
dC5HRVQuZmlyc3QoJ2xhYmVsJykKLSAgICByZXR1cm4gIiIiPCFkb2N0eXBlIGh0bWw+PG1ldGEg
Y2hhcnNldD0iJXMiPiIiIiAlIGVzY2FwZShsYWJlbCkKKyAgICBsYWJlbCA9IHJlcXVlc3QuR0VU
LmZpcnN0KGInbGFiZWwnKQorICAgIHJldHVybiB1IiIiPCFkb2N0eXBlIGh0bWw+PG1ldGEgY2hh
cnNldD0iJXMiPiIiIiAlIGVzY2FwZShpc29tb3JwaGljX2RlY29kZShsYWJlbCkpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL3czYy1pbXBvcnQubG9nCmluZGV4IDI3YzliYzcwNDVmMWJkYjgyNTAy
MjRlMzViZmE4OTc0ZjhjNjUyNDYuLjg3MjNmZTUyY2IxMDFlZjViNTc4YTgzYTQzNzYxMjRkMWYw
YTRjYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL3czYy1pbXBvcnQubG9nCkBAIC0yOSw4
ICsyOSwxMSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0NoaWxkTm9kZS1yZXBsYWNlV2l0aC5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvQ29tbWVu
dC1UZXh0LWNvbnN0cnVjdG9yLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvQ29tbWVudC1jb25zdHJ1Y3Rvci5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRE9NSW1wbGVtZW50
YXRpb24tY3JlYXRlRG9jdW1lbnQtd2l0aC1udWxsLWJyb3dzaW5nLWNvbnRleHQtY3Jhc2guaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVz
L0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZURvY3VtZW50Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9ET01JbXBsZW1lbnRhdGlvbi1j
cmVhdGVEb2N1bWVudFR5cGUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0RPTUltcGxlbWVudGF0aW9uLWNyZWF0ZUhUTUxEb2N1bWVu
dC13aXRoLW51bGwtYnJvd3NpbmctY29udGV4dC1jcmFzaC5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRE9NSW1wbGVtZW50YXRpb24t
Y3JlYXRlSFRNTERvY3VtZW50LXdpdGgtc2F2ZWQtaW1wbGVtZW50YXRpb24uaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RPTUltcGxl
bWVudGF0aW9uLWNyZWF0ZUhUTUxEb2N1bWVudC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRE9NSW1wbGVtZW50YXRpb24tY3JlYXRl
SFRNTERvY3VtZW50LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vbm9kZXMvRE9NSW1wbGVtZW50YXRpb24taGFzRmVhdHVyZS5odG1sCkBAIC0xMjMs
NiArMTI2LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LXJlbW92ZS5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1yZW1v
dmVBdHRyaWJ1dGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtcmVtb3ZlQXR0cmlidXRlTlMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtc2V0
QXR0cmlidXRlLWNyYnVnLTExMzg0ODcuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtc2V0QXR0cmlidXRlLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVt
ZW50LXNpYmxpbmdFbGVtZW50LW51bGwtc3ZnLnN2ZwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtc2libGluZ0VsZW1lbnQtbnVs
bC14aHRtbC54aHRtbApAQCAtMTMwLDYgKzEzNCw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC10
YWdOYW1lLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS9ub2Rlcy9FbGVtZW50LXdlYmtpdE1hdGNoZXNTZWxlY3Rvci5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvTXV0YXRpb25PYnNl
cnZlci1hdHRyaWJ1dGVzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9NdXRhdGlvbk9ic2VydmVyLWNhbGxiYWNrLWFyZ3VtZW50cy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvTXV0YXRpb25PYnNlcnZlci1jaGFyYWN0ZXJEYXRhLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9NdXRhdGlvbk9ic2VydmVyLWNo
aWxkTGlzdC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvTXV0YXRpb25PYnNlcnZlci1kaXNjb25uZWN0Lmh0bWwKQEAgLTE0NCw2ICsx
NDksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtY2xvbmVOb2RlLVhNTERvY3VtZW50Lmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2Rl
LWNsb25lTm9kZS1kb2N1bWVudC13aXRoLWRvY3R5cGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL05vZGUtY2xvbmVOb2RlLWV4dGVy
bmFsLXN0eWxlc2hlZXQtbm8tYmMuc3ViLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWNsb25lTm9kZS1vbi1pbmFjdGl2ZS1k
b2N1bWVudC1jcmFzaC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvTm9kZS1jbG9uZU5vZGUtc3ZnLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Ob2RlLWNsb25lTm9kZS5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvTm9kZS1jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtaW5z
ZXJ0Tm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vcmFuZ2VzL1JhbmdlLWluc2VydE5vZGUuaHRtbAppbmRleCAwNDcyN2RiYzRkMjg1NWRj
ZTM0YzNhOTM1NmYxNjFmZGViMWUwYTg2Li5iMGE5ZDQzZjk4MmRkNjIxNzM4ZDAxOWNkODgxYjAy
ZjAyY2Q0YTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtaW5zZXJ0Tm9kZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1pbnNl
cnROb2RlLmh0bWwKQEAgLTc1LDE5ICs3NSwxOSBAQCBmdW5jdGlvbiB0ZXN0SW5zZXJ0Tm9kZShp
LCBqKSB7CiAgICAgICAgICAgICAiVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4gc2V0
dGluZyB1cCBSYW5nZSBmb3Igc2ltdWxhdGVkIGluc2VydE5vZGUoKSIpOwogICAgICAgICBhc3Nl
cnRfZXF1YWxzKHR5cGVvZiBhY3R1YWxSYW5nZSwgIm9iamVjdCIsCiAgICAgICAgICAgICAidHlw
ZW9mIFJhbmdlIHByb2R1Y2VkIGluIGFjdHVhbCBpZnJhbWUiKTsKLSAgICAgICAgYXNzZXJ0X2Zh
bHNlKGFjdHVhbFJhbmdlID09PSBudWxsLAorICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhhY3R1
YWxSYW5nZSwgbnVsbCwKICAgICAgICAgICAgICJSYW5nZSBwcm9kdWNlZCBpbiBhY3R1YWwgaWZy
YW1lIHdhcyBudWxsIik7CiAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGV4cGVjdGVkUmFu
Z2UsICJvYmplY3QiLAogICAgICAgICAgICAgInR5cGVvZiBSYW5nZSBwcm9kdWNlZCBpbiBleHBl
Y3RlZCBpZnJhbWUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGV4cGVjdGVkUmFuZ2UgPT09IG51
bGwsCisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGV4cGVjdGVkUmFuZ2UsIG51bGwsCiAgICAg
ICAgICAgICAiUmFuZ2UgcHJvZHVjZWQgaW4gZXhwZWN0ZWQgaWZyYW1lIHdhcyBudWxsIik7CiAg
ICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGFjdHVhbE5vZGUsICJvYmplY3QiLAogICAgICAg
ICAgICAgInR5cGVvZiBOb2RlIHByb2R1Y2VkIGluIGFjdHVhbCBpZnJhbWUiKTsKLSAgICAgICAg
YXNzZXJ0X2ZhbHNlKGFjdHVhbE5vZGUgPT09IG51bGwsCisgICAgICAgIGFzc2VydF9ub3RfZXF1
YWxzKGFjdHVhbE5vZGUsIG51bGwsCiAgICAgICAgICAgICAiTm9kZSBwcm9kdWNlZCBpbiBhY3R1
YWwgaWZyYW1lIHdhcyBudWxsIik7CiAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGV4cGVj
dGVkTm9kZSwgIm9iamVjdCIsCiAgICAgICAgICAgICAidHlwZW9mIE5vZGUgcHJvZHVjZWQgaW4g
ZXhwZWN0ZWQgaWZyYW1lIik7Ci0gICAgICAgIGFzc2VydF9mYWxzZShleHBlY3RlZE5vZGUgPT09
IG51bGwsCisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGV4cGVjdGVkTm9kZSwgbnVsbCwKICAg
ICAgICAgICAgICJOb2RlIHByb2R1Y2VkIGluIGV4cGVjdGVkIGlmcmFtZSB3YXMgbnVsbCIpOwog
CiAgICAgICAgIC8vIFdlIHdhbnQgdG8gdGVzdCB0aGF0IHRoZSB0cmVlcyBjb250YWluaW5nIHRo
ZSByYW5nZXMgYXJlIGVxdWFsLCBhbmQKQEAgLTE3OSwxOSArMTc5LDE5IEBAIGZ1bmN0aW9uIHRl
c3RJbnNlcnROb2RlKGksIGopIHsKICAgICAgICAgICAgICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB0
aHJvd24gd2hlbiBzZXR0aW5nIHVwIFJhbmdlIGZvciBzaW11bGF0ZWQgaW5zZXJ0Tm9kZSgpIik7
CiAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGFjdHVhbFJhbmdlLCAib2JqZWN0IiwKICAg
ICAgICAgICAgICJ0eXBlb2YgUmFuZ2UgcHJvZHVjZWQgaW4gYWN0dWFsIGlmcmFtZSIpOwotICAg
ICAgICBhc3NlcnRfZmFsc2UoYWN0dWFsUmFuZ2UgPT09IG51bGwsCisgICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKGFjdHVhbFJhbmdlLCBudWxsLAogICAgICAgICAgICAgIlJhbmdlIHByb2R1Y2Vk
IGluIGFjdHVhbCBpZnJhbWUgd2FzIG51bGwiKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBl
b2YgZXhwZWN0ZWRSYW5nZSwgIm9iamVjdCIsCiAgICAgICAgICAgICAidHlwZW9mIFJhbmdlIHBy
b2R1Y2VkIGluIGV4cGVjdGVkIGlmcmFtZSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UoZXhwZWN0
ZWRSYW5nZSA9PT0gbnVsbCwKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZXhwZWN0ZWRSYW5n
ZSwgbnVsbCwKICAgICAgICAgICAgICJSYW5nZSBwcm9kdWNlZCBpbiBleHBlY3RlZCBpZnJhbWUg
d2FzIG51bGwiKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgYWN0dWFsTm9kZSwgIm9i
amVjdCIsCiAgICAgICAgICAgICAidHlwZW9mIE5vZGUgcHJvZHVjZWQgaW4gYWN0dWFsIGlmcmFt
ZSIpOwotICAgICAgICBhc3NlcnRfZmFsc2UoYWN0dWFsTm9kZSA9PT0gbnVsbCwKKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMoYWN0dWFsTm9kZSwgbnVsbCwKICAgICAgICAgICAgICJOb2RlIHBy
b2R1Y2VkIGluIGFjdHVhbCBpZnJhbWUgd2FzIG51bGwiKTsKICAgICAgICAgYXNzZXJ0X2VxdWFs
cyh0eXBlb2YgZXhwZWN0ZWROb2RlLCAib2JqZWN0IiwKICAgICAgICAgICAgICJ0eXBlb2YgTm9k
ZSBwcm9kdWNlZCBpbiBleHBlY3RlZCBpZnJhbWUiKTsKLSAgICAgICAgYXNzZXJ0X2ZhbHNlKGV4
cGVjdGVkTm9kZSA9PT0gbnVsbCwKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZXhwZWN0ZWRO
b2RlLCBudWxsLAogICAgICAgICAgICAgIk5vZGUgcHJvZHVjZWQgaW4gZXhwZWN0ZWQgaWZyYW1l
IHdhcyBudWxsIik7CiAKICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBhY3R1YWxSb290cy5s
ZW5ndGg7IGsrKykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlv
bnMuanMKaW5kZXggMzgzN2RlOTI4Mjg5YTdjMTFkNzBmNWFmYzVmM2RjYTQ0YzIzYWI0Yy4uMjNj
MDEzYWM2YTFkN2ExNTYzNzM5YWZlNTBmMTUxYWY0OWI0ZmZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11
dGF0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25zLmpzCkBAIC02Myw3ICs2Myw3IEBAIGZ1bmN0
aW9uIGRvVGVzdHMoc291cmNlVGVzdHMsIGRlc2NGbiwgdGVzdEZuKSB7CiAgICAgICBmdW5jdGlv
bihwYXJhbXMpIHsgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgZXZhbGVkUGFyYW1z
ID0gcGFyYW1zLm1hcChldmFsKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmFsZWRQ
YXJhbXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICBhc3NlcnRfdHJ1ZSh0eXBlb2YgZXZhbGVk
UGFyYW1zW2ldICE9ICJ1bmRlZmluZWQiLAorICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHR5
cGVvZiBldmFsZWRQYXJhbXNbaV0sICJ1bmRlZmluZWQiLAogICAgICAgICAgICAgIlRlc3QgYnVn
OiAiICsgcGFyYW1zW2ldICsgIiBpcyB1bmRlZmluZWQiKTsKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gdGVzdEZuLmFwcGx5KG51bGwsIGV2YWxlZFBhcmFtcyk7CkBAIC03OSw3ICs3OSw3IEBA
IGZ1bmN0aW9uIGRvVGVzdHMoc291cmNlVGVzdHMsIGRlc2NGbiwgdGVzdEZuKSB7CiAgICAgICBm
dW5jdGlvbihwYXJhbXMpIHsgcmV0dXJuIGZ1bmN0aW9uKHNlbGVjdGVkUmFuZ2UpIHsKICAgICAg
ICAgdmFyIGV2YWxlZFBhcmFtcyA9IHBhcmFtcy5zbGljZSgwLCBsZW4gLSA0KS5tYXAoZXZhbCk7
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZhbGVkUGFyYW1zLmxlbmd0aDsgaSsrKSB7
Ci0gICAgICAgICAgYXNzZXJ0X3RydWUodHlwZW9mIGV2YWxlZFBhcmFtc1tpXSAhPSAidW5kZWZp
bmVkIiwKKyAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh0eXBlb2YgZXZhbGVkUGFyYW1zW2ld
LCAidW5kZWZpbmVkIiwKICAgICAgICAgICAgICJUZXN0IGJ1ZzogIiArIHBhcmFtc1tpXSArICIg
aXMgdW5kZWZpbmVkIik7CiAgICAgICAgIH0KICAgICAgICAgLy8gT3ZlcnJpZGUgaW5wdXQgcmFu
Z2Ugd2l0aCB0aGUgb25lIHRoYXQgd2FzIGFjdHVhbGx5IHNlbGVjdGVkIHdoZW4gY29tcHV0aW5n
IHRoZSBleHBlY3RlZCByZXN1bHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2Utc3Vycm91bmRDb250ZW50cy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFu
Z2VzL1JhbmdlLXN1cnJvdW5kQ29udGVudHMuaHRtbAppbmRleCBjMWVkMzBkMDA1M2YyMTU3Nzc2
YjhjNThiMTljZTgyY2FmYjVlNzRmLi5jOWQ0N2ZjYmFkMGRlZTkxN2JlOTA0NjhhOWU4NDRkNmM1
MWM0Yjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2Utc3Vycm91bmRDb250ZW50cy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1z
dXJyb3VuZENvbnRlbnRzLmh0bWwKQEAgLTEyNSwxOSArMTI1LDE5IEBAIGZ1bmN0aW9uIHRlc3RT
dXJyb3VuZENvbnRlbnRzKGksIGopIHsKICAgICAgICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiB0aHJv
d24gd2hlbiBzZXR0aW5nIHVwIFJhbmdlIGZvciBzaW11bGF0ZWQgc3Vycm91bmRDb250ZW50cygp
Iik7CiAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgYWN0dWFsUmFuZ2UsICJvYmplY3QiLAogICAg
ICAgInR5cGVvZiBSYW5nZSBwcm9kdWNlZCBpbiBhY3R1YWwgaWZyYW1lIik7Ci0gICAgYXNzZXJ0
X2ZhbHNlKGFjdHVhbFJhbmdlID09PSBudWxsLAorICAgIGFzc2VydF9ub3RfZXF1YWxzKGFjdHVh
bFJhbmdlLCBudWxsLAogICAgICAgIlJhbmdlIHByb2R1Y2VkIGluIGFjdHVhbCBpZnJhbWUgd2Fz
IG51bGwiKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBleHBlY3RlZFJhbmdlLCAib2JqZWN0
IiwKICAgICAgICJ0eXBlb2YgUmFuZ2UgcHJvZHVjZWQgaW4gZXhwZWN0ZWQgaWZyYW1lIik7Ci0g
ICAgYXNzZXJ0X2ZhbHNlKGV4cGVjdGVkUmFuZ2UgPT09IG51bGwsCisgICAgYXNzZXJ0X25vdF9l
cXVhbHMoZXhwZWN0ZWRSYW5nZSwgbnVsbCwKICAgICAgICJSYW5nZSBwcm9kdWNlZCBpbiBleHBl
Y3RlZCBpZnJhbWUgd2FzIG51bGwiKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBhY3R1YWxO
b2RlLCAib2JqZWN0IiwKICAgICAgICJ0eXBlb2YgTm9kZSBwcm9kdWNlZCBpbiBhY3R1YWwgaWZy
YW1lIik7Ci0gICAgYXNzZXJ0X2ZhbHNlKGFjdHVhbE5vZGUgPT09IG51bGwsCisgICAgYXNzZXJ0
X25vdF9lcXVhbHMoYWN0dWFsTm9kZSwgbnVsbCwKICAgICAgICJOb2RlIHByb2R1Y2VkIGluIGFj
dHVhbCBpZnJhbWUgd2FzIG51bGwiKTsKICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBleHBlY3Rl
ZE5vZGUsICJvYmplY3QiLAogICAgICAgInR5cGVvZiBOb2RlIHByb2R1Y2VkIGluIGV4cGVjdGVk
IGlmcmFtZSIpOwotICAgIGFzc2VydF9mYWxzZShleHBlY3RlZE5vZGUgPT09IG51bGwsCisgICAg
YXNzZXJ0X25vdF9lcXVhbHMoZXhwZWN0ZWROb2RlLCBudWxsLAogICAgICAgIk5vZGUgcHJvZHVj
ZWQgaW4gZXhwZWN0ZWQgaWZyYW1lIHdhcyBudWxsIik7CiAKICAgICAvLyBXZSB3YW50IHRvIHRl
c3QgdGhhdCB0aGUgdHJlZXMgY29udGFpbmluZyB0aGUgcmFuZ2VzIGFyZSBlcXVhbCwgYW5kCkBA
IC0yMjIsMTkgKzIyMiwxOSBAQCBmdW5jdGlvbiB0ZXN0U3Vycm91bmRDb250ZW50cyhpLCBqKSB7
CiAgICAgICAiVW5leHBlY3RlZCBleGNlcHRpb24gdGhyb3duIHdoZW4gc2V0dGluZyB1cCBSYW5n
ZSBmb3Igc2ltdWxhdGVkIHN1cnJvdW5kQ29udGVudHMoKSIpOwogICAgIGFzc2VydF9lcXVhbHMo
dHlwZW9mIGFjdHVhbFJhbmdlLCAib2JqZWN0IiwKICAgICAgICJ0eXBlb2YgUmFuZ2UgcHJvZHVj
ZWQgaW4gYWN0dWFsIGlmcmFtZSIpOwotICAgIGFzc2VydF9mYWxzZShhY3R1YWxSYW5nZSA9PT0g
bnVsbCwKKyAgICBhc3NlcnRfbm90X2VxdWFscyhhY3R1YWxSYW5nZSwgbnVsbCwKICAgICAgICJS
YW5nZSBwcm9kdWNlZCBpbiBhY3R1YWwgaWZyYW1lIHdhcyBudWxsIik7CiAgICAgYXNzZXJ0X2Vx
dWFscyh0eXBlb2YgZXhwZWN0ZWRSYW5nZSwgIm9iamVjdCIsCiAgICAgICAidHlwZW9mIFJhbmdl
IHByb2R1Y2VkIGluIGV4cGVjdGVkIGlmcmFtZSIpOwotICAgIGFzc2VydF9mYWxzZShleHBlY3Rl
ZFJhbmdlID09PSBudWxsLAorICAgIGFzc2VydF9ub3RfZXF1YWxzKGV4cGVjdGVkUmFuZ2UsIG51
bGwsCiAgICAgICAiUmFuZ2UgcHJvZHVjZWQgaW4gZXhwZWN0ZWQgaWZyYW1lIHdhcyBudWxsIik7
CiAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgYWN0dWFsTm9kZSwgIm9iamVjdCIsCiAgICAgICAi
dHlwZW9mIE5vZGUgcHJvZHVjZWQgaW4gYWN0dWFsIGlmcmFtZSIpOwotICAgIGFzc2VydF9mYWxz
ZShhY3R1YWxOb2RlID09PSBudWxsLAorICAgIGFzc2VydF9ub3RfZXF1YWxzKGFjdHVhbE5vZGUs
IG51bGwsCiAgICAgICAiTm9kZSBwcm9kdWNlZCBpbiBhY3R1YWwgaWZyYW1lIHdhcyBudWxsIik7
CiAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgZXhwZWN0ZWROb2RlLCAib2JqZWN0IiwKICAgICAg
ICJ0eXBlb2YgTm9kZSBwcm9kdWNlZCBpbiBleHBlY3RlZCBpZnJhbWUiKTsKLSAgICBhc3NlcnRf
ZmFsc2UoZXhwZWN0ZWROb2RlID09PSBudWxsLAorICAgIGFzc2VydF9ub3RfZXF1YWxzKGV4cGVj
dGVkTm9kZSwgbnVsbCwKICAgICAgICJOb2RlIHByb2R1Y2VkIGluIGV4cGVjdGVkIGlmcmFtZSB3
YXMgbnVsbCIpOwogCiAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBhY3R1YWxSb290cy5sZW5ndGg7
IGsrKykgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vcmFuZ2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL3czYy1pbXBvcnQubG9nCmluZGV4IDU3
OThkMjkyZDczNDliYTVhOWIwNGZiZDA3MjYwY2JlMGU2NTliMTguLjBkNWZkMDkwY2IxZTE1OTlj
OWQ1MWZiYjE4ZDkzNjU1NDMwODkyZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvdzNj
LWltcG9ydC5sb2cKQEAgLTE0LDYgKzE0LDcgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1Jh
bmdlLWFkb3B0LXRlc3QuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1hdHRyaWJ1dGVzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtY2xvbmVDb250
ZW50cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vcmFuZ2VzL1JhbmdlLWNsb25lUmFuZ2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXIt
YWNjZXB0Tm9kZS1maWx0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWFjY2VwdE5vZGUtZmlsdGVyLmh0
bWwKaW5kZXggYWNkMzgwNGZhZGUwZTdlNGEzNzM1Y2M2ODI3NmVhNTY2OTQxNjQwNy4uMjgyZGM5
ZDE0MmIxNTUxNTQ2M2VjZTI1MjU1ZDViZDZmNWVmMThiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxr
ZXItYWNjZXB0Tm9kZS1maWx0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1hY2NlcHROb2RlLWZp
bHRlci5odG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDwhLS0K
LVRlc3QgYWRhcHRlZCBmcm9tIGh0dHBzOi8vZHhyLm1vemlsbGEub3JnL2Nocm9taXVtL3NvdXJj
ZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIv
c2NyaXB0LXRlc3RzL2FjY2VwdE5vZGUtZmlsdGVyLmpzCitUZXN0IGFkYXB0ZWQgZnJvbSBjaHJv
bWl1bS9zb3VyY2Uvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9U
cmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy9hY2NlcHROb2RlLWZpbHRlci5qcwogLS0+CiA8aGVhZD4K
IDx0aXRsZT5UcmVlV2Fsa2VyOiBhY2NlcHROb2RlLWZpbHRlcjwvdGl0bGU+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJz
YWwvVHJlZVdhbGtlci1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItYmFzaWMuaHRtbAppbmRleCA0
ZTE0YWM0MjFlZjVlOTk4NzU0ZjViMzMwYzhmNTEzNjc1MjI3NjZlLi5iZDhiMTEyODQwOGM5M2I2
M2M2YTZiMTk1MjlmMzVhMmFjNjY0NWE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1iYXNpYy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWJhc2ljLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPCEtLQotVGVzdCBhZGFwdGVkIGZyb20gaHR0cHM6Ly9keHIubW96
aWxsYS5vcmcvY2hyb21pdW0vc291cmNlL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVz
dHMvZmFzdC9kb20vVHJlZVdhbGtlci9UcmVlV2Fsa2VyLWJhc2ljLmh0bWwKK1Rlc3QgYWRhcHRl
ZCBmcm9tIGNocm9taXVtL3NvdXJjZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1RyZWVXYWxrZXIvVHJlZVdhbGtlci1iYXNpYy5odG1sCiAtLT4KIDxoZWFkPgog
PHRpdGxlPlRyZWVXYWxrZXI6IEJhc2ljIHRlc3Q8L3RpdGxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVX
YWxrZXItY3VycmVudE5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLWN1cnJlbnROb2RlLmh0bWwKaW5k
ZXggN2M1ZDg4MTBhODZiODMxMDQ5OTkyNWY4ZDY4ZWY0ZDY2ODVlN2U3Ni4uZjc5NWFiZTBkMjky
NGFkYjRiMTU5YzA3OTY4YjJkNmM2MTE1MTI1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItY3Vy
cmVudE5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1jdXJyZW50Tm9kZS5odG1sCkBAIC0xLDcg
KzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDwhLS0KLVRlc3QgYWRhcHRlZCBmcm9t
IGh0dHBzOi8vZHhyLm1vemlsbGEub3JnL2Nocm9taXVtL3NvdXJjZS9zcmMvdGhpcmRfcGFydHkv
V2ViS2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvcmVzb3VyY2VzL1RyZWVXYWxr
ZXItY3VycmVudE5vZGUuanMKK1Rlc3QgYWRhcHRlZCBmcm9tIGNocm9taXVtL3NvdXJjZS9zcmMv
dGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvcmVzb3Vy
Y2VzL1RyZWVXYWxrZXItY3VycmVudE5vZGUuanMKIC0tPgogPGhlYWQ+CiA8dGl0bGU+VHJlZVdh
bGtlcjogY3VycmVudE5vZGU8L3RpdGxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItcHJldmlv
dXNOb2RlTGFzdENoaWxkUmVqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1wcmV2aW91c05vZGVMYXN0
Q2hpbGRSZWplY3QuaHRtbAppbmRleCAwMTQ3YjgxMTEyZWY3MjI3OWNhMTZjYzU1MzJmZDg5YTVl
MmRjYTM3Li5lMjRjYTA2ZTIwOTU0NjJjZjY5NzM3MzU0YjI1ZTNkNzBkY2QwOGZhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2
ZXJzYWwvVHJlZVdhbGtlci1wcmV2aW91c05vZGVMYXN0Q2hpbGRSZWplY3QuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci1wcmV2aW91c05vZGVMYXN0Q2hpbGRSZWplY3QuaHRtbApAQCAtMSw3ICsxLDcg
QEAKIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8IS0tCi1UZXN0IGFkYXB0ZWQgZnJvbSBodHRw
czovL2R4ci5tb3ppbGxhLm9yZy9jaHJvbWl1bS9zb3VyY2Uvc3JjL3RoaXJkX3BhcnR5L1dlYktp
dC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy9wcmV2aW91c05v
ZGVMYXN0Q2hpbGRSZWplY3QuanMKK1Rlc3QgYWRhcHRlZCBmcm9tIGNocm9taXVtL3NvdXJjZS9z
cmMvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2Ny
aXB0LXRlc3RzL3ByZXZpb3VzTm9kZUxhc3RDaGlsZFJlamVjdC5qcwogLS0+CiA8aGVhZD4KIDx0
aXRsZT5UcmVlV2Fsa2VyOiBwcmV2aW91c05vZGVMYXN0Q2hpbGRSZWplY3Q8L3RpdGxlPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
dHJhdmVyc2FsL1RyZWVXYWxrZXItcHJldmlvdXNTaWJsaW5nTGFzdENoaWxkU2tpcC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2Fs
L1RyZWVXYWxrZXItcHJldmlvdXNTaWJsaW5nTGFzdENoaWxkU2tpcC5odG1sCmluZGV4IDU1NjY1
NjRkMjQwM2E3MWRkNjk1MTA5NDEyNDY1N2QzOWJlNDAyNGEuLjVlMjhhYTUxNDJmNWU2NjAwZGQ0
YzVkMjhlMWQxNjc3YTQ1MWY2NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLXByZXZpb3VzU2li
bGluZ0xhc3RDaGlsZFNraXAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci1wcmV2aW91c1NpYmxpbmdM
YXN0Q2hpbGRTa2lwLmh0bWwKQEAgLTEsNyArMSw3IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPCEtLQotVGVzdCBhZGFwdGVkIGZyb20gaHR0cHM6Ly9keHIubW96aWxsYS5vcmcvY2hyb21p
dW0vc291cmNlL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvTGF5b3V0VGVzdHMvZmFzdC9kb20vVHJl
ZVdhbGtlci9zY3JpcHQtdGVzdHMvcHJldmlvdXNTaWJsaW5nTGFzdENoaWxkU2tpcC5qcworVGVz
dCBhZGFwdGVkIGZyb20gY2hyb21pdW0vc291cmNlL3NyYy90aGlyZF9wYXJ0eS9XZWJLaXQvTGF5
b3V0VGVzdHMvZmFzdC9kb20vVHJlZVdhbGtlci9zY3JpcHQtdGVzdHMvcHJldmlvdXNTaWJsaW5n
TGFzdENoaWxkU2tpcC5qcwogLS0+CiA8aGVhZD4KIDx0aXRsZT5UcmVlV2Fsa2VyOiBwcmV2aW91
c1NpYmxpbmdMYXN0Q2hpbGRTa2lwPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLXRy
YXZlcnNhbC1yZWplY3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLXRyYXZlcnNhbC1yZWplY3QuaHRtbApp
bmRleCA1M2I3MzQxODhjNDc3YjRiZTYzY2IyYjY2N2QxM2JmNWEzNTI1MmZhLi5kNmM5NmFkYzEx
NGY2YjhjMTMxZWUwZThiZjQ5NDY4NmJiMzY0ZGE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci10
cmF2ZXJzYWwtcmVqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItdHJhdmVyc2FsLXJlamVjdC5o
dG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDwhLS0KLVRlc3Qg
YWRhcHRlZCBmcm9tIGh0dHBzOi8vZHhyLm1vemlsbGEub3JnL2Nocm9taXVtL3NvdXJjZS9zcmMv
dGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2NyaXB0
LXRlc3RzL3RyYXZlcnNhbC1yZWplY3QuanMKK1Rlc3QgYWRhcHRlZCBmcm9tIGNocm9taXVtL3Nv
dXJjZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL1RyZWVXYWxr
ZXIvc2NyaXB0LXRlc3RzL3RyYXZlcnNhbC1yZWplY3QuanMKIC0tPgogPGhlYWQ+CiA8dGl0bGU+
VHJlZVdhbGtlcjogdHJhdmVyc2FsLXJlamVjdDwvdGl0bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdh
bGtlci10cmF2ZXJzYWwtc2tpcC1tb3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvVHJlZVdhbGtlci10cmF2ZXJzYWwtc2tp
cC1tb3N0Lmh0bWwKaW5kZXggMTczOTIyYzE1ZTY4MjdhNzlhZGI0ZWNhZjEwZWE1NDhjNDA3NWMy
NC4uYjZlYWZkNDU5NjgyZTllN2RkMDI5Yzk2ZGM0NmUxMzRmZTAyYTRlOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2Fs
L1RyZWVXYWxrZXItdHJhdmVyc2FsLXNraXAtbW9zdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9UcmVlV2Fsa2VyLXRy
YXZlcnNhbC1za2lwLW1vc3QuaHRtbApAQCAtMSw3ICsxLDcgQEAKIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8IS0tCi1UZXN0IGFkYXB0ZWQgZnJvbSBodHRwczovL2R4ci5tb3ppbGxhLm9yZy9j
aHJvbWl1bS9zb3VyY2Uvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9UcmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy90cmF2ZXJzYWwtc2tpcC1tb3N0LmpzCitUZXN0IGFk
YXB0ZWQgZnJvbSBjaHJvbWl1bS9zb3VyY2Uvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy90cmF2ZXJzYWwtc2tpcC1tb3N0
LmpzCiAtLT4KIDxoZWFkPgogPHRpdGxlPlRyZWVXYWxrZXI6IHRyYXZlcnNhbC1za2lwLW1vc3Q8
L3RpdGxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItdHJhdmVyc2FsLXNraXAuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC9U
cmVlV2Fsa2VyLXRyYXZlcnNhbC1za2lwLmh0bWwKaW5kZXggOGM2ZjJiZjIyYmUwYjMxYmJhODRi
MTRmNWI1NTE4Y2JlYWM4Nzg1NS4uNmJiZWJlNjY3ZWE1ZWU2MGE4ZTk2OTlkNzk3MjZhNjFiNWM1
OWFiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vdHJhdmVyc2FsL1RyZWVXYWxrZXItdHJhdmVyc2FsLXNraXAuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwv
VHJlZVdhbGtlci10cmF2ZXJzYWwtc2tpcC5odG1sCkBAIC0xLDcgKzEsNyBAQAogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDwhLS0KLVRlc3QgYWRhcHRlZCBmcm9tIGh0dHBzOi8vZHhyLm1vemls
bGEub3JnL2Nocm9taXVtL3NvdXJjZS9zcmMvdGhpcmRfcGFydHkvV2ViS2l0L0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1RyZWVXYWxrZXIvc2NyaXB0LXRlc3RzL3RyYXZlcnNhbC1za2lwLmpzCitUZXN0
IGFkYXB0ZWQgZnJvbSBjaHJvbWl1bS9zb3VyY2Uvc3JjL3RoaXJkX3BhcnR5L1dlYktpdC9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9UcmVlV2Fsa2VyL3NjcmlwdC10ZXN0cy90cmF2ZXJzYWwtc2tpcC5q
cwogLS0+CiA8aGVhZD4KIDx0aXRsZT5UcmVlV2Fsa2VyOiB0cmF2ZXJzYWwtc2tpcDwvdGl0bGU+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDEueG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDAxLnhtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZTY2NzkyYTMyZWJjMGViYTE3ZjY5OTg4ZmE3ZTgyMzQ2YjI2MzIxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDAxLnhtbApAQCAtMCwwICsxLDUzIEBACis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRs
ZT5ET00gVHJhdmVyc2FsOiBOb2RlSXRlcmF0b3I6IEJhc2ljczwvdGl0bGU+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gPCFbQ0RBVEFbCisgICAgZnVuY3Rpb24gZG9UZXN0KCkg
eworICAgICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3Vt
ZW50LCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBmYWxzZSk7CisgICAgICB2YXIgZXhwZWN0
ZWQgPSBuZXcgQXJyYXkoOSwgLy8gZG9jdW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxLCAvLyBodG1sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywgMSwgLy8g
aGVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsIDEsIDMsIC8vIHRpdGxlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywgMSwgMywgNCwgLy8gc2NyaXB0IGFuZCBD
REFUQSBibG9jaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsIDMsIDEsIC8vIGJv
ZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCAxLCAzLCAvLyBwcmUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLCAvLyA8L2JvZHk+CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMywgOCwgLy8gPCEtLSAtLT4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzLCA3LCAvLyA8PyA/PiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LCA0LCAzKTsgLy8gQ0RBVEEKKyAgICAgIHZhciBmb3VuZCA9IG5ldyBBcnJheSgpOworCisgICAg
ICAvLyB3YWxrIGRvY3VtZW50CisgICAgICB2YXIgbm9kZTsKKyAgICAgIHdoaWxlIChub2RlID0g
aXRlcmF0b3IubmV4dE5vZGUoKSkKKyAgICAgICAgZm91bmQucHVzaChub2RlLm5vZGVUeXBlKTsK
KworICAgICAgLy8gY2hlY2sgcmVzdWx0cworICAgICAgdmFyIGVycm9ycyA9IDA7CisgICAgICB2
YXIgcyA9ICcnOworICAgICAgdmFyIGxlbmd0aCA9IChmb3VuZC5sZW5ndGggPiBleHBlY3RlZC5s
ZW5ndGgpID8gZm91bmQubGVuZ3RoIDogZXhwZWN0ZWQubGVuZ3RoOworICAgICAgcyArPSAnRVhQ
RUNURUQgIEZPVU5EXG4nOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0g
MSkgeworICAgICAgICBzICs9ICcgICcgKyAoZXhwZWN0ZWRbaV0gPyBleHBlY3RlZFtpXSA6ICct
JykgKworICAgICAgJyAgICAgICAgICcgKyAoZm91bmRbaV0gPyBmb3VuZFtpXSA6ICctJyk7Cisg
ICAgICAgIGlmIChmb3VuZFtpXSAhPSBleHBlY3RlZFtpXSkgeworICAgICAgICAgIHMgKz0gJyAg
ICAgIE1JU01BVENIJzsKKyAgICAgICAgICBlcnJvcnMgKz0gMTsKKyAgICAgICAgfQorICAgICAg
ICBzICs9ICdcbic7CisgICAgICB9CisgICAgICB2YXIgcCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lTlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAncHJlJylbMF07Cisg
ICAgICBpZiAoZXJyb3JzKQorICAgICAgICBwLmZpcnN0Q2hpbGQuZGF0YSA9ICdGQUlMOiAnICsg
ZXJyb3JzICsgJyBlcnJvcnMgZm91bmQ6XG5cbicgKyBzOworICAgICAgZWxzZQorICAgICAgICBw
LmZpcnN0Q2hpbGQuZGF0YSA9ICdQQVNTJzsKKyAgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVh
ZD4KKyA8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKyAgPHByZSBpZD0icmVzdWx0Ij5GQUlMOiBT
Y3JpcHQgZmFpbGVkIHRvIHJ1bi48L3ByZT4KKyA8L2JvZHk+CisgPCEtLSBzb21lIG1vcmUgbm9k
ZXMgdG8gdGVzdCB0aGlzOiAtLT4KKyA8P3Rlc3Qgbm9kZT8+CisgCis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDAyLnhtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91
bmZpbmlzaGVkLzAwMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1ZDcwNGUxMGMwOGJiZmZmZTdjNzE3OTg4
MDcwZDIyNzFlMDJmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkLzAwMi54bWwKQEAg
LTAsMCArMSw1NCBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgorIDxoZWFkPgorICA8dGl0bGU+RE9NIFRyYXZlcnNhbDogTm9kZUl0ZXJhdG9yOiBCYXNpY3Mg
QmFja3dhcmRzPC90aXRsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8IVtD
REFUQVsKKyAgICBmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgICB2YXIgaXRlcmF0b3IgPSBkb2N1
bWVudC5jcmVhdGVOb2RlSXRlcmF0b3IoZG9jdW1lbnQsIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51
bGwsIGZhbHNlKTsKKyAgICAgIHZhciBleHBlY3RlZCA9IG5ldyBBcnJheSg5LCAvLyBkb2N1bWVu
dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIC8vIGh0bWwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAzLCAxLCAvLyBoZWFkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMywgMSwgMywgLy8gdGl0bGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzLCAxLCAzLCA0LCAvLyBzY3JpcHQgYW5kIENEQVRBIGJsb2NrCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMywgMywgMSwgLy8gYm9keQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMsIDEsIDMsIC8vIHByZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMs
IC8vIDwvYm9keT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCA4LCAvLyA8IS0t
IC0tPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsIDcsIC8vIDw/ID8+LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMsIDQsIDMpOyAvLyBDREFUQQorICAgICAgdmFy
IGZvdW5kID0gbmV3IEFycmF5KCk7CisKKyAgICAgIC8vIHdhbGsgZG9jdW1lbnQKKyAgICAgIHZh
ciBub2RlOworICAgICAgd2hpbGUgKG5vZGUgPSBpdGVyYXRvci5uZXh0Tm9kZSgpKTsKKyAgICAg
IHdoaWxlIChub2RlID0gaXRlcmF0b3IucHJldmlvdXNOb2RlKCkpCisgICAgICAgIGZvdW5kLnVu
c2hpZnQobm9kZS5ub2RlVHlwZSk7CisKKyAgICAgIC8vIGNoZWNrIHJlc3VsdHMKKyAgICAgIHZh
ciBlcnJvcnMgPSAwOworICAgICAgdmFyIHMgPSAnJzsKKyAgICAgIHZhciBsZW5ndGggPSAoZm91
bmQubGVuZ3RoID4gZXhwZWN0ZWQubGVuZ3RoKSA/IGZvdW5kLmxlbmd0aCA6IGV4cGVjdGVkLmxl
bmd0aDsKKyAgICAgIHMgKz0gJ0VYUEVDVEVEICBGT1VORFxuJzsKKyAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgcyArPSAnICAnICsgKGV4cGVjdGVk
W2ldID8gZXhwZWN0ZWRbaV0gOiAnLScpICsKKyAgICAgICcgICAgICAgICAnICsgKGZvdW5kW2ld
ID8gZm91bmRbaV0gOiAnLScpOworICAgICAgICBpZiAoZm91bmRbaV0gIT0gZXhwZWN0ZWRbaV0p
IHsKKyAgICAgICAgICBzICs9ICcgICAgICBNSVNNQVRDSCc7CisgICAgICAgICAgZXJyb3JzICs9
IDE7CisgICAgICAgIH0KKyAgICAgICAgcyArPSAnXG4nOworICAgICAgfQorICAgICAgdmFyIHAg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJywgJ3ByZScpWzBdOworICAgICAgaWYgKGVycm9ycykKKyAgICAgICAgcC5maXJzdENo
aWxkLmRhdGEgPSAnRkFJTDogJyArIGVycm9ycyArICcgZXJyb3JzIGZvdW5kOlxuXG4nICsgczsK
KyAgICAgIGVsc2UKKyAgICAgICAgcC5maXJzdENoaWxkLmRhdGEgPSAnUEFTUyc7CisgICAgfQor
ICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisgIDxw
cmUgaWQ9InJlc3VsdCI+RkFJTDogU2NyaXB0IGZhaWxlZCB0byBydW4uPC9wcmU+CisgPC9ib2R5
PgorIDwhLS0gc29tZSBtb3JlIG5vZGVzIHRvIHRlc3QgdGhpczogLS0+CisgPD90ZXN0IG5vZGU/
PgorIAorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91
bmZpbmlzaGVkLzAwMy54bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDMueG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OGU2
YmI0ZDc0NmJmOGU5YThlMTZlNjNkN2Y4ZjQxZjc5ZGM5ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwv
dW5maW5pc2hlZC8wMDMueG1sCkBAIC0wLDAgKzEsNTggQEAKKzxodG1sIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkRPTSBUcmF2ZXJzYWw6
IE5vZGVJdGVyYXRvcjogUmVtb3ZhbCBvZiBub2RlcyB0aGF0IHNob3VsZCBoYXZlIG5vIGVmZmVj
dDwvdGl0bGU+CisgIDwhLS0KKyAgIFRoaXMgdGVzdHMgdGhlc2UgY2FzZXMgdGhhdCBzaG91bGQg
aGF2ZSBubyBlZmZlY3Q6CisgICAgMS4gUmVtb3ZlIGEgbm9kZSB1bnJlbGF0ZWQgdG8gdGhlIHJl
ZmVyZW5jZSBub2RlCisgICAgMi4gUmVtb3ZlIGFuIGFuY2VzdG9yIG9mIHRoZSByb290IG5vZGUK
KyAgICAzLiBSZW1vdmUgdGhlIHJvb3Qgbm9kZSBpdHNlbGYKKyAgICA0LiBSZW1vdmUgZGVzY2Vu
ZGFudCBvZiByZWZlcmVuY2Ugbm9kZQorICAtLT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPiA8IVtDREFUQVsKKyAgICB2YXIgZXJyb3JzID0gMDsKKyAgICB2YXIgbG9nID0gJyc7
CisgICAgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQu
Y3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JyksIE5vZGVG
aWx0ZXIuU0hPV19BTEwsIG51bGwsIGZhbHNlKTsKKyAgICAgIHZhciByb290ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKKyAgICAgIHZhciBBID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ0EnKTsKKyAgICAgIHZhciBCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0InKTsK
KyAgICAgIHZhciBDID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0MnKTsKKyAgICAgIHZhciBE
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0QnKTsKKyAgICAgIHZhciBFID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ0UnKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIHJv
b3QpOworICAgICAgcmVtb3ZlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdYJykpOworICAgICAg
Y2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgQSk7CisgICAgICByZW1vdmUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ1knKSk7CisgICAgICBjaGVjayhpdGVyYXRvci5uZXh0Tm9kZSgpLCBCKTsK
KyAgICAgIHJlbW92ZShyb290KTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIEMp
OworICAgICAgcmVtb3ZlKEUpOworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgRCk7
CisgICAgICBpZiAoZXJyb3JzKQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
dWx0JykuZmlyc3RDaGlsZC5kYXRhID0gJ0ZBSUw6ICcgKyBlcnJvcnMgKyAnIGVycm9yczpcbicg
KyBsb2c7CisgICAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5maXJzdENoaWxkLmRhdGEgPSAnUEFTUyc7CisgICAgfQorICAgIGZ1bmN0aW9uIGNoZWNr
KGEsIGIpIHsKKyAgICAgIGlmICghYSkgeworICAgICAgICBlcnJvcnMgKz0gMTsKKyAgICAgICAg
bG9nICs9ICdGb3VuZCBudWxsIGJ1dCBleHBlY3RlZCAnICsgYiArICcgKCcgKyBiLmlkICsgJyku
XG4nOworICAgICAgfSBlbHNlIGlmIChhICE9IGIpIHsKKyAgICAgICAgZXJyb3JzICs9IDE7Cisg
ICAgICAgIGxvZyArPSAnRm91bmQgJyArIGEgKyAnICgnICsgYS5pZCArICcpIGJ1dCBleHBlY3Rl
ZCAnICsgYiArICcgKCcgKyBiLmlkICsgJykuXG4nOworICAgICAgfQorICAgIH0KKyAgICBmdW5j
dGlvbiByZW1vdmUoYSkgeworICAgICAgaWYgKCFhKSB7CisgICAgICAgIGVycm9ycyArPSAxOwor
ICAgICAgICBsb2cgKz0gJ1RyaWVkIHJlbW92aW5nIG51bGwgbm9kZS5cbic7CisgICAgICB9IGVs
c2UKKyAgICAgIGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTsKKyAgICB9CisgIF1dPjwvc2Ny
aXB0PgorIDwvaGVhZD4KKyA8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKyAgPHByZSBpZD0icmVz
dWx0Ij5GQUlMOiBTY3JpcHQgZGlkIG5vdCBjb21wbGV0ZS48L3ByZT4KKyAgPHA+PHNwYW4gaWQ9
IlgiPjwvc3Bhbj48c3BhbiBpZD0iWSI+PHNwYW4gaWQ9InJvb3QiPjxzcGFuIGlkPSJBIj48c3Bh
biBpZD0iQiI+PHNwYW4gaWQ9IkMiPjxzcGFuIGlkPSJEIj48c3BhbiBpZD0iRSI+PC9zcGFuPjwv
c3Bhbj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwvcD4KKyA8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNo
ZWQvMDA0LnhtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkLzAwNC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE4OTc4ZjAyMWUz
MmEyMTVkNjRlNWQ0NzQ4MjZiYjM5ZTI5NGY2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlz
aGVkLzAwNC54bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiPgorIDxoZWFkPgorICA8dGl0bGU+RE9NIFRyYXZlcnNhbDogTm9kZUl0
ZXJhdG9yOiBSZW1vdmFsIG9mIHRoZSBSZWZlcmVuY2UgTm9kZTwvdGl0bGU+CisgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gPCFbQ0RBVEFbCisgICAgdmFyIGVycm9ycyA9IDA7Cisg
ICAgdmFyIGxvZyA9ICcnOworICAgIGZ1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICAgIHZhciBpdGVy
YXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncm9vdCcpLCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBmYWxzZSk7CisgICAgICB2YXIg
cm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290Jyk7CisgICAgICB2YXIgQSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJyk7CisgICAgICB2YXIgQUEgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnQUEnKTsKKyAgICAgIHZhciBCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J0InKTsKKyAgICAgIHZhciBDID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0MnKTsKKyAgICAg
IGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIHJvb3QpOworICAgICAgY2hlY2soaXRlcmF0b3Iu
bmV4dE5vZGUoKSwgQSk7CisgICAgICBjaGVjayhpdGVyYXRvci5uZXh0Tm9kZSgpLCBBQSk7Cisg
ICAgICBjaGVjayhpdGVyYXRvci5uZXh0Tm9kZSgpLCBCKTsKKyAgICAgIHJlbW92ZShCKTsKKyAg
ICAgIGNoZWNrKGl0ZXJhdG9yLnByZXZpb3VzTm9kZSgpLCBBQSk7CisgICAgICByZW1vdmUoQUEp
OworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgQyk7CisgICAgICBpZiAoZXJyb3Jz
KQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuZmlyc3RDaGlsZC5k
YXRhID0gJ0ZBSUw6ICcgKyBlcnJvcnMgKyAnIGVycm9yczpcbicgKyBsb2c7CisgICAgICBlbHNl
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5maXJzdENoaWxkLmRh
dGEgPSAnUEFTUyc7CisgICAgfQorICAgIGZ1bmN0aW9uIGNoZWNrKGEsIGIpIHsKKyAgICAgIGlm
ICghYSkgeworICAgICAgICBlcnJvcnMgKz0gMTsKKyAgICAgICAgbG9nICs9ICdGb3VuZCBudWxs
IGJ1dCBleHBlY3RlZCAnICsgYiArICcgKCcgKyBiLmlkICsgJykuXG4nOworICAgICAgfSBlbHNl
IGlmIChhICE9IGIpIHsKKyAgICAgICAgZXJyb3JzICs9IDE7CisgICAgICAgIGxvZyArPSAnRm91
bmQgJyArIGEgKyAnICgnICsgYS5pZCArICcpIGJ1dCBleHBlY3RlZCAnICsgYiArICcgKCcgKyBi
LmlkICsgJykuXG4nOworICAgICAgfQorICAgIH0KKyAgICBmdW5jdGlvbiByZW1vdmUoYSkgewor
ICAgICAgaWYgKCFhKSB7CisgICAgICAgIGVycm9ycyArPSAxOworICAgICAgICBsb2cgKz0gJ1Ry
aWVkIHJlbW92aW5nIG51bGwgbm9kZS5cbic7CisgICAgICB9IGVsc2UKKyAgICAgIGEucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZChhKTsKKyAgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8
Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKyAgPHByZSBpZD0icmVzdWx0Ij5GQUlMOiBTY3JpcHQg
ZGlkIG5vdCBjb21wbGV0ZS48L3ByZT4KKyAgPHA+PHNwYW4gaWQ9InJvb3QiPjxzcGFuIGlkPSJB
Ij48c3BhbiBpZD0iQUEiPjwvc3Bhbj48L3NwYW4+PHNwYW4gaWQ9IkIiPjwvc3Bhbj48c3BhbiBp
ZD0iQyI+PHNwYW4gaWQ9IkNDIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3A+CisgPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlz
aGVkLzAwNS54bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0M2UyZjFjZDRm
ZDg4YTFmZDdkNTQyNTE2NWZiMDE5NTBlZDZjZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5p
c2hlZC8wMDUueG1sCkBAIC0wLDAgKzEsNTcgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkRPTSBUcmF2ZXJzYWw6IE5vZGVJ
dGVyYXRvcjogUmVtb3ZhbCBvZiB0aGUgUmVmZXJlbmNlIE5vZGUgKGRlZXAgY2hlY2spPC90aXRs
ZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8IVtDREFUQVsKKyAgICB2YXIg
ZXJyb3JzID0gMDsKKyAgICB2YXIgbG9nID0gJyc7CisgICAgZnVuY3Rpb24gZG9UZXN0KCkgewor
ICAgICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdyb290JyksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGwsIGZhbHNl
KTsKKyAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKKyAg
ICAgIHZhciBBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKTsKKyAgICAgIHZhciBBQSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBQScpOworICAgICAgdmFyIEIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnQicpOworICAgICAgdmFyIEMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnQycpOworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgcm9vdCk7CisgICAgICBj
aGVjayhpdGVyYXRvci5uZXh0Tm9kZSgpLCBBKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHRO
b2RlKCksIEFBKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIEIpOworICAgICAg
cmVtb3ZlKEIpOworICAgICAgdmFyIFggPSBhZGRDaGlsZFRvKEFBKTsKKyAgICAgIGNoZWNrKGl0
ZXJhdG9yLm5leHROb2RlKCksIFgpOworICAgICAgY2hlY2soaXRlcmF0b3IucHJldmlvdXNOb2Rl
KCksIFgpOworICAgICAgcmVtb3ZlKFgpOworICAgICAgdmFyIFkgPSBhZGRDaGlsZFRvKEFBKTsK
KyAgICAgIGNoZWNrKGl0ZXJhdG9yLnByZXZpb3VzTm9kZSgpLCBZKTsKKyAgICAgIGlmIChlcnJv
cnMpCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5maXJzdENoaWxk
LmRhdGEgPSAnRkFJTDogJyArIGVycm9ycyArICcgZXJyb3JzOlxuJyArIGxvZzsKKyAgICAgIGVs
c2UKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmZpcnN0Q2hpbGQu
ZGF0YSA9ICdQQVNTJzsKKyAgICB9CisgICAgZnVuY3Rpb24gY2hlY2soYSwgYikgeworICAgICAg
aWYgKCFhKSB7CisgICAgICAgIGVycm9ycyArPSAxOworICAgICAgICBsb2cgKz0gJ0ZvdW5kIG51
bGwgYnV0IGV4cGVjdGVkICcgKyBiICsgJyAoJyArIGIuaWQgKyAnKS5cbic7CisgICAgICB9IGVs
c2UgaWYgKGEgIT0gYikgeworICAgICAgICBlcnJvcnMgKz0gMTsKKyAgICAgICAgbG9nICs9ICdG
b3VuZCAnICsgYSArICcgKCcgKyBhLmlkICsgJykgYnV0IGV4cGVjdGVkICcgKyBiICsgJyAoJyAr
IGIuaWQgKyAnKS5cbic7CisgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIHJlbW92ZShhKSB7
CisgICAgICBpZiAoIWEpIHsKKyAgICAgICAgZXJyb3JzICs9IDE7CisgICAgICAgIGxvZyArPSAn
VHJpZWQgcmVtb3ZpbmcgbnVsbCBub2RlLlxuJzsKKyAgICAgIH0gZWxzZQorICAgICAgYS5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKGEpOworICAgIH0KKyAgICBmdW5jdGlvbiBhZGRDaGlsZFRvKGEp
IHsKKyAgICAgIHZhciB4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJywgJ3NwYW4nKTsKKyAgICAgIGEuYXBwZW5kQ2hpbGQoeCk7CisgICAg
ICByZXR1cm4geDsKKyAgICB9CisgIF1dPjwvc2NyaXB0PgorIDwvaGVhZD4KKyA8Ym9keSBvbmxv
YWQ9ImRvVGVzdCgpIj4KKyAgPHByZSBpZD0icmVzdWx0Ij5GQUlMOiBTY3JpcHQgZGlkIG5vdCBj
b21wbGV0ZS48L3ByZT4KKyAgPHA+PHNwYW4gaWQ9InJvb3QiPjxzcGFuIGlkPSJBIj48c3BhbiBp
ZD0iQUEiPjwvc3Bhbj48L3NwYW4+PHNwYW4gaWQ9IkIiPjwvc3Bhbj48c3BhbiBpZD0iQyI+PHNw
YW4gaWQ9IkNDIj48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3A+CisgPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkLzAwNi54
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2
ZXJzYWwvdW5maW5pc2hlZC8wMDYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyMzAyYWY4MzY2Y2RkM2VkMDA2
M2Y0NmZkYjdmMzUwZTgxNzkwMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDYu
eG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkRPTSBUcmF2ZXJzYWw6IE5vZGVJdGVyYXRvcjog
UmVtb3ZhbCBvZiBhbiBhbmNlc3RvciBvZiB0aGUgUmVmZXJlbmNlIE5vZGUgKGZvcndhcmRzKTwv
dGl0bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gPCFbQ0RBVEFbCisgICAg
dmFyIGVycm9ycyA9IDA7CisgICAgdmFyIGxvZyA9ICcnOworICAgIGZ1bmN0aW9uIGRvVGVzdCgp
IHsKKyAgICAgIHZhciBpdGVyYXRvciA9IGRvY3VtZW50LmNyZWF0ZU5vZGVJdGVyYXRvcihkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpLCBOb2RlRmlsdGVyLlNIT1dfQUxMLCBudWxsLCBm
YWxzZSk7CisgICAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290Jyk7
CisgICAgICB2YXIgQSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdBJyk7CisgICAgICB2YXIg
QiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCJyk7CisgICAgICB2YXIgQkIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnQkInKTsKKyAgICAgIHZhciBDID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ0MnKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIHJvb3QpOworICAg
ICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgQSk7CisgICAgICBjaGVjayhpdGVyYXRvci5u
ZXh0Tm9kZSgpLCBCKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIEJCKTsKKyAg
ICAgIHJlbW92ZShCKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLnByZXZpb3VzTm9kZSgpLCBBKTsK
KyAgICAgIGlmIChlcnJvcnMpCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5maXJzdENoaWxkLmRhdGEgPSAnRkFJTDogJyArIGVycm9ycyArICcgZXJyb3JzOlxuJyAr
IGxvZzsKKyAgICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dCcpLmZpcnN0Q2hpbGQuZGF0YSA9ICdQQVNTJzsKKyAgICB9CisgICAgZnVuY3Rpb24gY2hlY2so
YSwgYikgeworICAgICAgaWYgKCFhKSB7CisgICAgICAgIGVycm9ycyArPSAxOworICAgICAgICBs
b2cgKz0gJ0ZvdW5kIG51bGwgYnV0IGV4cGVjdGVkICcgKyBiICsgJyAoJyArIGIuaWQgKyAnKS5c
bic7CisgICAgICB9IGVsc2UgaWYgKGEgIT0gYikgeworICAgICAgICBlcnJvcnMgKz0gMTsKKyAg
ICAgICAgbG9nICs9ICdGb3VuZCAnICsgYSArICcgKCcgKyBhLmlkICsgJykgYnV0IGV4cGVjdGVk
ICcgKyBiICsgJyAoJyArIGIuaWQgKyAnKS5cbic7CisgICAgICB9CisgICAgfQorICAgIGZ1bmN0
aW9uIHJlbW92ZShhKSB7CisgICAgICBpZiAoIWEpIHsKKyAgICAgICAgZXJyb3JzICs9IDE7Cisg
ICAgICAgIGxvZyArPSAnVHJpZWQgcmVtb3ZpbmcgbnVsbCBub2RlLlxuJzsKKyAgICAgIH0gZWxz
ZQorICAgICAgYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpOworICAgIH0KKyAgXV0+PC9zY3Jp
cHQ+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0iZG9UZXN0KCkiPgorICA8cHJlIGlkPSJyZXN1
bHQiPkZBSUw6IFNjcmlwdCBkaWQgbm90IGNvbXBsZXRlLjwvcHJlPgorICA8cD48c3BhbiBpZD0i
cm9vdCI+PHNwYW4gaWQ9IkEiPjwvc3Bhbj48c3BhbiBpZD0iQiI+PHNwYW4gaWQ9IkJCIj48L3Nw
YW4+PC9zcGFuPjxzcGFuIGlkPSJDIj48L3NwYW4+PC9zcGFuPjwvcD4KKyA8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDcueG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDA3Lnht
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OGIyMTJlNGU1ZjljY2IxZDBjYWI1ZjMyYTdmMGE4MzA2YjJhZDA2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDA3LnhtbApAQCAtMCwwICsxLDU0IEBACis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0
aXRsZT5ET00gVHJhdmVyc2FsOiBOb2RlSXRlcmF0b3I6IFJlbW92YWwgb2YgYW4gYW5jZXN0b3Ig
b2YgdGhlIFJlZmVyZW5jZSBOb2RlIChmb3J3YXJkcykgKGRlZXAgY2hlY2spPC90aXRsZT4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8IVtDREFUQVsKKyAgICB2YXIgZXJyb3Jz
ID0gMDsKKyAgICB2YXIgbG9nID0gJyc7CisgICAgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgICAg
dmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyb290JyksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGwsIGZhbHNlKTsKKyAg
ICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKKyAgICAgIHZh
ciBBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKTsKKyAgICAgIHZhciBCID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ0InKTsKKyAgICAgIHZhciBCQiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdCQicpOworICAgICAgdmFyIEMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQycp
OworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgcm9vdCk7CisgICAgICBjaGVjayhp
dGVyYXRvci5uZXh0Tm9kZSgpLCBBKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCks
IEIpOworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgQkIpOworICAgICAgcmVtb3Zl
KEIpOworICAgICAgdmFyIFggPSBhZGRDaGlsZFRvKEEpOworICAgICAgY2hlY2soaXRlcmF0b3Iu
bmV4dE5vZGUoKSwgWCk7CisgICAgICBpZiAoZXJyb3JzKQorICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgncmVzdWx0JykuZmlyc3RDaGlsZC5kYXRhID0gJ0ZBSUw6ICcgKyBlcnJvcnMg
KyAnIGVycm9yczpcbicgKyBsb2c7CisgICAgICBlbHNlCisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHQnKS5maXJzdENoaWxkLmRhdGEgPSAnUEFTUyc7CisgICAgfQorICAg
IGZ1bmN0aW9uIGNoZWNrKGEsIGIpIHsKKyAgICAgIGlmICghYSkgeworICAgICAgICBlcnJvcnMg
Kz0gMTsKKyAgICAgICAgbG9nICs9ICdGb3VuZCBudWxsIGJ1dCBleHBlY3RlZCAnICsgYiArICcg
KCcgKyBiLmlkICsgJykuXG4nOworICAgICAgfSBlbHNlIGlmIChhICE9IGIpIHsKKyAgICAgICAg
ZXJyb3JzICs9IDE7CisgICAgICAgIGxvZyArPSAnRm91bmQgJyArIGEgKyAnICgnICsgYS5pZCAr
ICcpIGJ1dCBleHBlY3RlZCAnICsgYiArICcgKCcgKyBiLmlkICsgJykuXG4nOworICAgICAgfQor
ICAgIH0KKyAgICBmdW5jdGlvbiByZW1vdmUoYSkgeworICAgICAgaWYgKCFhKSB7CisgICAgICAg
IGVycm9ycyArPSAxOworICAgICAgICBsb2cgKz0gJ1RyaWVkIHJlbW92aW5nIG51bGwgbm9kZS5c
bic7CisgICAgICB9IGVsc2UKKyAgICAgIGEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChhKTsKKyAg
ICB9CisgICAgZnVuY3Rpb24gYWRkQ2hpbGRUbyhhKSB7CisgICAgICB2YXIgeCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdzcGFuJyk7
CisgICAgICB4LmlkID0gJ1gnOworICAgICAgYS5hcHBlbmRDaGlsZCh4KTsKKyAgICAgIHJldHVy
biB4OworICAgIH0KKyAgXV0+PC9zY3JpcHQ+CisgPC9oZWFkPgorIDxib2R5IG9ubG9hZD0iZG9U
ZXN0KCkiPgorICA8cHJlIGlkPSJyZXN1bHQiPkZBSUw6IFNjcmlwdCBkaWQgbm90IGNvbXBsZXRl
LjwvcHJlPgorICA8cD48c3BhbiBpZD0icm9vdCI+PHNwYW4gaWQ9IkEiPjwvc3Bhbj48c3BhbiBp
ZD0iQiI+PHNwYW4gaWQ9IkJCIj48L3NwYW4+PC9zcGFuPjxzcGFuIGlkPSJDIj48L3NwYW4+PC9z
cGFuPjwvcD4KKyA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDgu
eG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJh
dmVyc2FsL3VuZmluaXNoZWQvMDA4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWQ3MDA4YWU0MjIwZTg3MjIw
NmViNjdjZmQ4OWFiNzBkOTE3YjY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDA4
LnhtbApAQCAtMCwwICsxLDQ4IEBACis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+CisgPGhlYWQ+CisgIDx0aXRsZT5ET00gVHJhdmVyc2FsOiBOb2RlSXRlcmF0b3I6
IFJlbW92YWwgb2YgYW4gYW5jZXN0b3Igb2YgdGhlIFJlZmVyZW5jZSBOb2RlIChiYWNrd2FyZHMp
PC90aXRsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8IVtDREFUQVsKKyAg
ICB2YXIgZXJyb3JzID0gMDsKKyAgICB2YXIgbG9nID0gJyc7CisgICAgZnVuY3Rpb24gZG9UZXN0
KCkgeworICAgICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290JyksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGws
IGZhbHNlKTsKKyAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3Qn
KTsKKyAgICAgIHZhciBBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0EnKTsKKyAgICAgIHZh
ciBCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ0InKTsKKyAgICAgIHZhciBCQiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdCQicpOworICAgICAgdmFyIEMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnQycpOworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgcm9vdCk7Cisg
ICAgICBjaGVjayhpdGVyYXRvci5uZXh0Tm9kZSgpLCBBKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9y
Lm5leHROb2RlKCksIEIpOworICAgICAgY2hlY2soaXRlcmF0b3IubmV4dE5vZGUoKSwgQkIpOwor
ICAgICAgY2hlY2soaXRlcmF0b3IucHJldmlvdXNOb2RlKCksIEJCKTsKKyAgICAgIHJlbW92ZShC
KTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIEMpOworICAgICAgaWYgKGVycm9y
cykKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmZpcnN0Q2hpbGQu
ZGF0YSA9ICdGQUlMOiAnICsgZXJyb3JzICsgJyBlcnJvcnM6XG4nICsgbG9nOworICAgICAgZWxz
ZQorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuZmlyc3RDaGlsZC5k
YXRhID0gJ1BBU1MnOworICAgIH0KKyAgICBmdW5jdGlvbiBjaGVjayhhLCBiKSB7CisgICAgICBp
ZiAoIWEpIHsKKyAgICAgICAgZXJyb3JzICs9IDE7CisgICAgICAgIGxvZyArPSAnRm91bmQgbnVs
bCBidXQgZXhwZWN0ZWQgJyArIGIgKyAnICgnICsgYi5pZCArICcpLlxuJzsKKyAgICAgIH0gZWxz
ZSBpZiAoYSAhPSBiKSB7CisgICAgICAgIGVycm9ycyArPSAxOworICAgICAgICBsb2cgKz0gJ0Zv
dW5kICcgKyBhICsgJyAoJyArIGEuaWQgKyAnKSBidXQgZXhwZWN0ZWQgJyArIGIgKyAnICgnICsg
Yi5pZCArICcpLlxuJzsKKyAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb24gcmVtb3ZlKGEpIHsK
KyAgICAgIGlmICghYSkgeworICAgICAgICBlcnJvcnMgKz0gMTsKKyAgICAgICAgbG9nICs9ICdU
cmllZCByZW1vdmluZyBudWxsIG5vZGUuXG4nOworICAgICAgfSBlbHNlCisgICAgICBhLnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoYSk7CisgICAgfQorICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+Cisg
PGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisgIDxwcmUgaWQ9InJlc3VsdCI+RkFJTDogU2NyaXB0
IGRpZCBub3QgY29tcGxldGUuPC9wcmU+CisgIDxwPjxzcGFuIGlkPSJyb290Ij48c3BhbiBpZD0i
QSI+PC9zcGFuPjxzcGFuIGlkPSJCIj48c3BhbiBpZD0iQkIiPjwvc3Bhbj48L3NwYW4+PHNwYW4g
aWQ9IkMiPjwvc3Bhbj48L3NwYW4+PC9wPgorIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNh
bC91bmZpbmlzaGVkLzAwOS54bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDkueG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMz
MDA2ZWNiZDZmZjc1OTI1MWI0MDI4MjllN2ZiYWFjMWUzOTU1YTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJz
YWwvdW5maW5pc2hlZC8wMDkueG1sCkBAIC0wLDAgKzEsNTUgQEAKKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRpdGxlPkRPTSBUcmF2ZXJz
YWw6IE5vZGVJdGVyYXRvcjogUmVtb3ZhbCBvZiBhbiBhbmNlc3RvciBvZiB0aGUgUmVmZXJlbmNl
IE5vZGUgKGJhY2t3YXJkcykgKGRlZXAgY2hlY2spPC90aXRsZT4KKyAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPiA8IVtDREFUQVsKKyAgICB2YXIgZXJyb3JzID0gMDsKKyAgICB2YXIg
bG9nID0gJyc7CisgICAgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgICAgdmFyIGl0ZXJhdG9yID0g
ZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290
JyksIE5vZGVGaWx0ZXIuU0hPV19BTEwsIG51bGwsIGZhbHNlKTsKKyAgICAgIHZhciByb290ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKTsKKyAgICAgIHZhciBBID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ0EnKTsKKyAgICAgIHZhciBCID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ0InKTsKKyAgICAgIHZhciBCQiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdCQicpOwor
ICAgICAgdmFyIEMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnQycpOworICAgICAgY2hlY2so
aXRlcmF0b3IubmV4dE5vZGUoKSwgcm9vdCk7CisgICAgICBjaGVjayhpdGVyYXRvci5uZXh0Tm9k
ZSgpLCBBKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLm5leHROb2RlKCksIEIpOworICAgICAgY2hl
Y2soaXRlcmF0b3IubmV4dE5vZGUoKSwgQkIpOworICAgICAgY2hlY2soaXRlcmF0b3IucHJldmlv
dXNOb2RlKCksIEJCKTsKKyAgICAgIHJlbW92ZShCKTsKKyAgICAgIHZhciBYID0gYWRkQ2hpbGRU
byhBKTsKKyAgICAgIGNoZWNrKGl0ZXJhdG9yLnByZXZpb3VzTm9kZSgpLCBYKTsKKyAgICAgIGlm
IChlcnJvcnMpCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5maXJz
dENoaWxkLmRhdGEgPSAnRkFJTDogJyArIGVycm9ycyArICcgZXJyb3JzOlxuJyArIGxvZzsKKyAg
ICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmZpcnN0
Q2hpbGQuZGF0YSA9ICdQQVNTJzsKKyAgICB9CisgICAgZnVuY3Rpb24gY2hlY2soYSwgYikgewor
ICAgICAgaWYgKCFhKSB7CisgICAgICAgIGVycm9ycyArPSAxOworICAgICAgICBsb2cgKz0gJ0Zv
dW5kIG51bGwgYnV0IGV4cGVjdGVkICcgKyBiICsgJyAoJyArIGIuaWQgKyAnKS5cbic7CisgICAg
ICB9IGVsc2UgaWYgKGEgIT0gYikgeworICAgICAgICBlcnJvcnMgKz0gMTsKKyAgICAgICAgbG9n
ICs9ICdGb3VuZCAnICsgYSArICcgKCcgKyBhLmlkICsgJykgYnV0IGV4cGVjdGVkICcgKyBiICsg
JyAoJyArIGIuaWQgKyAnKS5cbic7CisgICAgICB9CisgICAgfQorICAgIGZ1bmN0aW9uIHJlbW92
ZShhKSB7CisgICAgICBpZiAoIWEpIHsKKyAgICAgICAgZXJyb3JzICs9IDE7CisgICAgICAgIGxv
ZyArPSAnVHJpZWQgcmVtb3ZpbmcgbnVsbCBub2RlLlxuJzsKKyAgICAgIH0gZWxzZQorICAgICAg
YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpOworICAgIH0KKyAgICBmdW5jdGlvbiBhZGRDaGls
ZFRvKGEpIHsKKyAgICAgIHZhciB4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ3NwYW4nKTsKKyAgICAgIHguaWQgPSAnWCc7CisgICAg
ICBhLmFwcGVuZENoaWxkKHgpOworICAgICAgcmV0dXJuIHg7CisgICAgfQorICBdXT48L3Njcmlw
dD4KKyA8L2hlYWQ+CisgPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisgIDxwcmUgaWQ9InJlc3Vs
dCI+RkFJTDogU2NyaXB0IGRpZCBub3QgY29tcGxldGUuPC9wcmU+CisgIDxwPjxzcGFuIGlkPSJy
b290Ij48c3BhbiBpZD0iQSI+PC9zcGFuPjxzcGFuIGlkPSJCIj48c3BhbiBpZD0iQkIiPjwvc3Bh
bj48L3NwYW4+PHNwYW4gaWQ9IkMiPjwvc3Bhbj48L3NwYW4+PC9wPgorIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkLzAxMC54bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMTAueG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRiMmE2Y2M3ZjFmODM1NTA0OWI3YzI1NDU5ODJlNGFmNzc3YmU0YTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMTAueG1sCkBAIC0wLDAgKzEsNjQgQEAKKzxo
dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyA8aGVhZD4KKyAgPHRp
dGxlPkRPTSBUcmF2ZXJzYWw6IE5vZGVJdGVyYXRvcjogRmlsdGVyczwvdGl0bGU+CisgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gPCFbQ0RBVEFbCisgICAgZnVuY3Rpb24gZG9UZXN0
KCkgeworICAgICAgdmFyIGl0ZXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlTm9kZUl0ZXJhdG9yKGRv
Y3VtZW50LCBOb2RlRmlsdGVyLlNIT1dfQUxMLCB0ZXN0RmlsdGVyLCBmYWxzZSk7CisgICAgICAv
LyBza2lwcyB0ZXh0IG5vZGVzIGFuZCBib2R5IGVsZW1lbnQKKyAgICAgIHZhciBleHBlY3RlZCA9
IG5ldyBBcnJheSg5LCAvLyBkb2N1bWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEsIC8vIGh0bWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAvLyBoZWFkCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgLy8gdGl0bGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLCA0LCAvLyBzY3JpcHQgYW5kIENEQVRBIGJsb2NrCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gYm9keSAoc2tpcHBlZCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLCAvLyBwcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyA8L2JvZHk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwgLy8gPCEtLSAt
LT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQSSBza2lwcGVkCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNCk7IC8vIENEQVRBCisgICAgICB2YXIgZm91bmQgPSBu
ZXcgQXJyYXkoKTsKKworICAgICAgLy8gd2FsayBkb2N1bWVudAorICAgICAgdmFyIG5vZGU7Cisg
ICAgICB3aGlsZSAobm9kZSA9IGl0ZXJhdG9yLm5leHROb2RlKCkpCisgICAgICAgIGZvdW5kLnB1
c2gobm9kZS5ub2RlVHlwZSk7CisKKyAgICAgIC8vIGNoZWNrIHJlc3VsdHMKKyAgICAgIHZhciBl
cnJvcnMgPSAwOworICAgICAgdmFyIHMgPSAnJzsKKyAgICAgIHZhciBsZW5ndGggPSAoZm91bmQu
bGVuZ3RoID4gZXhwZWN0ZWQubGVuZ3RoKSA/IGZvdW5kLmxlbmd0aCA6IGV4cGVjdGVkLmxlbmd0
aDsKKyAgICAgIHMgKz0gJ0VYUEVDVEVEICBGT1VORFxuJzsKKyAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbGVuZ3RoOyBpICs9IDEpIHsKKyAgICAgICAgcyArPSAnICAnICsgKGV4cGVjdGVkW2ld
ID8gZXhwZWN0ZWRbaV0gOiAnLScpICsKKyAgICAgICcgICAgICAgICAnICsgKGZvdW5kW2ldID8g
Zm91bmRbaV0gOiAnLScpOworICAgICAgICBpZiAoZm91bmRbaV0gIT0gZXhwZWN0ZWRbaV0pIHsK
KyAgICAgICAgICBzICs9ICcgICAgICBNSVNNQVRDSCc7CisgICAgICAgICAgZXJyb3JzICs9IDE7
CisgICAgICAgIH0KKyAgICAgICAgcyArPSAnXG4nOworICAgICAgfQorICAgICAgdmFyIHAgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sJywgJ3ByZScpWzBdOworICAgICAgaWYgKGVycm9ycykKKyAgICAgICAgcC5maXJzdENoaWxk
LmRhdGEgPSAnRkFJTDogJyArIGVycm9ycyArICcgZXJyb3JzIGZvdW5kOlxuXG4nICsgczsKKyAg
ICAgIGVsc2UKKyAgICAgICAgcC5maXJzdENoaWxkLmRhdGEgPSAnUEFTUyc7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdEZpbHRlcihuKSB7CisgICAgICBpZiAobi5ub2RlVHlwZSA9PSAzKSB7
CisgICAgICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQOworICAgICAgfSBlbHNlIGlm
IChuLm5vZGVOYW1lID09ICdib2R5JykgeworICAgICAgICByZXR1cm4gTm9kZUZpbHRlci5GSUxU
RVJfUkVKRUNUOyAvLyBzYW1lIGFzIF9TS0lQCisgICAgICB9CisgICAgICByZXR1cm4gMTsgLy8g
RklMVEVSX0FDQ0VQVAorICAgIH0KKworICBdXT48L3NjcmlwdD4KKyA8L2hlYWQ+CisgPGJvZHkg
b25sb2FkPSJkb1Rlc3QoKSI+CisgIDxwcmUgaWQ9InJlc3VsdCI+RkFJTDogU2NyaXB0IGZhaWxl
ZCB0byBydW4uPC9wcmU+CisgPC9ib2R5PgorIDwhLS0gc29tZSBtb3JlIG5vZGVzIHRvIHRlc3Qg
dGhpczogLS0+CisgPD9ib2R5IHRlc3Q/PgorIAorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkL1RPRE8gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC9UT0RP
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNlY2RmOThiMDhhYmY5ZWJjODViMDE4M2ExMzc3OWEzYjA2Nzc2ZGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC9UT0RPCkBAIC0wLDAgKzEgQEAKK0NoZWNrIHdo
YXQgaGFwcGVucyB3aGVuIGEgTm9kZUZpbHRlciB0dXJucyBhIG51bWJlciBub3QgaW4gdGhlIHJh
bmdlIDEuLjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5p
c2hlZC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlzaGVkL3czYy1pbXBvcnQubG9nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjRhNzg2NzA3MGVlOTZkZmI4ZTEzMDU5ZjJkMjM0NjljYTkwNjExYTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90
cmF2ZXJzYWwvdW5maW5pc2hlZC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI3IEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2
ZXJzYWwvdW5maW5pc2hlZC8wMDEueG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDAyLnhtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNhbC91bmZpbmlz
aGVkLzAwMy54bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDQueG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQvMDA1LnhtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3RyYXZlcnNh
bC91bmZpbmlzaGVkLzAwNi54bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMDcueG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3VuZmluaXNoZWQv
MDA4LnhtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L3RyYXZlcnNhbC91bmZpbmlzaGVkLzAwOS54bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvdW5maW5pc2hlZC8wMTAueG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vdHJhdmVyc2FsL3Vu
ZmluaXNoZWQvVE9ETwo=
</data>
<flag name="review"
          id="429740"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="429779"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413221</attachid>
            <date>2020-11-04 16:11:35 -0800</date>
            <delta_ts>2020-11-04 18:23:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218546-20201104161134.patch</filename>
            <type>text/plain</type>
            <size>18570</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTczNmU4YThiNTc4M2Yx
NzU3NDc2ODdlMjNjNDhhZTkzNjI5MjFiZS4uNWEzMGQ0NWNkNDFhZDI3Y2I3Yjc5MmI3YjgxMWZl
YWI5OGFiOTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTA0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgd2luZG93LmV2ZW50IG1heSBn
ZXQgc2V0IG9uIHdyb25nIGdsb2JhbCB3aGVuIGRpc3BhdGNoaW5nIGFuIGV2ZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1NDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIEFzIHBlciB0aGUgc3BlY2lmaWNh
dGlvbiBbMV0sIHdoaWxlIGludm9raW5nIGFuIGV2ZW50IGxpc3RlbmVyLCB3ZSBzaG91bGQgc2V0
IHRoZSBnbG9iYWwncworICAgICAgICAnY3VycmVudCBldmVudCcsIHN0YXRpbmcgdGhhdCBnbG9i
YWwgaXMgdGhlICdsaXN0ZW5lciBjYWxsYmFja+KAmXMgYXNzb2NpYXRlZCBSZWFsbeKAmXMgZ2xv
YmFsCisgICAgICAgIG9iamVjdCcuIEl0IGFsc28gc3RhdGVzIHdlIHNob3VsZCBkbyBzbyBvbmx5
IGlmIGdsb2JhbCBpcyBhIFdpbmRvdyBvYmplY3QuIFByZXZpb3VzbHksCisgICAgICAgIHdlIHdl
cmUgc2V0dGluZyB0aGUgJ2N1cnJlbnQgZXZlbnQnIG9uIHRoZSB3cm9uZyBnbG9iYWwuIFdlIHdl
cmUgdXNpbmcgdGhlIGdsb2JhbCBvZiB0aGUKKyAgICAgICAgb2JqZWN0IHRoZSBldmVudCBsaXN0
ZW5lciB3YXMgcmVnaXN0ZXJlZCBvbi4KKworICAgICAgICBbMV0gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNjb25jZXB0LWV2ZW50LWxpc3RlbmVyLWlubmVyLWludm9rZQorCisgICAgICAg
IFRlc3RzOiBmYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1cnNpdmUuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3IuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2ZS5odG1sCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzZXRD
dXJyZW50RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpjdXJyZW50
RXZlbnQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRMaXN0ZW5lcjo6
aGFuZGxlRXZlbnQpOgorCiAyMDIwLTExLTA0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjU3ODM5KTogTWlzY29tcHV0ZWQgc3R5bGUg
ZHVlIHRvIGNvbXB1dGVkICdyZW0nIHZhbHVlIGluIG1hdGNoZWQgZGVjbGFyYXRpb24gY2FjaGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApp
bmRleCAxNWUxNjQwZWNmNWZiM2NhNzllM2M1OWNlMzFiNGE1ZjZmMmYzZTM2Li40ZTc2OGI4MDc3
YTA0MTYyMjQ4NWRhZWNkNmVkNGEyYmNkYmM1MDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC0yNTcsMTYgKzI1Nyw2IEBAIHZv
aWQgSlNET01HbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKICAgICB0aGlzT2JqZWN0LT5tX2J1aWx0aW5JbnRlcm5hbEZ1bmN0aW9u
cy52aXNpdCh2aXNpdG9yKTsKIH0KIAotdm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6c2V0Q3VycmVu
dEV2ZW50KEV2ZW50KiBjdXJyZW50RXZlbnQpCi17Ci0gICAgbV9jdXJyZW50RXZlbnQgPSBjdXJy
ZW50RXZlbnQ7Ci19Ci0KLUV2ZW50KiBKU0RPTUdsb2JhbE9iamVjdDo6Y3VycmVudEV2ZW50KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9jdXJyZW50RXZlbnQ7Ci19Ci0KIHZvaWQgSlNET01HbG9i
YWxPYmplY3Q6OnByb21pc2VSZWplY3Rpb25UcmFja2VyKEpTR2xvYmFsT2JqZWN0KiBqc0dsb2Jh
bE9iamVjdCwgSlNQcm9taXNlKiBwcm9taXNlLCBKU1Byb21pc2VSZWplY3Rpb25PcGVyYXRpb24g
b3BlcmF0aW9uKQogewogICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL3dlYmFwcGFwaXMuaHRtbCN0aGUtaG9zdHByb21pc2VyZWplY3Rpb250cmFja2VyLWltcGxl
bWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuaAppbmRleCA3MDYxMzcwNDYwMzZjZTJmNDhhNmQ3M2EzODE5NDA3YjE4ZTI5ODU2Li4xZTRl
MGY2OWI1NGZkYmNhMzMwZWU5Zjk1N2EyYzU0NGEwMWNhZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTY5LDkgKzY5LDYgQEAgcHVi
bGljOgogICAgIC8vIE1ha2UgYmluZGluZyBjb2RlIGdlbmVyYXRpb24gZWFzaWVyLgogICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiB0aGlzOyB9CiAKLSAgICB2
b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCopOwotICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBj
b25zdDsKLQogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6
OlNsb3RWaXNpdG9yJik7CiAKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1cm4g
bV93b3JsZC5nZXQoKTsgfQpAQCAtMTE2LDggKzExMyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBh
ZGRCdWlsdGluR2xvYmFscyhKU0M6OlZNJik7CiAgICAgZnJpZW5kIHZvaWQgSlNCdWlsdGluSW50
ZXJuYWxGdW5jdGlvbnM6OmluaXRpYWxpemUoSlNET01HbG9iYWxPYmplY3QmKTsKIAotICAgIEV2
ZW50KiBtX2N1cnJlbnRFdmVudCB7IG51bGxwdHIgfTsKLQogICAgIEpTQnVpbHRpbkludGVybmFs
RnVuY3Rpb25zIG1fYnVpbHRpbkludGVybmFsRnVuY3Rpb25zOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggYjA5NDZlMjVhOWEw
ZGZhYmU5YjkyMzgwYmFiM2Q3OTRhZThhYmZlZC4uY2QxMDg3YjkzYjk2YzhiMzgxZTY5OWNiYzgx
MTkzYmIwMzE3OTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCkBAIC0yNTAsNiArMjUwLDE2IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjp3
aWxsUmVtb3ZlRnJvbVdpbmRvd1Byb3h5KCkKICAgICBzZXRDdXJyZW50RXZlbnQoMCk7CiB9CiAK
K3ZvaWQgSlNET01XaW5kb3dCYXNlOjpzZXRDdXJyZW50RXZlbnQoRXZlbnQqIGN1cnJlbnRFdmVu
dCkKK3sKKyAgICBtX2N1cnJlbnRFdmVudCA9IGN1cnJlbnRFdmVudDsKK30KKworRXZlbnQqIEpT
RE9NV2luZG93QmFzZTo6Y3VycmVudEV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jdXJy
ZW50RXZlbnQuZ2V0KCk7Cit9CisKIEpTV2luZG93UHJveHkmIEpTRE9NV2luZG93QmFzZTo6cHJv
eHkoKSBjb25zdAogewogICAgIHJldHVybiAqanNDYXN0PEpTV2luZG93UHJveHkqPigmSlNET01H
bG9iYWxPYmplY3Q6OnByb3h5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaAppbmRleCA0NTZmYzE0NjU1NmUxMjQyY2Y1MDY2YjcxMDJlYmFjNTlhODFh
YWRiLi41NDUzZTJhMmRlZjRhZTFkYTUyYjAwZWE0MDE5YTcxODAyMDk1OThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtODcsNiArODcsOSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBmaXJlRnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNG
b3JXaW5kb3coRE9NV2luZG93Kik7CiAKKyAgICB2b2lkIHNldEN1cnJlbnRFdmVudChFdmVudCop
OworICAgIEV2ZW50KiBjdXJyZW50RXZlbnQoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEpT
RE9NV2luZG93QmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8RE9NV2luZG93
PiYmLCBKU1dpbmRvd1Byb3h5Kik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwg
SlNXaW5kb3dQcm94eSopOwpAQCAtMTA4LDYgKzExMSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIFJlZlB0cjxET01XaW5kb3c+IG1fd3JhcHBlZDsKKyAgICBSZWZQdHI8RXZlbnQ+IG1fY3Vy
cmVudEV2ZW50OwogfTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIERPTVdpbmRvdyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuY3BwCmluZGV4IGRjYTg0YTVhM2RiYzViMDM4YjE3M2ViM2FhMDAy
YzU0ZDQxZTFiM2UuLjcyYTA2MjdlZGM1OGI1MWNkZTBiNWM5YTEzYmJkMWZiYjNiYTM1YzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51
bWJlcnMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCisjaW5jbHVkZSAiSlNE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0V2ZW50LmgiCiAjaW5jbHVkZSAiSlNFeGVjU3RhdGUu
aCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIgpAQCAtNzksOCArODAs
MTIgQEAgdm9pZCBKU0Vycm9ySGFuZGxlcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKICAgICBpZiAoY2FsbERhdGEudHlwZSAhPSBD
YWxsRGF0YTo6VHlwZTo6Tm9uZSkgewogICAgICAgICBSZWY8SlNFcnJvckhhbmRsZXI+IHByb3Rl
Y3RlZFRoaXMoKnRoaXMpOwogCi0gICAgICAgIEV2ZW50KiBzYXZlZEV2ZW50ID0gZ2xvYmFsT2Jq
ZWN0LT5jdXJyZW50RXZlbnQoKTsKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZl
bnQoJmV2ZW50KTsKKyAgICAgICAgUmVmUHRyPEV2ZW50PiBzYXZlZEV2ZW50OworICAgICAgICBh
dXRvKiBqc0Z1bmN0aW9uV2luZG93ID0ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KHZtLCBq
c0Z1bmN0aW9uLT5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGlmIChqc0Z1bmN0aW9uV2luZG93
KSB7CisgICAgICAgICAgICBzYXZlZEV2ZW50ID0ganNGdW5jdGlvbldpbmRvdy0+Y3VycmVudEV2
ZW50KCk7CisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50RXZlbnQoJmV2
ZW50KTsKKyAgICAgICAgfQogCiAgICAgICAgIGF1dG8mIGVycm9yRXZlbnQgPSBkb3duY2FzdDxF
cnJvckV2ZW50PihldmVudCk7CiAKQEAgLTEwMiw3ICsxMDcsOCBAQCB2b2lkIEpTRXJyb3JIYW5k
bGVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LAogCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0
aW9uKCZzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKIAotICAgICAgICBnbG9iYWxPYmplY3QtPnNl
dEN1cnJlbnRFdmVudChzYXZlZEV2ZW50KTsKKyAgICAgICAgaWYgKGpzRnVuY3Rpb25XaW5kb3cp
CisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50RXZlbnQoc2F2ZWRFdmVu
dC5nZXQoKSk7CiAKICAgICAgICAgaWYgKGV4Y2VwdGlvbikKICAgICAgICAgICAgIHJlcG9ydEV4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIGV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcAppbmRleCA5M2E5MmYyOTliYjM1OTgwZjIzMDc3
YzE3N2E2ODBhNWU0OTEyOTg5Li5iY2FlNTc5ZWY3NDY4YzM3NTAzYzY0MmI3MTYyM2FiZjEzNDI0
MTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVu
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5j
cHAKQEAgLTE2MywxMiArMTYzLDE2IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgYXJn
cy5hcHBlbmQodG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICZldmVudCkp
OwogICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxvd2VkKCkpOwogCi0gICAgRXZlbnQqIHNhdmVk
RXZlbnQgPSBnbG9iYWxPYmplY3QtPmN1cnJlbnRFdmVudCgpOwotCi0gICAgLy8gd2luZG93LmV2
ZW50IHNob3VsZCBub3QgYmUgc2V0IHdoZW4gdGhlIHRhcmdldCBpcyBpbnNpZGUgYSBzaGFkb3cg
dHJlZSwgYXMgcGVyIHRoZSBET00gc3BlY2lmaWNhdGlvbi4KLSAgICBib29sIGlzVGFyZ2V0SW5z
aWRlU2hhZG93VHJlZSA9IGlzPE5vZGU+KGV2ZW50LmN1cnJlbnRUYXJnZXQoKSkgJiYgZG93bmNh
c3Q8Tm9kZT4oKmV2ZW50LmN1cnJlbnRUYXJnZXQoKSkuaXNJblNoYWRvd1RyZWUoKTsKLSAgICBp
ZiAoIWlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSkKLSAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRD
dXJyZW50RXZlbnQoJmV2ZW50KTsKKyAgICBSZWZQdHI8RXZlbnQ+IHNhdmVkRXZlbnQ7CisgICAg
YXV0byoganNGdW5jdGlvbldpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cqPih2bSwg
anNGdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCkpOworICAgIGlmIChqc0Z1bmN0aW9uV2luZG93KSB7
CisgICAgICAgIHNhdmVkRXZlbnQgPSBqc0Z1bmN0aW9uV2luZG93LT5jdXJyZW50RXZlbnQoKTsK
KworICAgICAgICAvLyB3aW5kb3cuZXZlbnQgc2hvdWxkIG5vdCBiZSBzZXQgd2hlbiB0aGUgdGFy
Z2V0IGlzIGluc2lkZSBhIHNoYWRvdyB0cmVlLCBhcyBwZXIgdGhlIERPTSBzcGVjaWZpY2F0aW9u
LgorICAgICAgICBib29sIGlzVGFyZ2V0SW5zaWRlU2hhZG93VHJlZSA9IGlzPE5vZGU+KGV2ZW50
LmN1cnJlbnRUYXJnZXQoKSkgJiYgZG93bmNhc3Q8Tm9kZT4oKmV2ZW50LmN1cnJlbnRUYXJnZXQo
KSkuaXNJblNoYWRvd1RyZWUoKTsKKyAgICAgICAgaWYgKCFpc1RhcmdldEluc2lkZVNoYWRvd1Ry
ZWUpCisgICAgICAgICAgICBqc0Z1bmN0aW9uV2luZG93LT5zZXRDdXJyZW50RXZlbnQoJmV2ZW50
KTsKKyAgICB9CiAKICAgICBWTUVudHJ5U2NvcGUgZW50cnlTY29wZSh2bSwgdm0uZW50cnlTY29w
ZSA/IHZtLmVudHJ5U2NvcGUtPmdsb2JhbE9iamVjdCgpIDogZ2xvYmFsT2JqZWN0KTsKIApAQCAt
MTgwLDcgKzE4NCw4IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENhbGxGdW5jdGlvbigmc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CiAKLSAgICBnbG9iYWxPYmplY3QtPnNldEN1cnJlbnRFdmVudChzYXZlZEV2ZW50KTsKKyAgICBp
ZiAoanNGdW5jdGlvbldpbmRvdykKKyAgICAgICAganNGdW5jdGlvbldpbmRvdy0+c2V0Q3VycmVu
dEV2ZW50KHNhdmVkRXZlbnQuZ2V0KCkpOwogCiAgICAgYXV0byBoYW5kbGVFeGNlcHRpb25JZk5l
ZWRlZCA9IFsmXSAoKSAtPiBib29sIHsKICAgICAgICAgaWYgKGlzPFdvcmtlckdsb2JhbFNjb3Bl
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYwMWQ0OWJjOTNjZjJkNGE5NjU5
MWQ0YjIyMmFlOWU1YjI5NzE4NGQuLjdiNTIyODA3YzFjOWIwOTNkMGRlODliZTcwYzFkZmI0NmUy
YzRlMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0xMS0wNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIHdpbmRvdy5ldmVudCBtYXkgZ2V0IHNldCBvbiB3
cm9uZyBnbG9iYWwgd2hlbiBkaXNwYXRjaGluZyBhbiBldmVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTQ2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZy4KKworICAgICAgICBFeHRlbmQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisK
KyAgICAgICAgKiBmYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLXJlY3Vy
c2l2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3dpbmRvdy1l
dmVudC1vbmVycm9yLXJlY3Vyc2l2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctZXZlbnQtb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy93aW5kb3ctZXZlbnQtcmVjdXJzaXZlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTA0ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBBZGQgc3VwcG9ydCBmb3IgcGlja2VyIFVJIG9uIGlPUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggMzZiMjE0NTRmNGI1ZDhmNTg5ZTI5NTQ4MDY5Njc2MmUxOTBiNmUw
Ny4uNzY4MTRmODRjNzA3MTg2Yjc0MTAxMmYxYzBiMzY2ZDMzNDdkMGE5NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMDQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICB3aW5kb3cuZXZlbnQgbWF5IGdldCBz
ZXQgb24gd3JvbmcgZ2xvYmFsIHdoZW4gZGlzcGF0Y2hpbmcgYW4gZXZlbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCB0aGF0
IGlzIG5vdyBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVu
dHMvZXZlbnQtZ2xvYmFsLWV4dHJhLndpbmRvdy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMTEtMDQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbSB0ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDU3MDA4NmNlNDI2YWUxZmM5NTI5NDgwZGU2ZjgzNDg5OTIxZDU2ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9y
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyB0aGF0IHdpbmRvdy5ldmVudCBp
cyBzZXQgb24gdGhlIHJpZ2h0IGdsb2JhbCB3aGVuIGFuIGVycm9yIGV2ZW50IGlzIGZpcmVkLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvdGhlcldpbmRvdy5ldmVudCBp
cyB1bmRlZmluZWQuCitQQVNTIHdpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitEaXNwYXRjaGlu
ZyBlcnJvciBldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNT
IHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1
bmRlZmluZWQuCitQQVNTIHdpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVycm9yLXJlY3Vy
c2l2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNmYjRiZWQ3OGI3NDk4ZmEzMTE3M2Q2MzRj
NzA5ZTFmMDEwMzU0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3dpbmRvdy1ldmVudC1vbmVycm9yLXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MSBAQAorVGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRoZSByaWdodCBnbG9iYWwg
d2hlbiBhbiBlcnJvciBldmVudCBpcyBmaXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgb3RoZXJXaW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorUEFTUyB3aW5kb3cu
ZXZlbnQgaXMgdW5kZWZpbmVkLgorRGlzcGF0Y2hpbmcgZXJyb3IgZXZlbnQKK1BBU1Mgb3RoZXJX
aW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorUEFTUyBwYXNzZWRFdmVudCBpcyB3aW5kb3cuZXZl
bnQKK0Rpc3BhdGNoaW5nIHJlY3Vyc2l2ZSBlcnJvciBldmVudAorUEFTUyBvdGhlcldpbmRvdy5l
dmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAorUEFT
UyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdp
bmRvdy5ldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHdp
bmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
d2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy93aW5kb3ctZXZlbnQtb25lcnJvci1yZWN1cnNpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2E5
MDg3YTFjMjk1NjkzOWJmOWU4ZWRhNjEyYWI2ZjBlNTdkNmM2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LW9uZXJyb3ItcmVjdXJzaXZlLmh0
bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRoZSByaWdo
dCBnbG9iYWwgd2hlbiBhbiBlcnJvciBldmVudCBpcyBmaXJlZC4iKTsKKworbGV0IGRpc3BhdGNo
ZWRSZWN1cnNpdmVFdmVudCA9IGZhbHNlOworCitjb25zdCBvdGhlcldpbmRvdyA9IGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLmNvbnRl
bnRXaW5kb3c7CitvdGhlcldpbmRvdy5vbmVycm9yID0gKGUpID0+IHsKKyAgICBwYXNzZWRFdmVu
dCA9IGU7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoIm90aGVyV2luZG93LmV2ZW50Iik7CisgICAg
c2hvdWxkQmUoInBhc3NlZEV2ZW50IiwgIndpbmRvdy5ldmVudCIpOworCisgICAgaWYgKCFkaXNw
YXRjaGVkUmVjdXJzaXZlRXZlbnQpIHsKKyAgICAgICAgZGlzcGF0Y2hlZFJlY3Vyc2l2ZUV2ZW50
ID0gdHJ1ZTsKKyAgICAgICAgZGVidWcoIkRpc3BhdGNoaW5nIHJlY3Vyc2l2ZSBlcnJvciBldmVu
dCIpOworICAgICAgICBvdGhlcldpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZXJyb3Ii
KSk7CisKKyAgICAgICAgcGFzc2VkRXZlbnQgPSBlOworICAgICAgICBzaG91bGRCZVVuZGVmaW5l
ZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKKyAgICAgICAgc2hvdWxkQmUoInBhc3NlZEV2ZW50Iiwg
IndpbmRvdy5ldmVudCIpOworICAgIH0KK30KK3Nob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRv
dy5ldmVudCIpOworc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy5ldmVudCIpOworZGVidWcoIkRp
c3BhdGNoaW5nIGVycm9yIGV2ZW50Iik7CitvdGhlcldpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBF
dmVudCgiZXJyb3IiKSk7CitzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsK
K3Nob3VsZEJlVW5kZWZpbmVkKCJ3aW5kb3cuZXZlbnQiKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50
LW9uZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1ldmVudC1vbmVy
cm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU1MWMzZjc3NDRjYTQ3MGI4MGFlYmM5MGRiNjQ0Yjk5Nzc5
Yjk1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3dpbmRvdy1l
dmVudC1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMg
c2V0IG9uIHRoZSByaWdodCBnbG9iYWwgd2hlbiBhbiBlcnJvciBldmVudCBpcyBmaXJlZC4iKTsK
KworY29uc3Qgb3RoZXJXaW5kb3cgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKS5jb250ZW50V2luZG93Oworb3RoZXJXaW5kb3cub25l
cnJvciA9IChlKSA9PiB7CisgICAgcGFzc2VkRXZlbnQgPSBlOworICAgIHNob3VsZEJlVW5kZWZp
bmVkKCJvdGhlcldpbmRvdy5ldmVudCIpOworICAgIHNob3VsZEJlKCJwYXNzZWRFdmVudCIsICJ3
aW5kb3cuZXZlbnQiKTsKK30KK3Nob3VsZEJlVW5kZWZpbmVkKCJvdGhlcldpbmRvdy5ldmVudCIp
Oworc2hvdWxkQmVVbmRlZmluZWQoIndpbmRvdy5ldmVudCIpOworZGVidWcoIkRpc3BhdGNoaW5n
IGVycm9yIGV2ZW50Iik7CitvdGhlcldpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZXJy
b3IiKSk7CitzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKK3Nob3VsZEJl
VW5kZWZpbmVkKCJ3aW5kb3cuZXZlbnQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5kb3ctZXZlbnQtcmVj
dXJzaXZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjI2ZDdjYzc5NmU0Y2QxYzE3MWFiN2Y3
ZmM5YWI0ZDMxNzU1YjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvd2luZG93LWV2ZW50LXJlY3Vyc2l2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAor
VGVzdHMgdGhhdCB3aW5kb3cuZXZlbnQgaXMgc2V0IG9uIHRoZSByaWdodCBnbG9iYWwgd2hlbiBh
biBldmVudCBpcyBmaXJlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
b3RoZXJXaW5kb3cuZXZlbnQgaXMgdW5kZWZpbmVkLgorUEFTUyB3aW5kb3cuZXZlbnQgaXMgdW5k
ZWZpbmVkLgorRGlzcGF0Y2hpbmcgZXJyb3IgZXZlbnQKK1BBU1Mgb3RoZXJXaW5kb3cuZXZlbnQg
aXMgdW5kZWZpbmVkLgorUEFTUyBwYXNzZWRFdmVudCBpcyB3aW5kb3cuZXZlbnQKK0Rpc3BhdGNo
aW5nIHJlY3Vyc2l2ZSBlcnJvciBldmVudAorUEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRl
ZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAorUEFTUyBvdGhlcldpbmRv
dy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHBhc3NlZEV2ZW50IGlzIHdpbmRvdy5ldmVudAor
UEFTUyBvdGhlcldpbmRvdy5ldmVudCBpcyB1bmRlZmluZWQuCitQQVNTIHdpbmRvdy5ldmVudCBp
cyB1bmRlZmluZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50
LXJlY3Vyc2l2ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvd2luZG93LWV2ZW50LXJl
Y3Vyc2l2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzODY3YTlhYmJkMjkzYzM5YWE3ZGZkZGU3NmJjNjU5
OWE1MzZkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy93aW5k
b3ctZXZlbnQtcmVjdXJzaXZlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB3aW5kb3cuZXZl
bnQgaXMgc2V0IG9uIHRoZSByaWdodCBnbG9iYWwgd2hlbiBhbiBldmVudCBpcyBmaXJlZC4iKTsK
KworbGV0IGRpc3BhdGNoZWRSZWN1cnNpdmVFdmVudCA9IGZhbHNlOworCitjb25zdCBvdGhlcldp
bmRvdyA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIikpLmNvbnRlbnRXaW5kb3c7CitvdGhlcldpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJm
b28iLCAoZSkgPT4geworICAgIHBhc3NlZEV2ZW50ID0gZTsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKKyAgICBzaG91bGRCZSgicGFzc2VkRXZlbnQiLCAid2lu
ZG93LmV2ZW50Iik7CisKKyAgICBpZiAoIWRpc3BhdGNoZWRSZWN1cnNpdmVFdmVudCkgeworICAg
ICAgICBkaXNwYXRjaGVkUmVjdXJzaXZlRXZlbnQgPSB0cnVlOworICAgICAgICBkZWJ1ZygiRGlz
cGF0Y2hpbmcgcmVjdXJzaXZlIGVycm9yIGV2ZW50Iik7CisgICAgICAgIG90aGVyV2luZG93LmRp
c3BhdGNoRXZlbnQobmV3IEV2ZW50KCJmb28iKSk7CisKKyAgICAgICAgcGFzc2VkRXZlbnQgPSBl
OworICAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKKyAgICAg
ICAgc2hvdWxkQmUoInBhc3NlZEV2ZW50IiwgIndpbmRvdy5ldmVudCIpOworICAgIH0KK30pOwor
c2hvdWxkQmVVbmRlZmluZWQoIm90aGVyV2luZG93LmV2ZW50Iik7CitzaG91bGRCZVVuZGVmaW5l
ZCgid2luZG93LmV2ZW50Iik7CitkZWJ1ZygiRGlzcGF0Y2hpbmcgZXJyb3IgZXZlbnQiKTsKK290
aGVyV2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJmb28iKSk7CitzaG91bGRCZVVuZGVm
aW5lZCgib3RoZXJXaW5kb3cuZXZlbnQiKTsKK3Nob3VsZEJlVW5kZWZpbmVkKCJ3aW5kb3cuZXZl
bnQiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2V2ZW50LWdsb2Jh
bC1leHRyYS53aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vZXZlbnRzL2V2ZW50LWdsb2JhbC1leHRyYS53aW5kb3ctZXhw
ZWN0ZWQudHh0CmluZGV4IGViOTU3NDUwNzI5YTY0MTE0ZmM5MjBjNWY1MGIxNzg4Y2Q0Mjc4NDYu
LmIzYTQ1YjczOTM3YWQ4M2Q1ZGQyMDc1ZTg2OTlmOThlOGE3ODg4NDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2V2ZW50cy9ldmVu
dC1nbG9iYWwtZXh0cmEud2luZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ldmVudHMvZXZlbnQtZ2xvYmFsLWV4dHJh
LndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTEsOCArMSw4IEBACiAKLUZBSUwgd2luZG93LmV2ZW50
IGZvciBjb25zdHJ1Y3RvcnMgZnJvbSBhbm90aGVyIGdsb2JhbDogRXZlbnRUYXJnZXQgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkg
b2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIKLUZBSUwgd2luZG93LmV2ZW50IGZvciBjb25zdHJ1Y3Rv
cnMgZnJvbSBhbm90aGVyIGdsb2JhbDogWE1MSHR0cFJlcXVlc3QgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2Jq
ZWN0IEV2ZW50XSIKK1BBU1Mgd2luZG93LmV2ZW50IGZvciBjb25zdHJ1Y3RvcnMgZnJvbSBhbm90
aGVyIGdsb2JhbDogRXZlbnRUYXJnZXQKK1BBU1Mgd2luZG93LmV2ZW50IGZvciBjb25zdHJ1Y3Rv
cnMgZnJvbSBhbm90aGVyIGdsb2JhbDogWE1MSHR0cFJlcXVlc3QKIFBBU1Mgd2luZG93LmV2ZW50
IGFuZCBlbGVtZW50IGZyb20gYW5vdGhlciBkb2N1bWVudAotRkFJTCB3aW5kb3cuZXZlbnQgYW5k
IG1vdmluZyBhbiBlbGVtZW50IHBvc3QtZGlzcGF0Y2ggYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
KG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IEV2ZW50XSIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRl
ZmluZWQKK1BBU1Mgd2luZG93LmV2ZW50IGFuZCBtb3ZpbmcgYW4gZWxlbWVudCBwb3N0LWRpc3Bh
dGNoCiBGQUlMIHdpbmRvdy5ldmVudCBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IG5vZGVzIG1v
dmluZyBwb3N0LWRpc3BhdGNoIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICh1bmRlZmluZWQpIHVu
ZGVmaW5lZCBidXQgZ290IChvYmplY3QpIG9iamVjdCAiW29iamVjdCBFdmVudF0iCi1GQUlMIExp
c3RlbmVyIGZyb20gYSBkaWZmZXJlbnQgZ2xvYmFsIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChv
YmplY3QpIG9iamVjdCAiW29iamVjdCBFdmVudF0iIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZp
bmVkCitQQVNTIExpc3RlbmVyIGZyb20gYSBkaWZmZXJlbnQgZ2xvYmFsCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>