<?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>78541</bug_id>
          
          <creation_ts>2012-02-13 14:53:54 -0800</creation_ts>
          <short_desc>[Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets</short_desc>
          <delta_ts>2012-02-21 08:51:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>martijn</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>toyoshim</cc>
    
    <cc>ukai</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555643</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-13 14:53:54 -0800</bug_when>
    <thetext>With &quot;hybi&quot; protocol now published as RFC, it&apos;s hopefully reasonably stable.

&lt;rdar://problem/10036695&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555711</commentid>
    <comment_count>1</comment_count>
      <attachid>126855</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-13 16:07:08 -0800</bug_when>
    <thetext>Created attachment 126855
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555723</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 16:14:38 -0800</bug_when>
    <thetext>Attachment 126855 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/http...&quot; exit_code: 1

Tools/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 72 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555731</commentid>
    <comment_count>3</comment_count>
      <attachid>126859</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-13 16:19:22 -0800</bug_when>
    <thetext>Created attachment 126859
with more ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555790</commentid>
    <comment_count>4</comment_count>
      <attachid>126859</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-13 17:15:50 -0800</bug_when>
    <thetext>Comment on attachment 126859
with more ChangeLog

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

&gt; LayoutTests/http/tests/websocket/tests/hixie76/alert-in-event-handler.html:14
&gt;  window.jsTestIsAsync = true;
&gt; +if (window.layoutTestController)
&gt; +    layoutTestController.overridePreference(&quot;WebKitHixie76WebSocketProtocolEnabled&quot;, 1);

IMO, we had better skip the hixie76 tests on platforms which enabled the RFC protocol in order to reduce testing time.
Anyway, this change is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555798</commentid>
    <comment_count>5</comment_count>
      <attachid>126859</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-13 17:31:14 -0800</bug_when>
    <thetext>Comment on attachment 126859
with more ChangeLog

Skipping tests would mean that we could easily break platforms that use a different version. Anyway, let&apos;s hope that we can bring all ports to use this version soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556117</commentid>
    <comment_count>6</comment_count>
      <attachid>126859</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 01:51:01 -0800</bug_when>
    <thetext>Comment on attachment 126859
with more ChangeLog

Clearing flags on attachment: 126859

Committed r107689: &lt;http://trac.webkit.org/changeset/107689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556118</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-14 01:51:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556217</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-14 04:36:32 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 126859 [details])
&gt; Clearing flags on attachment: 126859
&gt; 
&gt; Committed r107689: &lt;http://trac.webkit.org/changeset/107689&gt;

This change made a test fail on Qt-WK2:
 
--- /ramdisk/qt-linux-32-release-webkit2/build/layout-test-results/http/tests/websocket/tests/hybi/bad-sub-protocol-non-ascii-expected.txt 
+++ /ramdisk/qt-linux-32-release-webkit2/build/layout-test-results/http/tests/websocket/tests/hybi/bad-sub-protocol-non-ascii-actual.txt 
@@ -12,9 +12,9 @@
 PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
 PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;Â&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
 PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;ă&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
-PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;?&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;ďżż&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
 PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;ďťż&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
-PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;?&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
+PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;ďżž&quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
 PASS new WebSocket(&quot;ws://127.0.0.1:8880/simple&quot;, &quot;đ &quot;) threw exception Error: SYNTAX_ERR: DOM Exception 12.
 PASS successfullyParsed is true
 
Have you got any idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556388</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-14 10:26:49 -0800</bug_when>
    <thetext>Qt-WK2 hasn&apos;t been running this test before this change.

Qt already has custom results here, but only because an invalid UTF-8 sequence was printed as &quot;?&quot;, not U+FFFD. This diff shows garbage instead.

I&apos;m not seeing this on Mac, and given that this is a difference between WK1 and WK2 on Qt, my best theory is that this is an issue in WebKitTestRunner. Seems worth investigating in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560923</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-21 08:51:32 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Qt-WK2 hasn&apos;t been running this test before this change.
&gt; 
&gt; Qt already has custom results here, but only because an invalid UTF-8 sequence was printed as &quot;?&quot;, not U+FFFD. This diff shows garbage instead.
&gt; 
&gt; I&apos;m not seeing this on Mac, and given that this is a difference between WK1 and WK2 on Qt, my best theory is that this is an issue in WebKitTestRunner. Seems worth investigating in a separate bug.

I filed a new bug report on in https://bugs.webkit.org/show_bug.cgi?id=79118</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126855</attachid>
            <date>2012-02-13 16:07:08 -0800</date>
            <delta_ts>2012-02-13 16:19:22 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>WebSocket.txt</filename>
            <type>text/plain</type>
            <size>53482</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzYxNikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTEzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdW1dpbl1bV0syXSBT
d2l0Y2ggdG8gUkZDIDY0NTUgcHJvdG9jb2wgZm9yIFdlYlNvY2tldHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTQxCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8xMDAzNjY5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6IChXZWJLaXQpOiBDaGFu
Z2VkIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHByZWZlcmVuY2UuCisKIDIwMTItMDItMTMgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBNYWMgcGxh
dGZvcm0gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBhc3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRm
b3JtIFN0cmF0ZWdpZXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmgJKHJldmlzaW9uIDEwNzQxMSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDcgKzkwLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAgICAgbWFjcm8oQWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THMsIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkg
XAogICAgIG1hY3JvKEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcywgYWxsb3dGaWxlQWNjZXNz
RnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKEFWRm91bmRhdGlv
bkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9XRUJL
SVRfQVZGT1VOREFUSU9OX0VOQUJMRUQpIFwKLSAgICBtYWNybyhIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkLCBoaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkLCBCb29sLCBib29s
LCB0cnVlKSBcCisgICAgbWFjcm8oSGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCwgaGl4
aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBt
YWNybyhNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSwgbWVkaWFQbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oTWVkaWFQbGF5
YmFja0FsbG93c0lubGluZSwgbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSwgQm9vbCwgYm9vbCwg
dHJ1ZSkgXAogICAgIG1hY3JvKEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBpbnNwZWN0b3JTdGFy
dHNBdHRhY2hlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXApJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMTA3NjE2KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV2luXVtXSzJdIFN3aXRjaCB0byBSRkMgNjQ1
NSBwcm90b2NvbCBmb3IgV2ViU29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMDM2Njk1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbTogKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOiBD
aGFuZ2VkIGRlZmF1bHQgdmFsdWUgb2YgdGhlCisgICAgICAgIHByZWZlcmVuY2UuCisKIDIwMTIt
MDItMTMgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICAgUmVm
YWN0b3IgTWFjIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQYXN0ZWJvYXJkIGNsYXNz
IHRvIHVzZSBQbGF0Zm9ybSBTdHJhdGVnaWVzLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAxMDc0MTEpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODQs
NyArMzg0LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoQm9vbDpZRVNdLCAgV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRVc2VQcmVI
VE1MNVBhcnNlclF1aXJrc0tleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllF
U10sICBXZWJLaXRBVkZvdW5kYXRpb25FbmFibGVkS2V5LAotICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRL
ZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICBXZWJLaXRIaXhpZTc2
V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6Tk9dLCAgIFdlYktpdE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlUHJlZmVy
ZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRN
ZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRXZWJBdWRpb0VuYWJsZWRQcmVmZXJlbmNlS2V5
LApJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3NjE2KQorKysgU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDIt
MTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11b
V2luXVtXSzJdIFN3aXRjaCB0byBSRkMgNjQ1NSBwcm90b2NvbCBmb3IgV2ViU29ja2V0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NDEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwMDM2Njk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiAoV2ViUHJlZmVyZW5j
ZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOiBDaGFuZ2VkIGRlZmF1bHQgdmFsdWUgb2YK
KyAgICAgICAgdGhlIHByZWZlcmVuY2UKKwogMjAxMi0wMi0xMiAgQW5keSBFc3RlcyAgPGFlc3Rl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbmRvd3NdIEFkZCBBUEkgdG8gZW5hYmxlIGludmVy
dGVkIGNvbG9yIGRyYXdpbmcgb24gYSBXZWJWaWV3CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAxMDc0MTEpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIFdl
YlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNlCiAKICAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJv
b2xlYW5UcnVlKTsKLSAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2Vi
S2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuVHJ1ZSk7CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVh
bkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJL
aXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZVByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuRmFsc2UpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJL
aXRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVl
KTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwNzYxNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAyLTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09Q
UyEpCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldERlZmF1
bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVl
cyk6CisKIDIwMTItMDItMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBOUldUJ3MgSFRUUCBzZXJ2ZXJzIHNob3VsZCBzdXBwb3J0IGFkZGl0aW9uYWwgZGlyZWN0
b3JpZXMgZm9yIHJlc291cmNlcwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQkocmV2aXNpb24gMTA3NDExKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NTAsNyArNjUwLDcgQEAg
c3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbAogICAgIFtwcmVmZXJlbmNl
cyBzZXRXZWJHTEVuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRVc2VQcmVIVE1MNVBh
cnNlclF1aXJrczpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkOk5PXTsKLSAgICBbcHJlZmVyZW5jZXMgc2V0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZDpZRVNdOworICAgIFtwcmVmZXJlbmNlcyBzZXRIaXhpZTc2V2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0TW9ja1Njcm9sbGJhcnNF
bmFibGVkOllFU107CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAxMDc0MTEpCisrKyBU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04ODAsNyArODgwLDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVu
dFZhbAogICAgICAgICBwcmVmc1ByaXZhdGUtPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoRkFM
U0UpOwogICAgICAgICBwcmVmc1ByaXZhdGUtPnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZChUUlVFKTsKICAgICAgICAgcHJlZnNQcml2YXRlLT5zZXRMb2Fkc1NpdGVJY29uc0ln
bm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShGQUxTRSk7Ci0gICAgICAgIHByZWZzUHJpdmF0
ZS0+c2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZChUUlVFKTsKKyAgICAgICAgcHJl
ZnNQcml2YXRlLT5zZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKEZBTFNFKTsKICAg
ICB9CiAgICAgc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxzZSk7CiAKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEwNzYxNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDc1IEBACisyMDEyLTAyLTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdW1dpbl1bV0syXSBTd2l0Y2ggdG8gUkZDIDY0NTUgcHJvdG9j
b2wgZm9yIFdlYlNvY2tldHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NTQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY5NT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYWxlcnQtaW4tZXZlbnQtaGFuZGxlci5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLWhhbmRzaGFrZS1j
cmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
YmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9iYWQtc3ViLXByb3RvY29sLWVtcHR5Lmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9iYWQtc3ViLXByb3Rv
Y29sLW5vbi1hc2NpaS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2NsaWVudC1jbG9zZS5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2UtYmVmb3JlLW9wZW4u
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3Nl
LWV2ZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9jbG9zZS1vbi1uYXZpZ2F0ZS1uZXctbG9jYXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLXVubG9hZC1hbmQtZm9yY2UtZ2Mu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3Nl
LW9uLXVubG9hZC1yZWZlcmVuY2UtaW4tcGFyZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1vbi11bmxvYWQuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLXVucmVmLXdlYnNvY2tl
dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY3Jv
c3Mtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9lcnJvci1kZXRlY3QuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1sb25nZXItdGhhbi1idWZmZXIuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1vdmVy
Zmxvdy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
ZnJhbWUtbGVuZ3RoLXNraXAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1jaGFsbGVuZ2UtcmFuZG9tbmVzcy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtl
LWVycm9yLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9oYW5kc2hha2UtZmFpbC1ieS1jcm9zcy1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW1heGxlbmd0aC5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNo
YWtlLWZhaWwtYnktbm8tY29ubmVjdGlvbi1oZWFkZXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2Ut
ZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVkLW51bGwuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFr
ZS1mYWlsLWJ5LXN1Yi1wcm90b2NvbC1taXNtYXRjaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvbG9uZy1pbnZhbGlkLWhlYWRlci5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvbXVsdGlwbGUtY29ubmVj
dGlvbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L251bGwtY2hhcmFjdGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9yZWxvYWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLWVtcHR5Lmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLW9iamVj
dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2Vu
ZC10aHJvdy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvc2VuZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvc2VydmVyLWNsb3NlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9zaW1wbGUtc3RyZXNzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3NwbGl0LWJpbmFyeS1mcmFtZS1oZWFkZXIuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC13
aXRoLXNwYWNlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9zdWItcHJvdG9jb2wuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmljb2RlLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtYXR0cmlidXRlLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtbm8tdHJhaWxpbmct
c2xhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L3VybC1wYXJzaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni91cmwtd2l0aC1jcmVkZW50aWFsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1lbXB0eS1xdWVyeS5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXdpdGgtcXVlcnktZm9y
LW5vLXF1ZXJ5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni91cmwtd2l0aC1xdWVyeS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvd2Vic29ja2V0LWV2ZW50LXRhcmdldC5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZp
dHkuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dl
YnNvY2tldC1wcm90b2NvbC1pZ25vcmVkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLW9ubWVzc2FnZS1jcmFzaC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9j
bG9zZS1pbi1zaGFyZWQtd29ya2VyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLXdvcmtlci5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9zaGFyZWQtd29ya2Vy
LXNpbXBsZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvd29ya2Vycy93b3JrZXItaGFuZHNoYWtlLWNoYWxsZW5nZS1yYW5kb21uZXNzLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL3dvcmtl
ci1zaW1wbGUuaHRtbDoKKyAgICAgICAgQWRkZWQgb3ZlcnJpZGVQcmVmZXJlbmNlIGNhbGxzLCBz
byB0aGF0IHRoZSB0ZXN0cyBkb24ndCBkZXBlbmQgb24gcGxhdGZvcm0gb3IgRFJUIGRlZmF1bHQu
CisKIDIwMTItMDItMTMgIEFtaSBGaXNjaG1hbiAgPGZpc2NobWFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiAgUmViYXNlbGluaW5nIEdQ
VSByZXN1bHRzLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9hbGVydC1pbi1ldmVudC1oYW5kbGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9hbGVydC1pbi1ldmVudC1o
YW5kbGVyLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYWxlcnQtaW4tZXZlbnQtaGFuZGxlci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIGV2ZW50
IGhhbmRsZXIgY2FsbGVkIHNlcmlhbGx5LiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29s
RW5hYmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4
ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQyIik7CiAKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLWhhbmRzaGFrZS1jcmFzaC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvYmFkLWhhbmRzaGFrZS1jcmFzaC5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2JhZC1oYW5kc2hh
a2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNiArMTEsOSBAQCBkZXNjcmlwdGlv
bigiTWFrZSBzdXJlIFdlYlNvY2tldCBkb2Vzbid0CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90
b2NvbEVuYWJsZWQiLCAxKTsKKwogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4w
LjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9iYWQtaGFuZHNoYWtlLWNyYXNoIik7CiB3
cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7CiAgICAgZGVidWcoIldlYlNvY2tldCBpcyBvcGVuIik7
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Jh
ZC1zdWItcHJvdG9jb2wtY29udHJvbC1jaGFycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1j
b250cm9sLWNoYXJzLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNo
YXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw5IEBACiA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CiBkZXNjcmlwdGlvbigiVGVzdCBXZWJTb2NrZXQgYmFkIHN1Yi1wcm90
b2NvbCBuYW1lcyBieSBjb250cm9sIGNoYXJhY3RlcnMuIik7CiAKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJl
bmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CisKIC8vIEZh
aWxzIGlmIHByb3RvY29sIGNvbnRhaW5zIGFuIGNoYXJhY3RlciBsZXNzIHRoYW4gVSswMDIwLgog
c2hvdWxkVGhyb3coJ25ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvc2ltcGxlIiwg
Ilx1MDAwMCIpJyk7CiBzaG91bGRUaHJvdygnbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6
ODg4MC9zaW1wbGUiLCAiXHUwMDA5IiknKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1lbXB0eS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
YmFkLXN1Yi1wcm90b2NvbC1lbXB0eS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2JhZC1zdWItcHJvdG9jb2wt
ZW1wdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw2ICs5LDkgQEAKIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KIGRlc2NyaXB0aW9uKCJUZXN0IFdlYlNvY2tldCBiYWQgc3ViLXBy
b3RvY29sIG5hbWVzIChlbXB0eSkuIik7CiAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CisKIC8vIEZhaWxzIGlmIHByb3Rv
Y29sIGlzIGFuIGVtcHR5IHN0cmluZy4KIHNob3VsZFRocm93KCduZXcgV2ViU29ja2V0KCJ3czov
LzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIiKScpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2JhZC1zdWItcHJvdG9jb2wtbm9uLWFzY2lp
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9iYWQtc3ViLXByb3RvY29sLW5vbi1hc2NpaS5odG1sCShyZXZpc2lvbiAxMDc0
MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Jh
ZC1zdWItcHJvdG9jb2wtbm9uLWFzY2lpLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw5
IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBkZXNjcmlwdGlvbigiVGVzdCBX
ZWJTb2NrZXQgYmFkIHN1Yi1wcm90b2NvbCBuYW1lcyBieSBub24tQVNDSUkgY2hhcnMuIik7CiAK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkIiwgMSk7CisKIC8vIEZhaWxzIGlmIHByb3RvY29sIGNvbnRhaW5zIGFuIGNoYXJhY3RlciBn
cmVhdGVyIHRoYW4gVSswMDdFLgogc2hvdWxkVGhyb3coJ25ldyBXZWJTb2NrZXQoIndzOi8vMTI3
LjAuMC4xOjg4ODAvc2ltcGxlIiwgIlx1MDA3RiIpJyk7CiBzaG91bGRUaHJvdygnbmV3IFdlYlNv
Y2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUiLCAiXHUwMDgwIiknKTsKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYnVmZmVyZWRBbW91
bnQtYWZ0ZXItY2xvc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwJ
KHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIldlYiBTb2NrZXQgYnVmZmVyZWRBbW91
bnQgYWZ0ZXIgY2xvc2VkIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwg
MSk7CiAKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvc2ltcGxlIik7CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xpZW50LWNsb3NlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbGllbnQt
Y2xvc2UuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbGllbnQtY2xvc2UuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIldlYlNvY2tldDogVGVzdCBjbGllbnQtaW5p
dGlhdGVkIGNsb3NlLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEp
OwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L2NsaWVudC1jbG9zZSIpOwogdmFyIGNsb3NlRXZlbnQ7CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLWJlZm9y
ZS1vcGVuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1iZWZvcmUtb3Blbi5odG1sCShyZXZpc2lvbiAxMDc0MTEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3Nl
LWJlZm9yZS1vcGVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2Ny
aXB0aW9uKCJUZXN0IGlmIFdlYiBTb2NrZXQgZmlyZXMgY2xvc2UgZXZlbnQgd2hlbiBXZWJTb2Nr
ZXQgaXMgb3BlbmVkIGFuZCBjbG9zZWQgZm9yZSBvcGVuIGV2ZW50IGlzIHJlY2VpdmVkLiIpOwog
CiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2Vi
S2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcg
V2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Vj
aG8iKTsKIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2UtZXZlbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3Nl
LWV2ZW50Lmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2UtZXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIk1ha2Ugc3VyZSBXZWJTb2NrZXQgZmlyZXMg
Q2xvc2VFdmVudCB3aGVuIGNsb3NlZC4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVu
YWJsZWQiLCAxKTsKIAogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4
MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUiKTsKIApJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1vbi1uYXZpZ2F0ZS1uZXct
bG9jYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLW5hdmlnYXRlLW5ldy1sb2NhdGlvbi5odG1sCShy
ZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L2Nsb3NlLW9uLW5hdmlnYXRlLW5ldy1sb2NhdGlvbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCBpZiBXZWIgU29ja2V0IGlz
IGNsb3NlZCB3aGVuIG5hdmlnYXRpbmcgdG8gbmV3IGxvY2F0aW9uLiIpOwogCiB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3Nldl
YlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgZnJhbWVEaXY7CiB2YXIgY2xvc2Vk
U29ja2V0OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9jbG9zZS1vbi11bmxvYWQtYW5kLWZvcmNlLWdjLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1vbi11bmxv
YWQtYW5kLWZvcmNlLWdjLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Utb24tdW5sb2FkLWFuZC1mb3Jj
ZS1nYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigi
VGVzdCBpZiBXZWIgU29ja2V0IGlzIGNsb3NlZCBvbiB1bmxvYWQgYW5kIG5vdCBjcmFzaGVkIGlm
IGdhcmJhZ2UgY29sbGVjdGVkIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
b3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
IiwgMSk7CiAKIGZ1bmN0aW9uIGdjKCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Utb24tdW5sb2FkLXJlZmVyZW5jZS1pbi1wYXJl
bnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLXVubG9hZC1yZWZlcmVuY2UtaW4tcGFyZW50Lmh0bWwJKHJl
dmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvY2xvc2Utb24tdW5sb2FkLXJlZmVyZW5jZS1pbi1wYXJlbnQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIlRlc3QgaWYgV2ViIFNvY2tl
dCBvcGVuZWQgaW4gaWZyYW1lIGJ1dCByZWZlcnJlZCBpbiBwYXJlbnQgZG9jdW1lbnQgaXMgY2xv
c2VkIG9uIHVubG9hZGluZyB0aGUgZnJhbWUuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9j
b2xFbmFibGVkIiwgMSk7CiAKIHZhciBmcmFtZURpdjsKIHZhciBjbG9zZWRTb2NrZXQ7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9u
LXVubG9hZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Utb24tdW5sb2FkLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Ut
b24tdW5sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0
aW9uKCJUZXN0IGlmIFdlYiBTb2NrZXQgaXMgY2xvc2VkIG9uIHVubG9hZCIpOwogCiB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgZnJhbWVEaXY7CiB2YXIgY2xv
c2VkU29ja2V0OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9jbG9zZS11bnJlZi13ZWJzb2NrZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLXVucmVmLXdlYnNv
Y2tldC5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLXVucmVmLXdlYnNvY2tldC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCBpZiBXZWIgU29ja2V0
IGlzIGNsb3NlZCB3aGlsZSBoYW5kc2hha2luZyBhbmQgdW5yZWZlcmVuY2VkLCBpdCBzaG91bGQg
ZmlyZSBjbG9zZSBldmVudCBhdCBtb3N0IG9uY2UuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciBjb3VudENsb3NlRXZlbnQgPSAwOwogCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nyb3NzLW9yaWdp
bi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvY3Jvc3Mtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY3Jvc3Mtb3JpZ2luLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJXZWIgU29j
a2V0IENyb3NzIE9yaWdpbiB0ZXN0Iik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkIiwgMSk7CiAKIHZhciBvcmlnaW47CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZXJyb3ItZGV0ZWN0Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9lcnJvci1kZXRl
Y3QuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9lcnJvci1kZXRlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIk1ha2Ugc3VyZSBXZWJTb2NrZXQgY29ycmVjdGx5
IGZpcmUgZXJyb3IgZXZlbnQgZm9yIHVua25vd24gZnJhbWUgdHlwZS4iKTsKIAogd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIGVycm9yQ291bnQgPSAwOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1l
LWxlbmd0aC1sb25nZXItdGhhbi1idWZmZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1sb25nZXIt
dGhhbi1idWZmZXIuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9mcmFtZS1sZW5ndGgtbG9uZ2VyLXRoYW4tYnVm
ZmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJN
YWtlIHN1cmUgV2ViU29ja2V0IGNvcnJlY3RseSBza2lwIGxlbmd0aGVkIGZyYW1lIGV2ZW4gaWYg
cmVjZWl2ZWQgZGF0YSBoYXMgaW5jb21wbGV0ZSBmcmFtZS4iKTsKIAogd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2Nr
ZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHJlY2VpdmVkX21lc3NhZ2VzID0gW107CiB2
YXIgZXhwZWN0ZWRfbWVzc2FnZXMgPSBbImhlbGxvIl07CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1vdmVyZmxvdy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvZnJhbWUtbGVuZ3RoLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3Ro
LW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw4IEBACiBkZXNjcmlwdGlv
bigiTWFrZSBzdXJlIFdlYlNvY2tldCBkb2VzIG5vdCBjcmFzaCBhbmQgcmVwb3J0IGVycm9yIHdo
ZW4gaXQgc2VlcyBsZW5ndGggb3ZlcmZsb3ciKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAxKTsKIAogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6
ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9mcmFtZS1sZW5ndGgtb3ZlcmZsb3ciKTsKIHdz
Lm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3RoLXNraXAuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxl
bmd0aC1za2lwLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3RoLXNraXAuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIk1ha2Ugc3VyZSBXZWJTb2Nr
ZXQgY29ycmVjdGx5IHNraXAgbGVuZ3RoZWQgZnJhbWUuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciByZWNlaXZlZF9tZXNzYWdlcyA9IFtdOwogdmFy
IGV4cGVjdGVkX21lc3NhZ2VzID0gWyJoZWxsbyIsICJ3b3JsZCJdOwpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9mcmFtZS1sZW5ndGhzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9mcmFtZS1sZW5ndGhzLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3Rocy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC04LDYgKzgsNyBAQCB2YXIgbWF4TGVuZ3RoID0gMTAyNTsKIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
aGFuZHNoYWtlLWNoYWxsZW5nZS1yYW5kb21uZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtY2hhbGxl
bmdlLXJhbmRvbW5lc3MuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtY2hhbGxlbmdlLXJhbmRv
bW5lc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24o
J0hhbmRzaGFrZSByZXF1ZXN0IHNob3VsZCBjb250YWluIHJhbmRvbSBjaGFsbGVuZ2UgdmFsdWVz
LicpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgY2hh
bGxlbmdlMTsKIHZhciBjaGFsbGVuZ2UyOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZXJyb3IuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFr
ZS1lcnJvci5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1lcnJvci5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiSGFuZHNoYWtlIGVycm9yIHRlc3Qi
KTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rpb24g
ZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LWNyb3NzLW9yaWdpbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNo
YWtlLWZhaWwtYnktY3Jvc3Mtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwt
YnktY3Jvc3Mtb3JpZ2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRl
c2NyaXB0aW9uKCJNYWtlIHN1cmUgV2ViIFNvY2tldCBjb25uZWN0aW9uIGZhaWxlZCBpZiBvcmln
aW4gbWlzbWF0Y2hlcy4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAx
KTsKIAogdmFyIGNvbm5lY3RlZCA9IGZhbHNlOwogdmFyIG9yaWdpbjsKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnkt
bWF4bGVuZ3RoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGguaHRtbAkocmV2
aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGguaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oJ0Nvbm5lY3Rpb24gc2hvdWxkIGZhaWwgaW1t
ZWRpYXRlbHksIHJhdGhlciB0aGFuIHN1Y2NlZWRpbmcgb3Igc3RheWluZyBpbiBsaW1ibyB1bnRp
bCB0aW1lb3V0LCBpZiBoYW5kc2hha2UgaXMgbG9uZ2VyIHRoYW4gMTAyNCBieXRlcy4nKTsKIAog
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHRpbWVkT3V0ID0g
ZmFsc2U7CiB2YXIgY29ubmVjdGVkID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rp
b24taGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRl
ci5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiBDb25uZWN0aW9uIGhlYWRlciBmaWVs
ZCBpc24ndCByZWZsZWN0ZWQgYnkgdGhlIHNlcnZlci4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQ
cm90b2NvbEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rpb24gZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWls
LWJ5LW5vLWNyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1uby1jci5odG1sCShyZXZpc2lv
biAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhp
ZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYg
KzEwLDggQEAKIGRlc2NyaXB0aW9uKCdIYW5kc2hha2Ugc2hvdWxkIGZhaWwgd2hlbiB0aGUgZmly
c3QgbGluZSBkb2VzIG5vdCBlbmQgd2l0aCBDUkxGLicpOwogCiB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgY29ubmVjdGVkID0gZmFsc2U7CiB2YXIgb3JpZ2lu
OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9o
YW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZh
aWwtYnktbm8tdXBncmFkZS1oZWFkZXIuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1i
eS1uby11cGdyYWRlLWhlYWRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBA
CiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IFdlYlNvY2tldCBoYW5kc2hha2UgZmFpbHMgaWYgVXBn
cmFkZSBoZWFkZXIgZmllbGQgaXNuJ3QgcmVmbGVjdGVkIGJ5IHRoZSBzZXJ2ZXIuIik7CiAKIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIGZ1bmN0aW9uIGVuZFRlc3Qo
KQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZh
aWwtYnktcHJlcGVuZGVkLW51bGwuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1w
cmVwZW5kZWQtbnVsbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNj
cmlwdGlvbignQ29ubmVjdGlvbiBzaG91bGQgZmFpbCBpbW1lZGlhdGVseSwgcmF0aGVyIHRoYW4g
c3VjY2VlZGluZyBvciBzdGF5aW5nIGluIGxpbWJvIHVudGlsIHRpbWVvdXQsIGlmIGEgbnVsbCBi
eXRlIGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUgaGFuZHNoYWtlLicpOwogCiB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNv
Y2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgdGltZWRPdXQgPSBmYWxzZTsKIHZhciBj
b25uZWN0ZWQgPSBmYWxzZTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktc3ViLXByb3RvY29sLW1pc21hdGNoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1zdWItcHJvdG9jb2wtbWlzbWF0Y2guaHRtbAkocmV2
aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1zdWItcHJvdG9jb2wtbWlzbWF0Y2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIlRlc3QgV2ViU29ja2V0
IGhhbmRzaGFrZSBmYWlsIGlmIHN1YiBwcm90b2NvbCBuYW1lIG1pc21hdGNoZXMuIik7CiAKIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciBwcm90b2NvbDsKIApJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9sb25n
LWludmFsaWQtaGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9sb25nLWludmFsaWQtaGVhZGVyLmh0bWwJKHJldmlz
aW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvbG9uZy1pbnZhbGlkLWhlYWRlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsx
MCw4IEBACiBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIFdlYlNvY2tldCBnaXZlcyBlcnJvcnMgb24g
bG9uZyBpbnZhbGlkIHVwZ3JhZGUgaGVhZGVyLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3Rv
Y29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlvbiBmaW5pc2goKSB7CiAgICAgY2xlYXJUaW1lb3V0
KHRpbWVvdXRJRCk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L211bHRpcGxlLWNvbm5lY3Rpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9tdWx0aXBsZS1jb25uZWN0
aW9ucy5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L211bHRpcGxlLWNvbm5lY3Rpb25zLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNiArNCw3IEBACiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAx
KTsKIH0KIAogdmFyIHNvY2tldENvdW50ID0gNTA7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L251bGwtY2hhcmFjdGVyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9udWxs
LWNoYXJhY3Rlci5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L251bGwtY2hhcmFjdGVyLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgV2ViU29ja2V0
IHRyYW5zZmVyIG51bGwgY2hhcmFjdGVyIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkIiwgMSk7CiAKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4
ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZWNobyIpOwogLy8gXHhmZiBpbiBzdHJpbmcgd291
bGQgYmUgXHhjM1x4YmYgb24gd2Vic29ja2V0IGNvbm5lY3Rpb24gKFVURi04KQpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9yZWxvYWQtY3Jhc2gu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3JlbG9hZC1jcmFzaC5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3JlbG9hZC1jcmFzaC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCBpZiBp
dCBkb2Vzbid0IGNyYXNoIHdoZW4gcmVsb2FkaW5nIHdoaWxlIFdlYiBTb2NrZXQgaXMgYnVzeSIp
OwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgZnJhbWVE
aXY7CiB2YXIgcmVsb2FkQ291bnQgPSAwOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLWFmdGVyLWNsb3NlLW9uLXVubG9hZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLWFmdGVy
LWNsb3NlLW9uLXVubG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBk
ZXNjcmlwdGlvbigiVGVzdCBpZiBXZWIgU29ja2V0IG9wZW5lZCBpbiBpZnJhbWUsIHJlZmVycmVk
IGluIHBhcmVudCBkb2N1bWVudCBpcywgYW5kIHRyeSB0byBzZW5kKCkgcmV0dXJucyBmYWxzZS4i
KTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIGZyYW1l
RGl2OwogdmFyIGNsb3NlZFNvY2tldDsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1lbXB0eS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1lbXB0eS5odG1s
CShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3NlbmQtZW1wdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAs
OCBAQAogZGVzY3JpcHRpb24oIldlYlNvY2tldDogQ2FsbGluZyBzZW5kKCkgd2l0aG91dCBhcmd1
bWVudHMgc2hvdWxkIHJhaXNlIFN5bnRheEVycm9yLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4w
LjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2VjaG8iKTsKIApJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLW9iamVjdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvc2VuZC1vYmplY3QuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLW9iamVjdC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiV2ViU29ja2V0OiBzZW5k
KG9iamVjdCkgc2hvdWxkIGJlIGludGVycHJldGVkIGFzIHNlbmQob2JqZWN0LnRvU3RyaW5nKCkp
LiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlv
biBjcmVhdGVFbXB0eUJsb2IoKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLXRocm93Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLXRocm93Lmh0bWwJ
KHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvc2VuZC10aHJvdy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4
IEBACiBkZXNjcmlwdGlvbigiV2ViIFNvY2tldCBzZW5kIHRlc3QiKTsKIAogd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJT
b2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rpb24gZW5kVGVzdCgpCiB7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
aXhpZTc2L3NlbmQuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJXZWIgU29ja2V0IHNlbmQgdGVzdCIpOwogCiB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlvbiBlbmRUZXN0
KCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvc2VydmVyLWNsb3NlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZXJ2ZXItY2xvc2UuaHRtbAkocmV2aXNpb24gMTA3
NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9z
ZXJ2ZXItY2xvc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3Jp
cHRpb24oIldlYlNvY2tldDogVGVzdCBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NlLiIpOwogCiB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4
aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcgV2ViU29j
a2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlcnZlci1j
bG9zZSIpOwogdmFyIGNsb3NlRXZlbnQ7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3NpbXBsZS1zdHJlc3MuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NpbXBsZS1zdHJl
c3MuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUtc3RyZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTgsNiArOCw3IEBAIHZhciBudW1TbWFsbE1lc3NhZ2VzID0gMTAwMDsKIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZCIsIDEpOwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2ltcGxlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9zaW1wbGUuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIlNpbXBsZSBXZWIgU29ja2V0IHRlc3Qi
KTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rpb24g
ZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3NwbGl0LWJpbmFyeS1mcmFtZS1oZWFkZXIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NwbGl0LWJpbmFy
eS1mcmFtZS1oZWFkZXIuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zcGxpdC1iaW5hcnktZnJhbWUtaGVhZGVy
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJXZWJT
b2NrZXQ6IEhpeGllNzYgYmluYXJ5IGZyYW1lcyBzaG91bGQgYmUgaGFuZGxlZCBjb3JyZWN0bHkg
ZXZlbiBpZiBmcmFtZSBoZWFkZXIgaXMgc3BsaXQgaW50byBtdWx0aXBsZSBUQ1AgcGFja2V0cy4i
KTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHdzID0g
bmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9zcGxpdC1iaW5hcnktZnJhbWUtaGVhZGVyIik7CiB2YXIgZXJyb3JDb3VudCA9IDA7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3N1Yi1wcm90
b2NvbC13aXRoLXNwYWNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zdWItcHJvdG9jb2wtd2l0aC1zcGFjZS5odG1sCShy
ZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC13aXRoLXNwYWNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJUZXN0IFdlYlNvY2tldCBoYW5kc2hha2Ugc3Vj
Y2VzcyB3aXRoIHN1YiBwcm90b2NvbCBjb250YWlucyBzcGFjZS4iKTsKIAogd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJT
b2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHByb3RvY29sOwogCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvc3ViLXByb3RvY29sLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc3ViLXByb3RvY29sLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJUZXN0IFdlYlNv
Y2tldCBoYW5kc2hha2Ugc3VjY2VzcyB3aXRoIHN1YiBwcm90b2NvbC4iKTsKIAogd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHByb3RvY29sOwogCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1h
dHRyaWJ1dGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRlZmluZWQtYXR0cmlidXRlcy5odG1sCShyZXZpc2lvbiAx
MDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw5IEBA
CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBkZXNjcmlwdGlvbigiVGVzdCBXZWJT
b2NrZXQgYXR0cmlidXRlcyB3aGljaCBzaG91bGQgbm90IGJlIGRlZmluZWQgd2hlbiBoaXhpZS03
NiBwcm90b2NvbCBpcyB1c2VkLiIpOwogCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4
aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOworCiB2YXIgd3MgPSBuZXcgV2ViU29j
a2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NpbXBsZSIp
OwogCiBzaG91bGRCZVVuZGVmaW5lZCgid3MuYmluYXJ5VHlwZSIpOwpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmljb2RlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91
bmljb2RlLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5pY29kZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiV2ViIFNvY2tldCB1bmljb2RlIG1lc3NhZ2UgdGVz
dCIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlv
biBlbmRUZXN0KCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvdXJsLWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLWF0dHJpYnV0ZS5odG1sCShy
ZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3VybC1hdHRyaWJ1dGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAs
OSBAQAogCiBkZXNjcmlwdGlvbigiQm90aCAuVVJMIGFuZCAudXJsIGF0dHJpYnV0ZXMgc2hvdWxk
IHdvcmsgKGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMpLiIpOwogCitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOworCiB2YXIg
dXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAvIjsKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQodXJs
KTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni91cmwtbm8tdHJhaWxpbmctc2xhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC1uby10cmFpbGluZy1zbGFzaC5o
dG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L3VybC1uby10cmFpbGluZy1zbGFzaC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVVJMIHRoYXQgZG9lc24ndCBoYXZlIHRy
YWlsaW5nIHNsYXNoIHNob3VsZCBub3QgZW1pdCBlbXB0eSBSZXF1ZXN0LVVSSS4iKTsKIAogd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhp
eGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHVybCA9ICJ3czovLzEy
Ny4wLjAuMTo4ODgwIjsKIHZhciBoYW5kc2hha2Vfc3VjY2VzcyA9IGZhbHNlOwpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtcGFyc2luZy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvdXJsLXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtcGFyc2luZy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC05LDYgKzksOSBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgogZGVzY3JpcHRpb24oIlRlc3QgV2ViU29ja2V0IFVSTCBwYXJzaW5nLiIpOwogCitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIs
IDEpOworCiAvLyBJbnZhbGlkIHVybCB3aWxsIGZhaWwgdG8gYmUgcGFyc2VkLgogc2hvdWxkVGhy
b3coJ25ldyBXZWJTb2NrZXQoIndzOi8vamF2YXNjcmlwdDphIiknKTsKIApJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1jcmVkZW50
aWFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1jcmVkZW50aWFsLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXdp
dGgtY3JlZGVudGlhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNj
cmlwdGlvbigiTWFrZSBzdXJlIGhhbmRzaGFrZSB3aXRoIFVSTCB3aXRoIGNyZWRlbnRhaWwgaW5m
byBzdWNjZXNzLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwog
CiB2YXIgdXJsID0gIndzOi8vdXNlcjpwYXNzQDEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L2VjaG8tbG9jYXRpb24iOwogdmFyIGhhbmRzaGFrZV9zdWNjZXNzID0gZmFsc2U7
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3Vy
bC13aXRoLWVtcHR5LXF1ZXJ5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1lbXB0eS1xdWVyeS5odG1sCShy
ZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3VybC13aXRoLWVtcHR5LXF1ZXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEw
LDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgaGFuZHNoYWtlIHdpdGggVVJMIHdp
dGggZW1wdHkgcXVlcnkgY29tcG9uZW50cyBzdWNjZXNzLiIpOwogCiB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tl
dFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgdXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZWNoby1sb2NhdGlvbj8iOwogdmFyIGhhbmRzaGFrZV9z
dWNjZXNzID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3VybC13aXRoLXF1ZXJ5LWZvci1uby1xdWVyeS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXdp
dGgtcXVlcnktZm9yLW5vLXF1ZXJ5Lmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXdpdGgtcXVlcnktZm9y
LW5vLXF1ZXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0
aW9uKCJNYWtlIHN1cmUgaGFuZHNoYWtlIHdpdGggVVJMIHdpdGggcXVlcnkgY29tcG9uZW50cyBm
YWlscyBhZ2FpbnN0IHNlcnZlciB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBxdWVyeSBjb21wb25lbnQu
Iik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNl
KCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciB1cmwg
PSAid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9uby1xdWVyeT8i
OwogdmFyIGhhbmRzaGFrZV9zdWNjZXNzID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC13aXRoLXF1ZXJ5Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91
cmwtd2l0aC1xdWVyeS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC13aXRoLXF1ZXJ5Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgaGFuZHNo
YWtlIHdpdGggVVJMIHdpdGggcXVlcnkgY29tcG9uZW50cyBzdWNjZXNzLiIpOwogCiB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgdXJsID0gIndzOi8vMTI3LjAu
MC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZWNoby1sb2NhdGlvbj9xPXYiOwogdmFy
IGhhbmRzaGFrZV9zdWNjZXNzID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1ldmVudC10YXJnZXQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L3dlYnNvY2tldC1ldmVudC10YXJnZXQuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93ZWJzb2NrZXQtZXZlbnQt
dGFyZ2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw5IEBACiA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CiBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIFdlYlNvY2tldCBvYmpl
Y3QgYWN0cyBhcyBFdmVudFRhcmdldC4iKTsKIAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKKwogdmFyIHdzID0gbmV3IFdl
YlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1w
bGUiKTsKIHdzLmNsb3NlKCk7IC8vIFRoYXQgaXMgbm90IGEgdGVzdCB3aXRoIGEgV2ViU29ja2V0
IHNlcnZlciwgcHJldmVudCBsb2dnaW5nIGFuIGVycm9yIHRvIGNvbnNvbGUuCiB2YXIgb3Blbl9l
dmVudF9oYW5kbGVkID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93
ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1wZW5k
aW5nLWFjdGl2aXR5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBACiBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKIH0KIAogZnVuY3Rpb24gZ2MoKQpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93ZWJzb2NrZXQt
cHJvdG9jb2wtaWdub3JlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd2Vic29ja2V0LXByb3RvY29sLWlnbm9yZWQuaHRt
bAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni93ZWJzb2NrZXQtcHJvdG9jb2wtaWdub3JlZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCBXZWJTb2NrZXQgaGFuZHNo
YWtlIHN1Y2Nlc3Mgd2l0aG91dCBwcm90b2NvbCBhbmQgaWdub3JlIFdlYlNvY2tldC1Qcm90b2Nv
bCBmcm9tIHNlcnZlci4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAx
KTsKIAogdmFyIHByb3RvY29sOwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvY2xvc2UtaW4tb25tZXNzYWdlLWNyYXNoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni93b3JrZXJzL2Nsb3NlLWluLW9ubWVzc2FnZS1jcmFzaC5odG1sCShyZXZpc2lvbiAxMDc0
MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dv
cmtlcnMvY2xvc2UtaW4tb25tZXNzYWdlLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEx
LDYgKzExLDcgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogfQogCiBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9jbG9zZS1pbi1zaGFyZWQtd29ya2VyLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni93b3JrZXJzL2Nsb3NlLWluLXNoYXJlZC13b3JrZXIuaHRtbAkocmV2aXNpb24gMTA3NDExKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJz
L2Nsb3NlLWluLXNoYXJlZC13b3JrZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNiArMTEs
NyBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiB9CiAKIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLXdvcmtlci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9jbG9z
ZS1pbi13b3JrZXIuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLXdvcmtlci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBACiBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAxKTsKIH0KIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvc2hhcmVkLXdv
cmtlci1zaW1wbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zaW1wbGUuaHRtbAko
cmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni93b3JrZXJzL3NoYXJlZC13b3JrZXItc2ltcGxlLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTExLDYgKzExLDcgQEAKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEp
OwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy93b3JrZXItaGFuZHNoYWtlLWNoYWxs
ZW5nZS1yYW5kb21uZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL3dvcmtlci1oYW5kc2hha2UtY2hhbGxl
bmdlLXJhbmRvbW5lc3MuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL3dvcmtlci1oYW5kc2hha2Ut
Y2hhbGxlbmdlLXJhbmRvbW5lc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNiArMTEsNyBA
QAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiB9CiAKIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni93b3JrZXJzL3dvcmtlci1zaW1wbGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvd29ya2VyLXNp
bXBsZS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvd29ya2VyLXNpbXBsZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBACiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQi
LCAxKTsKIH0KIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIv
U2tpcHBlZAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTgyMSw5ICs4MjEsNiBAQCBwbGF0Zm9ybS9tYWMvZmFz
dC90ZXh0L3JvdW5kaW5nLWhhY2tzLWV4CiAjIGh0dHA6Ly93ZWJraXQub3JnL2IvNTg5OTAKIGVk
aXRpbmcvdW5kby91bmRvLWlmcmFtZS1sb2NhdGlvbi1jaGFuZ2UuaHRtbAogCi0jIFNraXBwZWQg
dW50aWwgbmV3IFdlYlNvY2tldCBwcm90b2NvbCBpcyBpbXBsZW1lbnRlZC4gaHR0cDovL3dlYmtp
dC5vcmcvYi81MDA5OQotaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS8KLQogIyBUaW1l
cyBvdXQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzODA2CiBo
dHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQtc3VicmVzb3VyY2UtbG9hZHMtbWF4
LWFnZS1odHRwcy5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126859</attachid>
            <date>2012-02-13 16:19:22 -0800</date>
            <delta_ts>2012-02-14 01:51:01 -0800</delta_ts>
            <desc>with more ChangeLog</desc>
            <filename>WebSocket.txt</filename>
            <type>text/plain</type>
            <size>53623</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzYxNikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTEzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdW1dpbl1bV0syXSBT
d2l0Y2ggdG8gUkZDIDY0NTUgcHJvdG9jb2wgZm9yIFdlYlNvY2tldHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTQxCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8xMDAzNjY5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6IChXZWJLaXQpOiBDaGFu
Z2VkIGRlZmF1bHQgdmFsdWUgb2YgdGhlIHByZWZlcmVuY2UuCisKIDIwMTItMDItMTMgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBNYWMgcGxh
dGZvcm0gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBhc3RlYm9hcmQgY2xhc3MgdG8gdXNlIFBsYXRm
b3JtIFN0cmF0ZWdpZXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmgJKHJldmlzaW9uIDEwNzQxMSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDcgKzkwLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAgICAgbWFjcm8oQWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THMsIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkg
XAogICAgIG1hY3JvKEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcywgYWxsb3dGaWxlQWNjZXNz
RnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKEFWRm91bmRhdGlv
bkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9XRUJL
SVRfQVZGT1VOREFUSU9OX0VOQUJMRUQpIFwKLSAgICBtYWNybyhIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkLCBoaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkLCBCb29sLCBib29s
LCB0cnVlKSBcCisgICAgbWFjcm8oSGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCwgaGl4
aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBt
YWNybyhNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSwgbWVkaWFQbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oTWVkaWFQbGF5
YmFja0FsbG93c0lubGluZSwgbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSwgQm9vbCwgYm9vbCwg
dHJ1ZSkgXAogICAgIG1hY3JvKEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBpbnNwZWN0b3JTdGFy
dHNBdHRhY2hlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXApJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMTA3NjE2KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDItMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11bV2luXVtXSzJdIFN3aXRjaCB0byBSRkMgNjQ1
NSBwcm90b2NvbCBmb3IgV2ViU29ja2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMDM2Njk1
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbTogKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOiBD
aGFuZ2VkIGRlZmF1bHQgdmFsdWUgb2YgdGhlCisgICAgICAgIHByZWZlcmVuY2UuCisKIDIwMTIt
MDItMTMgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICAgUmVm
YWN0b3IgTWFjIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQYXN0ZWJvYXJkIGNsYXNz
IHRvIHVzZSBQbGF0Zm9ybSBTdHJhdGVnaWVzLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAxMDc0MTEpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODQs
NyArMzg0LDcgQEAgKyAodm9pZClpbml0aWFsaXplCiAgICAgICAgIFtOU051bWJlciBudW1iZXJX
aXRoQm9vbDpZRVNdLCAgV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRVc2VQcmVI
VE1MNVBhcnNlclF1aXJrc0tleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllF
U10sICBXZWJLaXRBVkZvdW5kYXRpb25FbmFibGVkS2V5LAotICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRL
ZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICBXZWJLaXRIaXhpZTc2
V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6Tk9dLCAgIFdlYktpdE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlUHJlZmVy
ZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRN
ZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRXZWJBdWRpb0VuYWJsZWRQcmVmZXJlbmNlS2V5
LApJbmRleDogU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3NjE2KQorKysgU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDIt
MTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY11b
V2luXVtXSzJdIFN3aXRjaCB0byBSRkMgNjQ1NSBwcm90b2NvbCBmb3IgV2ViU29ja2V0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg1NDEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwMDM2Njk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOiAoV2ViUHJlZmVyZW5j
ZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOiBDaGFuZ2VkIGRlZmF1bHQgdmFsdWUgb2YK
KyAgICAgICAgdGhlIHByZWZlcmVuY2UKKwogMjAxMi0wMi0xMiAgQW5keSBFc3RlcyAgPGFlc3Rl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbmRvd3NdIEFkZCBBUEkgdG8gZW5hYmxlIGludmVy
dGVkIGNvbG9yIGRyYXdpbmcgb24gYSBXZWJWaWV3CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAxMDc0MTEpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCw3ICsyNjgsNyBAQCB2b2lkIFdl
YlByZWZlcmVuY2VzOjppbml0aWFsaXplRGVmYXVsdFNlCiAKICAgICBDRkRpY3Rpb25hcnlBZGRW
YWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5
KSwga0NGQm9vbGVhbkZhbHNlKTsKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJv
b2xlYW5UcnVlKTsKLSAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2Vi
S2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZFByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuVHJ1ZSk7CisgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoZGVmYXVsdHMsIENGU1RSKFdlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVh
bkZhbHNlKTsKIAogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJL
aXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZVByZWZlcmVuY2VLZXkpLCBrQ0ZCb29s
ZWFuRmFsc2UpOwogICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGRlZmF1bHRzLCBDRlNUUihXZWJL
aXRNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5UcnVl
KTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEwNzYxNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE1IEBACisyMDEyLTAyLTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgorCisgICAgICAgIFtNYWNdW1dpbl1bV0syXSBTd2l0Y2ggdG8gUkZDIDY0NTUgcHJvdG9j
b2wgZm9yIFdlYlNvY2tldHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4NTQxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDAzNjY5NT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbTogKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6IChy
ZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgQWZ0ZXIgZWFjaCB0ZXN0
LCByZXNldCB0byB1c2luZyBuZXcgcHJvdG9jb2wuCisKIDIwMTItMDItMTMgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBOUldUJ3MgSFRUUCBzZXJ2ZXJzIHNob3Vs
ZCBzdXBwb3J0IGFkZGl0aW9uYWwgZGlyZWN0b3JpZXMgZm9yIHJlc291cmNlcwpJbmRleDogVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24gMTA3NDEx
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC02NTAsNyArNjUwLDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29u
c2lzdGVudFZhbAogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJHTEVuYWJsZWQ6Tk9dOwogICAgIFtw
cmVmZXJlbmNlcyBzZXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrczpOT107CiAgICAgW3ByZWZlcmVu
Y2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOk5PXTsKLSAgICBbcHJlZmVy
ZW5jZXMgc2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZDpZRVNdOworICAgIFtwcmVm
ZXJlbmNlcyBzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkOk5PXTsKICAgICBbcHJl
ZmVyZW5jZXMgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkOllFU107CiAKICNpZiBFTkFCTEUoV0VC
X0FVRElPKQpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCShyZXZpc2lvbiAxMDc0MTEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODAsNyArODgwLDcgQEAgc3RhdGljIHZv
aWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbAogICAgICAgICBwcmVmc1ByaXZhdGUtPnNl
dEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoRkFMU0UpOwogICAgICAgICBwcmVmc1ByaXZhdGUtPnNl
dE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChUUlVFKTsKICAgICAgICAgcHJlZnNQ
cml2YXRlLT5zZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZShG
QUxTRSk7Ci0gICAgICAgIHByZWZzUHJpdmF0ZS0+c2V0SGl4aWU3NldlYlNvY2tldFByb3RvY29s
RW5hYmxlZChUUlVFKTsKKyAgICAgICAgcHJlZnNQcml2YXRlLT5zZXRIaXhpZTc2V2ViU29ja2V0
UHJvdG9jb2xFbmFibGVkKEZBTFNFKTsKICAgICB9CiAgICAgc2V0QWx3YXlzQWNjZXB0Q29va2ll
cyhmYWxzZSk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzYxNikKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc1IEBACisyMDEyLTAyLTEzICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdW1dpbl1bV0sy
XSBTd2l0Y2ggdG8gUkZDIDY0NTUgcHJvdG9jb2wgZm9yIFdlYlNvY2tldHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NTQxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xMDAzNjY5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYWxlcnQt
aW4tZXZlbnQtaGFuZGxlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvYmFkLWhhbmRzaGFrZS1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJz
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9iYWQt
c3ViLXByb3RvY29sLWVtcHR5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni9iYWQtc3ViLXByb3RvY29sLW5vbi1hc2NpaS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYnVmZmVyZWRBbW91bnQtYWZ0ZXIt
Y2xvc2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L2NsaWVudC1jbG9zZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvY2xvc2UtYmVmb3JlLW9wZW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLWV2ZW50Lmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1vbi1uYXZpZ2F0ZS1uZXctbG9jYXRp
b24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Ns
b3NlLW9uLXVubG9hZC1hbmQtZm9yY2UtZ2MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLXVubG9hZC1yZWZlcmVuY2UtaW4tcGFyZW50
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9z
ZS1vbi11bmxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
aXhpZTc2L2Nsb3NlLXVucmVmLXdlYnNvY2tldC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY3Jvc3Mtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9lcnJvci1kZXRlY3QuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1sb25n
ZXItdGhhbi1idWZmZXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1vdmVyZmxvdy5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3RoLXNraXAuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aHMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFr
ZS1jaGFsbGVuZ2UtcmFuZG9tbmVzcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWVycm9yLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1jcm9zcy1vcmln
aW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hh
bmRzaGFrZS1mYWlsLWJ5LW1heGxlbmd0aC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktbm8tY29ubmVjdGlvbi1oZWFk
ZXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hh
bmRzaGFrZS1mYWlsLWJ5LW5vLWNyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlci5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtl
LWZhaWwtYnktcHJlcGVuZGVkLW51bGwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LXN1Yi1wcm90b2NvbC1taXNtYXRj
aC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvbG9u
Zy1pbnZhbGlkLWhlYWRlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvbXVsdGlwbGUtY29ubmVjdGlvbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L251bGwtY2hhcmFjdGVyLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9yZWxvYWQtY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQtYWZ0ZXIt
Y2xvc2Utb24tdW5sb2FkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9zZW5kLWVtcHR5Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLW9iamVjdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC10aHJvdy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VydmVyLWNsb3NlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUtc3RyZXNzLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NwbGl0LWJp
bmFyeS1mcmFtZS1oZWFkZXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC13aXRoLXNwYWNlLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zdWItcHJvdG9jb2wuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1
dGVzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91
bmljb2RlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni91cmwtYXR0cmlidXRlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni91cmwtbm8tdHJhaWxpbmctc2xhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC1wYXJzaW5nLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1jcmVkZW50aWFsLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0
aC1lbXB0eS1xdWVyeS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvdXJsLXdpdGgtcXVlcnktZm9yLW5vLXF1ZXJ5Lmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1xdWVyeS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd2Vic29ja2V0LWV2ZW50
LXRhcmdldC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvd2Vic29ja2V0LXBlbmRpbmctYWN0aXZpdHkuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1wcm90b2NvbC1pZ25vcmVkLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Ns
b3NlLWluLW9ubWVzc2FnZS1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9jbG9zZS1pbi1zaGFyZWQtd29ya2VyLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3Nl
LWluLXdvcmtlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvd29ya2Vycy9zaGFyZWQtd29ya2VyLXNpbXBsZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy93b3JrZXItaGFuZHNoYWtlLWNo
YWxsZW5nZS1yYW5kb21uZXNzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni93b3JrZXJzL3dvcmtlci1zaW1wbGUuaHRtbDoKKyAgICAgICAgQWRkZWQg
b3ZlcnJpZGVQcmVmZXJlbmNlIGNhbGxzLCBzbyB0aGF0IHRoZSB0ZXN0cyBkb24ndCBkZXBlbmQg
b24gcGxhdGZvcm0gb3IgRFJUIGRlZmF1bHQuCisKIDIwMTItMDItMTMgIEFtaSBGaXNjaG1hbiAg
PGZpc2NobWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQg
Z2FyZGVuaW5nLiAgUmViYXNlbGluaW5nIEdQVSByZXN1bHRzLgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9hbGVydC1pbi1ldmVudC1oYW5kbGVy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9hbGVydC1pbi1ldmVudC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYWxlcnQt
aW4tZXZlbnQtaGFuZGxlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBk
ZXNjcmlwdGlvbigiTWFrZSBzdXJlIGV2ZW50IGhhbmRsZXIgY2FsbGVkIHNlcmlhbGx5LiIpOwog
CiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2Vi
S2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcg
V2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3Nl
bmQyIik7CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvYmFkLWhhbmRzaGFrZS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLWhhbmRzaGFrZS1jcmFzaC5o
dG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L2JhZC1oYW5kc2hha2UtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTEsNiArMTEsOSBAQCBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIFdlYlNvY2tldCBkb2Vzbid0
CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2Uo
IldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKKwogdmFyIHdzID0g
bmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9iYWQtaGFuZHNoYWtlLWNyYXNoIik7CiB3cy5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7CiAgICAg
ZGVidWcoIldlYlNvY2tldCBpcyBvcGVuIik7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2JhZC1zdWItcHJvdG9jb2wtY29udHJvbC1jaGFycy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwJKHJldmlzaW9uIDEw
NzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
YmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTks
NiArOSw5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBkZXNjcmlwdGlvbigi
VGVzdCBXZWJTb2NrZXQgYmFkIHN1Yi1wcm90b2NvbCBuYW1lcyBieSBjb250cm9sIGNoYXJhY3Rl
cnMuIik7CiAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJv
dG9jb2xFbmFibGVkIiwgMSk7CisKIC8vIEZhaWxzIGlmIHByb3RvY29sIGNvbnRhaW5zIGFuIGNo
YXJhY3RlciBsZXNzIHRoYW4gVSswMDIwLgogc2hvdWxkVGhyb3coJ25ldyBXZWJTb2NrZXQoIndz
Oi8vMTI3LjAuMC4xOjg4ODAvc2ltcGxlIiwgIlx1MDAwMCIpJyk7CiBzaG91bGRUaHJvdygnbmV3
IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUiLCAiXHUwMDA5IiknKTsKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1
Yi1wcm90b2NvbC1lbXB0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYmFkLXN1Yi1wcm90b2NvbC1lbXB0eS5odG1sCShy
ZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L2JhZC1zdWItcHJvdG9jb2wtZW1wdHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OSw2ICs5LDkgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIGRlc2NyaXB0aW9u
KCJUZXN0IFdlYlNvY2tldCBiYWQgc3ViLXByb3RvY29sIG5hbWVzIChlbXB0eSkuIik7CiAKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
b3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
IiwgMSk7CisKIC8vIEZhaWxzIGlmIHByb3RvY29sIGlzIGFuIGVtcHR5IHN0cmluZy4KIHNob3Vs
ZFRocm93KCduZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3NpbXBsZSIsICIiKScp
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L2JhZC1zdWItcHJvdG9jb2wtbm9uLWFzY2lpLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9iYWQtc3ViLXByb3RvY29sLW5v
bi1hc2NpaS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2JhZC1zdWItcHJvdG9jb2wtbm9uLWFzY2lpLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiBkZXNjcmlwdGlvbigiVGVzdCBXZWJTb2NrZXQgYmFkIHN1Yi1wcm90b2NvbCBuYW1l
cyBieSBub24tQVNDSUkgY2hhcnMuIik7CiAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CisKIC8vIEZhaWxzIGlmIHByb3Rv
Y29sIGNvbnRhaW5zIGFuIGNoYXJhY3RlciBncmVhdGVyIHRoYW4gVSswMDdFLgogc2hvdWxkVGhy
b3coJ25ldyBXZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvc2ltcGxlIiwgIlx1MDA3RiIp
Jyk7CiBzaG91bGRUaHJvdygnbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1w
bGUiLCAiXHUwMDgwIiknKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2J1ZmZl
cmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvYnVmZmVyZWRBbW91bnQtYWZ0
ZXItY2xvc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRp
b24oIldlYiBTb2NrZXQgYnVmZmVyZWRBbW91bnQgYWZ0ZXIgY2xvc2VkIik7CiAKIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2
V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciB3cyA9IG5ldyBXZWJTb2NrZXQo
IndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2ltcGxlIik7CiAK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xp
ZW50LWNsb3NlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni9jbGllbnQtY2xvc2UuaHRtbAkocmV2aXNpb24gMTA3NDExKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbGllbnQt
Y2xvc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24o
IldlYlNvY2tldDogVGVzdCBjbGllbnQtaW5pdGlhdGVkIGNsb3NlLiIpOwogCiB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3Nldl
YlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3
czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2NsaWVudC1jbG9zZSIp
OwogdmFyIGNsb3NlRXZlbnQ7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L2Nsb3NlLWJlZm9yZS1vcGVuLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1iZWZvcmUt
b3Blbi5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLWJlZm9yZS1vcGVuLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJUZXN0IGlmIFdlYiBTb2NrZXQgZmly
ZXMgY2xvc2UgZXZlbnQgd2hlbiBXZWJTb2NrZXQgaXMgb3BlbmVkIGFuZCBjbG9zZWQgZm9yZSBv
cGVuIGV2ZW50IGlzIHJlY2VpdmVkLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5h
YmxlZCIsIDEpOwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgw
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2VjaG8iKTsKIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigp
IHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYv
Y2xvc2UtZXZlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLWV2ZW50Lmh0bWwJKHJldmlzaW9uIDEwNzQxMSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Ut
ZXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24o
Ik1ha2Ugc3VyZSBXZWJTb2NrZXQgZmlyZXMgQ2xvc2VFdmVudCB3aGVuIGNsb3NlZC4iKTsKIAog
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktp
dEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHdzID0gbmV3IFdl
YlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1w
bGUiKTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9jbG9zZS1vbi1uYXZpZ2F0ZS1uZXctbG9jYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLW5h
dmlnYXRlLW5ldy1sb2NhdGlvbi5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLW5hdmlnYXRlLW5l
dy1sb2NhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlw
dGlvbigiVGVzdCBpZiBXZWIgU29ja2V0IGlzIGNsb3NlZCB3aGVuIG5hdmlnYXRpbmcgdG8gbmV3
IGxvY2F0aW9uLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwog
CiB2YXIgZnJhbWVEaXY7CiB2YXIgY2xvc2VkU29ja2V0OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS1vbi11bmxvYWQtYW5kLWZvcmNl
LWdjLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni9jbG9zZS1vbi11bmxvYWQtYW5kLWZvcmNlLWdjLmh0bWwJKHJldmlzaW9u
IDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvY2xvc2Utb24tdW5sb2FkLWFuZC1mb3JjZS1nYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCBpZiBXZWIgU29ja2V0IGlzIGNsb3NlZCBv
biB1bmxvYWQgYW5kIG5vdCBjcmFzaGVkIGlmIGdhcmJhZ2UgY29sbGVjdGVkIik7CiAKIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhp
ZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIGZ1bmN0aW9uIGdjKCkKIHsKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Ut
b24tdW5sb2FkLXJlZmVyZW5jZS1pbi1wYXJlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLXVubG9hZC1y
ZWZlcmVuY2UtaW4tcGFyZW50Lmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Utb24tdW5sb2FkLXJlZmVy
ZW5jZS1pbi1wYXJlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVz
Y3JpcHRpb24oIlRlc3QgaWYgV2ViIFNvY2tldCBvcGVuZWQgaW4gaWZyYW1lIGJ1dCByZWZlcnJl
ZCBpbiBwYXJlbnQgZG9jdW1lbnQgaXMgY2xvc2VkIG9uIHVubG9hZGluZyB0aGUgZnJhbWUuIik7
CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJX
ZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciBmcmFtZURp
djsKIHZhciBjbG9zZWRTb2NrZXQ7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLW9uLXVubG9hZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Utb24tdW5s
b2FkLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvY2xvc2Utb24tdW5sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJUZXN0IGlmIFdlYiBTb2NrZXQgaXMgY2xv
c2VkIG9uIHVubG9hZCIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEp
OwogCiB2YXIgZnJhbWVEaXY7CiB2YXIgY2xvc2VkU29ja2V0OwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9jbG9zZS11bnJlZi13ZWJzb2NrZXQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L2Nsb3NlLXVucmVmLXdlYnNvY2tldC5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Nsb3NlLXVu
cmVmLXdlYnNvY2tldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNj
cmlwdGlvbigiVGVzdCBpZiBXZWIgU29ja2V0IGlzIGNsb3NlZCB3aGlsZSBoYW5kc2hha2luZyBh
bmQgdW5yZWZlcmVuY2VkLCBpdCBzaG91bGQgZmlyZSBjbG9zZSBldmVudCBhdCBtb3N0IG9uY2Uu
Iik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNl
KCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciBjb3Vu
dENsb3NlRXZlbnQgPSAwOwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L2Nyb3NzLW9yaWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvY3Jvc3Mtb3JpZ2luLmh0bWwJ
KHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvY3Jvc3Mtb3JpZ2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEw
LDggQEAKIGRlc2NyaXB0aW9uKCJXZWIgU29ja2V0IENyb3NzIE9yaWdpbiB0ZXN0Iik7CiAKIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciBvcmlnaW47CiAKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZXJyb3It
ZGV0ZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9lcnJvci1kZXRlY3QuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9lcnJvci1kZXRl
Y3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIk1h
a2Ugc3VyZSBXZWJTb2NrZXQgY29ycmVjdGx5IGZpcmUgZXJyb3IgZXZlbnQgZm9yIHVua25vd24g
ZnJhbWUgdHlwZS4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsK
IAogdmFyIGVycm9yQ291bnQgPSAwOwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1sb25nZXItdGhhbi1idWZmZXIuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
aXhpZTc2L2ZyYW1lLWxlbmd0aC1sb25nZXItdGhhbi1idWZmZXIuaHRtbAkocmV2aXNpb24gMTA3
NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9m
cmFtZS1sZW5ndGgtbG9uZ2VyLXRoYW4tYnVmZmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEw
LDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgV2ViU29ja2V0IGNvcnJlY3RseSBz
a2lwIGxlbmd0aGVkIGZyYW1lIGV2ZW4gaWYgcmVjZWl2ZWQgZGF0YSBoYXMgaW5jb21wbGV0ZSBm
cmFtZS4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZl
cmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFy
IHJlY2VpdmVkX21lc3NhZ2VzID0gW107CiB2YXIgZXhwZWN0ZWRfbWVzc2FnZXMgPSBbImhlbGxv
Il07CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L2ZyYW1lLWxlbmd0aC1vdmVyZmxvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3RoLW92ZXJmbG93Lmh0
bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVuZ3RoLW92ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTksNiArOSw4IEBACiBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIFdlYlNvY2tldCBkb2VzIG5v
dCBjcmFzaCBhbmQgcmVwb3J0IGVycm9yIHdoZW4gaXQgc2VlcyBsZW5ndGggb3ZlcmZsb3ciKTsK
IAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHdzID0gbmV3
IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9m
cmFtZS1sZW5ndGgtb3ZlcmZsb3ciKTsKIHdzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHsKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJhbWUtbGVu
Z3RoLXNraXAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L2ZyYW1lLWxlbmd0aC1za2lwLmh0bWwJKHJldmlzaW9uIDEwNzQx
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZnJh
bWUtbGVuZ3RoLXNraXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVz
Y3JpcHRpb24oIk1ha2Ugc3VyZSBXZWJTb2NrZXQgY29ycmVjdGx5IHNraXAgbGVuZ3RoZWQgZnJh
bWUuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJl
bmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciBy
ZWNlaXZlZF9tZXNzYWdlcyA9IFtdOwogdmFyIGV4cGVjdGVkX21lc3NhZ2VzID0gWyJoZWxsbyIs
ICJ3b3JsZCJdOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9mcmFtZS1sZW5ndGhzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9mcmFtZS1sZW5ndGhzLmh0bWwJKHJldmlz
aW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvZnJhbWUtbGVuZ3Rocy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDYgKzgsNyBAQCB2
YXIgbWF4TGVuZ3RoID0gMTAyNTsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEp
OwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWNoYWxsZW5nZS1yYW5kb21uZXNz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9oYW5kc2hha2UtY2hhbGxlbmdlLXJhbmRvbW5lc3MuaHRtbAkocmV2aXNpb24g
MTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9oYW5kc2hha2UtY2hhbGxlbmdlLXJhbmRvbW5lc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oJ0hhbmRzaGFrZSByZXF1ZXN0IHNob3VsZCBjb250
YWluIHJhbmRvbSBjaGFsbGVuZ2UgdmFsdWVzLicpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3Rv
Y29sRW5hYmxlZCIsIDEpOwogCiB2YXIgY2hhbGxlbmdlMTsKIHZhciBjaGFsbGVuZ2UyOwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hh
a2UtZXJyb3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1lcnJvci5odG1sCShyZXZpc2lvbiAxMDc0MTEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRz
aGFrZS1lcnJvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlw
dGlvbigiSGFuZHNoYWtlIGVycm9yIHRlc3QiKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rpb24gZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LWNy
b3NzLW9yaWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktY3Jvc3Mtb3JpZ2luLmh0bWwJ
KHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktY3Jvc3Mtb3JpZ2luLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgV2ViIFNvY2tl
dCBjb25uZWN0aW9uIGZhaWxlZCBpZiBvcmlnaW4gbWlzbWF0Y2hlcy4iKTsKIAogd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIGNvbm5lY3RlZCA9IGZhbHNlOwog
dmFyIG9yaWdpbjsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktbWF4bGVuZ3RoLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2Ut
ZmFpbC1ieS1tYXhsZW5ndGguaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1tYXhs
ZW5ndGguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24o
J0Nvbm5lY3Rpb24gc2hvdWxkIGZhaWwgaW1tZWRpYXRlbHksIHJhdGhlciB0aGFuIHN1Y2NlZWRp
bmcgb3Igc3RheWluZyBpbiBsaW1ibyB1bnRpbCB0aW1lb3V0LCBpZiBoYW5kc2hha2UgaXMgbG9u
Z2VyIHRoYW4gMTAyNCBieXRlcy4nKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJs
ZWQiLCAxKTsKIAogdmFyIHRpbWVkT3V0ID0gZmFsc2U7CiB2YXIgY29ubmVjdGVkID0gZmFsc2U7
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hh
bmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2Ut
ZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRlci5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYg
KzEwLDggQEAKIGRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWls
cyBpZiBDb25uZWN0aW9uIGhlYWRlciBmaWVsZCBpc24ndCByZWZsZWN0ZWQgYnkgdGhlIHNlcnZl
ci4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVu
Y2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rp
b24gZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2Ut
ZmFpbC1ieS1uby1jci5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCdIYW5kc2hh
a2Ugc2hvdWxkIGZhaWwgd2hlbiB0aGUgZmlyc3QgbGluZSBkb2VzIG5vdCBlbmQgd2l0aCBDUkxG
LicpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgY29u
bmVjdGVkID0gZmFsc2U7CiB2YXIgb3JpZ2luOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhl
YWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktbm8tdXBncmFkZS1oZWFkZXIuaHRtbAko
cmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IFdlYlNv
Y2tldCBoYW5kc2hha2UgZmFpbHMgaWYgVXBncmFkZSBoZWFkZXIgZmllbGQgaXNuJ3QgcmVmbGVj
dGVkIGJ5IHRoZSBzZXJ2ZXIuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
b3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
IiwgMSk7CiAKIGZ1bmN0aW9uIGVuZFRlc3QoKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQt
bnVsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVkLW51bGwuaHRtbAkocmV2
aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbignQ29ubmVjdGlvbiBzaG91bGQgZmFp
bCBpbW1lZGlhdGVseSwgcmF0aGVyIHRoYW4gc3VjY2VlZGluZyBvciBzdGF5aW5nIGluIGxpbWJv
IHVudGlsIHRpbWVvdXQsIGlmIGEgbnVsbCBieXRlIGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUgaGFu
ZHNoYWtlLicpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJl
ZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2
YXIgdGltZWRPdXQgPSBmYWxzZTsKIHZhciBjb25uZWN0ZWQgPSBmYWxzZTsKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvaGFuZHNoYWtlLWZhaWwt
Ynktc3ViLXByb3RvY29sLW1pc21hdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1zdWIt
cHJvdG9jb2wtbWlzbWF0Y2guaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9oYW5kc2hha2UtZmFpbC1ieS1zdWIt
cHJvdG9jb2wtbWlzbWF0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAog
ZGVzY3JpcHRpb24oIlRlc3QgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlsIGlmIHN1YiBwcm90b2Nv
bCBuYW1lIG1pc21hdGNoZXMuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
b3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVk
IiwgMSk7CiAKIHZhciBwcm90b2NvbDsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9sb25nLWludmFsaWQtaGVhZGVyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9sb25n
LWludmFsaWQtaGVhZGVyLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvbG9uZy1pbnZhbGlkLWhlYWRlci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiTWFrZSBzdXJl
IFdlYlNvY2tldCBnaXZlcyBlcnJvcnMgb24gbG9uZyBpbnZhbGlkIHVwZ3JhZGUgaGVhZGVyLiIp
OwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgi
V2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlvbiBm
aW5pc2goKSB7CiAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXRJRCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L211bHRpcGxlLWNvbm5lY3Rpb25z
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9tdWx0aXBsZS1jb25uZWN0aW9ucy5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L211bHRpcGxl
LWNvbm5lY3Rpb25zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBACiBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIH0KIAogdmFyIHNvY2tldENvdW50ID0gNTA7
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L251
bGwtY2hhcmFjdGVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9udWxsLWNoYXJhY3Rlci5odG1sCShyZXZpc2lvbiAxMDc0
MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L251
bGwtY2hhcmFjdGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2Ny
aXB0aW9uKCJNYWtlIHN1cmUgV2ViU29ja2V0IHRyYW5zZmVyIG51bGwgY2hhcmFjdGVyIik7CiAK
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJL
aXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMSk7CiAKIHZhciB3cyA9IG5ldyBX
ZWJTb2NrZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZWNo
byIpOwogLy8gXHhmZiBpbiBzdHJpbmcgd291bGQgYmUgXHhjM1x4YmYgb24gd2Vic29ja2V0IGNv
bm5lY3Rpb24gKFVURi04KQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni9yZWxvYWQtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3JlbG9hZC1jcmFzaC5odG1sCShy
ZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3JlbG9hZC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4
IEBACiBkZXNjcmlwdGlvbigiVGVzdCBpZiBpdCBkb2Vzbid0IGNyYXNoIHdoZW4gcmVsb2FkaW5n
IHdoaWxlIFdlYiBTb2NrZXQgaXMgYnVzeSIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29s
RW5hYmxlZCIsIDEpOwogCiB2YXIgZnJhbWVEaXY7CiB2YXIgcmVsb2FkQ291bnQgPSAwOwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLWFm
dGVyLWNsb3NlLW9uLXVubG9hZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQu
aHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLWFmdGVyLWNsb3NlLW9uLXVubG9hZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiVGVzdCBpZiBXZWIgU29ja2V0
IG9wZW5lZCBpbiBpZnJhbWUsIHJlZmVycmVkIGluIHBhcmVudCBkb2N1bWVudCBpcywgYW5kIHRy
eSB0byBzZW5kKCkgcmV0dXJucyBmYWxzZS4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAxKTsKIAogdmFyIGZyYW1lRGl2OwogdmFyIGNsb3NlZFNvY2tldDsKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1lbXB0
eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2hpeGllNzYvc2VuZC1lbXB0eS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQtZW1wdHkuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIldlYlNvY2tldDog
Q2FsbGluZyBzZW5kKCkgd2l0aG91dCBhcmd1bWVudHMgc2hvdWxkIHJhaXNlIFN5bnRheEVycm9y
LiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgd3Mg
PSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhp
ZTc2L2VjaG8iKTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9zZW5kLW9iamVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC1vYmplY3QuaHRtbAkocmV2aXNp
b24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4
aWU3Ni9zZW5kLW9iamVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBk
ZXNjcmlwdGlvbigiV2ViU29ja2V0OiBzZW5kKG9iamVjdCkgc2hvdWxkIGJlIGludGVycHJldGVk
IGFzIHNlbmQob2JqZWN0LnRvU3RyaW5nKCkpLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3Rv
Y29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlvbiBjcmVhdGVFbXB0eUJsb2IoKQogewpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZW5kLXRocm93
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni9zZW5kLXRocm93Lmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VuZC10aHJvdy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiV2ViIFNvY2tldCBz
ZW5kIHRlc3QiKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAog
ZnVuY3Rpb24gZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3NlbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NlbmQuaHRtbAkocmV2aXNpb24gMTA3
NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9z
ZW5kLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJX
ZWIgU29ja2V0IHNlbmQgdGVzdCIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxl
ZCIsIDEpOwogCiBmdW5jdGlvbiBlbmRUZXN0KCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc2VydmVyLWNsb3NlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZXJ2
ZXItY2xvc2UuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zZXJ2ZXItY2xvc2UuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRpb24oIldlYlNvY2tldDogVGVzdCBzZXJ2ZXIt
aW5pdGlhdGVkIGNsb3NlLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIs
IDEpOwogCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3NlcnZlci1jbG9zZSIpOwogdmFyIGNsb3NlRXZlbnQ7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NpbXBsZS1z
dHJlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L3NpbXBsZS1zdHJlc3MuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUtc3Ry
ZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNiArOCw3IEBAIHZhciBudW1TbWFsbE1lc3Nh
Z2VzID0gMTAwMDsKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogfQogCiBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2hpeGllNzYvc2ltcGxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUuaHRtbAkocmV2aXNpb24g
MTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9zaW1wbGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOCBAQAogZGVzY3JpcHRp
b24oIlNpbXBsZSBXZWIgU29ja2V0IHRlc3QiKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAxKTsKIAogZnVuY3Rpb24gZW5kVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3NwbGl0LWJpbmFyeS1mcmFtZS1o
ZWFkZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L3NwbGl0LWJpbmFyeS1mcmFtZS1oZWFkZXIuaHRtbAkocmV2aXNpb24g
MTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni9zcGxpdC1iaW5hcnktZnJhbWUtaGVhZGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYg
KzEwLDggQEAKIGRlc2NyaXB0aW9uKCJXZWJTb2NrZXQ6IEhpeGllNzYgYmluYXJ5IGZyYW1lcyBz
aG91bGQgYmUgaGFuZGxlZCBjb3JyZWN0bHkgZXZlbiBpZiBmcmFtZSBoZWFkZXIgaXMgc3BsaXQg
aW50byBtdWx0aXBsZSBUQ1AgcGFja2V0cy4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2Nv
bEVuYWJsZWQiLCAxKTsKIAogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly9sb2NhbGhvc3Q6
ODg4MC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zcGxpdC1iaW5hcnktZnJhbWUtaGVhZGVyIik7
CiB2YXIgZXJyb3JDb3VudCA9IDA7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC13aXRoLXNwYWNlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zdWIt
cHJvdG9jb2wtd2l0aC1zcGFjZS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC13aXRoLXNw
YWNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJU
ZXN0IFdlYlNvY2tldCBoYW5kc2hha2Ugc3VjY2VzcyB3aXRoIHN1YiBwcm90b2NvbCBjb250YWlu
cyBzcGFjZS4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAog
dmFyIHByb3RvY29sOwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3N1Yi1wcm90b2NvbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvc3ViLXByb3RvY29sLmh0bWwJKHJl
dmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvc3ViLXByb3RvY29sLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDgg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0IFdlYlNvY2tldCBoYW5kc2hha2Ugc3VjY2VzcyB3aXRoIHN1
YiBwcm90b2NvbC4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsK
IAogdmFyIHByb3RvY29sOwogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmRlZmluZWQt
YXR0cmlidXRlcy5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VuZGVmaW5lZC1hdHRyaWJ1dGVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTksNiArOSw5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CiBkZXNjcmlwdGlvbigiVGVzdCBXZWJTb2NrZXQgYXR0cmlidXRlcyB3aGljaCBzaG91bGQg
bm90IGJlIGRlZmluZWQgd2hlbiBoaXhpZS03NiBwcm90b2NvbCBpcyB1c2VkLiIpOwogCitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92
ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIs
IDEpOworCiB2YXIgd3MgPSBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAuMTo4ODgwL3dlYnNv
Y2tldC90ZXN0cy9oaXhpZTc2L3NpbXBsZSIpOwogCiBzaG91bGRCZVVuZGVmaW5lZCgid3MuYmlu
YXJ5VHlwZSIpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni91bmljb2RlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91bmljb2RlLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdW5pY29k
ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiV2Vi
IFNvY2tldCB1bmljb2RlIG1lc3NhZ2UgdGVzdCIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3Rv
Y29sRW5hYmxlZCIsIDEpOwogCiBmdW5jdGlvbiBlbmRUZXN0KCkKIHsKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLWF0dHJpYnV0ZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hp
eGllNzYvdXJsLWF0dHJpYnV0ZS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC1hdHRyaWJ1dGUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsOSBAQAogCiBkZXNjcmlwdGlvbigiQm90aCAuVVJM
IGFuZCAudXJsIGF0dHJpYnV0ZXMgc2hvdWxkIHdvcmsgKGZvciBjb21wYXRpYmlsaXR5IHJlYXNv
bnMpLiIpOwogCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZCIsIDEpOworCiB2YXIgdXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAvIjsK
IHZhciB3cyA9IG5ldyBXZWJTb2NrZXQodXJsKTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtbm8tdHJhaWxpbmctc2xhc2guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhp
ZTc2L3VybC1uby10cmFpbGluZy1zbGFzaC5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC1uby10cmFpbGlu
Zy1zbGFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlv
bigiVVJMIHRoYXQgZG9lc24ndCBoYXZlIHRyYWlsaW5nIHNsYXNoIHNob3VsZCBub3QgZW1pdCBl
bXB0eSBSZXF1ZXN0LVVSSS4iKTsKIAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQi
LCAxKTsKIAogdmFyIHVybCA9ICJ3czovLzEyNy4wLjAuMTo4ODgwIjsKIHZhciBoYW5kc2hha2Vf
c3VjY2VzcyA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaGl4aWU3Ni91cmwtcGFyc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXBhcnNpbmcuaHRtbAkocmV2
aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aGl4aWU3Ni91cmwtcGFyc2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDYgKzksOSBAQAog
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogZGVzY3JpcHRpb24oIlRlc3QgV2ViU29j
a2V0IFVSTCBwYXJzaW5nLiIpOwogCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3
NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOworCiAvLyBJbnZhbGlkIHVybCB3aWxsIGZh
aWwgdG8gYmUgcGFyc2VkLgogc2hvdWxkVGhyb3coJ25ldyBXZWJTb2NrZXQoIndzOi8vamF2YXNj
cmlwdDphIiknKTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni91cmwtd2l0aC1jcmVkZW50aWFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1jcmVkZW50
aWFsLmh0bWwJKHJldmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXdpdGgtY3JlZGVudGlhbC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIGhhbmRzaGFrZSB3
aXRoIFVSTCB3aXRoIGNyZWRlbnRhaWwgaW5mbyBzdWNjZXNzLiIpOwogCiB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNv
Y2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIgdXJsID0gIndzOi8vdXNlcjpwYXNzQDEy
Ny4wLjAuMTo4ODgwL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2VjaG8tbG9jYXRpb24iOwogdmFy
IGhhbmRzaGFrZV9zdWNjZXNzID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC13aXRoLWVtcHR5LXF1ZXJ5Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91
cmwtd2l0aC1lbXB0eS1xdWVyeS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC13aXRoLWVtcHR5LXF1ZXJ5
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtl
IHN1cmUgaGFuZHNoYWtlIHdpdGggVVJMIHdpdGggZW1wdHkgcXVlcnkgY29tcG9uZW50cyBzdWNj
ZXNzLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogCiB2YXIg
dXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvZWNoby1s
b2NhdGlvbj8iOwogdmFyIGhhbmRzaGFrZV9zdWNjZXNzID0gZmFsc2U7CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3VybC13aXRoLXF1ZXJ5LWZv
ci1uby1xdWVyeS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2hpeGllNzYvdXJsLXdpdGgtcXVlcnktZm9yLW5vLXF1ZXJ5Lmh0bWwJKHJl
dmlzaW9uIDEwNzQxMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2hpeGllNzYvdXJsLXdpdGgtcXVlcnktZm9yLW5vLXF1ZXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEwLDYgKzEwLDggQEAKIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgaGFuZHNoYWtlIHdpdGgg
VVJMIHdpdGggcXVlcnkgY29tcG9uZW50cyBmYWlscyBhZ2FpbnN0IHNlcnZlciB0aGF0IGRvZXNu
J3Qgc3VwcG9ydCBxdWVyeSBjb21wb25lbnQuIik7CiAKIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9j
b2xFbmFibGVkIiwgMSk7CiAKIHZhciB1cmwgPSAid3M6Ly8xMjcuMC4wLjE6ODg4MC93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni9uby1xdWVyeT8iOwogdmFyIGhhbmRzaGFrZV9zdWNjZXNzID0gZmFs
c2U7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L3VybC13aXRoLXF1ZXJ5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni91cmwtd2l0aC1xdWVyeS5odG1sCShyZXZpc2lvbiAx
MDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2
L3VybC13aXRoLXF1ZXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDggQEAKIGRl
c2NyaXB0aW9uKCJNYWtlIHN1cmUgaGFuZHNoYWtlIHdpdGggVVJMIHdpdGggcXVlcnkgY29tcG9u
ZW50cyBzdWNjZXNzLiIpOwogCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEp
OwogCiB2YXIgdXJsID0gIndzOi8vMTI3LjAuMC4xOjg4ODAvd2Vic29ja2V0L3Rlc3RzL2hpeGll
NzYvZWNoby1sb2NhdGlvbj9xPXYiOwogdmFyIGhhbmRzaGFrZV9zdWNjZXNzID0gZmFsc2U7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dlYnNv
Y2tldC1ldmVudC10YXJnZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1ldmVudC10YXJnZXQuaHRtbAko
cmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaGl4aWU3Ni93ZWJzb2NrZXQtZXZlbnQtdGFyZ2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTksNiArOSw5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBkZXNjcmlwdGlv
bigiTWFrZSBzdXJlIFdlYlNvY2tldCBvYmplY3QgYWN0cyBhcyBFdmVudFRhcmdldC4iKTsKIAor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJs
ZWQiLCAxKTsKKwogdmFyIHdzID0gbmV3IFdlYlNvY2tldCgid3M6Ly8xMjcuMC4wLjE6ODg4MC93
ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9zaW1wbGUiKTsKIHdzLmNsb3NlKCk7IC8vIFRoYXQgaXMg
bm90IGEgdGVzdCB3aXRoIGEgV2ViU29ja2V0IHNlcnZlciwgcHJldmVudCBsb2dnaW5nIGFuIGVy
cm9yIHRvIGNvbnNvbGUuCiB2YXIgb3Blbl9ldmVudF9oYW5kbGVkID0gZmFsc2U7CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1w
ZW5kaW5nLWFjdGl2aXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93ZWJzb2NrZXQtcGVuZGluZy1hY3Rpdml0eS5odG1s
CShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oaXhpZTc2L3dlYnNvY2tldC1wZW5kaW5nLWFjdGl2aXR5Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQsNiArNCw3IEBACiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlk
ZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsK
IH0KIAogZnVuY3Rpb24gZ2MoKQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaGl4aWU3Ni93ZWJzb2NrZXQtcHJvdG9jb2wtaWdub3JlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd2Vi
c29ja2V0LXByb3RvY29sLWlnbm9yZWQuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93ZWJzb2NrZXQtcHJvdG9j
b2wtaWdub3JlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw4IEBACiBkZXNjcmlw
dGlvbigiVGVzdCBXZWJTb2NrZXQgaGFuZHNoYWtlIHN1Y2Nlc3Mgd2l0aG91dCBwcm90b2NvbCBh
bmQgaWdub3JlIFdlYlNvY2tldC1Qcm90b2NvbCBmcm9tIHNlcnZlci4iKTsKIAogd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZX
ZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIAogdmFyIHByb3RvY29sOwogCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvY2xv
c2UtaW4tb25tZXNzYWdlLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLW9ubWVzc2Fn
ZS1jcmFzaC5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMvY2xvc2UtaW4tb25tZXNzYWdlLWNyYXNo
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAKIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZCIsIDEpOwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9jbG9z
ZS1pbi1zaGFyZWQtd29ya2VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLXNoYXJlZC13b3Jr
ZXIuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLXNoYXJlZC13b3JrZXIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTEsNiArMTEsNyBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xF
bmFibGVkIiwgMSk7CiB9CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL2Nsb3NlLWluLXdv
cmtlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2hpeGllNzYvd29ya2Vycy9jbG9zZS1pbi13b3JrZXIuaHRtbAkocmV2aXNpb24gMTA3
NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93
b3JrZXJzL2Nsb3NlLWluLXdvcmtlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3
IEBACiBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIH0KIAogZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3dvcmtlcnMvc2hhcmVkLXdvcmtlci1zaW1wbGUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMv
c2hhcmVkLXdvcmtlci1zaW1wbGUuaHRtbAkocmV2aXNpb24gMTA3NDExKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL3NoYXJlZC13b3Jr
ZXItc2ltcGxlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAKIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3Nldl
YlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDEpOwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hpeGllNzYvd29y
a2Vycy93b3JrZXItaGFuZHNoYWtlLWNoYWxsZW5nZS1yYW5kb21uZXNzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3Jr
ZXJzL3dvcmtlci1oYW5kc2hha2UtY2hhbGxlbmdlLXJhbmRvbW5lc3MuaHRtbAkocmV2aXNpb24g
MTA3NDExKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3
Ni93b3JrZXJzL3dvcmtlci1oYW5kc2hha2UtY2hhbGxlbmdlLXJhbmRvbW5lc3MuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMTEsNiArMTEsNyBAQAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkIiwgMSk7CiB9CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni93b3JrZXJzL3dvcmtlci1zaW1wbGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oaXhpZTc2L3dvcmtlcnMvd29ya2VyLXNpbXBsZS5odG1sCShyZXZpc2lvbiAxMDc0MTEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L3dvcmtlcnMv
d29ya2VyLXNpbXBsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBACiBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGll
NzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAxKTsKIH0KIAogZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNpb24gMTA3NDExKQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTgyMSw5
ICs4MjEsNiBAQCBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3JvdW5kaW5nLWhhY2tzLWV4CiAjIGh0
dHA6Ly93ZWJraXQub3JnL2IvNTg5OTAKIGVkaXRpbmcvdW5kby91bmRvLWlmcmFtZS1sb2NhdGlv
bi1jaGFuZ2UuaHRtbAogCi0jIFNraXBwZWQgdW50aWwgbmV3IFdlYlNvY2tldCBwcm90b2NvbCBp
cyBpbXBsZW1lbnRlZC4gaHR0cDovL3dlYmtpdC5vcmcvYi81MDA5OQotaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS8KLQogIyBUaW1lcyBvdXQKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYzODA2CiBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1j
YWNoZWQtc3VicmVzb3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>