<?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>195422</bug_id>
          
          <creation_ts>2019-03-07 11:03:00 -0800</creation_ts>
          <short_desc>Get StorageAccess API features working on SQLite database implementation</short_desc>
          <delta_ts>2019-10-11 12:15:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>195419</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1513599</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-03-07 11:03:00 -0800</bug_when>
    <thetext>Make sure that the SQLite database backend works properly with the StorageAccess API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1560446</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-12 10:00:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/54213519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578479</commentid>
    <comment_count>2</comment_count>
      <attachid>380595</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-09 17:50:41 -0700</bug_when>
    <thetext>Created attachment 380595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578516</commentid>
    <comment_count>3</comment_count>
      <attachid>380595</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-09 21:46:52 -0700</bug_when>
    <thetext>Comment on attachment 380595
Patch

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

Thanks for checking and fixing these.

&gt; Source/WebKit/ChangeLog:10
&gt; +        use the ITP database and uncovered 3 bugs in the process.

Hooray for tests!

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1164
&gt; +    if (cookieTreatmentResult != CookieTreatmentResult::BlockAndKeep) {

Good. This now matches the behavior in the memory store after we finalized the StorageAccess API behavior.

&gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1722
&gt; +    return !!statement.getColumnInt(0) ? StorageAccessPromptWasShown::Yes : StorageAccessPromptWasShown::No;

Oh, whoops! Nice catch.

&gt; LayoutTests/ChangeLog:21
&gt; +        * http/tests/storageAccess/deny-storage-access-under-opener-database-expected.txt: Added.

Using &apos;svn copy&apos; used to show that these files were just copies of originals, then show a small patch of the change. Did you use git to generate these patches?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578682</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-10 09:11:59 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 380595 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380595&amp;action=review
&gt; 
&gt; Thanks for checking and fixing these.
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:10
&gt; &gt; +        use the ITP database and uncovered 3 bugs in the process.
&gt; 
&gt; Hooray for tests!
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1164
&gt; &gt; +    if (cookieTreatmentResult != CookieTreatmentResult::BlockAndKeep) {
&gt; 
&gt; Good. This now matches the behavior in the memory store after we finalized
&gt; the StorageAccess API behavior.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:1722
&gt; &gt; +    return !!statement.getColumnInt(0) ? StorageAccessPromptWasShown::Yes : StorageAccessPromptWasShown::No;
&gt; 
&gt; Oh, whoops! Nice catch.
&gt; 
&gt; &gt; LayoutTests/ChangeLog:21
&gt; &gt; +        * http/tests/storageAccess/deny-storage-access-under-opener-database-expected.txt: Added.
&gt; 
&gt; Using &apos;svn copy&apos; used to show that these files were just copies of
&gt; originals, then show a small patch of the change. Did you use git to
&gt; generate these patches?

I don&apos;t think there&apos;s a way to do this in git svn :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578771</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-10 12:09:22 -0700</bug_when>
    <thetext>It looks like the failing test in iOS-wk2 is a flaky timeout, but I don&apos;t see failures on iOS-wk2 bots. It&apos;s hard to know if this is related since no crash log is generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578772</commentid>
    <comment_count>6</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-10 12:12:23 -0700</bug_when>
    <thetext>hmm, strange. I&apos;ll investigate locally and see whether I can reproduce the crash. If not, I can try uploading a new patch and see what bots say.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578773</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-10 12:14:22 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; It looks like the failing test in iOS-wk2 is a flaky timeout, but I don&apos;t
&gt; see failures on iOS-wk2 bots. It&apos;s hard to know if this is related since no
&gt; crash log is generated.

It looks like Dave noticed this as well (see Bug 201274).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578776</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-10 12:16:53 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #6)
&gt; hmm, strange. I&apos;ll investigate locally and see whether I can reproduce the
&gt; crash. If not, I can try uploading a new patch and see what bots say.

If you can&apos;t reproduce locally, let&apos;s proceed with this change. The flakiness dashboard already notes that the test is flaky, but it seems like it&apos;s a timeout, not a crash.

Given that there is no crash log, it&apos;s hard to know if we are seeing the same behavior (it only indicates that an unexpected message was received by the test).

It is interesting (if true) that your changes affect that media test. It implies that it is related to timing, or perhaps the state of the UIProcess.

If all else fails, you could try running your test cases under an Asan build to see if we have some kind of memory bug that could be contributing. This wouldn&apos;t be a bug due to this patch, but there might be an existing bug that you would be uncovering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578777</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-10 12:17:54 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #8)
&gt; (In reply to Katherine_cheney from comment #6)
&gt; &gt; hmm, strange. I&apos;ll investigate locally and see whether I can reproduce the
&gt; &gt; crash. If not, I can try uploading a new patch and see what bots say.
&gt; 
&gt; If you can&apos;t reproduce locally, let&apos;s proceed with this change. The
&gt; flakiness dashboard already notes that the test is flaky, but it seems like
&gt; it&apos;s a timeout, not a crash.
&gt; 
&gt; Given that there is no crash log, it&apos;s hard to know if we are seeing the
&gt; same behavior (it only indicates that an unexpected message was received by
&gt; the test).
&gt; 
&gt; It is interesting (if true) that your changes affect that media test. It
&gt; implies that it is related to timing, or perhaps the state of the UIProcess.
&gt; 
&gt; If all else fails, you could try running your test cases under an Asan build
&gt; to see if we have some kind of memory bug that could be contributing. This
&gt; wouldn&apos;t be a bug due to this patch, but there might be an existing bug that
&gt; you would be uncovering.

You could also try uploading a patch without the test cases and see if the media bug persists. It could be that the changes to the test expectation files is doing something here, or just running the new tests is an triggering a latent bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578811</commentid>
    <comment_count>10</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-10 13:19:14 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #9)
&gt; (In reply to Brent Fulgham from comment #8)
&gt; &gt; (In reply to Katherine_cheney from comment #6)
&gt; &gt; &gt; hmm, strange. I&apos;ll investigate locally and see whether I can reproduce the
&gt; &gt; &gt; crash. If not, I can try uploading a new patch and see what bots say.
&gt; &gt; 
&gt; &gt; If you can&apos;t reproduce locally, let&apos;s proceed with this change. The
&gt; &gt; flakiness dashboard already notes that the test is flaky, but it seems like
&gt; &gt; it&apos;s a timeout, not a crash.
&gt; &gt; 
&gt; &gt; Given that there is no crash log, it&apos;s hard to know if we are seeing the
&gt; &gt; same behavior (it only indicates that an unexpected message was received by
&gt; &gt; the test).
&gt; &gt; 
&gt; &gt; It is interesting (if true) that your changes affect that media test. It
&gt; &gt; implies that it is related to timing, or perhaps the state of the UIProcess.
&gt; &gt; 
&gt; &gt; If all else fails, you could try running your test cases under an Asan build
&gt; &gt; to see if we have some kind of memory bug that could be contributing. This
&gt; &gt; wouldn&apos;t be a bug due to this patch, but there might be an existing bug that
&gt; &gt; you would be uncovering.
&gt; 
&gt; You could also try uploading a patch without the test cases and see if the
&gt; media bug persists. It could be that the changes to the test expectation
&gt; files is doing something here, or just running the new tests is an
&gt; triggering a latent bug.

I can&apos;t seem to reproduce the crash locally. I&apos;m going to try one more time with the tests in the patch, and if that still causes the crash, I&apos;ll try again without them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578828</commentid>
    <comment_count>11</comment_count>
      <attachid>380677</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-10 13:48:31 -0700</bug_when>
    <thetext>Created attachment 380677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578931</commentid>
    <comment_count>12</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2019-10-10 17:49:55 -0700</bug_when>
    <thetext>Looks like the iOS tests are all passing now, although not sure if the wincairo failures should be concerning?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579190</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-10-11 12:15:01 -0700</bug_when>
    <thetext>Committed r251016: &lt;https://trac.webkit.org/changeset/251016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1579191</commentid>
    <comment_count>14</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2019-10-11 12:15:59 -0700</bug_when>
    <thetext>(In reply to Katherine_cheney from comment #12)
&gt; Looks like the iOS tests are all passing now, although not sure if the
&gt; wincairo failures should be concerning?

WinCairo bot has other issues (can&apos;t apply patches).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380595</attachid>
            <date>2019-10-09 17:50:41 -0700</date>
            <delta_ts>2019-10-10 13:48:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195422-20191009175041.patch</filename>
            <type>text/plain</type>
            <size>166717</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIyOGZjYjZiYjA5MTYzZDU0
MzM0YTMyNGU2NTcxYWY1YjBjOTk1YTkuLjNkOGY5YzlkZDhiZDVlYjc1MjAwNTUzZWJkOTdhNWQ1
YmVhZTVkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTAtMDkgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IFN0b3JhZ2VB
Y2Nlc3MgQVBJIGZlYXR1cmVzIHdvcmtpbmcgb24gU1FMaXRlIGRhdGFiYXNlIGltcGxlbWVudGF0
aW9uICgxOTU0MjIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTU0MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTE5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWlncmF0
ZXMgdGhlIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy8gTGF5b3V0IHRlc3RzIHRvCisgICAgICAg
IHVzZSB0aGUgSVRQIGRhdGFiYXNlIGFuZCB1bmNvdmVyZWQgMyBidWdzIGluIHRoZSBwcm9jZXNz
LgorCisgICAgICAgIDEuIEl0IHdhcyBwcmV2aW91c2x5IGJsb2NraW5nIGNvb2tpZXMgdG8gYSB0
aGlyZCBwYXJ0eSBkb21haW4gd2hpY2gKKyAgICAgICAgd2FzIG5vdCBtYXJrZWQgYXMgcHJldmFs
ZW50LiBOb3cgaXQgZW5zdXJlcyB0aGF0IHRoZSB1c2VyIGlzIHByb21wdGVkCisgICAgICAgIHVz
aW5nIHRoZSBzdG9yYWdlIGFjZXNzIEFQSSByZWdhcmRpbmcgdGhhdCB0aGlyZCBwYXJ0eSBkb21h
aW4uCisKKyAgICAgICAgMi4gSXQgd2FzIG5vdCByZXF1ZXN0aW5nIHN0b3JhZ2UgYWNjZXNzIGlm
IGNvb2tpZXMgaGFkIHByZXZpb3VzbHkgYmVlbiAKKyAgICAgICAgYmxvY2tlZC4gTm93IGl0IHdp
bGwgb25seSByZXR1cm4gZWFybHkgZnJvbQorICAgICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcgorICAgICAgICBp
ZiBjb29raWUgYWNjZXNzIGlzIGFsbG93ZWQsIGFuZCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzIG90
aGVyd2lzZS4KKyAgICAgICAgCisgICAgICAgIDMuIGhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vz
c1Rocm91Z2hQcm9tcHQgd2FzIHJldHVybmluZyB0cnVlIGV2ZW4gCisgICAgICAgIGlmIHRoZSBy
ZXN1bHQgd2FzIG5vdCBwcmV2aW91c2x5IGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MuCisKKyAgICAg
ICAgQWxsIG9mIHRoZXNlIGZpeGVzIG1hdGNoIGJlaGF2aW9yIGluCisgICAgICAgIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3JhbnRl
ZFN0b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0KToKKwogMjAxOS0xMC0wOSAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRlc3RSdW5uZXIuc2V0V2Vi
UlRDVW5pZmllZFBsYW5FbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2MTY5NWM4NDliYzI0MmIzZDYwMjQ5YTUx
MTg3MDU5ZWQzOWRkNGMyLi4xZGI1NDFlNDZhODdiMmIzZDQ1YWMzMjc1MzFjNDI4OWFkMjI0NmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKQEAgLTExNTMsMjIgKzExNTMsMTkgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJgog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgYXV0byBzdWJGcmFtZVN0YXR1
cyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YkZyYW1l
RG9tYWluKTsKLQotICAgIHN3aXRjaCAoY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKHN1YkZyYW1l
RG9tYWluKSkgewotICAgIGNhc2UgQ29va2llVHJlYXRtZW50UmVzdWx0OjpCbG9ja0FuZFB1cmdl
OiB7CisgICAgYXV0byBjb29raWVUcmVhdG1lbnRSZXN1bHQgPSBjb29raWVUcmVhdG1lbnRGb3JP
cmlnaW4oc3ViRnJhbWVEb21haW4pOworICAgIAorICAgIGlmIChjb29raWVUcmVhdG1lbnRSZXN1
bHQgPT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpCbG9ja0FuZFB1cmdlKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIkNhbm5v
dCBncmFudCBzdG9yYWdlIGFjY2VzcyB0byAle3ByaXZhdGV9cyBzaW5jZSBpdHMgY29va2llcyBh
cmUgYmxvY2tlZCBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBhbmQgaXQgaGFzIG5vdCByZWNlaXZl
ZCB1c2VyIGludGVyYWN0aW9uIGFzIGZpcnN0LXBhcnR5LiIsIHN1YkZyYW1lRG9tYWluLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNj
ZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0QWNjZXNzKTsKLSAgICAgICAgfQogICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkJsb2NrQW5kS2VlcDogeworICAg
IH0KKyAgICAKKyAgICBpZiAoY29va2llVHJlYXRtZW50UmVzdWx0ICE9IENvb2tpZVRyZWF0bWVu
dFJlc3VsdDo6QmxvY2tBbmRLZWVwKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVi
dWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIk5vIG5lZWQgdG8gZ3JhbnQgc3RvcmFnZSBh
Y2Nlc3MgdG8gJXtwcml2YXRlfXMgc2luY2UgaXRzIGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIGlu
IHRoaXJkLXBhcnR5IGNvbnRleHRzLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVzOjpI
YXNBY2Nlc3MpOwotICAgICAgICB9CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENvb2tpZVRy
ZWF0bWVudFJlc3VsdDo6QWxsb3c6Ci0gICAgICAgIC8vIERvIG5vdGhpbmcKLSAgICAgICAgYnJl
YWs7Ci0gICAgfTsKKyAgICB9CiAKICAgICBhdXRvIHVzZXJXYXNQcm9tcHRlZEVhcmxpZXIgPSBo
YXNVc2VyR3JhbnRlZFN0b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0KHN1YkZyYW1lU3RhdHVzLnNl
Y29uZCwgdG9wRnJhbWVEb21haW4pOwogICAgIGlmICh1c2VyV2FzUHJvbXB0ZWRFYXJsaWVyID09
IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pIHsKQEAgLTEyMDMsOCArMTIwMCw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAgICAgIHJldHVybjsKIAogICAgIGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbkluTmVlZE9mU3RvcmFn
ZUFjY2Vzcyk7Ci0KLSAgICBpZiAoY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKGRvbWFpbkluTmVl
ZE9mU3RvcmFnZUFjY2VzcykgIT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdykKKyAgICBp
ZiAoY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcykg
PT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdykKICAgICAgICAgcmV0dXJuOwogCiAgICAg
UkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiW1Rl
bXBvcmFyeSBjb21iYXRpYmlsaXR5IGZpeF0gU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQgZm9y
ICV7cHJpdmF0ZX1zIHVuZGVyIG9wZW5lciBwYWdlIGZyb20gJXtwcml2YXRlfXMsIHdpdGggdXNl
ciBpbnRlcmFjdGlvbiBpbiB0aGUgb3BlbmVkIHdpbmRvdy4iLCBkb21haW5Jbk5lZWRPZlN0b3Jh
Z2VBY2Nlc3Muc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb3BlbmVyRG9tYWluLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwpAQCAtMTcyMyw3ICsxNzE5LDcgQEAgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3JhbnRl
ZFMKICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQogICAgICAgICBy
ZXR1cm4gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObzsKIAotICAgIHJldHVybiAhc3Rh
dGVtZW50LmdldENvbHVtbkludCgwKSA/IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6WWVz
IDogU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObzsKKyAgICByZXR1cm4gISFzdGF0ZW1l
bnQuZ2V0Q29sdW1uSW50KDApID8gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpZZXMgOiBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vOwogfQogCiBWZWN0b3I8UmVnaXN0cmFibGVE
b21haW4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5zVG9CbG9j
a0FuZERlbGV0ZUNvb2tpZXNGb3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcyYTRjNjk4OTJiYWYxNmFlNDFi
OThmY2U2YmNhYjJmOWEzYTc3ZjUuLjFiOWM4Y2M2NGRmYWI2MGJmZWI0YWZjMzkxODE0OTQ3NDA1
MDU0NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OCBAQAorMjAxOS0xMC0wOSAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgU3RvcmFnZUFjY2VzcyBB
UEkgZmVhdHVyZXMgd29ya2luZyBvbiBTUUxpdGUgZGF0YWJhc2UgaW1wbGVtZW50YXRpb24gKDE5
NTQyMikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NTQyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1MTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtaWdyYXRlcyB0ZXN0
cyBpbiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MgdG8gdXNlIHRoZSBJVFAKKyAgICAgICAgU1FM
aXRlIERhdGFiYXNlIHRvIGVuc3VyZSB0aGUgc3RvcmFnZUFjY2VzcyBBUEkgZmVhdHVyZXMgYXJl
IHdvcmtpbmcuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIFNhZmFyaSBVSSBmbG93IHdhcyBt
YW51YWxseSB0ZXN0ZWQgZm9yIHRoZSBkYXRhYmFzZQorICAgICAgICB1c2luZyB0bHN0ZXN0d2Vi
a2l0Lm9yZyAobm8gYXV0b21hdGVkIHRlc3RzIGV4aXN0IGZvciB0aGlzKS4KKworICAgICAgICBJ
dCBhbHNvIHVwZGF0ZXMgdGhlIHRlc3QgZXhwZWN0YXRpb25zIGZvciB0d28gdGVzdHMgdGhhdCBj
b25zaXN0ZW50bHkKKyAgICAgICAgdGltZW91dCBvbiB0aGUgZmxha2luZXNzIGRhc2hib2FyZCBh
bmQgd2lsbCBiZSBsb29rZWQgaW50byBpbiBhCisgICAgICAgIHNlcGFyYXRlIHJhZGFyLgorCisg
ICAgICAgIE1vc3Qgc3RvcmFnZUFjY2VzcyB0ZXN0cyBhcmUgc2tpcHBlZCBvbiBpb3MgYmVjYXVz
ZSBvZiBpbmNvbXBhdGliaWxpdHkKKyAgICAgICAgd2l0aCByZWNvZ25pemluZyB1c2VyIGludGVy
YWN0aW9uLiAKKworICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3Jh
Z2UtYWNjZXNzLXVuZGVyLW9wZW5lci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVy
LW9wZW5lci1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlz
cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0dXJlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rl
bnktd2l0aC1wcm9tcHQtZG9lcy1ub3QtcHJlc2VydmUtZ2VzdHVyZS1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRob3V0LXBy
b21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJvbXB0LXByZXNl
cnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItYXQtcG9wdXAt
dXNlci1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1h
dC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtY3Jhc2gtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
ZmFsc2UtYnktZGVmYXVsdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZXBo
ZW1lcmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVt
ZXJhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRo
aXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlm
LXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGly
ZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZW1vdmUtcmVxdWVz
dGluZy1pZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVtb3ZlLXJlcXVlc3RpbmctaWZyYW1lLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFu
ZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJh
bWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVk
LWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWFuZC1h
Y2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
Y3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVu
dC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWJ1dC1hY2Nlc3MtZnJvbS13cm9uZy1mcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1idXQt
YWNjZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1v
cmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4t
c2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUt
ZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtbmVzdGVkLWlmcmFtZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1uZXN0
ZWQtaWZyYW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1kZXRhY2gtc2hvdWxkLW5v
dC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1kZXRh
Y2gtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4t
bmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVl
c3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1o
YXZlLWFjY2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1z
aXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
dGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3Jh
Z2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jhc2gtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aC11
bmlxdWUtb3JpZ2luLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2lu
LXNhbmRib3hlZC1pZnJhbWUtd2l0aC11bmlxdWUtb3JpZ2luLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9rZW4tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFt
ZS13aXRob3V0LWFsbG93LXRva2VuLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdp
bi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
c3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2Vy
LWdlc3R1cmUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10
b2tlbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10b2tlbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10b3At
ZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10b3AtZnJhbWUtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEwLTA5
ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNjVmZDY4MWI2ZDZjZGJmOWNiNDEwYmJhZGZlMjgxN2ZlNTE2ODhkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnkt
c3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE3IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9tIGEgcHJldmFs
ZW50IGRvbWFpbiB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gaXMgZGVuaWVkIHN0b3JhZ2UgYWNj
ZXNzIHVuZGVyIGl0cyBvcGVuZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIENvb2tpZSBjcmVhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0t
LS0tCitTaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVy
LW9wZW5lci1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwOTkyZGRkZDIzNTVjNGRkMTViNGRk
Mzg0YTRjNGZkODE3OTI4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24gaXMgZGVuaWVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGl0cyBv
cGVuZXIuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVy
bCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7
CisgICAgICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1l
bnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKwor
ICAgICAgICAgICAgbmV3V2luLmNsb3NlKCk7CisgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
OworICAgICAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
IjsKKyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsg
cmVzb3VyY2VQYXRoOworICAgICAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICAgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0
LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgICAgICBs
ZXQgbmV3V2luOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUodHJ1ZSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVD
b29raWVCbG9ja2luZyhmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1dpbiA9
IHdpbmRvdy5vcGVuKHRoaXJkUGFydHlPcmlnaW4gKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
L3NldC1jb29raWUtYW5kLXJlcG9ydC1iYWNrLmh0bWwiLCAidGVzdFdpbmRvdyIpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1v
cGVuZXItaWYtYXV0by1kaXNtaXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5l
ci1pZi1hdXRvLWRpc21pc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3ZDdl
YTY0YzkyZDY0ODdmNzVjYzNjNGM0NDA0Zjk1MGE5YzQzNzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11
bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE3IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9tIGEgcHJldmFs
ZW50IGRvbWFpbiB3aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiBkb2Vzbid0IGdldCBz
dG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyIGlmIGl0IGp1c3QgbG9hZHMgYW5kIGF1dG8t
ZGlzbWlzc2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUg
Y3JlYXRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxk
IG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3Rv
cmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1
NjI1ZTYzNWY5NDhjZGJiYzViMzYwMWY2MzVjNTgwNzRjZWZhMWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vz
cy11bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuKCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4g
d2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJhY3Rpb24gZG9lc24ndCBnZXQgc3RvcmFnZSBhY2Nl
c3MgdW5kZXIgaXRzIG9wZW5lciBpZiBpdCBqdXN0IGxvYWRzIGFuZCBhdXRvLWRpc21pc3Nlcy4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAg
ICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAg
ICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9y
aWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgbmV3V2luLmNsb3NlKCk7CisgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPVNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgZmluaXNo
VGVzdCk7CisgICAgfQorCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvc3RvcmFnZUFjY2Vzcy9y
ZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdp
biArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29v
a2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworICAgIHZhciBuZXdXaW47
CisKKyAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRv
d3MoKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4s
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQg
Zm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1dpbiA9IHdpbmRvdy5vcGVuKHRo
aXJkUGFydHlPcmlnaW4gKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUtYW5k
LXJlcG9ydC1iYWNrLmh0bWwiLCAidGVzdFdpbmRvdyIpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNl
cnZlLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2Rlbnktd2l0aC1wcm9tcHQtZG9lcy1ub3QtcHJlc2VydmUtZ2VzdHVy
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FkMjEwOGNiYjMzZjUwZThkZmU0
YjI5ODUzMTk2MTc1NTM3ZWZkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNlcnZlLWdl
c3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQg
YSBjcm9zcy1vcmlnaW4gaWZyYW1lIGNhbiBub3Qgb3BlbiBhIHdpbmRvdyBpZiBzdG9yYWdlIGFj
Y2VzcyBpcyBleHBsaWNpdGx5IGRlbmllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgV2luZG93IHdhcyBzdWNjZXNzZnVsbHkgb3BlbmVkIHdpdGggdXNlciBpbnRlcmFj
dGlvbiBzaW5jZSB0aGUgdXNlciB3YXMgbmV2ZXIgY29uc3VsdGVkL3Byb21wdGVkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRv
ZXMtbm90LXByZXNlcnZlLWdlc3R1cmUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNlcnZlLWdl
c3R1cmUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGUwNzY2ZmJiMWRlOTZlZTZmNDY2YTlj
ODMxZjJjZDhmOTRiODZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2Rlbnktd2l0aC1wcm9tcHQtZG9lcy1ub3QtcHJlc2VydmUtZ2VzdHVy
ZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBjYW4gbm90IG9wZW4gYSB3
aW5kb3cgaWYgc3RvcmFnZSBhY2Nlc3MgaXMgZXhwbGljaXRseSBkZW5pZWQuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAi
bG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0
aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2lu
ID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoIlBBU1MgIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2Uo
IkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQo
ZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAg
ICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4i
KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3Mo
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJs
ZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9y
YWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0
c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9y
ZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS1hbmQtcG9wLXdpbmRvdy5odG1sI3VzZXJTaG91
bGROb3RHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxkTm90R3Jh
bnRBY2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJv
bXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJvbXB0LXByZXNlcnZlcy1n
ZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGFmZGUzNGQ3NDI2M2Nj
NTJlYmZjZDY0MzcxMTYxNjAxZjYzMjEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktd2l0aG91dC1wcm9tcHQtcHJlc2VydmVzLWdl
c3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQg
YSBjcm9zcy1vcmlnaW4gaWZyYW1lIGNhbiBvcGVuIGEgd2luZG93IGlmIHN0b3JhZ2UgYWNjZXNz
IGlzIGRlbmllZCB3aXRob3V0IHByb21wdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgV2luZG93IHdhcyBzdWNjZXNzZnVsbHkgb3BlbmVkIHdpdGggdXNlciBpbnRlcmFj
dGlvbiBzaW5jZSB0aGUgdXNlciB3YXMgbmV2ZXIgY29uc3VsdGVkL3Byb21wdGVkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJvbXB0
LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRob3V0LXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzY5NTBjMWJiM2FiOTU0YzFhNjZiNjk5NTYyODA5ZGVh
YWMyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS13aXRob3V0LXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBjYW4gb3BlbiBhIHdpbmRvdyBpZiBzdG9yYWdlIGFj
Y2VzcyBpcyBkZW5pZWQgd2l0aG91dCBwcm9tcHQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAi
OworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVz
dCArICIvdGVtcCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNz
YWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MgIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRh
dGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7Cisg
ICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoZmFsc2UpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBnZXQgbG9nZ2VkIGZvciB1
c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9u
bG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nl
c3MtaWZyYW1lLWFuZC1wb3Atd2luZG93Lmh0bWwjdXNlclNob3VsZE5vdEdyYW50QWNjZXNzLHVz
ZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNh
bWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5l
ci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNjNjJiZmNkZTk4OTBiYWJiYzk5OGFhMDQ5ZWY4ZDk4ZjkwODIyMWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5k
b3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aCBwcmV2aW91cyB1c2VyIGludGVyYWN0aW9u
IGdldHMgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgaXRzIG9wZW5lciBpZiBpdCBnZXRzIHVzZXIgaW50
ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvb2tpZSBj
cmVhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29v
a2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVy
ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dy
YW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzQ4NWY1MDdlNjE4ZjFhNzI5Mzc2NTNjMThkNTQ3M2E2
Y2I4MjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1hdC1wb3B1cC11c2VyLWdl
c3R1cmUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW4o
KSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2lu
IHdpbmRvdyBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIHByZXZpb3VzIHVzZXIgaW50ZXJh
Y3Rpb24gZ2V0cyBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyIGlmIGl0IGdldHMgdXNl
ciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlm
IChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgbmV3V2lu
LmNsb3NlKCk7CisgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tp
ZS4iLCBmaW5pc2hUZXN0KTsKKyAgICB9CisKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9y
YWdlQWNjZXNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVO
YW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMg
PSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisgICAg
dmFyIG5ld1dpbjsKKworICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQ
YXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9y
aWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3V2luID0gd2lu
ZG93Lm9wZW4odGhpcmRQYXJ0eU9yaWdpbiArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcHJv
ZHVjZS11c2VyLWdlc3R1cmUtc2V0LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbCIsICJ0ZXN0
V2luZG93Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC13aXRoLXByb21w
dC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdl
YzRjZjdmNzg0MWQ1N2M2OGRkYjVmYTY2Y2I1NjM0YjMxZGEzYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC13aXRoLXByb21wdC1w
cmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIGNhbiBkaXNwbGF5IGEgd2luZG93IGlmIHN0
b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIFdpbmRvdyB3YXMgc3VjY2Vzc2Z1bGx5IG9wZW5lZCB3aXRoIHVzZXIgaW50ZXJhY3Rp
b24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXdp
dGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtcHJlc2VydmVzLWdlc3R1
cmUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzI1MTg2MzQ1MjJmNTlhMzBlYWJlNWRiZGM5
NzJhNmViZDIyOTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBjYW4gZGlzcGxheSBhIHdpbmRvdyBpZiBzdG9y
YWdlIGFjY2VzcyBpcyBncmFudGVkLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAg
ICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3Rl
bXAiOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIp
ICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxh
Y2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3Nh
Z2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAg
ICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3Ag
KyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
ZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKGZhbHNlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1p
ZnJhbWUtYW5kLXBvcC13aW5kb3cuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3Vs
ZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFt
ZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtY3Jhc2gtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1OTViYWExMDM3NzY4
MDFkYmNlZmEyMjZjYzViYmRkODE4ZWViMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCBxdWVyeWluZyBzdG9y
YWdlIGFjY2VzcyBBUEkgb24gYSBkZXRhY2hlZCBmcmFtZSBkb2Vzbid0IGNyYXNoLgorCitbb2Jq
ZWN0IEhUTUxEb2N1bWVudF0KK1NVQ0NFU1M6IERpZCBub3QgY3Jhc2guCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
Y3Jhc2gtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9oYXMtc3RvcmFnZS1hY2Nlc3MtY3Jhc2gtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGQ5
ZTA4NzkzNGMyN2Y1ODljZTgyMjZlZjMwYzM1NWNjZmY1MDliCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1j
cmFzaC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgeworICAg
ICAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikKKyAgICAgICAg
Yy5pbm5lckhUTUwgKz0gKHN0ciArICI8YnI+IikKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHZhciB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICAgICAg
dmFyIHRlc3RGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAg
ICB0ZXN0RGl2LmFwcGVuZENoaWxkKHRlc3RGcmFtZSk7CisgICAgICAgIHZhciB0ZXN0RnJhbWVE
b2N1bWVudCA9IHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgIHRlc3RGcmFtZS5v
dXRlckhUTUwgPSB0ZXN0RnJhbWVEb2N1bWVudDsKKworICAgICAgICB0ZXN0RnJhbWVEb2N1bWVu
dC5oYXNTdG9yYWdlQWNjZXNzKCk7CisKKyAgICAgICAgZGVidWcoIlNVQ0NFU1M6IERpZCBub3Qg
Y3Jhc2guIikKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InRlc3QiPgorICAgICAgICA8cD5U
ZXN0IHRoYXQgcXVlcnlpbmcgc3RvcmFnZSBhY2Nlc3MgQVBJIG9uIGEgZGV0YWNoZWQgZnJhbWUg
ZG9lc24ndCBjcmFzaC48L3A+CisgICAgPC9kaXY+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yODlkYWE4Y2ViYjNkMTdkMzg2MDczMDY4Y2UxYThlNDRlYWY0MGUwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1z
dG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSByZXR1
cm5zIGZhbHNlIGZvciBhIDNyZC1wYXJ0eSBpZnJhbWUgYnkgZGVmYXVsdC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNv
b2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY0MWNmYmIxNDczNTYzM2JmMzA3NjBmNmI5MTI4NWNjZjM5OWQw
MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGRvY3Vt
ZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSByZXR1cm5zIGZhbHNlIGZvciBhIDNyZC1wYXJ0eSBpZnJh
bWUgYnkgZGVmYXVsdC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFs
c2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAg
ICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAg
ICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIi
KSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGREZW55QWNjZXNz
IjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1l
bnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
ZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1i
eS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI1
ZTgxNDVhYTNlOTcxOTdlODE3NDMxYTI2ZjMzMTQ5YTM0Y2I5MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
ZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK1Rlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIHJldHVybnMg
ZmFsc2UgZm9yIGEgM3JkLXBhcnR5IGlmcmFtZSBieSBkZWZhdWx0IChlcGhlbWVyYWwgc2Vzc2lv
bikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE5vIHN0b3JhZ2UgYWNj
ZXNzLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0gIk5v
IGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vz
cy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1
NjYxZjEwMWVkZDE1ZmFhYzA0NTIwMGE1MjJjYTI3MzNkZWZhYjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LWZhbHNlLWJ5LWRlZmF1bHQtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzNyBA
QAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3Rv
cmFnZUFjY2VzcygpIHJldHVybnMgZmFsc2UgZm9yIGEgM3JkLXBhcnR5IGlmcmFtZSBieSBkZWZh
dWx0IChlcGhlbWVyYWwgc2Vzc2lvbikuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1l
c3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkg
eworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09
IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgi
UEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBm
cm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVz
dCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVx
dWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9oYXMtc3RvcmFnZS1h
Y2Nlc3MtaWZyYW1lLmh0bWwjcG9saWN5U2hvdWxkRGVueUFjY2VzcyI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
aGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mzk4Yzdi
ZDBkMDVhMmQzODUxYzk3YTQ4MTk4ZTQ2ZjNmNzIzNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBm
cm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gZG9lcyBub3QgaGF2
ZSBzdG9yYWdlIGFjY2Vzcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Tm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2
ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRo
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdp
dGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMWRkMWVkOGY0
OTc2ZWNiNGM3ZTM3NmY5ODg2ZmFhMmE2YWQ5ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJl
dmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNy
b3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aCB1c2VyIGludGVy
YWN0aW9uIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuIik7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVz
c2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9m
KCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRh
dGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJv
eCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0
cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2Vz
cyI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNz
LWlmcmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5
LWhhcy1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1o
YXMtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU1NDA0OTI4Nzc4
YTI2ZjBiZDdmYTg5ZTE1Y2Q3ZmIxMTRlYzIxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10
aGlyZC1wYXJ0eS1oYXMtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorVGVzdHMgdGhhdCBkb2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgcmV0dXJucyB0cnVl
IGZvciBhIDNyZC1wYXJ0eSBpZnJhbWUgaWYgdGhlIDNyZC1wYXJ0eSBoYXMgY29va2llcyBzZXQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhhcyBzdG9yYWdlIGFjY2Vz
cy4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29raWU9dmFsdWUsIGNvb2tpZXMgc2Vl
biBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUiOiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVl
LWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQt
cGFydHktaGFzLWNvb2tpZXMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yzg2Njg5MzUzNGYz
NmRiZjBkMWZmNmNiYjI5YTkxNjVkOWU4ZTAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRo
aXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3RvcmFnZUFj
Y2VzcygpIHJldHVybnMgdHJ1ZSBmb3IgYSAzcmQtcGFydHkgaWZyYW1lIGlmIHRoZSAzcmQtcGFy
dHkgaGFzIGNvb2tpZXMgc2V0LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdl
LCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAg
ICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7
CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1Mg
IiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0OworICAgICAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09
ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3Nl
dC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3
LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGly
ZC1wYXJ0eS1oYXMtY29va2llcy5odG1sI2ZpcnN0UGFydHlDb29raWVTZXQiOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsZXQgaWZy
YW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFj
Y2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJh
bWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29r
aWVzLWVwaGVtZXJhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHkt
aGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZTU0MDQ5Mjg3NzhhMjZmMGJkN2ZhODllMTVjZDdmYjExNGVjMjFlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vz
cy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBkb2N1bWVudC5oYXNTdG9yYWdl
QWNjZXNzKCkgcmV0dXJucyB0cnVlIGZvciBhIDNyZC1wYXJ0eSBpZnJhbWUgaWYgdGhlIDNyZC1w
YXJ0eSBoYXMgY29va2llcyBzZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIEhhcyBzdG9yYWdlIGFjY2Vzcy4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUi
OiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJh
bC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJh
bC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZmNiNzk3YWY0ZThmYThmMmZmM2IzYTYzYjc3
NDczODBkNzA2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNv
b2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2Vzcygp
IHJldHVybnMgdHJ1ZSBmb3IgYSAzcmQtcGFydHkgaWZyYW1lIGlmIHRoZSAzcmQtcGFydHkgaGFz
IGNvb2tpZXMgc2V0IChlcGhlbWVyYWwgc2Vzc2lvbikuIik7CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
cmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2Fn
ZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQ
QVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0OworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZpcnN0UGFydHlDb29r
aWVTZXQiKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHN0YXRp
c3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9
Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2ll
cy5odG1sI2ZpcnN0UGFydHlDb29raWVTZXQiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5z
cmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1z
dG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlbW92ZS1yZXF1ZXN0aW5nLWlmcmFtZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVtb3ZlLXJlcXVlc3RpbmctaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MDU0NmQyOTMyNzk0MzA5NDM2MjNlOTljMzdiNzE3NjM2YjIzMGQyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlbW92ZS1yZXF1ZXN0
aW5nLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMg
dGhhdCBTdG9yYWdlIEFjY2VzcyBBUEkgY2FsbHMgd29yayB3ZWxsIGZvciByZW1vdmVkIGZyYW1l
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaWZyYW1lIHJlbW92ZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlbW92ZS1yZXF1
ZXN0aW5nLWlmcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlbW92ZS1yZXF1ZXN0aW5nLWlmcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyNjE3NGJjNGUxYWNiN2Q0ZDA5M2U0ZjVlM2UwMTVlNmIwNTNjZjYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVtb3ZlLXJlcXVl
c3RpbmctaWZyYW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgU3RvcmFnZSBBY2Nlc3MgQVBJIGNh
bGxzIHdvcmsgd2VsbCBmb3IgcmVtb3ZlZCBmcmFtZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAKKyAg
ICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKCkg
eworICAgICAgICByZXF1ZXN0aW5naWZyYW1lLnJlbW92ZSgpOworICAgICAgICB0ZXN0UGFzc2Vk
KCJpZnJhbWUgcmVtb3ZlZC4iKTsKKyAgICAgICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAwLjUp
OworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SWQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAg
ICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBjb25zdCBpZnJhbWVJ
RCA9ICJyZXF1ZXN0aW5naWZyYW1lIjsKKyAgICBjb25zdCBpZnJhbWVTb3VyY2UgPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1h
Y2Nlc3MtYW5kLWltbWVkaWF0ZWx5LXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sIjsKKworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
aWZyYW1lSUQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisgICAgICAgIGlmcmFtZUVs
ZW1lbnQuaWQgPSBpZnJhbWVJRDsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSBpZnJhbWVT
b3VyY2U7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNy
b3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWRmNTM3YjI5ZjMzNjg3MmE1MjExOTRkYTRkMWYzM2VlODA1NThmMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9y
ZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGNyb3Nz
LW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlz
IG5vdCBzYW5kYm94ZWQgYW5kIHRoZSB1c2VyIGFjY2VwdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5j
b29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0gIk5vIGNvb2tpZXMiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlOTliYWE2NTJkZTc4NDc0NmU2MTZlMDNmMjQ2ZjJmZmUxZmIwYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVk
IGlmIHRoZSBpZnJhbWUgaXMgbm90IHNhbmRib3hlZCBhbmQgdGhlIHVzZXIgYWNjZXB0cy4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2Nh
bGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdl
IGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAg
ICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2
ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZv
ciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNT
dG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBvbmxvYWQ9
InJ1blRlc3QoKSIgaWQ9IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiIHNyYz0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3Rv
cmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRC
ZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9y
aWdpbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
Yzc1ZTY3OGMyOTNhNzNlNzYyNzQ5OTNjNmQ1ZjgzNDBiOGJjZTY2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIHN0b3Jh
Z2UgYWNjZXNzIGlzIGdyYW50ZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0aGUg
YWxsb3cgdG9rZW4sIGFuZCB0aGUgdXNlciBvcHRzIGluLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29v
a2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVzIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
Y3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
Y2ZlOWFiNjA0N2JhOTQwYTQwMWVkNTc2YzZjYWU2NTZmNThkNDY4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGNy
b3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1l
IGlzIHNhbmRib3hlZCwgaGFzIHRoZSBhbGxvdyB0b2tlbiwgYW5kIHRoZSB1c2VyIG9wdHMgaW4u
Iik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7Cisg
ICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFn
ZUFjY2VzcyIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc3RvcmFnZS1hY2Nlc3Mt
YnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ct
bW9kYWxzIiBvbmxvYWQ9InJ1blRlc3QoKSIgaWQ9IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3Jh
Z2VBY2Nlc3MiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNj
ZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05vdFNh
bWVPcmlnaW5JZnJhbWUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFj
Y2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4t
d2l0aC11c2VyLWludGVyYWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20t
cHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJp
Z2h0LWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTg0ZTdmMDdkYWJm
M2UzNTc5MTI5MGYzZWRlOTcwMDczNTU0M2YzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2Vy
LWludGVyYWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1MCBAQAorVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIHN0
b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0
aGUgYWxsb3cgdG9rZW4sIHRoZSBpZnJhbWUgb3JpZ2luIGlzIGEgcHJldmFsZW50IHJlc291cmNl
LCB0aGUgaWZyYW1lIG9yaWdpbiBoYXMgaGFkIHVzZXIgaW50ZXJhY3Rpb24sIHRoZSB1c2VyIG9w
dHMgaW4sIGFuZCB0aGUgZnJhbWUgaXMgdGhlIG9uZSB3aXRoIGFjY2Vzcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQuIGRv
Y3VtZW50LmNvb2tpZSA9PSBmaXJzdFBhcnR5Q29va2llPXZhbHVlLCBjb29raWVzIHNlZW4gc2Vy
dmVyLXNpZGUgPT0geyJmaXJzdFBhcnR5Q29va2llIjoidmFsdWUifQorRGlkIG5hdmlnYXRlIGlm
cmFtZSBzYW1lLXNpdGUgYW5kIHdpbGwgbm93IGNoZWNrIHRoYXQgaXQgc3RpbGwgaGFzIHN0b3Jh
Z2UgYWNjZXNzLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1
ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVl
In0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29r
aWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVl
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIG5v
dCByZWNlaXZlIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCBub3QgcmVjZWl2ZSBjb29raWVzLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUg
Y29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorQWZ0
ZXIgdGhlIHRvcCBmcmFtZSBuYXZpZ2F0ZXMgdGhlIHN1YiBmcmFtZSBjcm9zcy1zaXRlIGFuZCBi
YWNrLCB0aGUgc3ViIGZyYW1lIHNob3VsZCBubyBsb25nZXIgaGF2ZSBhY2Nlc3MgdG8gY29va2ll
cy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJv
eGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWFu
ZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ2OTg1ZDRiMDQ5YTNhYTI1MDA3N2I3NTMyMGFmYzZhYzRjZDIyMTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQt
Z3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50
LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1l
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgc2FuZGJveGVkLCBoYXMg
dGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBpcyBhIHByZXZhbGVudCByZXNvdXJj
ZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCB1c2VyIGludGVyYWN0aW9uLCB0aGUgdXNlciBv
cHRzIGluLCBhbmQgdGhlIGZyYW1lIGlzIHRoZSBvbmUgd2l0aCBhY2Nlc3MuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0Ojgw
MDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisKKyAgICAgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4w
LjE6ODAwMCI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0
eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0
UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVO
YW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgICAgIGNvbnN0IHBhcnRpdGlvbmVkQ29va2llTmFt
ZSA9ICJwYXJ0aXRpb25lZENvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRp
dGlvbmVkQ29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tp
ZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICAgICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6
Ly8iICsgcGFydGl0aW9uSG9zdCArICIvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWlu
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZGF0YWJh
c2UuaHRtbCI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29r
aWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIgKyBwYXJ0
aXRpb25lZENvb2tpZU5hbWU7CisKKyAgICAgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAg
ICAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50Lm9u
bG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3Nh
Z2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWpl
Y3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBwcmVtYXR1cmVseSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAi
I3N0ZXAyIjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGZpcnN0LXBh
cnR5IGNvb2tpZSBkb2VzIGdldCBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgor
ICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29r
aWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFz
IHByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uCisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZmlyc3Qt
cGFydHkgY29va2llIGRvZXMgbm90IGdldCBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90IHJl
Y2VpdmUgY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA0
IjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7
CisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQgYSBjb29raWUgZm9yIGxvY2FsaG9z
dC4KKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAg
ICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVy
IDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIG5vdCByZWNlaXZl
IGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgaWZy
YW1lIHRoYXQgd2lsbCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzLgorICAgICAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIs
ICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBh
bGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
aWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdl
QWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sP2JvZ3Vz
I3VzZXJTaG91bGRHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxk
R3JhbnRBY2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAg
ICAgICAgIC8vIE5hdmlnYXRlIHRoZSBmcmFtZSBzYW1lLXNpdGUuCisgICAgICAgICAgICAgICAg
ICAgIGxldCBleGlzdGluZ0lmcmFtZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGhlSWZy
YW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICBleGlz
dGluZ0lmcmFtZTEub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVidWcoIkRpZCBuYXZpZ2F0ZSBpZnJhbWUgc2FtZS1zaXRlIGFuZCB3aWxsIG5vdyBjaGVj
ayB0aGF0IGl0IHN0aWxsIGhhcyBzdG9yYWdlIGFjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l
LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoInJlcG9ydEJhY2tDb29raWVzIiwgImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIpOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAg
ICAgICBleGlzdGluZ0lmcmFtZTEuc3JjID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9H
ZXRDb29raWVzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj
YXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA5IjsKKyAgICAgICAgICAgICAgICAgICAgLy8gTmF2aWdhdGUgdGhlIGZyYW1lIGNy
b3NzLXNpdGUuIFRoaXMgc2hvdWxkIGNsZWFyIG91dCBzdG9yYWdlIGFjY2Vzcy4KKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGV4aXN0aW5nSWZyYW1lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAg
ICAgIGV4aXN0aW5nSWZyYW1lMi5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgICAg
ICBleGlzdGluZ0lmcmFtZTIuc3JjID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdDsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA5IjoKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMTAiOworICAg
ICAgICAgICAgICAgICAgICAvLyBBZ2FpbiBvcGVuIGxvY2FsaG9zdCBpbiB0aGUgZXhpc3Rpbmcg
ZnJhbWUgYW5kIGNoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVu
ZGVyIDEyNy4wLjAuMSBzaW5jZSBpdCBoYXMgYmVlbiBuYXZpZ2F0ZWQgY3Jvc3Mtc2l0ZS4KKyAg
ICAgICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nSWZyYW1lMyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAg
ICAgICAgICAgIGV4aXN0aW5nSWZyYW1lMy5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAg
ICAgICAgICBleGlzdGluZ0lmcmFtZTMuc3JjID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHRoZSB0b3AgZnJhbWUgbmF2aWdhdGVzIHRo
ZSBzdWIgZnJhbWUgY3Jvc3Mtc2l0ZSBhbmQgYmFjaywgdGhlIHN1YiBmcmFtZSBzaG91bGQgbm8g
bG9uZ2VyIGhhdmUgYWNjZXNzIHRvIGNvb2tpZXMuIjsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAxMCI6CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlCYXNlVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3Nh
Z2UsIGZhbHNlKTsKKworICAgICAgICBydW5UZXN0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1l
LWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1m
cm9tLXdyb25nLWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2lu
LXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1idXQtYWNjZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViMzI2M2U4MWVlNjYwMzVjMWMwNTkyYjNlNDAxOTQwYzk1OWViYTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJl
dmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25n
LWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUzIEBACitUZXN0cyB0aGF0
IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBpZnJh
bWUgaXMgc2FuZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBp
cyBhIHByZXZhbGVudCByZXNvdXJjZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCB1c2VyIGlu
dGVyYWN0aW9uLCB0aGUgdXNlciBvcHRzIGluLCBidXQgdGhlIGZyYW1lIGlzIG5vdCB0aGUgb25l
IHdpdGggYWNjZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdG9y
YWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUi
OiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlv
bmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tp
ZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1No
b3VsZCBub3QgcmVjZWl2ZSBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitTaG91bGQgbm90IHJlY2VpdmUgY29va2llcy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+JworLS0tLS0t
LS0KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+JworLS0tLS0tLS0KK1Nob3Vs
ZCBub3QgcmVjZWl2ZSBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmly
c3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25l
ZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNz
LWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRo
LXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25nLWZyYW1lLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3Jh
bnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25nLWZyYW1lLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU1NDg2OTY3YmFjMDRmNDdlMjdjM2JlZjZjOWViYmFl
NWZkOTA4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1p
ZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1idXQtYWNj
ZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDE0NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBj
cm9zcy1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmllZCBpZiB0aGUgaWZyYW1l
IGlzIHNhbmRib3hlZCwgaGFzIHRoZSBhbGxvdyB0b2tlbiwgdGhlIGlmcmFtZSBvcmlnaW4gaXMg
YSBwcmV2YWxlbnQgcmVzb3VyY2UsIHRoZSBpZnJhbWUgb3JpZ2luIGhhcyBoYWQgdXNlciBpbnRl
cmFjdGlvbiwgdGhlIHVzZXIgb3B0cyBpbiwgYnV0IHRoZSBmcmFtZSBpcyBub3QgdGhlIG9uZSB3
aXRoIGFjY2Vzcy4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKworICAg
ICAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29u
c3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgICAgICBj
b25zdCByZXNvdXJjZVBhdGggPSAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzIjsKKyAgICAgICAg
Y29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRo
OworICAgICAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2ll
IjsKKyAgICAgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNv
b2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsK
KyAgICAgICAgY29uc3QgcGFydGl0aW9uZWRDb29raWVOYW1lID0gInBhcnRpdGlvbmVkQ29va2ll
IjsKKyAgICAgICAgY29uc3Qgc3ViUGF0aFRvU2V0UGFydGl0aW9uZWRDb29raWUgPSAiL3NldC1j
b29raWUucGhwP25hbWU9IiArIHBhcnRpdGlvbmVkQ29va2llTmFtZSArICImdmFsdWU9dmFsdWUi
OworICAgICAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsg
Ii9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2Fu
ZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9u
LWJ1dC1hY2Nlc3MtZnJvbS13cm9uZy1mcmFtZS1kYXRhYmFzZS5odG1sIjsKKyAgICAgICAgY29u
c3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJz
dFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHBhcnRpdGlvbmVkQ29va2llTmFtZTsKKwor
ICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAg
ICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgICAgICBpZiAob25Mb2FkSGFu
ZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikg
IT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFj
ZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAg
ICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIu
YWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7
CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHByZW1hdHVyZWx5IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIC8vIFNldCBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmly
c3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZmlyc3QtcGFydHkgY29va2llIGRvZXMgZ2V0IHNl
bnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNz
YWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAg
ICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50LgorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGlj
c1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgdGhlIGZpcnN0LXBhcnR5IGNvb2tpZSBkb2VzIG5vdCBnZXQgc2VudCBmb3IgbG9jYWxob3N0
IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9
U2hvdWxkIG5vdCByZWNlaXZlIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IGNvb2tpZSBm
b3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvU2V0UGFydGl0aW9uZWRDb29raWUsIHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQg
bm90IHJlY2VpdmUgY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgICAgIGxl
dCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFs
bG93LXN0b3JhZ2UtYWNjZXNzLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1zY3JpcHRzIGFsbG93
LXNhbWUtb3JpZ2luIGFsbG93LW1vZGFscyIpOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVF
bGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVx
dWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9
ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nl
c3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3Vs
ZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vz
cyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICAgICAgLy8g
Q2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xIHNpbmNlIHdlJ3JlIG9wZW5pbmcgYSBuZXcgZnJhbWUuCisgICAgICAgICAgICAgICAgICAg
IG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZt
ZXNzYWdlPVNob3VsZCBub3QgcmVjZWl2ZSBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eUJhc2VVcmwpKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1p
ZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20t
cHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgwZjAyNGEwNzk4OGNjZDYyN2YyMzQxYzhlMWRlMWQ5ODFjMGQ0ZWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZy
b20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgc2FuZGJveGVkLCBoYXMg
dGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBpcyBhIHByZXZhbGVudCByZXNvdXJj
ZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCByZWNlbnQgdXNlciBpbnRlcmFjdGlvbiwgYW5k
IHRoZSB1c2VyIG9wdHMgaW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVz
IHNlZW4gc2VydmVyLXNpZGUgPT0gIk5vIGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1l
LWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MzExNDE5MGM0MDQxNzc4NWU3NGE1MTdmMzI4Mzk5OGUyZDFiNGFmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
Y3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJh
bWUgaXMgc2FuZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBp
cyBhIHByZXZhbGVudCByZXNvdXJjZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCByZWNlbnQg
dXNlciBpbnRlcmFjdGlvbiwgYW5kIHRoZSB1c2VyIG9wdHMgaW4uIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50
LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFu
IHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2
YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAy
OworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVy
WCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRl
ci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2Vz
cyIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhv
c3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIp
OworICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNl
dEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2
YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0
b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9y
YWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJl
Q29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxl
bWVudCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1n
cmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQt
ZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY0MGY2Yzg1YzcwNTcxYTY4NDllYzkwYTg2NzAwYTA1Nzk3NmI0MTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3Jh
bnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2Vz
cyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0aGUgYWxsb3cgdG9r
ZW4sIHRoZSBpZnJhbWUgb3JpZ2luIGlzIGEgcHJldmFsZW50IHJlc291cmNlLCB0aGUgaWZyYW1l
IG9yaWdpbiBoYXMgbm90IGhhZCB1c2VyIGludGVyYWN0aW9uLCBhbmQgdGhlIHVzZXIgb3B0cyBp
bi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mg
d2FzIGRlbmllZC4gZG9jdW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRl
ID09ICJObyBjb29raWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVu
dC1kb21haW4td2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWRjYWEzYThlYjcwNThlZTNjZDM3OTc5N2JlNmViYzQ5MDBiZDJiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1n
cmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQt
ZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGNyb3NzLW9y
aWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBpZnJhbWUgaXMgc2Fu
ZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBpcyBhIHByZXZh
bGVudCByZXNvdXJjZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIG5vdCBoYWQgdXNlciBpbnRlcmFj
dGlvbiwgYW5kIHRoZSB1c2VyIG9wdHMgaW4uIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikg
IT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFj
ZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlz
ZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAg
ICB9CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zZXRBdHRy
aWJ1dGUoInNhbmRib3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nlc3MtYnktdXNlci1hY3RpdmF0aW9u
IGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxzIik7CisgICAgICAg
ICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAg
IGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7
CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1l
Lmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lT
aG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1uZXN0
ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRi
b3hlZC1uZXN0ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTVk
ZTZkZjgxNzc4YmYwYmZjMjMzNDBlMDJhODcxYmFlYjM4ZTQyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFj
Y2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLW5lc3RlZC1pZnJhbWUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0
aGUgYWxsb3cgdG9rZW4sIGJ1dCBpcyBuZXN0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBkZW5pZWQuIGRvY3VtZW50LmNvb2tpZSA9
PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNz
LWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtbmVzdGVkLWlmcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vz
cy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLW5lc3RlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNzRjM2YwYzhkOGFiNDRmYWI5NGQ2MDYzOGFiOWEzOWE2YmQ4NTI0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
YW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLW5lc3RlZC1pZnJhbWUtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmll
ZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCwgaGFzIHRoZSBhbGxvdyB0b2tlbiwgYnV0IGlz
IG5lc3RlZC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAg
ICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIp
KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNl
bnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAg
ICAgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDI7CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJv
eCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0
cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0
c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJl
cXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5zcmMgPSAicmVzb3VyY2VzL25lc3RpbmctaWZyYW1lLmh0bWwiOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVu
dCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tZGV0YWNoLXNob3VsZC1ub3QtaGF2ZS1hY2Nl
c3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhh
dmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTMxMDY5ODgwZWU2
OTE4Y2M1OGQwYjk0ZjBmYTUzYTA5OTM3M2M5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJl
dmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gaXMg
ZGV0YWNoZWQgZnJvbSB0aGUgRE9NIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFu
dGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBz
ZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1MgVGhl
cmUgaXMgYSBzdG9yYWdlIGFjY2VzcyBlbnRyeSBmb3IgbG9jYWxob3N0LgorUEFTUyBUaGVyZSBp
cyBubyBzdG9yYWdlIGFjY2VzcyBlbnRyeSBmb3IgbG9jYWxob3N0IGFmdGVyIGlmcmFtZSBkZXRh
Y2guCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
YW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLXRoZW4tZGV0YWNoLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNDM3MTNlYzI4YTI5MWE5YWFmMWRhODU2MDdmMWFjYTJmMTEz
NTdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUt
YWNjZXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJl
dmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gaXMg
ZGV0YWNoZWQgZnJvbSB0aGUgRE9NIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGlmcmFtZUlEID0gIlRo
ZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICBmdW5jdGlvbiBhc2tJ
ZklmcmFtZVN0aWxsSGFzU3RvcmFnZUFjY2VzcygpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoZnVuY3Rpb24gKGFycmF5T2ZEb21haW5zKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIHBhc3NlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBhcnJheU9mRG9tYWlucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJyYXlPZkRvbWFpbnNbaV0gPT09ICJsb2NhbGhvc3QiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGlmIChwYXNzZWQpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRo
ZXJlIGlzIG5vIHN0b3JhZ2UgYWNjZXNzIGVudHJ5IGZvciBsb2NhbGhvc3QgYWZ0ZXIgaWZyYW1l
IGRldGFjaC4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlRoZXJlIGlzIHN0aWxsIGEgc3RvcmFnZSBhY2Nlc3MgZW50cnkgZm9yIGxvY2Fs
aG9zdCBhZnRlciBpZnJhbWUgZGV0YWNoLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZGV0YWNo
SWZyYW1lQW5kQ2hlY2tXaGV0aGVySXRTdGlsbEhhc1N0b3JhZ2VBY2Nlc3MoKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKGZ1bmN0aW9uIChhcnJh
eU9mRG9tYWlucykgeworICAgICAgICAgICAgICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5T2ZEb21haW5zLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheU9mRG9tYWluc1tpXSA9PT0gImxvY2Fs
aG9zdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFzc2VkKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJUaGVyZSBpcyBhIHN0b3JhZ2UgYWNjZXNzIGVudHJ5IGZvciBsb2NhbGhv
c3QuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJUaGVyZSBpcyBubyBzdG9yYWdlIGFjY2VzcyBlbnRyeSBmb3IgbG9jYWxob3N0LiIpOwor
ICAgICAgICAgICAgICAgIHZhciB0aGVJZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp
ZnJhbWVJRCk7CisgICAgICAgICAgICAgICAgdGhlSWZyYW1lLm9ubG9hZCA9IGFza0lmSWZyYW1l
U3RpbGxIYXNTdG9yYWdlQWNjZXNzOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdib2R5JylbMF0uYXBwZW5kQ2hpbGQodGhlSWZyYW1lKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIp
ICE9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVw
bGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgICAgICBkZXRhY2hJZnJhbWVBbmRD
aGVja1doZXRoZXJJdFN0aWxsSGFzU3RvcmFnZUFjY2VzcygpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAg
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVz
c2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAg
ICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lk
dGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQo
Y2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IH0s
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaGFzaCAhPT0gIiNlbGVtZW50QWN0aXZhdGVkIikgeworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAiZWxlbWVudEFjdGl2YXRlZCI7CisgICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KGlmcmFtZUlEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIgJiYgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCAhPT0gIiNlbGVtZW50QWN0aXZhdGVkIikgeworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gc3RhdGlzdGljc1VybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJj
ZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlI2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10
aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwjZmlyc3RQYXJ0eUNvb2tpZVNl
dCI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJh
bWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1i
eS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1t
b2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0g
cnVuVGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vz
cy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCN1c2VyU2hvdWxk
R3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNz
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZy
YW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNy
b3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBmNGQ5MDYwMTViNGEzNGZhYzY3OGNlNzYz
ODJmY2I2OTM1MDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3Nz
LXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZh
bGVudCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmln
YXRlcyBpdHNlbGYgY3Jvc3Mtc2l0ZSBkb2VzIG5vdCBoYXZlIHN0b3JhZ2UgYWNjZXNzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5jb29raWUgPT0gCitQ
QVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0g
Y29va2llU2V0Q2xpZW50U2lkZUFmdGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0
UGFydHlDb29raWU9dmFsdWUKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tp
ZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUt
YWNjZXNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTYxYzEzMjIyMzdhYWRhMmNkYTg5NWI2
YzkwZDgyODU1ZThmNDU2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1j
cm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3Nz
LW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0
b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmlnYXRlcyBpdHNlbGYgY3Jvc3Mtc2l0ZSBkb2VzIG5v
dCBoYXZlIHN0b3JhZ2UgYWNjZXNzLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKwor
ICAgICAgICBjb25zdCBleHBlY3RlZFBhc3NNZXNzYWdlcyA9IDI7CisgICAgICAgIHZhciBwYXNz
TWVzc2FnZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoImRvY3Vt
ZW50LmNvb2tpZSIpID09PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MiKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5k
YXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzc01lc3Nh
Z2VzUmVjZWl2ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NNZXNzYWdlc1JlY2Vp
dmVkID49IGV4cGVjdGVkUGFzc01lc3NhZ2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3Jp
Z2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQu
b2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAg
ICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nl
c3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12
YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFu
dC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3Mu
aHRtbCNmaXJzdFBhcnR5Q29va2llU2V0IjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJh
Y3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94Iiwg
ImFsbG93LXN0b3JhZ2UtYWNjZXNzLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1zY3JpcHRzIGFs
bG93LXNhbWUtb3JpZ2luIGFsbG93LW1vZGFscyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgICAgICAgICAg
aWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZWxmLW5hdmlnYXRpbmctZnJhbWUt
YWZ0ZXItZ3JhbnRlZC1hY2Nlc3MuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3Vs
ZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGNyb3NzU2l0ZU5hdmlnYXRpb24i
OworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2Ft
ZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRo
ZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjc0NWRiNTk0ZTljZjgzMGEyOGM0NjEyMTBmNzhlNDkxNThlOTA0
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxk
LWhhdmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0
cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB0aGF0
IGlzIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gbmF2aWdhdGVzIGl0c2VsZiBzYW1l
LXNpdGUgc3RpbGwgaGFzIHN0b3JhZ2UgYWNjZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBkb2N1bWVudC5jb29raWUgPT0gCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdh
cyBncmFudGVkLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0gY29va2llU2V0Q2xpZW50U2lkZUFm
dGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0UGFydHlDb29raWU9dmFsdWUKK1BB
U1MgSGFzIHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0gY29va2llU2V0Q2xpZW50
U2lkZUFmdGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0UGFydHlDb29raWU9dmFs
dWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImNvb2tpZVNldENsaWVudFNpZGVBZnRl
ckdyYW50ZWRTdG9yYWdlQWNjZXNzIjoidmFsdWUiLCJmaXJzdFBhcnR5Q29va2llIjoidmFsdWUi
fQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFu
ZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNz
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZl
LWFjY2Vzcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYzUxZTliODJjMTU2MTdiYWFkMzAx
ZWQ0MzA0NGRlNjZlZmMyNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUt
c2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3Jp
Z2luIGlmcmFtZSBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50ZWQgc3RvcmFn
ZSBhY2Nlc3MgYW5kIHRoZW4gbmF2aWdhdGVzIGl0c2VsZiBzYW1lLXNpdGUgc3RpbGwgaGFzIHN0
b3JhZ2UgYWNjZXNzLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBj
b25zdCBleHBlY3RlZFBhc3NNZXNzYWdlcyA9IDI7CisgICAgICAgIHZhciBwYXNzTWVzc2FnZXNS
ZWNlaXZlZCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7Cisg
ICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoImRvY3VtZW50LmNvb2tp
ZSIpID09PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAh
PT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxh
Y2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzc01lc3NhZ2VzUmVjZWl2
ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NNZXNzYWdlc1JlY2VpdmVkID49IGV4
cGVjdGVkUGFzc01lc3NhZ2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2Nh
cGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
dGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwjZmlyc3RQYXJ0
eUNvb2tpZVNldCI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2lu
ZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdl
LWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdp
biBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
b25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
aWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2VsZi1uYXZpZ2F0aW5nLWZyYW1lLWFmdGVyLWdyYW50ZWQt
YWNjZXNzLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxw
b2xpY3lTaG91bGRHcmFudEFjY2VzcyxzYW1lU2l0ZU5hdmlnYXRpb24iOworICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcmFzaC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1j
cmFzaC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdkOTkwMzk1ZThkY2FlMzcz
MGI5ZjNjMTdmYjU1ZTE4ZGE4ZmE4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCByZXF1ZXN0aW5nIHN0
b3JhZ2UgYWNjZXNzIEFQSSBvbiBhIGRldGFjaGVkIGZyYW1lIGRvZXNuJ3QgY3Jhc2guCisKK1tv
YmplY3QgSFRNTERvY3VtZW50XQorU1VDQ0VTUzogRGlkIG5vdCBjcmFzaC4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1h
Y2Nlc3MtY3Jhc2gtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGY3MDNlZjU0MDFhODQ3ZjI3MWIyOWQ2OWIxMzlhNGM5ZmIzZTIxMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gZGVi
dWcoc3RyKSB7CisgICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKQorICAgICAgICBjLmlubmVySFRNTCArPSAoc3RyICsgIjxicj4iKQorICAgIH0KKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdmFyIHRlc3REaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dCIpOworICAgICAgICB2YXIgdGVzdEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgICAgIHRlc3REaXYuYXBwZW5kQ2hpbGQodGVzdEZyYW1lKTsKKyAgICAgICAg
dmFyIHRlc3RGcmFtZURvY3VtZW50ID0gdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudDsKKyAgICAg
ICAgdGVzdEZyYW1lLm91dGVySFRNTCA9IHRlc3RGcmFtZURvY3VtZW50OworCisgICAgICAgIHRl
c3RGcmFtZURvY3VtZW50LnJlcXVlc3RTdG9yYWdlQWNjZXNzKCk7CisKKyAgICAgICAgZGVidWco
IlNVQ0NFU1M6IERpZCBub3QgY3Jhc2guIikKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InRl
c3QiPgorICAgICAgICA8cD5UZXN0IHRoYXQgcmVxdWVzdGluZyBzdG9yYWdlIGFjY2VzcyBBUEkg
b24gYSBkZXRhY2hlZCBmcmFtZSBkb2Vzbid0IGNyYXNoLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNz
LWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGgtdW5pcXVlLW9yaWdpbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVu
aXF1ZS1vcmlnaW4tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxOTc2NDY4NDEw
MTMwYjg2Njc5MThlZDY5MjhlYzhjYjYwN2FkYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVuaXF1ZS1vcmlnaW4tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFt
ZSBzdG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQgYW5k
IGhhcyB0aGUgdW5pcXVlIG9yaWdpbiBiZWNhdXNlIGl0IGxhY2tzIHRoZSBhbGxvdy1zYW1lLW9y
aWdpbiB0b2tlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFn
ZSBhY2Nlc3Mgd2FzIGRlbmllZCBmb3Igb3JpZ2luIG51bGwuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aC11bmlxdWUtb3JpZ2luLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vz
cy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVuaXF1ZS1vcmlnaW4tZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MzAxM2E2OGU4OTU3NTBlNDhmZmI1MWUxMzBjMWI3MjVmNjA3
ZTAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUt
d2l0aC11bmlxdWUtb3JpZ2luLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIGhh
cyB0aGUgdW5pcXVlIG9yaWdpbiBiZWNhdXNlIGl0IGxhY2tzIHRoZSBhbGxvdy1zYW1lLW9yaWdp
biB0b2tlbi4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQu
ZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJl
c2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJl
cXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc3Rv
cmFnZS1hY2Nlc3MtYnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctbW9kYWxz
IiBvbmxvYWQ9InJ1blRlc3QoKSIgaWQ9IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nl
c3MiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVz
ZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGREZW55QWNjZXNzLGlzTm90U2FtZU9y
aWdpbklmcmFtZSxvcmlnaW5Jc051bGwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3Rv
cmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10
b2tlbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlm
cmFtZS13aXRob3V0LWFsbG93LXRva2VuLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNTE5YzdlOTFiMDQ0MDAyZGM4ZWEzMGM5ZjVhMWJlZjAzZWFhYTNmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFn
ZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10b2tl
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBjcm9z
cy1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmllZCBpZiB0aGUgaWZyYW1lIGlz
IHNhbmRib3hlZCBhbmQgZG9lc24ndCBoYXZlIHRoZSBhbGxvdyB0b2tlbi4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGRlbmllZC4gZG9j
dW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVz
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ct
dG9rZW4tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdp
dGhvdXQtYWxsb3ctdG9rZW4tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM3ZmQwZmJlZjhh
MDg0MGQyNGZmODIwZWY4MTMyNmEzNDM0YjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mt
b3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10b2tlbi1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBp
ZnJhbWUgaXMgc2FuZGJveGVkIGFuZCBkb2Vzbid0IGhhdmUgdGhlIGFsbG93IHRva2VuLiIpOwor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBob3N0VW5kZXJU
ZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWpl
Y3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFsbG93LXNj
cmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxzIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVx
dWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRo
YXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jl
c291cmNlcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJTaG91bGRHcmFu
dEFjY2Vzcyx1c2VyU2hvdWxkTm90QmVDb25zdWx0ZWQscG9saWN5U2hvdWxkRGVueUFjY2Vzcyxp
c05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jv
c3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVl
c3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11
c2VyLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2YzUyNGFjMzg0
ZTUxMWFlZDIwODZiMjYyNWE5N2UyMTkxYWI3NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZy
YW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmllZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCwg
aGFzIHRoZSBhbGxvdyB0b2tlbiwgYnV0IGNhbGxzIHRoZSBBUEkgd2l0aG91dCBhIHVzZXIgZ2Vz
dHVyZSBiZWluZyBwcm9jZXNzZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBkZW5pZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNh
bmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNy
b3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2MzMGZlMmRmY2QxODBhNmIxMGY2ZTNiYjc0OTU5MDVmMTcyOGI2
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdp
dGhvdXQtdXNlci1nZXN0dXJlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0
aGUgYWxsb3cgdG9rZW4sIGJ1dCBjYWxscyB0aGUgQVBJIHdpdGhvdXQgYSB1c2VyIGdlc3R1cmUg
YmVpbmcgcHJvY2Vzc2VkLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3Nh
Z2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0x
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFT
UyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nl
c3MtYnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxs
b3ctbW9kYWxzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5p
ZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy13aXRob3V0LXVz
ZXItZ2VzdHVyZS1pZnJhbWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZE5v
dEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklm
cmFtZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1pZnJhbWUt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTRkYTg2NjJmOTY4ZDdhM2U2NWU1MmI1MjY5ZDBkYmZk
N2QwNzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IHNhbWUtb3JpZ2luIGlm
cmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgbm90IHNhbmRi
b3hlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nl
c3Mgd2FzIGdyYW50ZWQuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXIt
c2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1pZnJhbWUtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLWlmcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4ODBiNWM4NWEyMzQ2YmRhM2I2Mjk0M2JhOGM1MzQzMTdhYTMyMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdl
LWFjY2Vzcy1zYW1lLW9yaWdpbi1pZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzYW1lLW9yaWdpbiBp
ZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIG5vdCBzYW5k
Ym94ZWQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlz
ZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
VGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgb25s
b2FkPSJydW5UZXN0KCkiIGlkPSJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIiBz
cmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0
LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJTaG91bGREZW55QWNjZXNzLHVzZXJTaG91
bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc1NhbWVPcmlnaW5JZnJh
bWUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdp
bi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWIw
ODUwOTI0NjcyM2U3OGYyYTgxYjMxN2VmZWU0YTVlODY3YjIxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nl
c3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBzYW1lLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nl
c3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCBhbmQgaGFzIHRoZSBhbGxv
dyB0b2tlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBh
Y2Nlc3Mgd2FzIGdyYW50ZWQuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2
ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQt
aWZyYW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiMTcxNWZmYjFhZGMwYmM2MDcxNjBiODEyZmNiZWI1
YTNhNmI1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBzYW1lLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMg
Z3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCBhbmQgaGFzIHRoZSBhbGxvdyB0b2tl
bi4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAg
ICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZl
bnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAgICAgICAg
IGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmln
aW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxl
bWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2
YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAy
OworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJl
amVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJ
ZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBzYW5kYm94
PSJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBh
bGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiIG9ubG9hZD0icnVuVGVzdCgpIiBpZD0iVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUu
aHRtbCN1c2VyU2hvdWxkRGVueUFjY2Vzcyx1c2VyU2hvdWxkTm90QmVDb25zdWx0ZWQscG9saWN5
U2hvdWxkR3JhbnRBY2Nlc3MsaXNTYW1lT3JpZ2luSWZyYW1lIj48L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0
aG91dC1hbGxvdy10b2tlbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1z
YW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9rZW4tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMxZjEwZTIzZGFlY2I5ZTFmMjU1ODQ0MGQwMzI0YmE0MmQ1YzI4NWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQt
YWxsb3ctdG9rZW4tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Rz
IHRoYXQgc2FtZS1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQgaWYgdGhl
IGlmcmFtZSBpcyBzYW5kYm94ZWQgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgYWxsb3cgdG9rZW4uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBn
cmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0g
Ik5vIGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRo
b3V0LWFsbG93LXRva2VuLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQt
aWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9rZW4tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjY5
M2VkM2U4YzllMzQxOTI4MTQ4NDA3MDhmMDFmMTJlZWU1MGRjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nl
c3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LWFsbG93LXRva2VuLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgc2FtZS1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQg
aWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgYWxsb3cgdG9r
ZW4uIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50
LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3Rl
ZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
ICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZ
KS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9t
aXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJh
bWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCAi
YWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFt
ZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N0b3JhZ2VB
Y2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNo
b3VsZERlbnlBY2Nlc3MsdXNlclNob3VsZE5vdEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50
QWNjZXNzLGlzU2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vz
cy10b3AtZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtdG9wLWZyYW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjVhNTkxZTQ3NDY2MjkwMzYxZmU3ZDM0YmJjNmEx
OTQ4NmEwNmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtdG9wLWZyYW1lLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHRvcCBmcmFtZSBzdG9yYWdlIGFj
Y2VzcyBpcyBhbHdheXMgZ3JhbnRlZCBpbiBjYXNlIHRoZSBwYWdlIHJlcXVlc3RzIGl0LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jl
c29sdmVkIGlzIHRydWUKK1BBU1MgaGFzU3RvcmFnZUFjY2VzcyBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1JlcXVlc3QgQWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1z
dG9yYWdlLWFjY2Vzcy10b3AtZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMTg3NjdmOGNmZjZlMzU4MzFiODU4YmZiOGM2NjBjMTI1
OTYzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10b3AtZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRv
cCBmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBhbHdheXMgZ3JhbnRlZCBpbiBjYXNlIHRoZSBwYWdl
IHJlcXVlc3RzIGl0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4i
KTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIHZhciBoYXNTdG9yYWdl
QWNjZXNzOworICAgIHZhciByZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc29sdmVkOworCisgICAgZnVu
Y3Rpb24gbWFrZVJlcXVlc3RXaXRoVXNlckdlc3R1cmUoKSB7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IGRvY3Vt
ZW50LnJlcXVlc3RTdG9yYWdlQWNjZXNzKCk7CisgICAgICAgICAgICBwcm9taXNlLnRoZW4oCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
U3RvcmFnZUFjY2Vzc1Jlc29sdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWVBZnRlclJlcXVlc3RXaXRoVXNlckdlc3R1cmUoKTsKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NSZXNvbHZlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBjb250aW51
ZUFmdGVyUmVxdWVzdFdpdGhVc2VyR2VzdHVyZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbnRpbnVlQWZ0
ZXJSZXF1ZXN0V2l0aFVzZXJHZXN0dXJlKCkgeworICAgICAgICB2YXIgcHJvbWlzZSA9IGRvY3Vt
ZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKTsKKyAgICAgICAgcHJvbWlzZS50aGVuKAorICAgICAgICAg
ICAgZnVuY3Rpb24gKGhhc0FjY2VzcykgeworICAgICAgICAgICAgICAgIGhhc1N0b3JhZ2VBY2Nl
c3MgPSBoYXNBY2Nlc3M7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlcXVlc3RTdG9yYWdl
QWNjZXNzUmVzb2x2ZWQiLCAidHJ1ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJoYXNT
dG9yYWdlQWNjZXNzIiwgInRydWUiKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uIChyZWFzb24pIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5oYXNT
dG9yYWdlQWNjZXNzKCkgd2FzIHJlamVjdGVkLiBSZWFzb246ICIgKyByZWFzb24pOworICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0aGVCdXR0b24iKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxidXR0b24gaWQ9InRo
ZUJ1dHRvbiIgb25jbGljaz0ibWFrZVJlcXVlc3RXaXRoVXNlckdlc3R1cmUoKSI+UmVxdWVzdCBB
Y2Nlc3M8L2J1dHRvbj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmM1MDgxNTQ1YTY3NmVhZDUwMzQwNzNlYWRhOTYwOTUy
YTY0Y2VjMy4uNTNhYWI3ZGQ1YTNkMTgzMTc4M2Q1MTgxNDAwZDkxODY1YmEwZDUwYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3OTgsOCArMjc5OCwx
NCBAQCBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1v
cGVuZXItaWYtYXV0by1kaXNtaXNzLmh0bWwgWwogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBbIFBh
c3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1i
eS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwuaHRtbCBbIFBhc3MgXQotaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBh
cnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIFsgUGFzcyBdCi1odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tp
ZXMuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFj
Y2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KK2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1w
YXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91dCBd
CitodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhp
cmQtcGFydHktaGFzLWNvb2tpZXMtZGF0YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91dCBdCitodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0
YWJhc2UuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sIFsgUGFz
cyBdCitodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5
LWRlZmF1bHQtZGF0YWJhc2UuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5o
dG1sIFsgUGFzcyBdCiAKICMgU2tpcHBlZCBpbiBnZW5lcmFsIGV4cGVjdGF0aW9ucyBzaW5jZSB0
aGV5IG9ubHkgd29yayBvbiBpT1MgYW5kIE1hYywgV0syLgogaHR0cC90ZXN0cy9zZWN1cml0eS9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2
YXRlLW1vZGUuaHRtbCBbIFBhc3MgXQpAQCAtMjkzNCw2ICsyOTQwLDcgQEAgd2Via2l0Lm9yZy9i
LzE3NzQ0NSBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVmb3JldW5sb2FkLWNh
bmNlbC5odG1sIFsKIHdlYmtpdC5vcmcvYi8xNzczOTcgY29tcG9zaXRpbmcvbWFza3MvY29tcG9z
aXRpbmctY2xpcC1wYXRoLWNoYW5nZS1uby1yZXBhaW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQog
CiB3ZWJraXQub3JnL2IvMTc3NjE3IGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS1kYXRhYmFzZS5o
dG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE3NzU0NyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlY3VyaXR5L2RhbmdsaW5nLW1hcmt1cC1taXRpZ2F0
aW9uLWRhdGEtdXJsLnRlbnRhdGl2ZS5zdWIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNGY3ZjZk
ZDlmM2Q0YjE5M2M2ZGZjMDRlMDAyODkzNTZjZmU0YWE3Li5mNTU2NWViMjk2ZjMxYjBiMjZjMzQ4
YzY5ODQ5ZjA0OGE3N2JjMjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC02ODUsMzYgKzY4NSwxMSBAQCB3ZWJraXQub3JnL2IvMTcyMzk3
IGxlZ2FjeS1hbmltYXRpb24tZW5naW5lL2FuaW1hdGlvbnMvbmVlZHMtbGF5b3V0Lmh0bWwgWyBQ
YXNzCiAjIFRvdWNoIGV2ZW50cyBhcmUgbm90IGF2YWlsYWJsZSBvbiBvcGVuIHNvdXJjZSBib3Rz
LCB0aHVzIG9ubHkgdGVzdGVkIG9uIE1hYy4KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUuaHRtbCBbIFBh
c3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
cmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCBbIFBhc3MgXQotCi1bIEhp
Z2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1j
cmFzaC5odG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1p
ZnJhbWUuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyYXNoLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJy
YSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVuaXF1ZS1vcmlnaW4uaHRtbCBbIFBhc3Mg
XQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3Jh
Z2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9r
ZW4uaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLWlmcmFtZS5odG1sIFsgUGFzcyBd
Ci1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFn
ZS1hY2Nlc3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LWFsbG93LXRva2Vu
Lmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLmh0bWwg
WyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtbmVzdGVkLWlmcmFtZS5o
dG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwgWyBQYXNzIF0KLVsg
SGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQt
YWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFp
bi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWwg
WyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJl
dmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25n
LWZyYW1lLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZy
YW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBb
IFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LXN0b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS5odG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0g
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUuaHRtbCBbIFBhc3MgXQot
WyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sIFsgUGFz
cyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwgWyBQ
YXNzIF0KK1sgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvIFsgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTk4NjcwIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1z
aG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQotWyBIaWdoU2llcnJh
KyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhl
bi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwgWyBQYXNzIF0KLVsg
SGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vz
cy11bmRlci1vcGVuZXIuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1pZi1hdXRvLWRp
c21pc3MuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9ncmFudC13aXRoLXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS5odG1sIFsgUGFzcyBdCitb
IEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1k
YXRhYmFzZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0dXJl
Lmh0bWwgWyBTa2lwIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
ZGVueS13aXRob3V0LXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS5odG1sIFsgUGFzcyBdCi1bIEhp
Z2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1m
YWxzZS1ieS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZXBoZW1l
cmFsLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBo
ZW1lcmFsLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMu
aHRtbCBbIFBhc3MgXQorWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9k
ZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNlcnZlLWdlc3R1cmUtZGF0YWJhc2UuaHRtbCBb
IFNraXAgXQogCiAjIEFzIG9mIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjc3
NjIgdGhlIHRpbWVzdGFtcFJlc29sdXRpb24gaXMganVzdCA1IHNlY29uZHMgd2hpY2ggbWFrZXMg
dGhpcyB0ZXN0IGZsYWt5CiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
Lmh0bWwgWyBTa2lwIF0KQEAgLTkxNCw2ICs4ODksNyBAQCB3ZWJraXQub3JnL2IvMTk2NDAzIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJl
Ywogd2Via2l0Lm9yZy9iLzE4NzM5MSBhY2Nlc3NpYmlsaXR5L21hYy9hc3luYy1pbmNyZW1lbnQt
ZGVjcmVtZW50LWFjdGlvbi5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xOTQxNjQgaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWJ1dC1hY2Nlc3MtZnJvbS13cm9uZy1mcmFtZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
K2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mt
b3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi1idXQtYWNjZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UuaHRtbCBbIFBh
c3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xOTcwNjggWyBEZWJ1ZyBdIGZhc3Qvc2VsZWN0
b3JzL21hdGNoZXMtYmFja3RyYWNraW5nLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380677</attachid>
            <date>2019-10-10 13:48:31 -0700</date>
            <delta_ts>2019-10-11 12:15:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195422-20191010134830.patch</filename>
            <type>text/plain</type>
            <size>166717</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwOTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIyOGZjYjZiYjA5MTYzZDU0
MzM0YTMyNGU2NTcxYWY1YjBjOTk1YTkuLmJhNTRlYjc5YTQ0NjBlZTI5ODYyZmU0NzE3OTA1OTFm
Yzk0N2RmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTktMTAtMTAgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0IFN0b3JhZ2VB
Y2Nlc3MgQVBJIGZlYXR1cmVzIHdvcmtpbmcgb24gU1FMaXRlIGRhdGFiYXNlIGltcGxlbWVudGF0
aW9uICgxOTU0MjIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTU0MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjEzNTE5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uIAorCisgICAgICAgIFRoaXMgcGF0Y2ggbWlncmF0
ZXMgdGhlIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy8gTGF5b3V0IHRlc3RzIHRvCisgICAgICAg
IHVzZSB0aGUgSVRQIGRhdGFiYXNlIGFuZCB1bmNvdmVyZWQgMyBidWdzIGluIHRoZSBwcm9jZXNz
LgorCisgICAgICAgIDEuIEl0IHdhcyBwcmV2aW91c2x5IGJsb2NraW5nIGNvb2tpZXMgdG8gYSB0
aGlyZCBwYXJ0eSBkb21haW4gd2hpY2gKKyAgICAgICAgd2FzIG5vdCBtYXJrZWQgYXMgcHJldmFs
ZW50LiBOb3cgaXQgZW5zdXJlcyB0aGF0IHRoZSB1c2VyIGlzIHByb21wdGVkCisgICAgICAgIHVz
aW5nIHRoZSBzdG9yYWdlIGFjZXNzIEFQSSByZWdhcmRpbmcgdGhhdCB0aGlyZCBwYXJ0eSBkb21h
aW4uCisKKyAgICAgICAgMi4gSXQgd2FzIG5vdCByZXF1ZXN0aW5nIHN0b3JhZ2UgYWNjZXNzIGlm
IGNvb2tpZXMgaGFkIHByZXZpb3VzbHkgYmVlbiAKKyAgICAgICAgYmxvY2tlZC4gTm93IGl0IHdp
bGwgb25seSByZXR1cm4gZWFybHkgZnJvbQorICAgICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcgorICAgICAgICBp
ZiBjb29raWUgYWNjZXNzIGlzIGFsbG93ZWQsIGFuZCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzIG90
aGVyd2lzZS4KKyAgICAgICAgCisgICAgICAgIDMuIGhhc1VzZXJHcmFudGVkU3RvcmFnZUFjY2Vz
c1Rocm91Z2hQcm9tcHQgd2FzIHJldHVybmluZyB0cnVlIGV2ZW4gCisgICAgICAgIGlmIHRoZSBy
ZXN1bHQgd2FzIG5vdCBwcmV2aW91c2x5IGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MuCisKKyAgICAg
ICAgQWxsIG9mIHRoZXNlIGZpeGVzIG1hdGNoIGJlaGF2aW9yIGluCisgICAgICAgIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3JhbnRl
ZFN0b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0KToKKwogMjAxOS0xMC0wOSAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRlc3RSdW5uZXIuc2V0V2Vi
UlRDVW5pZmllZFBsYW5FbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2MTY5NWM4NDliYzI0MmIzZDYwMjQ5YTUx
MTg3MDU5ZWQzOWRkNGMyLi4xZGI1NDFlNDZhODdiMmIzZDQ1YWMzMjc1MzFjNDI4OWFkMjI0NmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKQEAgLTExNTMsMjIgKzExNTMsMTkgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJgog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgYXV0byBzdWJGcmFtZVN0YXR1
cyA9IGVuc3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKHN1YkZyYW1l
RG9tYWluKTsKLQotICAgIHN3aXRjaCAoY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKHN1YkZyYW1l
RG9tYWluKSkgewotICAgIGNhc2UgQ29va2llVHJlYXRtZW50UmVzdWx0OjpCbG9ja0FuZFB1cmdl
OiB7CisgICAgYXV0byBjb29raWVUcmVhdG1lbnRSZXN1bHQgPSBjb29raWVUcmVhdG1lbnRGb3JP
cmlnaW4oc3ViRnJhbWVEb21haW4pOworICAgIAorICAgIGlmIChjb29raWVUcmVhdG1lbnRSZXN1
bHQgPT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpCbG9ja0FuZFB1cmdlKSB7CiAgICAgICAgIFJF
TEVBU0VfTE9HX0lORk9fSUYoZGVidWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIkNhbm5v
dCBncmFudCBzdG9yYWdlIGFjY2VzcyB0byAle3ByaXZhdGV9cyBzaW5jZSBpdHMgY29va2llcyBh
cmUgYmxvY2tlZCBpbiB0aGlyZC1wYXJ0eSBjb250ZXh0cyBhbmQgaXQgaGFzIG5vdCByZWNlaXZl
ZCB1c2VyIGludGVyYWN0aW9uIGFzIGZpcnN0LXBhcnR5LiIsIHN1YkZyYW1lRG9tYWluLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNj
ZXNzU3RhdHVzOjpDYW5ub3RSZXF1ZXN0QWNjZXNzKTsKLSAgICAgICAgfQogICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBDb29raWVUcmVhdG1lbnRSZXN1bHQ6OkJsb2NrQW5kS2VlcDogeworICAg
IH0KKyAgICAKKyAgICBpZiAoY29va2llVHJlYXRtZW50UmVzdWx0ICE9IENvb2tpZVRyZWF0bWVu
dFJlc3VsdDo6QmxvY2tBbmRLZWVwKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lORk9fSUYoZGVi
dWdMb2dnaW5nRW5hYmxlZCgpLCBJVFBEZWJ1ZywgIk5vIG5lZWQgdG8gZ3JhbnQgc3RvcmFnZSBh
Y2Nlc3MgdG8gJXtwcml2YXRlfXMgc2luY2UgaXRzIGNvb2tpZXMgYXJlIG5vdCBibG9ja2VkIGlu
IHRoaXJkLXBhcnR5IGNvbnRleHRzLiIsIHN1YkZyYW1lRG9tYWluLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzU3RhdHVzOjpI
YXNBY2Nlc3MpOwotICAgICAgICB9CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIENvb2tpZVRy
ZWF0bWVudFJlc3VsdDo6QWxsb3c6Ci0gICAgICAgIC8vIERvIG5vdGhpbmcKLSAgICAgICAgYnJl
YWs7Ci0gICAgfTsKKyAgICB9CiAKICAgICBhdXRvIHVzZXJXYXNQcm9tcHRlZEVhcmxpZXIgPSBo
YXNVc2VyR3JhbnRlZFN0b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0KHN1YkZyYW1lU3RhdHVzLnNl
Y29uZCwgdG9wRnJhbWVEb21haW4pOwogICAgIGlmICh1c2VyV2FzUHJvbXB0ZWRFYXJsaWVyID09
IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pIHsKQEAgLTEyMDMsOCArMTIwMCw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAgICAgIHJldHVybjsKIAogICAgIGVuc3VyZVJl
c291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGRvbWFpbkluTmVlZE9mU3RvcmFn
ZUFjY2Vzcyk7Ci0KLSAgICBpZiAoY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKGRvbWFpbkluTmVl
ZE9mU3RvcmFnZUFjY2VzcykgIT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdykKKyAgICBp
ZiAoY29va2llVHJlYXRtZW50Rm9yT3JpZ2luKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcykg
PT0gQ29va2llVHJlYXRtZW50UmVzdWx0OjpBbGxvdykKICAgICAgICAgcmV0dXJuOwogCiAgICAg
UkVMRUFTRV9MT0dfSU5GT19JRihkZWJ1Z0xvZ2dpbmdFbmFibGVkKCksIElUUERlYnVnLCAiW1Rl
bXBvcmFyeSBjb21iYXRpYmlsaXR5IGZpeF0gU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQgZm9y
ICV7cHJpdmF0ZX1zIHVuZGVyIG9wZW5lciBwYWdlIGZyb20gJXtwcml2YXRlfXMsIHdpdGggdXNl
ciBpbnRlcmFjdGlvbiBpbiB0aGUgb3BlbmVkIHdpbmRvdy4iLCBkb21haW5Jbk5lZWRPZlN0b3Jh
Z2VBY2Nlc3Muc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgb3BlbmVyRG9tYWluLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwpAQCAtMTcyMyw3ICsxNzE5LDcgQEAgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNVc2VyR3JhbnRl
ZFMKICAgICAgICAgfHwgc3RhdGVtZW50LnN0ZXAoKSAhPSBTUUxJVEVfUk9XKQogICAgICAgICBy
ZXR1cm4gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObzsKIAotICAgIHJldHVybiAhc3Rh
dGVtZW50LmdldENvbHVtbkludCgwKSA/IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6WWVz
IDogU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObzsKKyAgICByZXR1cm4gISFzdGF0ZW1l
bnQuZ2V0Q29sdW1uSW50KDApID8gU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpZZXMgOiBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vOwogfQogCiBWZWN0b3I8UmVnaXN0cmFibGVE
b21haW4+IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpkb21haW5zVG9CbG9j
a0FuZERlbGV0ZUNvb2tpZXNGb3IoKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcyYTRjNjk4OTJiYWYxNmFlNDFi
OThmY2U2YmNhYjJmOWEzYTc3ZjUuLmNjNDhmMTkwMzFhZmNiYjliNTkwY2Q4Y2YzM2UzNmU2NmUy
ZDMwZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4OCBAQAorMjAxOS0xMC0xMCAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgU3RvcmFnZUFjY2VzcyBB
UEkgZmVhdHVyZXMgd29ya2luZyBvbiBTUUxpdGUgZGF0YWJhc2UgaW1wbGVtZW50YXRpb24gKDE5
NTQyMikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
NTQyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMTM1MTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQnJlbnQgRnVsZ2hhbS4gCisKKyAgICAgICAgVGhpcyBwYXRjaCBtaWdyYXRlcyB0ZXN0
cyBpbiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MgdG8gdXNlIHRoZSBJVFAKKyAgICAgICAgU1FM
aXRlIERhdGFiYXNlIHRvIGVuc3VyZSB0aGUgc3RvcmFnZUFjY2VzcyBBUEkgZmVhdHVyZXMgYXJl
IHdvcmtpbmcuCisgICAgICAgIEFkZGl0aW9uYWxseSwgdGhlIFNhZmFyaSBVSSBmbG93IHdhcyBt
YW51YWxseSB0ZXN0ZWQgZm9yIHRoZSBkYXRhYmFzZQorICAgICAgICB1c2luZyB0bHN0ZXN0d2Vi
a2l0Lm9yZyAobm8gYXV0b21hdGVkIHRlc3RzIGV4aXN0IGZvciB0aGlzKS4KKworICAgICAgICBJ
dCBhbHNvIHVwZGF0ZXMgdGhlIHRlc3QgZXhwZWN0YXRpb25zIGZvciB0d28gdGVzdHMgdGhhdCBj
b25zaXN0ZW50bHkKKyAgICAgICAgdGltZW91dCBvbiB0aGUgZmxha2luZXNzIGRhc2hib2FyZCBh
bmQgd2lsbCBiZSBsb29rZWQgaW50byBpbiBhCisgICAgICAgIHNlcGFyYXRlIHJhZGFyLgorCisg
ICAgICAgIE1vc3Qgc3RvcmFnZUFjY2VzcyB0ZXN0cyBhcmUgc2tpcHBlZCBvbiBpb3MgYmVjYXVz
ZSBvZiBpbmNvbXBhdGliaWxpdHkKKyAgICAgICAgd2l0aCByZWNvZ25pemluZyB1c2VyIGludGVy
YWN0aW9uLiAKKworICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3Jh
Z2UtYWNjZXNzLXVuZGVyLW9wZW5lci1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVy
LW9wZW5lci1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNz
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlz
cy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0dXJlLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rl
bnktd2l0aC1wcm9tcHQtZG9lcy1ub3QtcHJlc2VydmUtZ2VzdHVyZS1kYXRhYmFzZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRob3V0LXBy
b21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJvbXB0LXByZXNl
cnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItYXQtcG9wdXAt
dXNlci1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1h
dC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJl
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFn
ZS1hY2Nlc3MtY3Jhc2gtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
ZmFsc2UtYnktZGVmYXVsdC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZXBo
ZW1lcmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVt
ZXJhbC1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRo
aXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlm
LXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGly
ZC1wYXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZW1vdmUtcmVxdWVz
dGluZy1pZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVtb3ZlLXJlcXVlc3RpbmctaWZyYW1lLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFu
ZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJh
bWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVk
LWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWFuZC1h
Y2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
Y3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZGF0YWJhc2UuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVu
dC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWJ1dC1hY2Nlc3MtZnJvbS13cm9uZy1mcmFt
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1idXQt
YWNjZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1v
cmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWlu
dGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4t
c2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0
aW9uLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUt
ZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtbmVzdGVkLWlmcmFtZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1uZXN0
ZWQtaWZyYW1lLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1kZXRhY2gtc2hvdWxkLW5v
dC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1kZXRh
Y2gtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4t
bmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVl
c3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1o
YXZlLWFjY2Vzcy1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1z
aXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
dGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLWRhdGFiYXNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3Jh
Z2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jhc2gtZGF0
YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aC11
bmlxdWUtb3JpZ2luLWRhdGFiYXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2lu
LXNhbmRib3hlZC1pZnJhbWUtd2l0aC11bmlxdWUtb3JpZ2luLWRhdGFiYXNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9rZW4tZGF0
YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFt
ZS13aXRob3V0LWFsbG93LXRva2VuLWRhdGFiYXNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdp
bi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
c3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2Vy
LWdlc3R1cmUtZGF0YWJhc2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10
b2tlbi1kYXRhYmFzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10b2tlbi1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10b3At
ZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10b3AtZnJhbWUtZGF0YWJhc2Uu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDE5LTEwLTA5
ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0
YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNjVmZDY4MWI2ZDZjZGJmOWNiNDEwYmJhZGZlMjgxN2ZlNTE2ODhkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnkt
c3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE3IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9tIGEgcHJldmFs
ZW50IGRvbWFpbiB3aXRob3V0IHVzZXIgaW50ZXJhY3Rpb24gaXMgZGVuaWVkIHN0b3JhZ2UgYWNj
ZXNzIHVuZGVyIGl0cyBvcGVuZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIENvb2tpZSBjcmVhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0t
LS0tCitTaG91bGQgbm90IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorRGlkIG5vdCByZWNl
aXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVu
dC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVy
LW9wZW5lci1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwOTkyZGRkZDIzNTVjNGRkMTViNGRk
Mzg0YTRjNGZkODE3OTI4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0YWJh
c2UuaHRtbApAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRo
b3V0IHVzZXIgaW50ZXJhY3Rpb24gaXMgZGVuaWVkIHN0b3JhZ2UgYWNjZXNzIHVuZGVyIGl0cyBv
cGVuZXIuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVy
bCwgb25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7
CisgICAgICAgICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1l
bnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKwor
ICAgICAgICAgICAgbmV3V2luLmNsb3NlKCk7CisgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAi
OworICAgICAgICBjb25zdCByZXNvdXJjZVBhdGggPSAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
IjsKKyAgICAgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsg
cmVzb3VyY2VQYXRoOworICAgICAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICAgICAgY29uc3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0
LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJzdFBhcnR5Q29va2llTmFtZTsKKworICAgICAgICBs
ZXQgbmV3V2luOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3Jp
Z2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVu
dCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOwor
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxl
dGUodHJ1ZSk7CisKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVD
b29raWVCbG9ja2luZyhmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld1dpbiA9
IHdpbmRvdy5vcGVuKHRoaXJkUGFydHlPcmlnaW4gKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2Vz
L3NldC1jb29raWUtYW5kLXJlcG9ydC1iYWNrLmh0bWwiLCAidGVzdFdpbmRvdyIpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1v
cGVuZXItaWYtYXV0by1kaXNtaXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5l
ci1pZi1hdXRvLWRpc21pc3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3ZDdl
YTY0YzkyZDY0ODdmNzVjYzNjNGM0NDA0Zjk1MGE5YzQzNzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11
bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE3IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9tIGEgcHJldmFs
ZW50IGRvbWFpbiB3aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiBkb2Vzbid0IGdldCBz
dG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyIGlmIGl0IGp1c3QgbG9hZHMgYW5kIGF1dG8t
ZGlzbWlzc2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUg
Y3JlYXRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hvdWxk
IG5vdCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUg
bmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3Rv
cmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3Mt
dW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1
NjI1ZTYzNWY5NDhjZGJiYzViMzYwMWY2MzVjNTgwNzRjZWZhMWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vz
cy11bmRlci1vcGVuZXItaWYtYXV0by1kaXNtaXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw3
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuKCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigi
VGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4g
d2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJhY3Rpb24gZG9lc24ndCBnZXQgc3RvcmFnZSBhY2Nl
c3MgdW5kZXIgaXRzIG9wZW5lciBpZiBpdCBqdXN0IGxvYWRzIGFuZCBhdXRvLWRpc21pc3Nlcy4i
KTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAg
ICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAg
ICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgfQorICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9y
aWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgbmV3V2luLmNsb3NlKCk7CisgICAg
ICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsg
IiZtZXNzYWdlPVNob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuIiwgZmluaXNo
VGVzdCk7CisgICAgfQorCisgICAgY29uc3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiOworICAgIGNvbnN0IHJlc291cmNlUGF0aCA9ICIvc3RvcmFnZUFjY2Vzcy9y
ZXNvdXJjZXMiOworICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9yaWdp
biArIHJlc291cmNlUGF0aDsKKyAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJz
dFBhcnR5Q29va2llIjsKKyAgICBjb25zdCBzdWJQYXRoVG9HZXRDb29raWVzID0gIi9nZXQtY29v
a2llcy5waHA/bmFtZTE9IiArIGZpcnN0UGFydHlDb29raWVOYW1lOworICAgIHZhciBuZXdXaW47
CisKKyAgICBmdW5jdGlvbiBydW4oKSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0
YWJhc2UodHJ1ZSk7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRv
d3MoKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4s
IHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQg
Zm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld1dpbiA9IHdpbmRvdy5vcGVuKHRo
aXJkUGFydHlPcmlnaW4gKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUtYW5k
LXJlcG9ydC1iYWNrLmh0bWwiLCAidGVzdFdpbmRvdyIpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNl
cnZlLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2Rlbnktd2l0aC1wcm9tcHQtZG9lcy1ub3QtcHJlc2VydmUtZ2VzdHVy
ZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FkMjEwOGNiYjMzZjUwZThkZmU0
YjI5ODUzMTk2MTc1NTM3ZWZkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNlcnZlLWdl
c3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQg
YSBjcm9zcy1vcmlnaW4gaWZyYW1lIGNhbiBub3Qgb3BlbiBhIHdpbmRvdyBpZiBzdG9yYWdlIGFj
Y2VzcyBpcyBleHBsaWNpdGx5IGRlbmllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgV2luZG93IHdhcyBzdWNjZXNzZnVsbHkgb3BlbmVkIHdpdGggdXNlciBpbnRlcmFj
dGlvbiBzaW5jZSB0aGUgdXNlciB3YXMgbmV2ZXIgY29uc3VsdGVkL3Byb21wdGVkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRv
ZXMtbm90LXByZXNlcnZlLWdlc3R1cmUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNlcnZlLWdl
c3R1cmUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGUwNzY2ZmJiMWRlOTZlZTZmNDY2YTlj
ODMxZjJjZDhmOTRiODZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL2Rlbnktd2l0aC1wcm9tcHQtZG9lcy1ub3QtcHJlc2VydmUtZ2VzdHVy
ZS1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBjYW4gbm90IG9wZW4gYSB3
aW5kb3cgaWYgc3RvcmFnZSBhY2Nlc3MgaXMgZXhwbGljaXRseSBkZW5pZWQuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAi
bG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8i
ICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0
aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2lu
ID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoIlBBU1MgIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2Uo
IkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQo
ZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRl
clkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAg
ICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
ZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4i
KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAg
ICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3Mo
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJs
ZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFs
ZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRp
c3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBu
b3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9y
YWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0
c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1l
bnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9y
ZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS1hbmQtcG9wLXdpbmRvdy5odG1sI3VzZXJTaG91
bGROb3RHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxkTm90R3Jh
bnRBY2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJv
bXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJvbXB0LXByZXNlcnZlcy1n
ZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGFmZGUzNGQ3NDI2M2Nj
NTJlYmZjZDY0MzcxMTYxNjAxZjYzMjEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktd2l0aG91dC1wcm9tcHQtcHJlc2VydmVzLWdl
c3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQg
YSBjcm9zcy1vcmlnaW4gaWZyYW1lIGNhbiBvcGVuIGEgd2luZG93IGlmIHN0b3JhZ2UgYWNjZXNz
IGlzIGRlbmllZCB3aXRob3V0IHByb21wdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgV2luZG93IHdhcyBzdWNjZXNzZnVsbHkgb3BlbmVkIHdpdGggdXNlciBpbnRlcmFj
dGlvbiBzaW5jZSB0aGUgdXNlciB3YXMgbmV2ZXIgY29uc3VsdGVkL3Byb21wdGVkLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXdpdGhvdXQtcHJvbXB0
LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRob3V0LXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYzY5NTBjMWJiM2FiOTU0YzFhNjZiNjk5NTYyODA5ZGVh
YWMyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS13aXRob3V0LXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBjYW4gb3BlbiBhIHdpbmRvdyBpZiBzdG9yYWdlIGFj
Y2VzcyBpcyBkZW5pZWQgd2l0aG91dCBwcm9tcHQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOworCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAi
OworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVz
dCArICIvdGVtcCI7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNz
YWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MgIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRh
dGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7Cisg
ICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoZmFsc2UpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0
IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIGZhbHNl
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBnZXQgbG9nZ2VkIGZvciB1
c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
dGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9u
bG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rp
dmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nl
c3MtaWZyYW1lLWFuZC1wb3Atd2luZG93Lmh0bWwjdXNlclNob3VsZE5vdEdyYW50QWNjZXNzLHVz
ZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNh
bWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5l
ci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNjNjJiZmNkZTk4OTBiYWJiYzk5OGFhMDQ5ZWY4ZDk4ZjkwODIyMWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVyZS1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5k
b3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aCBwcmV2aW91cyB1c2VyIGludGVyYWN0aW9u
IGdldHMgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgaXRzIG9wZW5lciBpZiBpdCBnZXRzIHVzZXIgaW50
ZXJhY3Rpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIENvb2tpZSBj
cmVhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQg
cmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0
UGFydHlDb29raWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29v
a2llPXZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWF0LXBvcHVwLXVzZXItZ2VzdHVy
ZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dy
YW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1hdC1wb3B1cC11c2VyLWdlc3R1cmUtZGF0
YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzQ4NWY1MDdlNjE4ZjFhNzI5Mzc2NTNjMThkNTQ3M2E2
Y2I4MjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1hdC1wb3B1cC11c2VyLWdl
c3R1cmUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW4o
KSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2lu
IHdpbmRvdyBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIHByZXZpb3VzIHVzZXIgaW50ZXJh
Y3Rpb24gZ2V0cyBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyIGlmIGl0IGdldHMgdXNl
ciBpbnRlcmFjdGlvbi4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlz
aEpTVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9uTG9hZEhh
bmRsZXIpIHsKKyAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICBlbGVtZW50LnNyYyA9IHVybDsKKyAgICAgICAgaWYgKG9uTG9h
ZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgfQorICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlm
IChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisKKyAgICAgICAgbmV3V2lu
LmNsb3NlKCk7CisgICAgICAgIG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgIiZtZXNzYWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tp
ZS4iLCBmaW5pc2hUZXN0KTsKKyAgICB9CisKKyAgICBjb25zdCB0aGlyZFBhcnR5T3JpZ2luID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9y
YWdlQWNjZXNzL3Jlc291cmNlcyI7CisgICAgY29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGly
ZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRoOworICAgIGNvbnN0IGZpcnN0UGFydHlDb29raWVO
YW1lID0gImZpcnN0UGFydHlDb29raWUiOworICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMg
PSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisgICAg
dmFyIG5ld1dpbjsKKworICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhv
c3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQ
YXJ0eU9yaWdpbiwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
dGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24odGhpcmRQYXJ0eU9y
aWdpbikpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CisK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxv
Y2tpbmcoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV3V2luID0gd2lu
ZG93Lm9wZW4odGhpcmRQYXJ0eU9yaWdpbiArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcHJv
ZHVjZS11c2VyLWdlc3R1cmUtc2V0LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbCIsICJ0ZXN0
V2luZG93Iik7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC13aXRoLXByb21w
dC1wcmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdl
YzRjZjdmNzg0MWQ1N2M2OGRkYjVmYTY2Y2I1NjM0YjMxZGEzYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC13aXRoLXByb21wdC1w
cmVzZXJ2ZXMtZ2VzdHVyZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIGNhbiBkaXNwbGF5IGEgd2luZG93IGlmIHN0
b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIFdpbmRvdyB3YXMgc3VjY2Vzc2Z1bGx5IG9wZW5lZCB3aXRoIHVzZXIgaW50ZXJhY3Rp
b24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXdp
dGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtd2l0aC1wcm9tcHQtcHJlc2VydmVzLWdlc3R1
cmUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzI1MTg2MzQ1MjJmNTlhMzBlYWJlNWRiZGM5
NzJhNmViZDIyOTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL2dyYW50LXdpdGgtcHJvbXB0LXByZXNlcnZlcy1nZXN0dXJlLWRhdGFiYXNl
Lmh0bWwKQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBjYW4gZGlzcGxheSBhIHdpbmRvdyBpZiBzdG9y
YWdlIGFjY2VzcyBpcyBncmFudGVkLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAg
ICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3Rl
bXAiOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTICIp
ICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxh
Y2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3Nh
Z2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAg
ICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAg
ICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNl
dFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3Ag
KyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkg
eworICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8g
ZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKGZhbHNlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2
YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRp
c3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRl
RWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1p
ZnJhbWUtYW5kLXBvcC13aW5kb3cuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3Vs
ZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFt
ZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtY3Jhc2gtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1OTViYWExMDM3NzY4
MDFkYmNlZmEyMjZjYzViYmRkODE4ZWViMGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCBxdWVyeWluZyBzdG9y
YWdlIGFjY2VzcyBBUEkgb24gYSBkZXRhY2hlZCBmcmFtZSBkb2Vzbid0IGNyYXNoLgorCitbb2Jq
ZWN0IEhUTUxEb2N1bWVudF0KK1NVQ0NFU1M6IERpZCBub3QgY3Jhc2guCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
Y3Jhc2gtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9oYXMtc3RvcmFnZS1hY2Nlc3MtY3Jhc2gtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGQ5
ZTA4NzkzNGMyN2Y1ODljZTgyMjZlZjMwYzM1NWNjZmY1MDliCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1j
cmFzaC1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgeworICAg
ICAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikKKyAgICAgICAg
Yy5pbm5lckhUTUwgKz0gKHN0ciArICI8YnI+IikKKyAgICB9CisKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
IHZhciB0ZXN0RGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICAgICAg
dmFyIHRlc3RGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAg
ICB0ZXN0RGl2LmFwcGVuZENoaWxkKHRlc3RGcmFtZSk7CisgICAgICAgIHZhciB0ZXN0RnJhbWVE
b2N1bWVudCA9IHRlc3RGcmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgIHRlc3RGcmFtZS5v
dXRlckhUTUwgPSB0ZXN0RnJhbWVEb2N1bWVudDsKKworICAgICAgICB0ZXN0RnJhbWVEb2N1bWVu
dC5oYXNTdG9yYWdlQWNjZXNzKCk7CisKKyAgICAgICAgZGVidWcoIlNVQ0NFU1M6IERpZCBub3Qg
Y3Jhc2guIikKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InRlc3QiPgorICAgICAgICA8cD5U
ZXN0IHRoYXQgcXVlcnlpbmcgc3RvcmFnZSBhY2Nlc3MgQVBJIG9uIGEgZGV0YWNoZWQgZnJhbWUg
ZG9lc24ndCBjcmFzaC48L3A+CisgICAgPC9kaXY+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJh
c2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yODlkYWE4Y2ViYjNkMTdkMzg2MDczMDY4Y2UxYThlNDRlYWY0MGUwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1z
dG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGRvY3VtZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSByZXR1
cm5zIGZhbHNlIGZvciBhIDNyZC1wYXJ0eSBpZnJhbWUgYnkgZGVmYXVsdC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNv
b2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1kYXRhYmFz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY0MWNmYmIxNDczNTYzM2JmMzA3NjBmNmI5MTI4NWNjZjM5OWQw
MjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGRvY3Vt
ZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKSByZXR1cm5zIGZhbHNlIGZvciBhIDNyZC1wYXJ0eSBpZnJh
bWUgYnkgZGVmYXVsdC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFs
c2UpOworCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAg
ICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAg
ICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIi
KSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5l
eHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0
IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0
aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGREZW55QWNjZXNz
IjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1l
bnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
ZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1i
eS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI1
ZTgxNDVhYTNlOTcxOTdlODE3NDMxYTI2ZjMzMTQ5YTM0Y2I5MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
ZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwtZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTAgQEAKK1Rlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2VzcygpIHJldHVybnMg
ZmFsc2UgZm9yIGEgM3JkLXBhcnR5IGlmcmFtZSBieSBkZWZhdWx0IChlcGhlbWVyYWwgc2Vzc2lv
bikuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIE5vIHN0b3JhZ2UgYWNj
ZXNzLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0gIk5v
IGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vz
cy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1
NjYxZjEwMWVkZDE1ZmFhYzA0NTIwMGE1MjJjYTI3MzNkZWZhYjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNz
LWZhbHNlLWJ5LWRlZmF1bHQtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzNyBA
QAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAt
LT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3Rv
cmFnZUFjY2VzcygpIHJldHVybnMgZmFsc2UgZm9yIGEgM3JkLXBhcnR5IGlmcmFtZSBieSBkZWZh
dWx0IChlcGhlbWVyYWwgc2Vzc2lvbikuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1l
c3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkg
eworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09
IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgi
UEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBm
cm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVz
dCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0
cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7Cisg
ICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVx
dWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9oYXMtc3RvcmFnZS1h
Y2Nlc3MtaWZyYW1lLmh0bWwjcG9saWN5U2hvdWxkRGVueUFjY2VzcyI7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
aGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11
c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mzk4Yzdi
ZDBkMDVhMmQzODUxYzk3YTQ4MTk4ZTQ2ZjNmNzIzNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBm
cm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIHVzZXIgaW50ZXJhY3Rpb24gZG9lcyBub3QgaGF2
ZSBzdG9yYWdlIGFjY2Vzcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Tm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2
ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRo
LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdp
dGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzMWRkMWVkOGY0
OTc2ZWNiNGM3ZTM3NmY5ODg2ZmFhMmE2YWQ5ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJl
dmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRtbApAQCAtMCww
ICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNy
b3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aCB1c2VyIGludGVy
YWN0aW9uIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuIik7CisgICAgICAgIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVz
c2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9m
KCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRh
dGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3Qgc3RhdGlz
dGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworICAgICAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0
aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0
IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJv
eCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0
cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2Vz
cyI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNz
LWlmcmFtZS5odG1sI3BvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5
LWhhcy1jb29raWVzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1o
YXMtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWU1NDA0OTI4Nzc4
YTI2ZjBiZDdmYTg5ZTE1Y2Q3ZmIxMTRlYzIxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10
aGlyZC1wYXJ0eS1oYXMtY29va2llcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorVGVzdHMgdGhhdCBkb2N1bWVudC5oYXNTdG9yYWdlQWNjZXNzKCkgcmV0dXJucyB0cnVl
IGZvciBhIDNyZC1wYXJ0eSBpZnJhbWUgaWYgdGhlIDNyZC1wYXJ0eSBoYXMgY29va2llcyBzZXQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEhhcyBzdG9yYWdlIGFjY2Vz
cy4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29raWU9dmFsdWUsIGNvb2tpZXMgc2Vl
biBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUiOiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVl
LWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQt
cGFydHktaGFzLWNvb2tpZXMtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Yzg2Njg5MzUzNGYz
NmRiZjBkMWZmNmNiYjI5YTkxNjVkOWU4ZTAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRo
aXJkLXBhcnR5LWhhcy1jb29raWVzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3RvcmFnZUFj
Y2VzcygpIHJldHVybnMgdHJ1ZSBmb3IgYSAzcmQtcGFydHkgaWZyYW1lIGlmIHRoZSAzcmQtcGFy
dHkgaGFzIGNvb2tpZXMgc2V0LiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdl
LCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAg
ICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7
CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1Mg
IiwgIiIpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBh
biB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0OworICAgICAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09
ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9j
YXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3Nl
dC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3
LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGly
ZC1wYXJ0eS1oYXMtY29va2llcy5odG1sI2ZpcnN0UGFydHlDb29raWVTZXQiOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBsZXQgaWZy
YW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFj
Y2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJh
bWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29r
aWVzLWVwaGVtZXJhbC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHkt
aGFzLWNvb2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZTU0MDQ5Mjg3NzhhMjZmMGJkN2ZhODllMTVjZDdmYjExNGVjMjFlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vz
cy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC1kYXRhYmFzZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBkb2N1bWVudC5oYXNTdG9yYWdl
QWNjZXNzKCkgcmV0dXJucyB0cnVlIGZvciBhIDNyZC1wYXJ0eSBpZnJhbWUgaWYgdGhlIDNyZC1w
YXJ0eSBoYXMgY29va2llcyBzZXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIEhhcyBzdG9yYWdlIGFjY2Vzcy4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUi
OiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJh
bC1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hh
cy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJh
bC1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZmNiNzk3YWY0ZThmYThmMmZmM2IzYTYzYjc3
NDczODBkNzA2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNv
b2tpZXMtZXBoZW1lcmFsLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQuaGFzU3RvcmFnZUFjY2Vzcygp
IHJldHVybnMgdHJ1ZSBmb3IgYSAzcmQtcGFydHkgaWZyYW1lIGlmIHRoZSAzcmQtcGFydHkgaGFz
IGNvb2tpZXMgc2V0IChlcGhlbWVyYWwgc2Vzc2lvbikuIik7CisgICAgICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
cmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2Fn
ZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQ
QVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgaG9z
dFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NV
cmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0OworICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZpcnN0UGFydHlDb29r
aWVTZXQiKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHN0YXRp
c3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9
Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFn
ZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2ll
cy5odG1sI2ZpcnN0UGFydHlDb29raWVTZXQiOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5z
cmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1z
dG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlbW92ZS1yZXF1ZXN0aW5nLWlmcmFtZS1kYXRh
YmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVtb3ZlLXJlcXVlc3RpbmctaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MDU0NmQyOTMyNzk0MzA5NDM2MjNlOTljMzdiNzE3NjM2YjIzMGQyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlbW92ZS1yZXF1ZXN0
aW5nLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMg
dGhhdCBTdG9yYWdlIEFjY2VzcyBBUEkgY2FsbHMgd29yayB3ZWxsIGZvciByZW1vdmVkIGZyYW1l
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaWZyYW1lIHJlbW92ZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlbW92ZS1yZXF1
ZXN0aW5nLWlmcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlbW92ZS1yZXF1ZXN0aW5nLWlmcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIyNjE3NGJjNGUxYWNiN2Q0ZDA5M2U0ZjVlM2UwMTVlNmIwNTNjZjYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVtb3ZlLXJlcXVl
c3RpbmctaWZyYW1lLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIGh0
bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0g
LS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdXNlci1zY2FsYWJsZT1ubyI+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgU3RvcmFnZSBBY2Nlc3MgQVBJIGNh
bGxzIHdvcmsgd2VsbCBmb3IgcmVtb3ZlZCBmcmFtZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CisgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAKKyAg
ICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNl
LCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKCkg
eworICAgICAgICByZXF1ZXN0aW5naWZyYW1lLnJlbW92ZSgpOworICAgICAgICB0ZXN0UGFzc2Vk
KCJpZnJhbWUgcmVtb3ZlZC4iKTsKKyAgICAgICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAwLjUp
OworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50
SWQpIHsKKyAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVt
ZW50SWQpOworICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0
ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAg
ICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9CisKKyAgICBjb25zdCBpZnJhbWVJ
RCA9ICJyZXF1ZXN0aW5naWZyYW1lIjsKKyAgICBjb25zdCBpZnJhbWVTb3VyY2UgPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1h
Y2Nlc3MtYW5kLWltbWVkaWF0ZWx5LXBvc3RtZXNzYWdlLWlmcmFtZS5odG1sIjsKKworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
aWZyYW1lSUQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisgICAgICAgIGlmcmFtZUVs
ZW1lbnQuaWQgPSBpZnJhbWVJRDsKKyAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSBpZnJhbWVT
b3VyY2U7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNy
b3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1ub24tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWRmNTM3YjI5ZjMzNjg3MmE1MjExOTRkYTRkMWYzM2VlODA1NThmMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9y
ZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1l
LWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGNyb3Nz
LW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlz
IG5vdCBzYW5kYm94ZWQgYW5kIHRoZSB1c2VyIGFjY2VwdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5j
b29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0gIk5vIGNvb2tpZXMiCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTJlOTliYWE2NTJkZTc4NDc0NmU2MTZlMDNmMjQ2ZjJmZmUxZmIwYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLW5vbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw2OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVk
IGlmIHRoZSBpZnJhbWUgaXMgbm90IHNhbmRib3hlZCBhbmQgdGhlIHVzZXIgYWNjZXB0cy4iKTsK
KyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
SVRQRGF0YWJhc2UodHJ1ZSk7CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2Nh
bGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyAiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdl
IGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAg
ICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAg
IHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAg
ICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRX
aWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsg
ZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVB
dChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2
ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQg
YXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZv
ciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNT
dG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBvbmxvYWQ9
InJ1blRlc3QoKSIgaWQ9IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiIHNyYz0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3Rv
cmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRC
ZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9y
aWdpbi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
Yzc1ZTY3OGMyOTNhNzNlNzYyNzQ5OTNjNmQ1ZjgzNDBiOGJjZTY2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIHN0b3Jh
Z2UgYWNjZXNzIGlzIGdyYW50ZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0aGUg
YWxsb3cgdG9rZW4sIGFuZCB0aGUgdXNlciBvcHRzIGluLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29v
a2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVzIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
Y3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
Y2ZlOWFiNjA0N2JhOTQwYTQwMWVkNTc2YzZjYWU2NTZmNThkNDY4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS5odG1sCkBAIC0w
LDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGNy
b3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1l
IGlzIHNhbmRib3hlZCwgaGFzIHRoZSBhbGxvdyB0b2tlbiwgYW5kIHRoZSB1c2VyIG9wdHMgaW4u
Iik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVk
IGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsK
KyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7Cisg
ICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
ZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1l
bnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9m
ZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVy
LmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1
ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFn
ZUFjY2VzcyIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc3RvcmFnZS1hY2Nlc3Mt
YnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ct
bW9kYWxzIiBvbmxvYWQ9InJ1blRlc3QoKSIgaWQ9IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3Jh
Z2VBY2Nlc3MiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNj
ZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc05vdFNh
bWVPcmlnaW5JZnJhbWUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFj
Y2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4t
d2l0aC11c2VyLWludGVyYWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20t
cHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJp
Z2h0LWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTg0ZTdmMDdkYWJm
M2UzNTc5MTI5MGYzZWRlOTcwMDczNTU0M2YzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2Vy
LWludGVyYWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1MCBAQAorVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIHN0
b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0
aGUgYWxsb3cgdG9rZW4sIHRoZSBpZnJhbWUgb3JpZ2luIGlzIGEgcHJldmFsZW50IHJlc291cmNl
LCB0aGUgaWZyYW1lIG9yaWdpbiBoYXMgaGFkIHVzZXIgaW50ZXJhY3Rpb24sIHRoZSB1c2VyIG9w
dHMgaW4sIGFuZCB0aGUgZnJhbWUgaXMgdGhlIG9uZSB3aXRoIGFjY2Vzcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQuIGRv
Y3VtZW50LmNvb2tpZSA9PSBmaXJzdFBhcnR5Q29va2llPXZhbHVlLCBjb29raWVzIHNlZW4gc2Vy
dmVyLXNpZGUgPT0geyJmaXJzdFBhcnR5Q29va2llIjoidmFsdWUifQorRGlkIG5hdmlnYXRlIGlm
cmFtZSBzYW1lLXNpdGUgYW5kIHdpbGwgbm93IGNoZWNrIHRoYXQgaXQgc3RpbGwgaGFzIHN0b3Jh
Z2UgYWNjZXNzLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1
ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVl
In0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAK
KworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lMS0tPicKKy0tLS0tLS0tCitTaG91bGQgcmVj
ZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitSZWNlaXZlZCBjb29raWUgbmFtZWQgJ2ZpcnN0UGFy
dHlDb29raWUnLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29r
aWUnLgorQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVl
CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTItLT4nCistLS0tLS0tLQorU2hvdWxkIG5v
dCByZWNlaXZlIGNvb2tpZXMuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBh
cnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlvbmVkQ29v
a2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lMy0tPicKKy0tLS0tLS0tCisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWU0LS0+JworLS0tLS0tLS0KK1Nob3VsZCBub3QgcmVjZWl2ZSBjb29raWVzLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUg
Y29va2llIG5hbWVkICdwYXJ0aXRpb25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5j
b29raWU6CisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTUtLT4nCistLS0tLS0tLQorQWZ0
ZXIgdGhlIHRvcCBmcmFtZSBuYXZpZ2F0ZXMgdGhlIHN1YiBmcmFtZSBjcm9zcy1zaXRlIGFuZCBi
YWNrLCB0aGUgc3ViIGZyYW1lIHNob3VsZCBubyBsb25nZXIgaGF2ZSBhY2Nlc3MgdG8gY29va2ll
cy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlk
IG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJv
eGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWFu
ZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ2OTg1ZDRiMDQ5YTNhYTI1MDA3N2I3NTMyMGFmYzZhYzRjZDIyMTkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQt
Z3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50
LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1l
LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgc2FuZGJveGVkLCBoYXMg
dGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBpcyBhIHByZXZhbGVudCByZXNvdXJj
ZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCB1c2VyIGludGVyYWN0aW9uLCB0aGUgdXNlciBv
cHRzIGluLCBhbmQgdGhlIGZyYW1lIGlzIHRoZSBvbmUgd2l0aCBhY2Nlc3MuIik7CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0Ojgw
MDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVy
VGVzdCArICIvdGVtcCI7CisKKyAgICAgICAgY29uc3QgcGFydGl0aW9uSG9zdCA9ICIxMjcuMC4w
LjE6ODAwMCI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0
eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb1NldEZpcnN0
UGFydHlDb29raWUgPSAiL3NldC1jb29raWUucGhwP25hbWU9IiArIGZpcnN0UGFydHlDb29raWVO
YW1lICsgIiZ2YWx1ZT12YWx1ZSI7CisgICAgICAgIGNvbnN0IHBhcnRpdGlvbmVkQ29va2llTmFt
ZSA9ICJwYXJ0aXRpb25lZENvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb1NldFBhcnRp
dGlvbmVkQ29va2llID0gIi9zZXQtY29va2llLnBocD9uYW1lPSIgKyBwYXJ0aXRpb25lZENvb2tp
ZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsKKyAgICAgICAgY29uc3QgcmV0dXJuVXJsID0gImh0dHA6
Ly8iICsgcGFydGl0aW9uSG9zdCArICIvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWlu
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZGF0YWJh
c2UuaHRtbCI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMgPSAiL2dldC1jb29r
aWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJm5hbWUyPSIgKyBwYXJ0
aXRpb25lZENvb2tpZU5hbWU7CisKKyAgICAgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1cmwsIG9u
TG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gdXJsOworICAg
ICAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgICAgICBlbGVtZW50Lm9u
bG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4g
PT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50
LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3Nh
Z2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAg
ICAgICBydW5UZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWpl
Y3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZG9j
dW1lbnQubG9jYXRpb24uaGFzaCkgeworICAgICAgICAgICAgICAgIGNhc2UgIiNzdGVwMSI6Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJl
c291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZCgiSG9zdCBwcmVtYXR1cmVseSBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICAvLyBTZXQgZmlyc3QtcGFydHkgY29va2llIGZvciBsb2NhbGhvc3QuCisg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSB0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb1NldEZpcnN0UGFydHlDb29raWUgKyAiIyIgKyByZXR1cm5VcmwgKyAi
I3N0ZXAyIjsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXAyIjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwMyI7CisgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGZpcnN0LXBh
cnR5IGNvb2tpZSBkb2VzIGdldCBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAuMC4xLgor
ICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0
aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29r
aWUuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgIGNhc2UgIiNzdGVwMyI6CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9u
Lmhhc2ggPSAic3RlcDQiOworICAgICAgICAgICAgICAgICAgICAvLyBTZXQgbG9jYWxob3N0IGFz
IHByZXZhbGVudCB3aXRoIHVzZXIgaW50ZXJhY3Rpb24uCisgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
LCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBs
b2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0
cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQg
c2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZmlyc3Qt
cGFydHkgY29va2llIGRvZXMgbm90IGdldCBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFy
dHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90IHJl
Y2VpdmUgY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA0
IjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNSI7
CisgICAgICAgICAgICAgICAgICAgIC8vIFRyeSB0byBzZXQgYSBjb29raWUgZm9yIGxvY2FsaG9z
dC4KKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1
YlBhdGhUb1NldFBhcnRpdGlvbmVkQ29va2llLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA1IjoKKyAgICAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNiI7CisgICAgICAgICAgICAgICAg
ICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVy
IDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICAgICAgb3BlbklmcmFtZSh0aGlyZFBhcnR5QmFz
ZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIG5vdCByZWNlaXZl
IGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNhc2UgIiNzdGVwNiI6CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggPSAic3RlcDciOworICAgICAgICAgICAgICAgICAgICAvLyBDcmVhdGUgaWZy
YW1lIHRoYXQgd2lsbCByZXF1ZXN0IHN0b3JhZ2UgYWNjZXNzLgorICAgICAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIs
ICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBh
bGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgaWZy
YW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
aWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdl
QWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sP2JvZ3Vz
I3VzZXJTaG91bGRHcmFudEFjY2Vzcyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxk
R3JhbnRBY2Nlc3MsaXNOb3RTYW1lT3JpZ2luSWZyYW1lIjsKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA3IjoKKyAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwOCI7CisgICAgICAgICAgICAg
ICAgICAgIC8vIE5hdmlnYXRlIHRoZSBmcmFtZSBzYW1lLXNpdGUuCisgICAgICAgICAgICAgICAg
ICAgIGxldCBleGlzdGluZ0lmcmFtZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGhlSWZy
YW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICBleGlz
dGluZ0lmcmFtZTEub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVidWcoIkRpZCBuYXZpZ2F0ZSBpZnJhbWUgc2FtZS1zaXRlIGFuZCB3aWxsIG5vdyBjaGVj
ayB0aGF0IGl0IHN0aWxsIGhhcyBzdG9yYWdlIGFjY2Vzcy4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGhlSWZyYW1lVGhh
dFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l
LmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoInJlcG9ydEJhY2tDb29raWVzIiwgImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIpOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAg
ICAgICBleGlzdGluZ0lmcmFtZTEuc3JjID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9H
ZXRDb29raWVzOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBj
YXNlICIjc3RlcDgiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNo
ID0gInN0ZXA5IjsKKyAgICAgICAgICAgICAgICAgICAgLy8gTmF2aWdhdGUgdGhlIGZyYW1lIGNy
b3NzLXNpdGUuIFRoaXMgc2hvdWxkIGNsZWFyIG91dCBzdG9yYWdlIGFjY2Vzcy4KKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGV4aXN0aW5nSWZyYW1lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAg
ICAgIGV4aXN0aW5nSWZyYW1lMi5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgICAg
ICBleGlzdGluZ0lmcmFtZTIuc3JjID0gImh0dHA6Ly8iICsgcGFydGl0aW9uSG9zdDsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA5IjoKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMTAiOworICAg
ICAgICAgICAgICAgICAgICAvLyBBZ2FpbiBvcGVuIGxvY2FsaG9zdCBpbiB0aGUgZXhpc3Rpbmcg
ZnJhbWUgYW5kIGNoZWNrIHRoYXQgbm8gY29va2llIGdldHMgc2VudCBmb3IgbG9jYWxob3N0IHVu
ZGVyIDEyNy4wLjAuMSBzaW5jZSBpdCBoYXMgYmVlbiBuYXZpZ2F0ZWQgY3Jvc3Mtc2l0ZS4KKyAg
ICAgICAgICAgICAgICAgICAgbGV0IGV4aXN0aW5nSWZyYW1lMyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAg
ICAgICAgICAgIGV4aXN0aW5nSWZyYW1lMy5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAg
ICAgICAgICBleGlzdGluZ0lmcmFtZTMuc3JjID0gdGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRo
VG9HZXRDb29raWVzICsgIiZtZXNzYWdlPUFmdGVyIHRoZSB0b3AgZnJhbWUgbmF2aWdhdGVzIHRo
ZSBzdWIgZnJhbWUgY3Jvc3Mtc2l0ZSBhbmQgYmFjaywgdGhlIHN1YiBmcmFtZSBzaG91bGQgbm8g
bG9uZ2VyIGhhdmUgYWNjZXNzIHRvIGNvb2tpZXMuIjsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAxMCI6CisgICAgICAgICAgICAgICAgICAg
IHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggPT09ICIiKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHRoaXJkUGFydHlCYXNlVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiTG9jYWxob3N0IHdhcyBjbGFzc2lmaWVkIGFzIHByZXZhbGVu
dCByZXNvdXJjZSBiZWZvcmUgdGhlIHRlc3Qgc3RhcnRzLiIpOworICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaGFzaCA9ICJzdGVwMSI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3Nh
Z2UsIGZhbHNlKTsKKworICAgICAgICBydW5UZXN0KCk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1l
LWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1m
cm9tLXdyb25nLWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2lu
LXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi1idXQtYWNjZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViMzI2M2U4MWVlNjYwMzVjMWMwNTkyYjNlNDAxOTQwYzk1OWViYTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJl
dmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25n
LWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUzIEBACitUZXN0cyB0aGF0
IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBpZnJh
bWUgaXMgc2FuZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBp
cyBhIHByZXZhbGVudCByZXNvdXJjZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCB1c2VyIGlu
dGVyYWN0aW9uLCB0aGUgdXNlciBvcHRzIGluLCBidXQgdGhlIGZyYW1lIGlzIG5vdCB0aGUgb25l
IHdpdGggYWNjZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdG9y
YWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4gZG9jdW1lbnQuY29va2llID09IGZpcnN0UGFydHlDb29r
aWU9dmFsdWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImZpcnN0UGFydHlDb29raWUi
OiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZTEtLT4nCistLS0tLS0tLQorU2hv
dWxkIHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLgorUmVjZWl2ZWQgY29va2llIG5hbWVkICdm
aXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ3BhcnRpdGlv
bmVkQ29va2llJy4KK0NsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZTogZmlyc3RQYXJ0eUNvb2tp
ZT12YWx1ZQorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWUyLS0+JworLS0tLS0tLS0KK1No
b3VsZCBub3QgcmVjZWl2ZSBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZTMtLT4nCistLS0tLS0tLQorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lNC0tPicKKy0tLS0tLS0tCitTaG91bGQgbm90IHJlY2VpdmUgY29va2llcy4KK0Rp
ZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlDb29raWUnLgorRGlkIG5vdCBy
ZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUnLgorQ2xpZW50LXNpZGUgZG9j
dW1lbnQuY29va2llOgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU1LS0+JworLS0tLS0t
LS0KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWU2LS0+JworLS0tLS0tLS0KK1Nob3Vs
ZCBub3QgcmVjZWl2ZSBjb29raWVzLgorRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAnZmly
c3RQYXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRpb25l
ZENvb2tpZScuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNz
LWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRo
LXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25nLWZyYW1lLWRhdGFiYXNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3Jh
bnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25nLWZyYW1lLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU1NDg2OTY3YmFjMDRmNDdlMjdjM2JlZjZjOWViYmFl
NWZkOTA4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1p
ZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1idXQtYWNj
ZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDE0NSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBj
cm9zcy1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmllZCBpZiB0aGUgaWZyYW1l
IGlzIHNhbmRib3hlZCwgaGFzIHRoZSBhbGxvdyB0b2tlbiwgdGhlIGlmcmFtZSBvcmlnaW4gaXMg
YSBwcmV2YWxlbnQgcmVzb3VyY2UsIHRoZSBpZnJhbWUgb3JpZ2luIGhhcyBoYWQgdXNlciBpbnRl
cmFjdGlvbiwgdGhlIHVzZXIgb3B0cyBpbiwgYnV0IHRoZSBmcmFtZSBpcyBub3QgdGhlIG9uZSB3
aXRoIGFjY2Vzcy4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAg
Y29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0
YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKworICAg
ICAgICBjb25zdCBwYXJ0aXRpb25Ib3N0ID0gIjEyNy4wLjAuMTo4MDAwIjsKKyAgICAgICAgY29u
c3QgdGhpcmRQYXJ0eU9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgICAgICBj
b25zdCByZXNvdXJjZVBhdGggPSAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzIjsKKyAgICAgICAg
Y29uc3QgdGhpcmRQYXJ0eUJhc2VVcmwgPSB0aGlyZFBhcnR5T3JpZ2luICsgcmVzb3VyY2VQYXRo
OworICAgICAgICBjb25zdCBmaXJzdFBhcnR5Q29va2llTmFtZSA9ICJmaXJzdFBhcnR5Q29va2ll
IjsKKyAgICAgICAgY29uc3Qgc3ViUGF0aFRvU2V0Rmlyc3RQYXJ0eUNvb2tpZSA9ICIvc2V0LWNv
b2tpZS5waHA/bmFtZT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWUgKyAiJnZhbHVlPXZhbHVlIjsK
KyAgICAgICAgY29uc3QgcGFydGl0aW9uZWRDb29raWVOYW1lID0gInBhcnRpdGlvbmVkQ29va2ll
IjsKKyAgICAgICAgY29uc3Qgc3ViUGF0aFRvU2V0UGFydGl0aW9uZWRDb29raWUgPSAiL3NldC1j
b29raWUucGhwP25hbWU9IiArIHBhcnRpdGlvbmVkQ29va2llTmFtZSArICImdmFsdWU9dmFsdWUi
OworICAgICAgICBjb25zdCByZXR1cm5VcmwgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25Ib3N0ICsg
Ii9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2Fu
ZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9u
LWJ1dC1hY2Nlc3MtZnJvbS13cm9uZy1mcmFtZS1kYXRhYmFzZS5odG1sIjsKKyAgICAgICAgY29u
c3Qgc3ViUGF0aFRvR2V0Q29va2llcyA9ICIvZ2V0LWNvb2tpZXMucGhwP25hbWUxPSIgKyBmaXJz
dFBhcnR5Q29va2llTmFtZSArICImbmFtZTI9IiArIHBhcnRpdGlvbmVkQ29va2llTmFtZTsKKwor
ICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFuZGxlcikgeworICAgICAg
ICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgICAgICBpZiAob25Mb2FkSGFu
ZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0gb25Mb2FkSGFuZGxlcjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxl
bWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikg
IT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFj
ZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHJ1blRlc3QoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAg
ICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIu
YWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICAgICAgc3dpdGNoIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoKSB7
CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAxIjoKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCkp
CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IHByZW1hdHVyZWx5IHNl
dCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgIC8vIFNldCBm
aXJzdC1wYXJ0eSBjb29raWUgZm9yIGxvY2FsaG9zdC4KKyAgICAgICAgICAgICAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvU2V0Rmly
c3RQYXJ0eUNvb2tpZSArICIjIiArIHJldHVyblVybCArICIjc3RlcDIiOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDIiOgorICAgICAgICAg
ICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAzIjsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgZmlyc3QtcGFydHkgY29va2llIGRvZXMgZ2V0IHNl
bnQgZm9yIGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEuCisgICAgICAgICAgICAgICAgICAgIG9w
ZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZtZXNz
YWdlPVNob3VsZCByZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4iLCBydW5UZXN0KTsKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXAzIjoKKyAg
ICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNCI7CisgICAg
ICAgICAgICAgICAgICAgIC8vIFNldCBsb2NhbGhvc3QgYXMgcHJldmFsZW50LgorICAgICAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGlj
c1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmco
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRo
YXQgdGhlIGZpcnN0LXBhcnR5IGNvb2tpZSBkb2VzIG5vdCBnZXQgc2VudCBmb3IgbG9jYWxob3N0
IHVuZGVyIDEyNy4wLjAuMS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbklm
cmFtZSh0aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9
U2hvdWxkIG5vdCByZWNlaXZlIGNvb2tpZXMuIiwgcnVuVGVzdCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgIiNzdGVwNCI6CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggPSAic3RlcDUiOworICAgICAgICAgICAgICAgICAgICAvLyBUcnkgdG8gc2V0IGNvb2tpZSBm
b3IgbG9jYWxob3N0LgorICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlC
YXNlVXJsICsgc3ViUGF0aFRvU2V0UGFydGl0aW9uZWRDb29raWUsIHJ1blRlc3QpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDUiOgorICAg
ICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA2IjsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2Nh
bGhvc3QgdW5kZXIgMTI3LjAuMC4xLgorICAgICAgICAgICAgICAgICAgICBvcGVuSWZyYW1lKHRo
aXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQg
bm90IHJlY2VpdmUgY29va2llcy4iLCBydW5UZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgY2FzZSAiI3N0ZXA2IjoKKyAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9ICJzdGVwNyI7CisgICAgICAgICAgICAgICAgICAgIGxl
dCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAg
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFs
bG93LXN0b3JhZ2UtYWNjZXNzLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1zY3JpcHRzIGFsbG93
LXNhbWUtb3JpZ2luIGFsbG93LW1vZGFscyIpOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVF
bGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVx
dWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9
ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAg
ICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nl
c3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3Vs
ZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vz
cyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDciOgorICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXA4IjsKKyAgICAgICAgICAgICAgICAgICAgLy8g
Q2hlY2sgdGhhdCBubyBjb29raWUgZ2V0cyBzZW50IGZvciBsb2NhbGhvc3QgdW5kZXIgMTI3LjAu
MC4xIHNpbmNlIHdlJ3JlIG9wZW5pbmcgYSBuZXcgZnJhbWUuCisgICAgICAgICAgICAgICAgICAg
IG9wZW5JZnJhbWUodGhpcmRQYXJ0eUJhc2VVcmwgKyBzdWJQYXRoVG9HZXRDb29raWVzICsgIiZt
ZXNzYWdlPVNob3VsZCBub3QgcmVjZWl2ZSBjb29raWVzLiIsIHJ1blRlc3QpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICIjc3RlcDgiOgorICAgICAg
ICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoID09PSAiIikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKHRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0eUJhc2VVcmwpKQorICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJMb2NhbGhvc3Qgd2FzIGNsYXNzaWZpZWQgYXMgcHJl
dmFsZW50IHJlc291cmNlIGJlZm9yZSB0aGUgdGVzdCBzdGFydHMuIik7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0ZXAxIjsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIHJ1blRlc3QoKTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1p
ZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20t
cHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgwZjAyNGEwNzk4OGNjZDYyN2YyMzQxYzhlMWRlMWQ5ODFjMGQ0ZWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZy
b20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgc2FuZGJveGVkLCBoYXMg
dGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBpcyBhIHByZXZhbGVudCByZXNvdXJj
ZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCByZWNlbnQgdXNlciBpbnRlcmFjdGlvbiwgYW5k
IHRoZSB1c2VyIG9wdHMgaW4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVz
IHNlZW4gc2VydmVyLXNpZGUgPT0gIk5vIGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1l
LWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MzExNDE5MGM0MDQxNzc4NWU3NGE1MTdmMzI4Mzk5OGUyZDFiNGFmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKQEAg
LTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
Y3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJh
bWUgaXMgc2FuZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBp
cyBhIHByZXZhbGVudCByZXNvdXJjZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIGhhZCByZWNlbnQg
dXNlciBpbnRlcmFjdGlvbiwgYW5kIHRoZSB1c2VyIG9wdHMgaW4uIik7CisgICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZl
TWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50
LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFu
IHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBm
dW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2
YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAy
OworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVy
WCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAg
ICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRl
ci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxl
RmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2Vz
cyIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhv
c3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0
VW5kZXJUZXN0ICsgIi90ZW1wIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFz
ZSh0cnVlKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRp
c3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFs
ZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVz
ZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIp
OworICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNl
dEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2
YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0
b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9y
YWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJl
Q29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklmcmFtZSI7
CisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxl
bWVudCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1n
cmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQt
ZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY0MGY2Yzg1YzcwNTcxYTY4NDllYzkwYTg2NzAwYTA1Nzk3NmI0MTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3Jh
bnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBzdG9yYWdlIGFjY2Vz
cyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0aGUgYWxsb3cgdG9r
ZW4sIHRoZSBpZnJhbWUgb3JpZ2luIGlzIGEgcHJldmFsZW50IHJlc291cmNlLCB0aGUgaWZyYW1l
IG9yaWdpbiBoYXMgbm90IGhhZCB1c2VyIGludGVyYWN0aW9uLCBhbmQgdGhlIHVzZXIgb3B0cyBp
bi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mg
d2FzIGRlbmllZC4gZG9jdW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRl
ID09ICJObyBjb29raWVzIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVu
dC1kb21haW4td2l0aG91dC11c2VyLWludGVyYWN0aW9uLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWRjYWEzYThlYjcwNThlZTNjZDM3OTc5N2JlNmViYzQ5MDBiZDJiYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1n
cmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQt
ZG9tYWluLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEs
NjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGNyb3NzLW9y
aWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBpZnJhbWUgaXMgc2Fu
ZGJveGVkLCBoYXMgdGhlIGFsbG93IHRva2VuLCB0aGUgaWZyYW1lIG9yaWdpbiBpcyBhIHByZXZh
bGVudCByZXNvdXJjZSwgdGhlIGlmcmFtZSBvcmlnaW4gaGFzIG5vdCBoYWQgdXNlciBpbnRlcmFj
dGlvbiwgYW5kIHRoZSB1c2VyIG9wdHMgaW4uIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2
ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVu
dCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikg
IT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFj
ZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlz
ZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGFjdGl2
YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAg
ICB9CisKKyAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsg
Ii90ZW1wIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zZXRBdHRy
aWJ1dGUoInNhbmRib3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nlc3MtYnktdXNlci1hY3RpdmF0aW9u
IGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxzIik7CisgICAgICAg
ICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAg
IGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7
CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1l
Lmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lT
aG91bGROb3RHcmFudEFjY2Vzcyxpc05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1uZXN0
ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRi
b3hlZC1uZXN0ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTVk
ZTZkZjgxNzc4YmYwYmZjMjMzNDBlMDJhODcxYmFlYjM4ZTQyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFj
Y2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLW5lc3RlZC1pZnJhbWUtZGF0YWJhc2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0
aGUgYWxsb3cgdG9rZW4sIGJ1dCBpcyBuZXN0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBkZW5pZWQuIGRvY3VtZW50LmNvb2tpZSA9
PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNz
LWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtbmVzdGVkLWlmcmFtZS1kYXRhYmFzZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vz
cy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLW5lc3RlZC1pZnJhbWUtZGF0YWJhc2UuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNzRjM2YwYzhkOGFiNDRmYWI5NGQ2MDYzOGFiOWEzOWE2YmQ4NTI0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
YW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLW5lc3RlZC1pZnJhbWUtZGF0
YWJhc2UuaHRtbApAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmll
ZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCwgaGFzIHRoZSBhbGxvdyB0b2tlbiwgYnV0IGlz
IG5lc3RlZC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29u
c3QgaG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRp
c3RpY3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0ICsgIi90ZW1wIjsKKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAg
ICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIp
KTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4
cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICBzZXRFbmFibGVG
ZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNl
bnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAg
ICAgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNl
dEhlaWdodCAvIDI7CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpLnRoZW4oCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2Ug
eworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlByb21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1
cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzVXBkYXRlQ29v
a2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJv
eCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0
cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0
c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJl
cXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l
RWxlbWVudC5zcmMgPSAicmVzb3VyY2VzL25lc3RpbmctaWZyYW1lLmh0bWwiOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVu
dCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tZGV0YWNoLXNob3VsZC1ub3QtaGF2ZS1hY2Nl
c3MtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhh
dmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTMxMDY5ODgwZWU2
OTE4Y2M1OGQwYjk0ZjBmYTUzYTA5OTM3M2M5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJl
dmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gaXMg
ZGV0YWNoZWQgZnJvbSB0aGUgRE9NIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFu
dGVkLiBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBz
ZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1MgVGhl
cmUgaXMgYSBzdG9yYWdlIGFjY2VzcyBlbnRyeSBmb3IgbG9jYWxob3N0LgorUEFTUyBUaGVyZSBp
cyBubyBzdG9yYWdlIGFjY2VzcyBlbnRyeSBmb3IgbG9jYWxob3N0IGFmdGVyIGlmcmFtZSBkZXRh
Y2guCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
YW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLXRoZW4tZGV0YWNoLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MtZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNDM3MTNlYzI4YTI5MWE5YWFmMWRhODU2MDdmMWFjYTJmMTEz
NTdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUt
YWNjZXNzLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJl
dmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gaXMg
ZGV0YWNoZWQgZnJvbSB0aGUgRE9NIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuIik7Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICBmdW5j
dGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwg
ZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGlmcmFtZUlEID0gIlRo
ZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICBmdW5jdGlvbiBhc2tJ
ZklmcmFtZVN0aWxsSGFzU3RvcmFnZUFjY2VzcygpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoZnVuY3Rpb24gKGFycmF5T2ZEb21haW5zKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIHBhc3NlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBhcnJheU9mRG9tYWlucy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJyYXlPZkRvbWFpbnNbaV0gPT09ICJsb2NhbGhvc3QiKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNzZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGlmIChwYXNzZWQpCisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRo
ZXJlIGlzIG5vIHN0b3JhZ2UgYWNjZXNzIGVudHJ5IGZvciBsb2NhbGhvc3QgYWZ0ZXIgaWZyYW1l
IGRldGFjaC4iKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlRoZXJlIGlzIHN0aWxsIGEgc3RvcmFnZSBhY2Nlc3MgZW50cnkgZm9yIGxvY2Fs
aG9zdCBhZnRlciBpZnJhbWUgZGV0YWNoLiIpOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZGV0YWNo
SWZyYW1lQW5kQ2hlY2tXaGV0aGVySXRTdGlsbEhhc1N0b3JhZ2VBY2Nlc3MoKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKGZ1bmN0aW9uIChhcnJh
eU9mRG9tYWlucykgeworICAgICAgICAgICAgICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5T2ZEb21haW5zLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheU9mRG9tYWluc1tpXSA9PT0gImxvY2Fs
aG9zdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFzc2VkKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJUaGVyZSBpcyBhIHN0b3JhZ2UgYWNjZXNzIGVudHJ5IGZvciBsb2NhbGhv
c3QuIik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJUaGVyZSBpcyBubyBzdG9yYWdlIGFjY2VzcyBlbnRyeSBmb3IgbG9jYWxob3N0LiIpOwor
ICAgICAgICAgICAgICAgIHZhciB0aGVJZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp
ZnJhbWVJRCk7CisgICAgICAgICAgICAgICAgdGhlSWZyYW1lLm9ubG9hZCA9IGFza0lmSWZyYW1l
U3RpbGxIYXNTdG9yYWdlQWNjZXNzOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdib2R5JylbMF0uYXBwZW5kQ2hpbGQodGhlSWZyYW1lKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZl
bnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIp
ICE9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVw
bGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgICAgICBkZXRhY2hJZnJhbWVBbmRD
aGVja1doZXRoZXJJdFN0aWxsSGFzU3RvcmFnZUFjY2VzcygpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAg
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVz
c2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAg
ICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lk
dGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQo
Y2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IH0s
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQubG9j
YXRpb24uaGFzaCAhPT0gIiNlbGVtZW50QWN0aXZhdGVkIikgeworICAgICAgICAgICAgICAgIGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggPSAiZWxlbWVudEFjdGl2YXRlZCI7CisgICAgICAgICAgICAg
ICAgYWN0aXZhdGVFbGVtZW50KGlmcmFtZUlEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAg
ICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIgJiYgZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCAhPT0gIiNlbGVtZW50QWN0aXZhdGVkIikgeworICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5sb2NhdGlvbi5ocmVmID0gc3RhdGlzdGljc1VybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJj
ZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlI2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10
aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwjZmlyc3RQYXJ0eUNvb2tpZVNl
dCI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUs
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihz
dGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3Qg
ZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJh
bWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1i
eS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1t
b2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0g
cnVuVGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vz
cy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUuaHRtbCN1c2VyU2hvdWxk
R3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNz
IjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZy
YW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNy
b3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBmNGQ5MDYwMTViNGEzNGZhYzY3OGNlNzYz
ODJmY2I2OTM1MDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3Nz
LXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZh
bGVudCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmln
YXRlcyBpdHNlbGYgY3Jvc3Mtc2l0ZSBkb2VzIG5vdCBoYXZlIHN0b3JhZ2UgYWNjZXNzLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5jb29raWUgPT0gCitQ
QVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0g
Y29va2llU2V0Q2xpZW50U2lkZUFmdGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0
UGFydHlDb29raWU9dmFsdWUKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tp
ZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWRhdGFi
YXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUt
YWNjZXNzLWRhdGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTYxYzEzMjIyMzdhYWRhMmNkYTg5NWI2
YzkwZDgyODU1ZThmNDU2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1j
cm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsx
LDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3Nz
LW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0
b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmlnYXRlcyBpdHNlbGYgY3Jvc3Mtc2l0ZSBkb2VzIG5v
dCBoYXZlIHN0b3JhZ2UgYWNjZXNzLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKwor
ICAgICAgICBjb25zdCBleHBlY3RlZFBhc3NNZXNzYWdlcyA9IDI7CisgICAgICAgIHZhciBwYXNz
TWVzc2FnZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2
ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoImRvY3Vt
ZW50LmNvb2tpZSIpID09PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MiKSAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5k
YXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzc01lc3Nh
Z2VzUmVjZWl2ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NNZXNzYWdlc1JlY2Vp
dmVkID49IGV4cGVjdGVkUGFzc01lc3NhZ2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgZmlu
aXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3Jp
Z2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1l
bnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQu
b2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBhY3RpdmF0
ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAg
ICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nl
c3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12
YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFu
dC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3Mu
aHRtbCNmaXJzdFBhcnR5Q29va2llU2V0IjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwp
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBh
cyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNz
SGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJh
Y3Rpb24uIik7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0
ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94Iiwg
ImFsbG93LXN0b3JhZ2UtYWNjZXNzLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1zY3JpcHRzIGFs
bG93LXNhbWUtb3JpZ2luIGFsbG93LW1vZGFscyIpOworICAgICAgICAgICAgICAgICAgICAgICAg
aWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgICAgICAgICAg
aWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZWxmLW5hdmlnYXRpbmctZnJhbWUt
YWZ0ZXItZ3JhbnRlZC1hY2Nlc3MuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3Vs
ZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzLGNyb3NzU2l0ZU5hdmlnYXRpb24i
OworICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2Ft
ZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRo
ZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjc0NWRiNTk0ZTljZjgzMGEyOGM0NjEyMTBmNzhlNDkxNThlOTA0
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxk
LWhhdmUtYWNjZXNzLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0
cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB0aGF0
IGlzIGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gbmF2aWdhdGVzIGl0c2VsZiBzYW1l
LXNpdGUgc3RpbGwgaGFzIHN0b3JhZ2UgYWNjZXNzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBkb2N1bWVudC5jb29raWUgPT0gCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdh
cyBncmFudGVkLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0gY29va2llU2V0Q2xpZW50U2lkZUFm
dGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0UGFydHlDb29raWU9dmFsdWUKK1BB
U1MgSGFzIHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0gY29va2llU2V0Q2xpZW50
U2lkZUFmdGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0UGFydHlDb29raWU9dmFs
dWUsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSB7ImNvb2tpZVNldENsaWVudFNpZGVBZnRl
ckdyYW50ZWRTdG9yYWdlQWNjZXNzIjoidmFsdWUiLCJmaXJzdFBhcnR5Q29va2llIjoidmFsdWUi
fQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFu
ZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNz
LWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZl
LWFjY2Vzcy1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYzUxZTliODJjMTU2MTdiYWFkMzAx
ZWQ0MzA0NGRlNjZlZmMyNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUt
c2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy1kYXRhYmFzZS5odG1sCkBAIC0wLDAgKzEsOTEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgY3Jvc3Mtb3Jp
Z2luIGlmcmFtZSBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50ZWQgc3RvcmFn
ZSBhY2Nlc3MgYW5kIHRoZW4gbmF2aWdhdGVzIGl0c2VsZiBzYW1lLXNpdGUgc3RpbGwgaGFzIHN0
b3JhZ2UgYWNjZXNzLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBj
b25zdCBleHBlY3RlZFBhc3NNZXNzYWdlcyA9IDI7CisgICAgICAgIHZhciBwYXNzTWVzc2FnZXNS
ZWNlaXZlZCA9IDA7CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7Cisg
ICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikg
eworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoImRvY3VtZW50LmNvb2tp
ZSIpID09PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAh
PT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxh
Y2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzc01lc3NhZ2VzUmVjZWl2
ZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NNZXNzYWdlc1JlY2VpdmVkID49IGV4
cGVjdGVkUGFzc01lc3NhZ2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVu
dElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAg
IFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2Nh
cGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0s
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQo
IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25z
dCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQubG9jYXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3Vy
Y2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
dGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwjZmlyc3RQYXJ0
eUNvb2tpZVNldCI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NV
cmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2lu
ZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdl
LWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdp
biBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
b25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
aWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2VsZi1uYXZpZ2F0aW5nLWZyYW1lLWFmdGVyLWdyYW50ZWQt
YWNjZXNzLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxw
b2xpY3lTaG91bGRHcmFudEFjY2VzcyxzYW1lU2l0ZU5hdmlnYXRpb24iOworICAgICAgICAgICAg
ICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcmFzaC1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1j
cmFzaC1kYXRhYmFzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdkOTkwMzk1ZThkY2FlMzcz
MGI5ZjNjMTdmYjU1ZTE4ZGE4ZmE4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFi
YXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3QgdGhhdCByZXF1ZXN0aW5nIHN0
b3JhZ2UgYWNjZXNzIEFQSSBvbiBhIGRldGFjaGVkIGZyYW1lIGRvZXNuJ3QgY3Jhc2guCisKK1tv
YmplY3QgSFRNTERvY3VtZW50XQorU1VDQ0VTUzogRGlkIG5vdCBjcmFzaC4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1h
Y2Nlc3MtY3Jhc2gtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGY3MDNlZjU0MDFhODQ3ZjI3MWIyOWQ2OWIxMzlhNGM5ZmIzZTIxMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLWNyYXNoLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgZnVuY3Rpb24gZGVi
dWcoc3RyKSB7CisgICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKQorICAgICAgICBjLmlubmVySFRNTCArPSAoc3RyICsgIjxicj4iKQorICAgIH0KKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0
cnVlKTsKKyAgICAgICAgdmFyIHRlc3REaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVz
dCIpOworICAgICAgICB2YXIgdGVzdEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7CisgICAgICAgIHRlc3REaXYuYXBwZW5kQ2hpbGQodGVzdEZyYW1lKTsKKyAgICAgICAg
dmFyIHRlc3RGcmFtZURvY3VtZW50ID0gdGVzdEZyYW1lLmNvbnRlbnREb2N1bWVudDsKKyAgICAg
ICAgdGVzdEZyYW1lLm91dGVySFRNTCA9IHRlc3RGcmFtZURvY3VtZW50OworCisgICAgICAgIHRl
c3RGcmFtZURvY3VtZW50LnJlcXVlc3RTdG9yYWdlQWNjZXNzKCk7CisKKyAgICAgICAgZGVidWco
IlNVQ0NFU1M6IERpZCBub3QgY3Jhc2guIikKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InRl
c3QiPgorICAgICAgICA8cD5UZXN0IHRoYXQgcmVxdWVzdGluZyBzdG9yYWdlIGFjY2VzcyBBUEkg
b24gYSBkZXRhY2hlZCBmcmFtZSBkb2Vzbid0IGNyYXNoLjwvcD4KKyAgICA8L2Rpdj4KKyAgICA8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNz
LWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGgtdW5pcXVlLW9yaWdpbi1kYXRhYmFz
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVu
aXF1ZS1vcmlnaW4tZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxOTc2NDY4NDEw
MTMwYjg2Njc5MThlZDY5MjhlYzhjYjYwN2FkYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVuaXF1ZS1vcmlnaW4tZGF0YWJhc2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFt
ZSBzdG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQgYW5k
IGhhcyB0aGUgdW5pcXVlIG9yaWdpbiBiZWNhdXNlIGl0IGxhY2tzIHRoZSBhbGxvdy1zYW1lLW9y
aWdpbiB0b2tlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFn
ZSBhY2Nlc3Mgd2FzIGRlbmllZCBmb3Igb3JpZ2luIG51bGwuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aC11bmlxdWUtb3JpZ2luLWRhdGFiYXNlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vz
cy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVuaXF1ZS1vcmlnaW4tZGF0YWJh
c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MzAxM2E2OGU4OTU3NTBlNDhmZmI1MWUxMzBjMWI3MjVmNjA3
ZTAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUt
d2l0aC11bmlxdWUtb3JpZ2luLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIGhh
cyB0aGUgdW5pcXVlIG9yaWdpbiBiZWNhdXNlIGl0IGxhY2tzIHRoZSBhbGxvdy1zYW1lLW9yaWdp
biB0b2tlbi4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAibnVsbCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQu
ZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZB
SUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZl
bnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpT
VGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJl
c2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQ
RGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJl
cXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc3Rv
cmFnZS1hY2Nlc3MtYnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctbW9kYWxz
IiBvbmxvYWQ9InJ1blRlc3QoKSIgaWQ9IlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nl
c3MiIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3Jl
cXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVz
ZXJTaG91bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGREZW55QWNjZXNzLGlzTm90U2FtZU9y
aWdpbklmcmFtZSxvcmlnaW5Jc051bGwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3Rv
cmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10
b2tlbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlm
cmFtZS13aXRob3V0LWFsbG93LXRva2VuLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNTE5YzdlOTFiMDQ0MDAyZGM4ZWEzMGM5ZjVhMWJlZjAzZWFhYTNmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFn
ZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10b2tl
bi1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBjcm9z
cy1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmllZCBpZiB0aGUgaWZyYW1lIGlz
IHNhbmRib3hlZCBhbmQgZG9lc24ndCBoYXZlIHRoZSBhbGxvdyB0b2tlbi4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGRlbmllZC4gZG9j
dW1lbnQuY29va2llID09ICwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICJObyBjb29raWVz
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ct
dG9rZW4tZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdp
dGhvdXQtYWxsb3ctdG9rZW4tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOWM3ZmQwZmJlZjhh
MDg0MGQyNGZmODIwZWY4MTMyNmEzNDM0YjlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mt
b3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC1hbGxvdy10b2tlbi1kYXRhYmFzZS5odG1s
CkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IGNyb3NzLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZGVuaWVkIGlmIHRoZSBp
ZnJhbWUgaXMgc2FuZGJveGVkIGFuZCBkb2Vzbid0IGhhdmUgdGhlIGFsbG93IHRva2VuLiIpOwor
ICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBjb25zdCBob3N0VW5kZXJU
ZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJo
dHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOworCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAg
ICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2lu
OiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVs
ZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1l
bnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgdmFy
IGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsK
KyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigK
KyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5r
ZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWpl
Y3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmlu
aXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRy
dWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVz
b3VyY2Uoc3RhdGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlv
bihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9z
dCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFsbG93LXNj
cmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxzIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVx
dWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRo
YXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
cmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jl
c291cmNlcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJTaG91bGRHcmFu
dEFjY2Vzcyx1c2VyU2hvdWxkTm90QmVDb25zdWx0ZWQscG9saWN5U2hvdWxkRGVueUFjY2Vzcyxp
c05vdFNhbWVPcmlnaW5JZnJhbWUiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jv
c3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUtZGF0YWJhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVl
c3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11
c2VyLWdlc3R1cmUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2YzUyNGFjMzg0
ZTUxMWFlZDIwODZiMjYyNWE5N2UyMTkxYWI3NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LXVzZXItZ2VzdHVyZS1kYXRhYmFzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBjcm9zcy1vcmlnaW4gaWZy
YW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGRlbmllZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCwg
aGFzIHRoZSBhbGxvdyB0b2tlbiwgYnV0IGNhbGxzIHRoZSBBUEkgd2l0aG91dCBhIHVzZXIgZ2Vz
dHVyZSBiZWluZyBwcm9jZXNzZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBkZW5pZWQuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNh
bmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUtZGF0YWJhc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNy
b3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtdXNlci1nZXN0dXJlLWRhdGFiYXNl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2MzMGZlMmRmY2QxODBhNmIxMGY2ZTNiYjc0OTU5MDVmMTcyOGI2
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdp
dGhvdXQtdXNlci1nZXN0dXJlLWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBz
dG9yYWdlIGFjY2VzcyBpcyBkZW5pZWQgaWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQsIGhhcyB0
aGUgYWxsb3cgdG9rZW4sIGJ1dCBjYWxscyB0aGUgQVBJIHdpdGhvdXQgYSB1c2VyIGdlc3R1cmUg
YmVpbmcgcHJvY2Vzc2VkLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAg
ICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29u
c3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3QgKyAiL3RlbXAiOwor
CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3Nh
Z2UsIGZhbHNlKTsKKworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0x
KQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFT
UyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBE
YXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50
UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0
aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlk
IG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0
ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJs
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3Qg
Z2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nl
c3MtYnktdXNlci1hY3RpdmF0aW9uIGFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxs
b3ctbW9kYWxzIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5p
ZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy13aXRob3V0LXVz
ZXItZ2VzdHVyZS1pZnJhbWUuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZE5v
dEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZE5vdEdyYW50QWNjZXNzLGlzTm90U2FtZU9yaWdpbklm
cmFtZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1pZnJhbWUt
ZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFiYXNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZTRkYTg2NjJmOTY4ZDdhM2U2NWU1MmI1MjY5ZDBkYmZk
N2QwNzg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4taWZyYW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IHNhbWUtb3JpZ2luIGlm
cmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBncmFudGVkIGlmIHRoZSBpZnJhbWUgaXMgbm90IHNhbmRi
b3hlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBhY2Nl
c3Mgd2FzIGdyYW50ZWQuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXIt
c2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1pZnJhbWUtZGF0YWJh
c2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLWlmcmFtZS1kYXRhYmFzZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU4ODBiNWM4NWEyMzQ2YmRhM2I2Mjk0M2JhOGM1MzQzMTdhYTMyMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdl
LWFjY2Vzcy1zYW1lLW9yaWdpbi1pZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pz
LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBzYW1lLW9yaWdpbiBp
ZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIG5vdCBzYW5k
Ym94ZWQuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYg
KGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQg
b3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
ZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBhY3Rp
dmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgICAgICB2YXIgY2VudGVyWCA9
IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAg
ICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSku
dGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlz
ZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0
dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
VGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpZnJhbWUgb25s
b2FkPSJydW5UZXN0KCkiIGlkPSJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIiBz
cmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9yZXF1ZXN0
LXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3VzZXJTaG91bGREZW55QWNjZXNzLHVzZXJTaG91
bGROb3RCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxpc1NhbWVPcmlnaW5JZnJh
bWUiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdp
bi1zYW5kYm94ZWQtaWZyYW1lLWRhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWIw
ODUwOTI0NjcyM2U3OGYyYTgxYjMxN2VmZWU0YTVlODY3YjIxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nl
c3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1kYXRhYmFzZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBzYW1lLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nl
c3MgaXMgZ3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCBhbmQgaGFzIHRoZSBhbGxv
dyB0b2tlbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RvcmFnZSBh
Y2Nlc3Mgd2FzIGdyYW50ZWQuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2
ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQt
aWZyYW1lLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWRh
dGFiYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJiMTcxNWZmYjFhZGMwYmM2MDcxNjBiODEyZmNiZWI1
YTNhNmI1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUtZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBzYW1lLW9yaWdpbiBpZnJhbWUgc3RvcmFnZSBhY2Nlc3MgaXMg
Z3JhbnRlZCBpZiB0aGUgaWZyYW1lIGlzIHNhbmRib3hlZCBhbmQgaGFzIHRoZSBhbGxvdyB0b2tl
bi4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAg
ICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZl
bnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAgICAgICAg
IGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmln
aW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRl
RWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxl
bWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2
YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAy
OworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVu
KAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAg
ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJl
amVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBm
aW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7CisgICAgICAg
IH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUo
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgYWN0aXZhdGVFbGVtZW50KCJUaGVJ
ZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGlmcmFtZSBzYW5kYm94
PSJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBh
bGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiIG9ubG9hZD0icnVuVGVzdCgpIiBpZD0iVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1pZnJhbWUu
aHRtbCN1c2VyU2hvdWxkRGVueUFjY2Vzcyx1c2VyU2hvdWxkTm90QmVDb25zdWx0ZWQscG9saWN5
U2hvdWxkR3JhbnRBY2Nlc3MsaXNTYW1lT3JpZ2luSWZyYW1lIj48L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0
aG91dC1hbGxvdy10b2tlbi1kYXRhYmFzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1z
YW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9rZW4tZGF0YWJhc2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmMxZjEwZTIzZGFlY2I5ZTFmMjU1ODQ0MGQwMzI0YmE0MmQ1YzI4NWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQt
YWxsb3ctdG9rZW4tZGF0YWJhc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3Rz
IHRoYXQgc2FtZS1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQgaWYgdGhl
IGlmcmFtZSBpcyBzYW5kYm94ZWQgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgYWxsb3cgdG9rZW4uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBn
cmFudGVkLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0g
Ik5vIGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRo
b3V0LWFsbG93LXRva2VuLWRhdGFiYXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQt
aWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9rZW4tZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjY5
M2VkM2U4YzllMzQxOTI4MTQ4NDA3MDhmMDFmMTJlZWU1MGRjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nl
c3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LWFsbG93LXRva2VuLWRhdGFi
YXNlLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24o
IlRlc3RzIHRoYXQgc2FtZS1vcmlnaW4gaWZyYW1lIHN0b3JhZ2UgYWNjZXNzIGlzIGdyYW50ZWQg
aWYgdGhlIGlmcmFtZSBpcyBzYW5kYm94ZWQgYnV0IGRvZXNuJ3QgaGF2ZSB0aGUgYWxsb3cgdG9r
ZW4uIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGNvbnN0IGhv
c3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNz
VXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdCArICIvdGVtcCI7CisKKyAgICAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOwor
CisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIikgeworICAgICAgICAg
ICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpCisgICAgICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7Cisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50
LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3Rl
ZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFj
dGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJY
ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAg
ICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWln
aHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZ
KS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9t
aXNlIHJlamVjdGVkLiIpOworICAgICAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZh
bHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRT
dGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFj
dGlvbihzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3IgdXNlciBpbnRlcmFjdGlvbi4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJs
b2NraW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJh
bWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoInNhbmRib3giLCAi
YWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFt
ZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhl
SWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N0b3JhZ2VB
Y2Nlc3MvcmVzb3VyY2VzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjdXNlclNo
b3VsZERlbnlBY2Nlc3MsdXNlclNob3VsZE5vdEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50
QWNjZXNzLGlzU2FtZU9yaWdpbklmcmFtZSI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vz
cy10b3AtZnJhbWUtZGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtdG9wLWZyYW1lLWRhdGFiYXNl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjVhNTkxZTQ3NDY2MjkwMzYxZmU3ZDM0YmJjNmEx
OTQ4NmEwNmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtdG9wLWZyYW1lLWRhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IHRvcCBmcmFtZSBzdG9yYWdlIGFj
Y2VzcyBpcyBhbHdheXMgZ3JhbnRlZCBpbiBjYXNlIHRoZSBwYWdlIHJlcXVlc3RzIGl0LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jl
c29sdmVkIGlzIHRydWUKK1BBU1MgaGFzU3RvcmFnZUFjY2VzcyBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1JlcXVlc3QgQWNjZXNzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1z
dG9yYWdlLWFjY2Vzcy10b3AtZnJhbWUtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS1kYXRh
YmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMTg3NjdmOGNmZjZlMzU4MzFiODU4YmZiOGM2NjBjMTI1
OTYzNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy10b3AtZnJhbWUtZGF0YWJhc2UuaHRtbApAQCAt
MCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IHRv
cCBmcmFtZSBzdG9yYWdlIGFjY2VzcyBpcyBhbHdheXMgZ3JhbnRlZCBpbiBjYXNlIHRoZSBwYWdl
IHJlcXVlc3RzIGl0LiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAgIHZhciBjZW50ZXJYID0g
ZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAg
ICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4i
KTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3Qp
OworICAgICAgICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIHZhciBoYXNTdG9yYWdl
QWNjZXNzOworICAgIHZhciByZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc29sdmVkOworCisgICAgZnVu
Y3Rpb24gbWFrZVJlcXVlc3RXaXRoVXNlckdlc3R1cmUoKSB7CisgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IGRvY3Vt
ZW50LnJlcXVlc3RTdG9yYWdlQWNjZXNzKCk7CisgICAgICAgICAgICBwcm9taXNlLnRoZW4oCisg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
U3RvcmFnZUFjY2Vzc1Jlc29sdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWVBZnRlclJlcXVlc3RXaXRoVXNlckdlc3R1cmUoKTsKKyAgICAgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NSZXNvbHZlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBjb250aW51
ZUFmdGVyUmVxdWVzdFdpdGhVc2VyR2VzdHVyZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNvbnRpbnVlQWZ0
ZXJSZXF1ZXN0V2l0aFVzZXJHZXN0dXJlKCkgeworICAgICAgICB2YXIgcHJvbWlzZSA9IGRvY3Vt
ZW50Lmhhc1N0b3JhZ2VBY2Nlc3MoKTsKKyAgICAgICAgcHJvbWlzZS50aGVuKAorICAgICAgICAg
ICAgZnVuY3Rpb24gKGhhc0FjY2VzcykgeworICAgICAgICAgICAgICAgIGhhc1N0b3JhZ2VBY2Nl
c3MgPSBoYXNBY2Nlc3M7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoInJlcXVlc3RTdG9yYWdl
QWNjZXNzUmVzb2x2ZWQiLCAidHJ1ZSIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJoYXNT
dG9yYWdlQWNjZXNzIiwgInRydWUiKTsKKyAgICAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uIChyZWFzb24pIHsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkb2N1bWVudC5oYXNT
dG9yYWdlQWNjZXNzKCkgd2FzIHJlamVjdGVkLiBSZWFzb246ICIgKyByZWFzb24pOworICAgICAg
ICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgICAg
ICAgICB9CisgICAgICAgICk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgYWN0aXZh
dGVFbGVtZW50KCJ0aGVCdXR0b24iKTsKKyAgICB9Cis8L3NjcmlwdD4KKzxidXR0b24gaWQ9InRo
ZUJ1dHRvbiIgb25jbGljaz0ibWFrZVJlcXVlc3RXaXRoVXNlckdlc3R1cmUoKSI+UmVxdWVzdCBB
Y2Nlc3M8L2J1dHRvbj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmM1MDgxNTQ1YTY3NmVhZDUwMzQwNzNlYWRhOTYwOTUy
YTY0Y2VjMy4uNTNhYWI3ZGQ1YTNkMTgzMTc4M2Q1MTgxNDAwZDkxODY1YmEwZDUwYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3OTgsOCArMjc5OCwx
NCBAQCBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1v
cGVuZXItaWYtYXV0by1kaXNtaXNzLmh0bWwgWwogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2NhcC1jYWNoZS1tYXgtYWdlLWZvci1wcmV2YWxlbnQtcmVzb3VyY2UuaHRtbCBbIFBh
c3MgXQogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1i
eS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtZmFsc2UtYnktZGVmYXVsdC1lcGhlbWVyYWwuaHRtbCBbIFBhc3MgXQotaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy10cnVlLWlmLXRoaXJkLXBh
cnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIFsgUGFzcyBdCi1odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tp
ZXMuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFj
Y2Vzcy10cnVlLWlmLXRoaXJkLXBhcnR5LWhhcy1jb29raWVzLWVwaGVtZXJhbC5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KK2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3Mt
dHJ1ZS1pZi10aGlyZC1wYXJ0eS1oYXMtY29va2llcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nlc3MtdHJ1ZS1pZi10aGlyZC1w
YXJ0eS1oYXMtY29va2llcy1lcGhlbWVyYWwtZGF0YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91dCBd
CitodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhp
cmQtcGFydHktaGFzLWNvb2tpZXMtZGF0YWJhc2UuaHRtbCBbIFBhc3MgVGltZW91dCBdCitodHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZGF0
YWJhc2UuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWlmLWF1dG8tZGlzbWlzcy1kYXRhYmFzZS5odG1sIFsgUGFz
cyBdCitodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5
LWRlZmF1bHQtZGF0YWJhc2UuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2hhcy1zdG9yYWdlLWFjY2Vzcy1mYWxzZS1ieS1kZWZhdWx0LWVwaGVtZXJhbC1kYXRhYmFzZS5o
dG1sIFsgUGFzcyBdCiAKICMgU2tpcHBlZCBpbiBnZW5lcmFsIGV4cGVjdGF0aW9ucyBzaW5jZSB0
aGV5IG9ubHkgd29yayBvbiBpT1MgYW5kIE1hYywgV0syLgogaHR0cC90ZXN0cy9zZWN1cml0eS9z
dHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXRoaXJkLXBhcnR5LXJlZGlyZWN0cy1pbi1wcml2
YXRlLW1vZGUuaHRtbCBbIFBhc3MgXQpAQCAtMjkzNCw2ICsyOTQwLDcgQEAgd2Via2l0Lm9yZy9i
LzE3NzQ0NSBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVmb3JldW5sb2FkLWNh
bmNlbC5odG1sIFsKIHdlYmtpdC5vcmcvYi8xNzczOTcgY29tcG9zaXRpbmcvbWFza3MvY29tcG9z
aXRpbmctY2xpcC1wYXRoLWNoYW5nZS1uby1yZXBhaW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQog
CiB3ZWJraXQub3JnL2IvMTc3NjE3IGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0
b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KK2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS1kYXRhYmFzZS5o
dG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE3NzU0NyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL3NlY3VyaXR5L2RhbmdsaW5nLW1hcmt1cC1taXRpZ2F0
aW9uLWRhdGEtdXJsLnRlbnRhdGl2ZS5zdWIuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNGY3ZjZk
ZDlmM2Q0YjE5M2M2ZGZjMDRlMDAyODkzNTZjZmU0YWE3Li5mNTU2NWViMjk2ZjMxYjBiMjZjMzQ4
YzY5ODQ5ZjA0OGE3N2JjMjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCkBAIC02ODUsMzYgKzY4NSwxMSBAQCB3ZWJraXQub3JnL2IvMTcyMzk3
IGxlZ2FjeS1hbmltYXRpb24tZW5naW5lL2FuaW1hdGlvbnMvbmVlZHMtbGF5b3V0Lmh0bWwgWyBQ
YXNzCiAjIFRvdWNoIGV2ZW50cyBhcmUgbm90IGF2YWlsYWJsZSBvbiBvcGVuIHNvdXJjZSBib3Rz
LCB0aHVzIG9ubHkgdGVzdGVkIG9uIE1hYy4KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy91c2VyLWludGVyYWN0aW9uLWluLWNyb3NzLW9yaWdpbi1zdWItZnJhbWUuaHRtbCBbIFBh
c3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50ZXJhY3Rpb24t
cmVwb3J0ZWQtYWZ0ZXItd2Vic2l0ZS1kYXRhLXJlbW92YWwuaHRtbCBbIFBhc3MgXQotCi1bIEhp
Z2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1j
cmFzaC5odG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tbm9uLXNhbmRib3hlZC1p
ZnJhbWUuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJh
bWUuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyYXNoLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJy
YSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1jcm9z
cy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRoLXVuaXF1ZS1vcmlnaW4uaHRtbCBbIFBhc3Mg
XQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LXN0b3Jh
Z2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQtYWxsb3ctdG9r
ZW4uaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LXN0b3JhZ2UtYWNjZXNzLXNhbWUtb3JpZ2luLWlmcmFtZS5odG1sIFsgUGFzcyBd
Ci1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFn
ZS1hY2Nlc3Mtc2FtZS1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS13aXRob3V0LWFsbG93LXRva2Vu
Lmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1zdG9yYWdlLWFjY2Vzcy1zYW1lLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLmh0bWwg
WyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtbmVzdGVkLWlmcmFtZS5o
dG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9t
LXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwgWyBQYXNzIF0KLVsg
SGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQt
YWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFp
bi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWwg
WyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJl
dmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYnV0LWFjY2Vzcy1mcm9tLXdyb25n
LWZyYW1lLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZy
YW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBb
IFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LXN0b3JhZ2UtYWNjZXNzLXRvcC1mcmFtZS5odG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0g
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUuaHRtbCBbIFBhc3MgXQot
WyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9oYXMtc3RvcmFnZS1hY2Nl
c3MtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sIFsgUGFz
cyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5k
LWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwgWyBQ
YXNzIF0KK1sgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvIFsgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTk4NjcwIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1z
aG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQotWyBIaWdoU2llcnJh
KyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhl
bi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwgWyBQYXNzIF0KLVsg
SGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vz
cy11bmRlci1vcGVuZXIuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci1pZi1hdXRvLWRp
c21pc3MuaHRtbCBbIFBhc3MgXQotWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9ncmFudC13aXRoLXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS5odG1sIFsgUGFzcyBdCitb
IEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1k
YXRhYmFzZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvZGVueS13aXRoLXByb21wdC1kb2VzLW5vdC1wcmVzZXJ2ZS1nZXN0dXJl
Lmh0bWwgWyBTa2lwIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
ZGVueS13aXRob3V0LXByb21wdC1wcmVzZXJ2ZXMtZ2VzdHVyZS5odG1sIFsgUGFzcyBdCi1bIEhp
Z2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1m
YWxzZS1ieS1kZWZhdWx0Lmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZhbHNlLWJ5LWRlZmF1bHQtZXBoZW1l
cmFsLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMtZXBo
ZW1lcmFsLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLXRydWUtaWYtdGhpcmQtcGFydHktaGFzLWNvb2tpZXMu
aHRtbCBbIFBhc3MgXQorWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9k
ZW55LXdpdGgtcHJvbXB0LWRvZXMtbm90LXByZXNlcnZlLWdlc3R1cmUtZGF0YWJhc2UuaHRtbCBb
IFNraXAgXQogCiAjIEFzIG9mIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjc3
NjIgdGhlIHRpbWVzdGFtcFJlc29sdXRpb24gaXMganVzdCA1IHNlY29uZHMgd2hpY2ggbWFrZXMg
dGhpcyB0ZXN0IGZsYWt5CiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1p
bnRlcmFjdGlvbi1vbmx5LXJlcG9ydGVkLW9uY2Utd2l0aGluLXNob3J0LXBlcmlvZC1vZi10aW1l
Lmh0bWwgWyBTa2lwIF0KQEAgLTkxNCw2ICs4ODksNyBAQCB3ZWJraXQub3JnL2IvMTk2NDAzIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZC9NZWRpYVJl
Ywogd2Via2l0Lm9yZy9iLzE4NzM5MSBhY2Nlc3NpYmlsaXR5L21hYy9hc3luYy1pbmNyZW1lbnQt
ZGVjcmVtZW50LWFjdGlvbi5odG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xOTQxNjQgaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWJ1dC1hY2Nlc3MtZnJvbS13cm9uZy1mcmFtZS5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
K2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mt
b3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi1idXQtYWNjZXNzLWZyb20td3JvbmctZnJhbWUtZGF0YWJhc2UuaHRtbCBbIFBh
c3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xOTcwNjggWyBEZWJ1ZyBdIGZhc3Qvc2VsZWN0
b3JzL21hdGNoZXMtYmFja3RyYWNraW5nLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>