<?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>38262</bug_id>
          
          <creation_ts>2010-04-28 07:37:43 -0700</creation_ts>
          <short_desc>check-webkit-style: Rename CppProcessor to CppChecker, etc</short_desc>
          <delta_ts>2010-05-04 01:07:06 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>218390</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 07:37:43 -0700</bug_when>
    <thetext>This change is to rename &quot;processor&quot; to &quot;checker&quot; in the context of CarriageReturnProcessors, CppProcessors, PythonProcessors, and TextProcessors, etc.

This is because we want to reserve the word &quot;Processor&quot; for classes that sub-class webkit.style.checker.ProcessorBase (e.g. StyleProcessor).  In this sense, &quot;processor&quot; is a higher-level notion than &quot;checker&quot; because a processor can be used for any sort of operation on file lines and not just checking style.

This distinction will be useful going forward if we want to start doing other types of operations on files aside from simply checking style (e.g. extracting license texts and modifying style, etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218392</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 07:41:42 -0700</bug_when>
    <thetext>Note that this naming change was already started in--

https://bugs.webkit.org/show_bug.cgi?id=38122 (renamed processors/ folder to checkers/)
https://bugs.webkit.org/show_bug.cgi?id=37066 (create new StyleProcessor class)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218399</commentid>
    <comment_count>2</comment_count>
      <attachid>54564</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-04-28 08:06:45 -0700</bug_when>
    <thetext>Created attachment 54564
Proposed patch

No logic changes in this patch -- only renames (many using grep).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220287</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-03 14:25:24 -0700</bug_when>
    <thetext>Can anyone take a look at this?  There really are no changes aside from renames.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220289</commentid>
    <comment_count>4</comment_count>
      <attachid>54564</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-03 14:29:06 -0700</bug_when>
    <thetext>Comment on attachment 54564
Proposed patch

I&apos;m not sure I really understand the distinction, so all you really get is a rubber-stamp.  Why changing all this to checker, instead of the other way around?  Seems processor is about as meaningless as checker so I would probably optimize for minimal renames.

But honestly, I have really no opinions about any of this.

Do we have any need to be able to merge any of this code with anyone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220294</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-03 14:39:17 -0700</bug_when>
    <thetext>(In reply to comment #4)

Thanks, Eric.

&gt; (From update of attachment 54564 [details])
&gt; I&apos;m not sure I really understand the distinction, so all you really get is a
&gt; rubber-stamp.  Why changing all this to checker, instead of the other way
&gt; around?  Seems processor is about as meaningless as checker so I would probably
&gt; optimize for minimal renames.

In a nutshell, check-webkit-style uses a ProcessorBase class which can be used for any operations on files (e.g. operations other than &quot;checking,&quot; like extracting license texts for bug 35465).

CppProcessor, PythonProcessor, etc. do not inherit from ProcessorBase, so I wanted to choose a more specific name.  Since those classes are limited to checking style, *Checker made sense.

&gt; Do we have any need to be able to merge any of this code with anyone?

Not to my knowledge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220297</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-03 14:42:23 -0700</bug_when>
    <thetext>Thanks for the update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220300</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-03 14:47:05 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; I&apos;m not sure I really understand the distinction, so all you really get is a
&gt; &gt; rubber-stamp.  Why changing all this to checker, instead of the other way
&gt; &gt; around?  Seems processor is about as meaningless as checker so I would probably
&gt; &gt; optimize for minimal renames.
&gt; 
&gt; In a nutshell, check-webkit-style uses a ProcessorBase class which can be used
&gt; for any operations on files (e.g. operations other than &quot;checking,&quot; like
&gt; extracting license texts for bug 35465).
&gt; 
&gt; CppProcessor, PythonProcessor, etc. do not inherit from ProcessorBase, so I
&gt; wanted to choose a more specific name.  Since those classes are limited to
&gt; checking style, *Checker made sense.

A final bit of information:

The StyleProcessor class is the class that check-webkit-style uses that does inherit from ProcessorBase.  Internally it does various things including choosing which *Checkers to construct (CarriageReturnChecker, PythonChecker, etc) and calling those.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220516</commentid>
    <comment_count>8</comment_count>
      <attachid>54564</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-04 01:06:53 -0700</bug_when>
    <thetext>Comment on attachment 54564
Proposed patch

Clearing flags on attachment: 54564

Committed r58742: &lt;http://trac.webkit.org/changeset/58742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220517</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-04 01:07:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54564</attachid>
            <date>2010-04-28 08:06:45 -0700</date>
            <delta_ts>2010-05-04 01:06:53 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-38262-1.diff</filename>
            <type>text/plain</type>
            <size>45591</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiMTdhODEyLi5mYzdhZmU3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTAtMDQt
MjggIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyByZXZpc2lvbiBjb21wbGV0
ZXMgdGhlIHRlcm1pbm9sb2d5IGNoYW5nZSBmcm9tICJwcm9jZXNzb3IiIHRvCisgICAgICAgICJj
aGVja2VyIiBmb3IgdGhlIENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yLCBDcHBQcm9jZXNzb3IsCisg
ICAgICAgIFB5dGhvblByb2Nlc3NvciwgYW5kIFRleHRQcm9jZXNzb3IgY2xhc3NlcywgZXRjLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODI2Mgor
CisgICAgICAgIFRoZSB3b3JkICJwcm9jZXNzb3IiIGN1cnJlbnRseSBoYXMgdHdvIHVzZXMgaW4g
b3VyIGNvZGUuICBUaGlzCisgICAgICAgIHJldmlzaW9uIHJlbmFtZXMgdGhlIGxvd2VyLWxldmVs
IHVzZSB0byAiY2hlY2tlciIgYW5kIHByZXNlcnZlcyB0aGUKKyAgICAgICAgd29yZCAicHJvY2Vz
c29yIiBmb3IgaGlnaGVyLWxldmVsLCBtb3JlIGdlbmVyYWwgdXNlcy4gIFRoaXMKKyAgICAgICAg
cmV2aXNpb24gYWxzbyBtYWtlcyB3aGF0ZXZlciBvdGhlciBuYW1lIGNoYW5nZXMgdGhhdCBsb2dp
Y2FsbHkKKyAgICAgICAgZm9sbG93ZWQgZnJvbSB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIFNj
cmlwdHMvY2hlY2std2Via2l0LXN0eWxlOgorICAgICAgICAgIC0gVXBkYXRlZCByZWZlcmVuY2Vz
IHRvIFBhdGNoQ2hlY2tlci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlci5weToKKyAgICAgICAgICAtIFJlbmFtZWQgdGhlIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRp
b24gY2xhc3MgdG8KKyAgICAgICAgICAgIFN0eWxlUHJvY2Vzc29yQ29uZmlndXJhdGlvbi4KKyAg
ICAgICAgICAtIFJlbmFtZWQgdGhlIFByb2Nlc3NvckRpc3BhdGNoZXIgY2xhc3MgdG8gQ2hlY2tl
ckRpc3BhdGNoZXIsIGFuZAorICAgICAgICAgICAgbWFkZSBzaW1pbGFyIGNoYW5nZXMgZm9yIHRo
ZSBjbGFzcydzIG1ldGhvZCBuYW1lcy4KKyAgICAgICAgICAtIFJlbmFtZWQgdGhlIFBhdGNoQ2hl
Y2tlciBjbGFzcyB0byBQYXRjaFJlYWRlci4KKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIGZpbGUg
YXMgbmVjZXNzYXJ5IHRvIGFjY29tbW9kYXRlIHRoZSBvdGhlciBjbGFzcworICAgICAgICAgICAg
cmVuYW1lcyBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAgIC0gVXBkYXRlZCB0aGUgdW5pdCB0ZXN0
IGNvZGUgYXMgbmVjZXNzYXJ5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jb21tb24ucHk6CisgICAgICAgICAgLSBSZW5hbWVkIHRoZSBDYXJyaWFnZVJldHVy
blByb2Nlc3NvciBjbGFzcyB0byBDYXJyaWFnZVJldHVybkNoZWNrZXIsCisgICAgICAgICAgICBh
bmQgY2hhbmdlZCBpdHMgcHJvY2VzcygpIG1ldGhvZCB0byBjaGVjaygpLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRlc3QucHk6CisgICAg
ICAgICAgLSBVcGRhdGVkIHRoZSB1bml0IHRlc3QgY29kZSBhcyBuZWNlc3NhcnkuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgICAt
IFJlbmFtZWQgdGhlIENwcFByb2Nlc3NvciBjbGFzcyB0byBDcHBDaGVja2VyLCBhbmQgcmVuYW1l
ZCBpdHMKKyAgICAgICAgICAgIHByb2Nlc3MoKSBtZXRob2QgdG8gY2hlY2soKS4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAgIC0gVXBkYXRlZCB0aGUgdW5pdCB0ZXN0IGNvZGUgYXMgbmVjZXNzYXJ5LgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9weXRob24ucHk6CisgICAgICAg
ICAgLSBSZW5hbWVkIHRoZSBQeXRob25Qcm9jZXNzb3IgY2xhc3MgdG8gUHl0aG9uQ2hlY2tlciwg
YW5kIHJlbmFtZWQKKyAgICAgICAgICAgIGl0cyBwcm9jZXNzKCkgbWV0aG9kIHRvIGNoZWNrKCku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3B5dGhvbl91bml0
dGVzdC5weToKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdCBjb2RlIGFzIG5lY2Vz
c2FyeS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGV4dC5w
eToKKyAgICAgICAgICAtIFJlbmFtZWQgdGhlIFRleHRQcm9jZXNzb3IgY2xhc3MgdG8gVGV4dENo
ZWNrZXIsIGFuZCByZW5hbWVkCisgICAgICAgICAgICBpdHMgcHJvY2VzcygpIG1ldGhvZCB0byBj
aGVjaygpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0
X3VuaXR0ZXN0LnB5OgorICAgICAgICAgIC0gVXBkYXRlZCB0aGUgdW5pdCB0ZXN0IGNvZGUgYXMg
bmVjZXNzYXJ5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5k
bGVycy5weToKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIGNvZGUgYXMgbmVjZXNzYXJ5LgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5w
eToKKyAgICAgICAgICAtIFVwZGF0ZWQgdGhlIHVuaXQgdGVzdCBjb2RlIGFzIG5lY2Vzc2FyeS4K
KwogMjAxMC0wNC0yOCAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvY2hlY2std2Via2l0LXN0eWxlIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGUKaW5kZXggNDQ0N2U2Ny4uZjc0YzNiZCAx
MDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGUKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy9jaGVjay13ZWJraXQtc3R5bGUKQEAgLTUwLDcgKzUwLDcgQEAg
aW1wb3J0IHN5cwogCiBmcm9tIHdlYmtpdHB5LnN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0IGRldGVj
dF9jaGVja291dAogaW1wb3J0IHdlYmtpdHB5LnN0eWxlLmNoZWNrZXIgYXMgY2hlY2tlcgotZnJv
bSB3ZWJraXRweS5zdHlsZS5jaGVja2VyIGltcG9ydCBQYXRjaENoZWNrZXIKK2Zyb20gd2Via2l0
cHkuc3R5bGUuY2hlY2tlciBpbXBvcnQgUGF0Y2hSZWFkZXIKIGZyb20gd2Via2l0cHkuc3R5bGUu
Y2hlY2tlciBpbXBvcnQgU3R5bGVQcm9jZXNzb3IKIGZyb20gd2Via2l0cHkuc3R5bGUuZmlsZXJl
YWRlciBpbXBvcnQgVGV4dEZpbGVSZWFkZXIKIGZyb20gd2Via2l0cHkuc3R5bGUubWFpbiBpbXBv
cnQgY2hhbmdlX2RpcmVjdG9yeQpAQCAtMTE2LDcgKzExNiw3IEBAIGRlZiBtYWluKCk6CiAgICAg
ICAgIGZpbGVfcmVhZGVyLnByb2Nlc3NfcGF0aHMocGF0aHMpCiAgICAgZWxzZToKICAgICAgICAg
cGF0Y2ggPSBjaGVja291dC5jcmVhdGVfcGF0Y2gob3B0aW9ucy5naXRfY29tbWl0LCBvcHRpb25z
LnNxdWFzaCkKLSAgICAgICAgcGF0Y2hfY2hlY2tlciA9IFBhdGNoQ2hlY2tlcihmaWxlX3JlYWRl
cikKKyAgICAgICAgcGF0Y2hfY2hlY2tlciA9IFBhdGNoUmVhZGVyKGZpbGVfcmVhZGVyKQogICAg
ICAgICBwYXRjaF9jaGVja2VyLmNoZWNrKHBhdGNoKQogCiAgICAgZXJyb3JfY291bnQgPSBzdHls
ZV9wcm9jZXNzb3IuZXJyb3JfY291bnQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlci5weQppbmRleCAzZDUzMDdhLi41OWEzZDM5IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0zNSwxMCArMzUsMTAgQEAg
aW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzeXMKIAogZnJvbSBjaGVja2Vycy5jb21tb24gaW1wb3J0
IGNhdGVnb3JpZXMgYXMgQ29tbW9uQ2F0ZWdvcmllcwotZnJvbSBjaGVja2Vycy5jb21tb24gaW1w
b3J0IENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yCi1mcm9tIGNoZWNrZXJzLmNwcCBpbXBvcnQgQ3Bw
UHJvY2Vzc29yCi1mcm9tIGNoZWNrZXJzLnB5dGhvbiBpbXBvcnQgUHl0aG9uUHJvY2Vzc29yCi1m
cm9tIGNoZWNrZXJzLnRleHQgaW1wb3J0IFRleHRQcm9jZXNzb3IKK2Zyb20gY2hlY2tlcnMuY29t
bW9uIGltcG9ydCBDYXJyaWFnZVJldHVybkNoZWNrZXIKK2Zyb20gY2hlY2tlcnMuY3BwIGltcG9y
dCBDcHBDaGVja2VyCitmcm9tIGNoZWNrZXJzLnB5dGhvbiBpbXBvcnQgUHl0aG9uQ2hlY2tlcgor
ZnJvbSBjaGVja2Vycy50ZXh0IGltcG9ydCBUZXh0Q2hlY2tlcgogZnJvbSBlcnJvcl9oYW5kbGVy
cyBpbXBvcnQgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGZpbHRlciBpbXBvcnQgRmls
dGVyQ29uZmlndXJhdGlvbgogZnJvbSBvcHRwYXJzZXIgaW1wb3J0IEFyZ3VtZW50UGFyc2VyCkBA
IC0yMzMsNyArMjMzLDcgQEAgX01BWF9SRVBPUlRTX1BFUl9DQVRFR09SWSA9IHsKIGRlZiBfYWxs
X2NhdGVnb3JpZXMoKToKICAgICAiIiJSZXR1cm4gdGhlIHNldCBvZiBhbGwgY2F0ZWdvcmllcyB1
c2VkIGJ5IGNoZWNrLXdlYmtpdC1zdHlsZS4iIiIKICAgICAjIFRha2UgdGhlIHVuaW9uIGFjcm9z
cyBhbGwgY2hlY2tlcnMuCi0gICAgY2F0ZWdvcmllcyA9IENvbW1vbkNhdGVnb3JpZXMudW5pb24o
Q3BwUHJvY2Vzc29yLmNhdGVnb3JpZXMpCisgICAgY2F0ZWdvcmllcyA9IENvbW1vbkNhdGVnb3Jp
ZXMudW5pb24oQ3BwQ2hlY2tlci5jYXRlZ29yaWVzKQogCiAgICAgIyBGSVhNRTogQ29uc2lkZXIg
YWRkaW5nIGFsbCBvZiB0aGUgcGVwOCBjYXRlZ29yaWVzLiAgU2luY2UgdGhleQogICAgICMgICAg
ICAgIGFyZSBub3QgdG9vIG1lYW5pbmdmdWwgZm9yIGRvY3VtZW50YXRpb24gcHVycG9zZXMsIGZv
cgpAQCAtMjYxLDcgKzI2MSw3IEBAIGRlZiBjaGVja193ZWJraXRfc3R5bGVfcGFyc2VyKCk6CiAK
IAogZGVmIGNoZWNrX3dlYmtpdF9zdHlsZV9jb25maWd1cmF0aW9uKG9wdGlvbnMpOgotICAgICIi
IlJldHVybiBhIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgZm9yIGNoZWNrLXdl
YmtpdC1zdHlsZS4KKyAgICAiIiJSZXR1cm4gYSBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24g
aW5zdGFuY2UgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZS4KIAogICAgIEFyZ3M6CiAgICAgICBvcHRp
b25zOiBBIENvbW1hbmRPcHRpb25WYWx1ZXMgaW5zdGFuY2UuCkBAIC0yNzIsNyArMjcyLDcgQEAg
ZGVmIGNoZWNrX3dlYmtpdF9zdHlsZV9jb25maWd1cmF0aW9uKG9wdGlvbnMpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhdGhfc3BlY2lmaWM9X1BBVEhfUlVMRVNfU1BFQ0lGSUVS
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfcnVsZXM9b3B0aW9ucy5maWx0
ZXJfcnVsZXMpCiAKLSAgICByZXR1cm4gU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbihmaWx0ZXJf
Y29uZmlndXJhdGlvbj1maWx0ZXJfY29uZmlndXJhdGlvbiwKKyAgICByZXR1cm4gU3R5bGVQcm9j
ZXNzb3JDb25maWd1cmF0aW9uKGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0
aW9uLAogICAgICAgICAgICAgICAgbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5PV9NQVhfUkVQT1JU
U19QRVJfQ0FURUdPUlksCiAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZT1vcHRpb25zLm1p
bl9jb25maWRlbmNlLAogICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdD1vcHRpb25zLm91dHB1
dF9mb3JtYXQsCkBAIC0zNzcsMTQgKzM3Nyw3IEBAIGNsYXNzIEZpbGVUeXBlOgogICAgIFRFWFQg
PSAzCiAKIAotIyBGSVhNRTogUmVuYW1lIHRoaXMgY2xhc3MgdG8gQ2hlY2tlckRpc3BhdGNoZXIs
IHJlbmFtZSB0aGUgc3R5bGUvcHJvY2Vzc29ycy8KLSMgICAgICAgIGZvbGRlciB0byBzdHlsZS9j
aGVja2VycywgYW5kIHJlbmFtZSBhbGwgb2YgdGhlIGNvZGUgY2hlY2tlcgotIyAgICAgICAgY2xh
c3NlcyB0byBlbmQgaW4gIkNoZWNrZXIiIChlLmcuICJDcHBQcm9jZXNzb3IiIHNob3VsZCBiZWNv
bWUKLSMgICAgICAgICJDcHBDaGVja2VyIikuICBUaGlzIHdpbGwgYWRkcmVzcyB0aGUgY3VycmVu
dCBpc3N1ZSB3aGVyZWJ5IHRoZQotIyAgICAgICAgd29yZCAicHJvY2Vzc29yIiBpcyBiZWluZyB1
c2VkIHRvIHJlZmVyIHRvIGJvdGggYSBnZW5lcmFsIGxpbmVzCi0jICAgICAgICBwcm9jZXNzb3Ig
dXNlZCB0byBpbnN0YW50aWF0ZSBhIFRleHRGaWxlUmVhZGVyLCBhbmQgYSBjbGFzcyB1c2VkCi0j
ICAgICAgICB0byBjaGVjayBzdHlsZSBmb3IgYSBwYXJ0aWN1bGFyIGZpbGUgZm9ybWF0LgotY2xh
c3MgUHJvY2Vzc29yRGlzcGF0Y2hlcihvYmplY3QpOgorY2xhc3MgQ2hlY2tlckRpc3BhdGNoZXIo
b2JqZWN0KToKIAogICAgICIiIlN1cHBvcnRzIGRldGVybWluaW5nIHdoZXRoZXIgYW5kIGhvdyB0
byBjaGVjayBzdHlsZSwgYmFzZWQgb24gcGF0aC4iIiIKIApAQCAtNDM3LDE5ICs0MzAsMTkgQEAg
Y2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgcmV0dXJuIEZpbGVUeXBlLk5PTkUKIAotICAgIGRlZiBfY3JlYXRlX3Byb2Nlc3Nvcihz
ZWxmLCBmaWxlX3R5cGUsIGZpbGVfcGF0aCwgaGFuZGxlX3N0eWxlX2Vycm9yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZSk6Ci0gICAgICAgICIiIkluc3RhbnRpYXRl
IGFuZCByZXR1cm4gYSBzdHlsZSBwcm9jZXNzb3IgYmFzZWQgb24gZmlsZSB0eXBlLiIiIgorICAg
IGRlZiBfY3JlYXRlX2NoZWNrZXIoc2VsZiwgZmlsZV90eXBlLCBmaWxlX3BhdGgsIGhhbmRsZV9z
dHlsZV9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9jb25maWRlbmNlKToKKyAg
ICAgICAgIiIiSW5zdGFudGlhdGUgYW5kIHJldHVybiBhIHN0eWxlIGNoZWNrZXIgYmFzZWQgb24g
ZmlsZSB0eXBlLiIiIgogICAgICAgICBpZiBmaWxlX3R5cGUgPT0gRmlsZVR5cGUuTk9ORToKLSAg
ICAgICAgICAgIHByb2Nlc3NvciA9IE5vbmUKKyAgICAgICAgICAgIGNoZWNrZXIgPSBOb25lCiAg
ICAgICAgIGVsaWYgZmlsZV90eXBlID09IEZpbGVUeXBlLkNQUDoKICAgICAgICAgICAgIGZpbGVf
ZXh0ZW5zaW9uID0gc2VsZi5fZmlsZV9leHRlbnNpb24oZmlsZV9wYXRoKQotICAgICAgICAgICAg
cHJvY2Vzc29yID0gQ3BwUHJvY2Vzc29yKGZpbGVfcGF0aCwgZmlsZV9leHRlbnNpb24sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yLCBtaW5f
Y29uZmlkZW5jZSkKKyAgICAgICAgICAgIGNoZWNrZXIgPSBDcHBDaGVja2VyKGZpbGVfcGF0aCwg
ZmlsZV9leHRlbnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVf
c3R5bGVfZXJyb3IsIG1pbl9jb25maWRlbmNlKQogICAgICAgICBlbGlmIGZpbGVfdHlwZSA9PSBG
aWxlVHlwZS5QWVRIT046Ci0gICAgICAgICAgICBwcm9jZXNzb3IgPSBQeXRob25Qcm9jZXNzb3Io
ZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCisgICAgICAgICAgICBjaGVja2VyID0gUHl0
aG9uQ2hlY2tlcihmaWxlX3BhdGgsIGhhbmRsZV9zdHlsZV9lcnJvcikKICAgICAgICAgZWxpZiBm
aWxlX3R5cGUgPT0gRmlsZVR5cGUuVEVYVDoKLSAgICAgICAgICAgIHByb2Nlc3NvciA9IFRleHRQ
cm9jZXNzb3IoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCisgICAgICAgICAgICBjaGVj
a2VyID0gVGV4dENoZWNrZXIoZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3IpCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGZpbGUgdHlwZSAi
JShmaWxlX3R5cGUpcyI6IHRoZSBvbmx5IHZhbGlkIGZpbGUgdHlwZXMgJwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYXJlICUoTk9ORSlzLCAlKENQUClzLCBhbmQgJShURVhUKXMuIgpA
QCAtNDU4LDI0ICs0NTEsMjQgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlcihvYmplY3QpOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ1BQIjogRmlsZVR5cGUuQ1BQLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVEVYVCI6IEZpbGVUeXBlLlRFWFR9KQogCi0g
ICAgICAgIHJldHVybiBwcm9jZXNzb3IKKyAgICAgICAgcmV0dXJuIGNoZWNrZXIKIAotICAgIGRl
ZiBkaXNwYXRjaF9wcm9jZXNzb3Ioc2VsZiwgZmlsZV9wYXRoLCBoYW5kbGVfc3R5bGVfZXJyb3Is
IG1pbl9jb25maWRlbmNlKToKLSAgICAgICAgIiIiSW5zdGFudGlhdGUgYW5kIHJldHVybiBhIHN0
eWxlIHByb2Nlc3NvciBiYXNlZCBvbiBmaWxlIHBhdGguIiIiCisgICAgZGVmIGRpc3BhdGNoKHNl
bGYsIGZpbGVfcGF0aCwgaGFuZGxlX3N0eWxlX2Vycm9yLCBtaW5fY29uZmlkZW5jZSk6CisgICAg
ICAgICIiIkluc3RhbnRpYXRlIGFuZCByZXR1cm4gYSBzdHlsZSBjaGVja2VyIGJhc2VkIG9uIGZp
bGUgcGF0aC4iIiIKICAgICAgICAgZmlsZV90eXBlID0gc2VsZi5fZmlsZV90eXBlKGZpbGVfcGF0
aCkKIAotICAgICAgICBwcm9jZXNzb3IgPSBzZWxmLl9jcmVhdGVfcHJvY2Vzc29yKGZpbGVfdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3N0eWxl
X2Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9j
b25maWRlbmNlKQotICAgICAgICByZXR1cm4gcHJvY2Vzc29yCisgICAgICAgIGNoZWNrZXIgPSBz
ZWxmLl9jcmVhdGVfY2hlY2tlcihmaWxlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaWxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoYW5kbGVfc3R5bGVfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtaW5fY29uZmlkZW5jZSkKKyAgICAgICAgcmV0dXJuIGNoZWNrZXIKIAogCiAj
IEZJWE1FOiBSZW1vdmUgdGhlIHN0ZGVycl93cml0ZSBhdHRyaWJ1dGUgZnJvbSB0aGlzIGNsYXNz
IGFuZCByZXBsYWNlCiAjICAgICAgICBpdHMgdXNlIHdpdGggY2FsbHMgdG8gYSBsb2dnaW5nIG1v
ZHVsZSBsb2dnZXIuCi1jbGFzcyBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKG9iamVjdCk6Citj
bGFzcyBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24ob2JqZWN0KToKIAotICAgICIiIlN0b3Jl
cyBjb25maWd1cmF0aW9uIHZhbHVlcyBmb3IgdGhlIFN0eWxlQ2hlY2tlciBjbGFzcy4KKyAgICAi
IiJTdG9yZXMgY29uZmlndXJhdGlvbiB2YWx1ZXMgZm9yIHRoZSBTdHlsZVByb2Nlc3NvciBjbGFz
cy4KIAogICAgIEF0dHJpYnV0ZXM6CiAgICAgICBtaW5fY29uZmlkZW5jZTogQW4gaW50ZWdlciBi
ZXR3ZWVuIDEgYW5kIDUgaW5jbHVzaXZlIHRoYXQgaXMgdGhlCkBAIC00OTUsNyArNDg4LDcgQEAg
Y2xhc3MgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAg
ICBtaW5fY29uZmlkZW5jZSwKICAgICAgICAgICAgICAgICAgb3V0cHV0X2Zvcm1hdCwKICAgICAg
ICAgICAgICAgICAgc3RkZXJyX3dyaXRlKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgU3R5bGVDaGVj
a2VyQ29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKyAgICAgICAgIiIiQ3JlYXRlIGEgU3R5bGVQcm9j
ZXNzb3JDb25maWd1cmF0aW9uIGluc3RhbmNlLgogCiAgICAgICAgIEFyZ3M6CiAgICAgICAgICAg
ZmlsdGVyX2NvbmZpZ3VyYXRpb246IEEgRmlsdGVyQ29uZmlndXJhdGlvbiBpbnN0YW5jZS4gIFRo
ZSBkZWZhdWx0CkBAIC01ODYsNyArNTc5LDcgQEAgY2xhc3MgUHJvY2Vzc29yQmFzZShvYmplY3Qp
OgogICAgICAgICAgICoqa3dhcmdzOiBUaGlzIGFyZ3VtZW50IHNpZ25pZmllcyB0aGF0IHRoZSBw
cm9jZXNzKCkgbWV0aG9kIG9mCiAgICAgICAgICAgICAgICAgICAgIHN1YmNsYXNzZXMgb2YgUHJv
Y2Vzc29yQmFzZSBtYXkgc3VwcG9ydCBhZGRpdGlvbmFsCiAgICAgICAgICAgICAgICAgICAgIGtl
eXdvcmQgYXJndW1lbnRzLgotICAgICAgICAgICAgICAgICAgICAgICAgRm9yIGV4YW1wbGUsIGEg
c3R5bGUgcHJvY2Vzc29yJ3MgcHJvY2VzcygpIG1ldGhvZAorICAgICAgICAgICAgICAgICAgICAg
ICAgRm9yIGV4YW1wbGUsIGEgc3R5bGUgY2hlY2tlcidzIGNoZWNrKCkgbWV0aG9kCiAgICAgICAg
ICAgICAgICAgICAgIG1heSBzdXBwb3J0IGEgInJlcG9ydGFibGVfbGluZXMiIHBhcmFtZXRlciB0
aGF0IHJlcHJlc2VudHMKICAgICAgICAgICAgICAgICAgICAgdGhlIGxpbmUgbnVtYmVycyBvZiB0
aGUgbGluZXMgZm9yIHdoaWNoIHN0eWxlIGVycm9ycwogICAgICAgICAgICAgICAgICAgICBzaG91
bGQgYmUgcmVwb3J0ZWQuCkBAIC02MTEsMTkgKzYwNCwxOSBAQCBjbGFzcyBTdHlsZVByb2Nlc3Nv
cihQcm9jZXNzb3JCYXNlKToKICAgICAgICAgIiIiQ3JlYXRlIGFuIGluc3RhbmNlLgogCiAgICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgY29uZmlndXJhdGlvbjogQSBTdHlsZUNoZWNrZXJDb25maWd1
cmF0aW9uIGluc3RhbmNlLgotICAgICAgICAgIG1vY2tfZGlzcGF0Y2hlcjogQSBtb2NrIFByb2Nl
c3NvckRpc3BhdGNoZXIgaW5zdGFuY2UuICBUaGlzCisgICAgICAgICAgY29uZmlndXJhdGlvbjog
QSBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCisgICAgICAgICAgbW9ja19k
aXNwYXRjaGVyOiBBIG1vY2sgQ2hlY2tlckRpc3BhdGNoZXIgaW5zdGFuY2UuICBUaGlzCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaXMgZm9yIHVuaXQgdGVzdGluZy4gIERl
ZmF1bHRzIHRvIGEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2Nlc3NvckRpc3BhdGNo
ZXIgaW5zdGFuY2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGVja2VyRGlzcGF0Y2hl
ciBpbnN0YW5jZS4KICAgICAgICAgICBtb2NrX2luY3JlbWVudF9lcnJvcl9jb3VudDogQSBtb2Nr
IGVycm9yLWNvdW50IGluY3JlbWVudGVyLgogICAgICAgICAgIG1vY2tfY2FycmlhZ2VfY2hlY2tl
cl9jbGFzczogQSBtb2NrIGNsYXNzIGZvciBjaGVja2luZyBhbmQKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybWluZyBjYXJyaWFnZSByZXR1cm5zLgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgZm9y
IHVuaXQgdGVzdGluZy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERl
ZmF1bHRzIHRvIENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yLgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gQ2FycmlhZ2VSZXR1cm5DaGVja2VyLgogCiAg
ICAgICAgICIiIgogICAgICAgICBpZiBtb2NrX2Rpc3BhdGNoZXIgaXMgTm9uZToKLSAgICAgICAg
ICAgIGRpc3BhdGNoZXIgPSBQcm9jZXNzb3JEaXNwYXRjaGVyKCkKKyAgICAgICAgICAgIGRpc3Bh
dGNoZXIgPSBDaGVja2VyRGlzcGF0Y2hlcigpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBk
aXNwYXRjaGVyID0gbW9ja19kaXNwYXRjaGVyCiAKQEAgLTYzOSw3ICs2MzIsNyBAQCBjbGFzcyBT
dHlsZVByb2Nlc3NvcihQcm9jZXNzb3JCYXNlKToKICAgICAgICAgaWYgbW9ja19jYXJyaWFnZV9j
aGVja2VyX2NsYXNzIGlzIE5vbmU6CiAgICAgICAgICAgICAjIFRoaXMgbmVlZHMgdG8gYmUgYSBj
bGFzcyByYXRoZXIgdGhhbiBhbiBpbnN0YW5jZSBzaW5jZSB0aGUKICAgICAgICAgICAgICMgcHJv
Y2VzcygpIG1ldGhvZCBpbnN0YW50aWF0ZXMgb25lIHVzaW5nIHBhcmFtZXRlcnMuCi0gICAgICAg
ICAgICBjYXJyaWFnZV9jaGVja2VyX2NsYXNzID0gQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IKKyAg
ICAgICAgICAgIGNhcnJpYWdlX2NoZWNrZXJfY2xhc3MgPSBDYXJyaWFnZVJldHVybkNoZWNrZXIK
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGNhcnJpYWdlX2NoZWNrZXJfY2xhc3MgPSBtb2Nr
X2NhcnJpYWdlX2NoZWNrZXJfY2xhc3MKIApAQCAtNjkxLDEwICs2ODQsMTAgQEAgY2xhc3MgU3R5
bGVQcm9jZXNzb3IoUHJvY2Vzc29yQmFzZSk6CiAgICAgICAgICMgICAgICAgIGNoZWNrIG9ubHkg
aWYgKG9zLmxpbmVzZXAgIT0gJ1xyXG4nKS4KICAgICAgICAgIwogICAgICAgICAjIENoZWNrIGZv
ciBhbmQgcmVtb3ZlIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybnMgKCJcciIpLgotICAgICAgICBs
aW5lcyA9IGNhcnJpYWdlX2NoZWNrZXIucHJvY2VzcyhsaW5lcykKKyAgICAgICAgbGluZXMgPSBj
YXJyaWFnZV9jaGVja2VyLmNoZWNrKGxpbmVzKQogCiAgICAgICAgIG1pbl9jb25maWRlbmNlID0g
c2VsZi5fY29uZmlndXJhdGlvbi5taW5fY29uZmlkZW5jZQotICAgICAgICBjaGVja2VyID0gc2Vs
Zi5fZGlzcGF0Y2hlci5kaXNwYXRjaF9wcm9jZXNzb3IoZmlsZV9wYXRoLAorICAgICAgICBjaGVj
a2VyID0gc2VsZi5fZGlzcGF0Y2hlci5kaXNwYXRjaChmaWxlX3BhdGgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZV9lcnJvcl9oYW5k
bGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWluX2NvbmZpZGVuY2UpCiAKQEAgLTcwMywxOCArNjk2LDE1IEBAIGNsYXNzIFN0eWxlUHJv
Y2Vzc29yKFByb2Nlc3NvckJhc2UpOgogCiAgICAgICAgIF9sb2cuZGVidWcoIlVzaW5nIGNsYXNz
OiAiICsgY2hlY2tlci5fX2NsYXNzX18uX19uYW1lX18pCiAKLSAgICAgICAgY2hlY2tlci5wcm9j
ZXNzKGxpbmVzKQorICAgICAgICBjaGVja2VyLmNoZWNrKGxpbmVzKQogCiAKLSMgRklYTUU6IFJl
bmFtZSB0aGlzIGNsYXNzIHRvIFBhdGNoUmVhZGVyIHRvIHBhcmFsbGVsIFRleHRGaWxlUmVhZGVy
Ci0jICAgICAgICAoYW5kIHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20gQ2FycmlhZ2VSZXR1cm5DaGVj
a2VyLCBDcHBDaGVja2VyLAotIyAgICAgICAgZXRjLiB3aGljaCBhcmUgcmVzcG9uc2libGUgb25s
eSBmb3IgcHJvY2Vzc2luZyBsaW5lcykuCi1jbGFzcyBQYXRjaENoZWNrZXIob2JqZWN0KToKK2Ns
YXNzIFBhdGNoUmVhZGVyKG9iamVjdCk6CiAKICAgICAiIiJTdXBwb3J0cyBjaGVja2luZyBzdHls
ZSBpbiBwYXRjaGVzLiIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRleHRfZmlsZV9yZWFk
ZXIpOgotICAgICAgICAiIiJDcmVhdGUgYSBQYXRjaENoZWNrZXIgaW5zdGFuY2UuCisgICAgICAg
ICIiIkNyZWF0ZSBhIFBhdGNoUmVhZGVyIGluc3RhbmNlLgogCiAgICAgICAgIEFyZ3M6CiAgICAg
ICAgICAgdGV4dF9maWxlX3JlYWRlcjogQSBUZXh0RmlsZVJlYWRlciBpbnN0YW5jZS4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVz
dC5weQppbmRleCBiOWY5NDYyLi42ZTFlYWEyIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CkBAIC00OSwxNCArNDks
MTQgQEAgZnJvbSBjaGVja2VyIGltcG9ydCBfYWxsX2NhdGVnb3JpZXMKIGZyb20gY2hlY2tlciBp
bXBvcnQgY2hlY2tfd2Via2l0X3N0eWxlX2NvbmZpZ3VyYXRpb24KIGZyb20gY2hlY2tlciBpbXBv
cnQgY2hlY2tfd2Via2l0X3N0eWxlX3BhcnNlcgogZnJvbSBjaGVja2VyIGltcG9ydCBjb25maWd1
cmVfbG9nZ2luZwotZnJvbSBjaGVja2VyIGltcG9ydCBQcm9jZXNzb3JEaXNwYXRjaGVyCi1mcm9t
IGNoZWNrZXIgaW1wb3J0IFBhdGNoQ2hlY2tlcgorZnJvbSBjaGVja2VyIGltcG9ydCBDaGVja2Vy
RGlzcGF0Y2hlcgorZnJvbSBjaGVja2VyIGltcG9ydCBQYXRjaFJlYWRlcgogZnJvbSBjaGVja2Vy
IGltcG9ydCBQcm9jZXNzb3JCYXNlCiBmcm9tIGNoZWNrZXIgaW1wb3J0IFN0eWxlUHJvY2Vzc29y
Ci1mcm9tIGNoZWNrZXIgaW1wb3J0IFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24KLWZyb20gY2hl
Y2tlcnMuY3BwIGltcG9ydCBDcHBQcm9jZXNzb3IKLWZyb20gY2hlY2tlcnMucHl0aG9uIGltcG9y
dCBQeXRob25Qcm9jZXNzb3IKLWZyb20gY2hlY2tlcnMudGV4dCBpbXBvcnQgVGV4dFByb2Nlc3Nv
cgorZnJvbSBjaGVja2VyIGltcG9ydCBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24KK2Zyb20g
Y2hlY2tlcnMuY3BwIGltcG9ydCBDcHBDaGVja2VyCitmcm9tIGNoZWNrZXJzLnB5dGhvbiBpbXBv
cnQgUHl0aG9uQ2hlY2tlcgorZnJvbSBjaGVja2Vycy50ZXh0IGltcG9ydCBUZXh0Q2hlY2tlcgog
ZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9t
IGZpbHRlciBpbXBvcnQgdmFsaWRhdGVfZmlsdGVyX3J1bGVzCiBmcm9tIGZpbHRlciBpbXBvcnQg
RmlsdGVyQ29uZmlndXJhdGlvbgpAQCAtMjY4LDEyICsyNjgsMTIgQEAgY2xhc3MgQ2hlY2tXZWJL
aXRTdHlsZUZ1bmN0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBhcnNlciA9
IGNoZWNrX3dlYmtpdF9zdHlsZV9wYXJzZXIoKQogCiAKLWNsYXNzIFByb2Nlc3NvckRpc3BhdGNo
ZXJTa2lwVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBDaGVja2VyRGlzcGF0Y2hlclNr
aXBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAotICAgICIiIlRlc3RzIHRoZSAic2hvdWxkIHNr
aXAiIG1ldGhvZHMgb2YgdGhlIFByb2Nlc3NvckRpc3BhdGNoZXIgY2xhc3MuIiIiCisgICAgIiIi
VGVzdHMgdGhlICJzaG91bGQgc2tpcCIgbWV0aG9kcyBvZiB0aGUgQ2hlY2tlckRpc3BhdGNoZXIg
Y2xhc3MuIiIiCiAKICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Rpc3BhdGNo
ZXIgPSBQcm9jZXNzb3JEaXNwYXRjaGVyKCkKKyAgICAgICAgc2VsZi5fZGlzcGF0Y2hlciA9IENo
ZWNrZXJEaXNwYXRjaGVyKCkKIAogICAgIGRlZiB0ZXN0X3Nob3VsZF9za2lwX3dpdGhfd2Fybmlu
ZyhzZWxmKToKICAgICAgICAgIiIiVGVzdCBzaG91bGRfc2tpcF93aXRoX3dhcm5pbmcoKS4iIiIK
QEAgLTI5OSw5ICsyOTksOSBAQCBjbGFzcyBQcm9jZXNzb3JEaXNwYXRjaGVyU2tpcFRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfYXNzZXJ0X3Nob3VsZF9za2lwX3dpdGhvdXRfd2Fy
bmluZyhzZWxmLCBwYXRoLCBpc19jaGVja2VyX25vbmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkKToKICAgICAgICAgIyBDaGVjayB0aGUgZmls
ZSB0eXBlIGJlZm9yZSBhc3NlcnRpbmcgdGhlIHJldHVybiB2YWx1ZS4KLSAgICAgICAgY2hlY2tl
ciA9IHNlbGYuX2Rpc3BhdGNoZXIuZGlzcGF0Y2hfcHJvY2Vzc29yKGZpbGVfcGF0aD1wYXRoLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu
ZGxlX3N0eWxlX2Vycm9yPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZT0zKQorICAgICAgICBjaGVja2VyID0g
c2VsZi5fZGlzcGF0Y2hlci5kaXNwYXRjaChmaWxlX3BhdGg9cGF0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yPU5vbmUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9jb25maWRlbmNl
PTMpCiAgICAgICAgIG1lc3NhZ2UgPSAnd2hpbGUgY2hlY2tpbmc6ICVzJyAlIHBhdGgKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlciBpcyBOb25lLCBpc19jaGVja2VyX25vbmUsIG1l
c3NhZ2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYuX2Rpc3BhdGNoZXIuc2hvdWxk
X3NraXBfd2l0aG91dF93YXJuaW5nKHBhdGgpLApAQCAtMzM1LDMwICszMzUsMzAgQEAgY2xhc3Mg
UHJvY2Vzc29yRGlzcGF0Y2hlclNraXBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ9RmFs
c2UpCiAKIAotY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CitjbGFzcyBDaGVja2VyRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAKLSAgICAiIiJUZXN0cyBkaXNwYXRjaF9wcm9jZXNzb3IoKSBtZXRob2Qgb2Yg
UHJvY2Vzc29yRGlzcGF0Y2hlciBjbGFzcy4iIiIKKyAgICAiIiJUZXN0cyBkaXNwYXRjaCgpIG1l
dGhvZCBvZiBDaGVja2VyRGlzcGF0Y2hlciBjbGFzcy4iIiIKIAogICAgIGRlZiBtb2NrX2hhbmRs
ZV9zdHlsZV9lcnJvcihzZWxmKToKICAgICAgICAgcGFzcwogCi0gICAgZGVmIGRpc3BhdGNoX3By
b2Nlc3NvcihzZWxmLCBmaWxlX3BhdGgpOgotICAgICAgICAiIiJDYWxsIGRpc3BhdGNoX3Byb2Nl
c3NvcigpIHdpdGggdGhlIGdpdmVuIGZpbGUgcGF0aC4iIiIKLSAgICAgICAgZGlzcGF0Y2hlciA9
IFByb2Nlc3NvckRpc3BhdGNoZXIoKQotICAgICAgICBwcm9jZXNzb3IgPSBkaXNwYXRjaGVyLmRp
c3BhdGNoX3Byb2Nlc3NvcihmaWxlX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9jb25maWRl
bmNlPTMpCi0gICAgICAgIHJldHVybiBwcm9jZXNzb3IKLQotICAgIGRlZiBhc3NlcnRfcHJvY2Vz
c29yX25vbmUoc2VsZiwgZmlsZV9wYXRoKToKLSAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGRp
c3BhdGNoZWQgcHJvY2Vzc29yIGlzIE5vbmUuIiIiCi0gICAgICAgIHByb2Nlc3NvciA9IHNlbGYu
ZGlzcGF0Y2hfcHJvY2Vzc29yKGZpbGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBy
b2Nlc3NvciBpcyBOb25lLCAnQ2hlY2tpbmc6ICIlcyInICUgZmlsZV9wYXRoKQotCi0gICAgZGVm
IGFzc2VydF9wcm9jZXNzb3Ioc2VsZiwgZmlsZV9wYXRoLCBleHBlY3RlZF9jbGFzcyk6Ci0gICAg
ICAgICIiIkFzc2VydCB0aGUgdHlwZSBvZiB0aGUgZGlzcGF0Y2hlZCBwcm9jZXNzb3IuIiIiCi0g
ICAgICAgIHByb2Nlc3NvciA9IHNlbGYuZGlzcGF0Y2hfcHJvY2Vzc29yKGZpbGVfcGF0aCkKLSAg
ICAgICAgZ290X2NsYXNzID0gcHJvY2Vzc29yLl9fY2xhc3NfXworICAgIGRlZiBkaXNwYXRjaChz
ZWxmLCBmaWxlX3BhdGgpOgorICAgICAgICAiIiJDYWxsIGRpc3BhdGNoKCkgd2l0aCB0aGUgZ2l2
ZW4gZmlsZSBwYXRoLiIiIgorICAgICAgICBkaXNwYXRjaGVyID0gQ2hlY2tlckRpc3BhdGNoZXIo
KQorICAgICAgICBjaGVja2VyID0gZGlzcGF0Y2hlci5kaXNwYXRjaChmaWxlX3BhdGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubW9ja19oYW5kbGVfc3R5bGVf
ZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9jb25maWRl
bmNlPTMpCisgICAgICAgIHJldHVybiBjaGVja2VyCisKKyAgICBkZWYgYXNzZXJ0X2NoZWNrZXJf
bm9uZShzZWxmLCBmaWxlX3BhdGgpOgorICAgICAgICAiIiJBc3NlcnQgdGhhdCB0aGUgZGlzcGF0
Y2hlZCBjaGVja2VyIGlzIE5vbmUuIiIiCisgICAgICAgIGNoZWNrZXIgPSBzZWxmLmRpc3BhdGNo
KGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNoZWNrZXIgaXMgTm9uZSwgJ0No
ZWNraW5nOiAiJXMiJyAlIGZpbGVfcGF0aCkKKworICAgIGRlZiBhc3NlcnRfY2hlY2tlcihzZWxm
LCBmaWxlX3BhdGgsIGV4cGVjdGVkX2NsYXNzKToKKyAgICAgICAgIiIiQXNzZXJ0IHRoZSB0eXBl
IG9mIHRoZSBkaXNwYXRjaGVkIGNoZWNrZXIuIiIiCisgICAgICAgIGNoZWNrZXIgPSBzZWxmLmRp
c3BhdGNoKGZpbGVfcGF0aCkKKyAgICAgICAgZ290X2NsYXNzID0gY2hlY2tlci5fX2NsYXNzX18K
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZ290X2NsYXNzLCBleHBlY3RlZF9jbGFzcywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ0ZvciBwYXRoICIlKGZpbGVfcGF0aClzIiBnb3QgJShn
b3RfY2xhc3MpcyB3aGVuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGluZyAl
KGV4cGVjdGVkX2NsYXNzKXMuIgpAQCAtMzY2LDE3ICszNjYsMTcgQEAgY2xhc3MgUHJvY2Vzc29y
RGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJnb3RfY2xhc3MiOiBnb3RfY2xhc3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZF9jbGFzcyI6IGV4cGVjdGVkX2NsYXNzfSkKIAotICAgIGRl
ZiBhc3NlcnRfcHJvY2Vzc29yX2NwcChzZWxmLCBmaWxlX3BhdGgpOgotICAgICAgICAiIiJBc3Nl
cnQgdGhhdCB0aGUgZGlzcGF0Y2hlZCBwcm9jZXNzb3IgaXMgYSBDcHBQcm9jZXNzb3IuIiIiCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3NvcihmaWxlX3BhdGgsIENwcFByb2Nlc3NvcikKKyAg
ICBkZWYgYXNzZXJ0X2NoZWNrZXJfY3BwKHNlbGYsIGZpbGVfcGF0aCk6CisgICAgICAgICIiIkFz
c2VydCB0aGF0IHRoZSBkaXNwYXRjaGVkIGNoZWNrZXIgaXMgYSBDcHBDaGVja2VyLiIiIgorICAg
ICAgICBzZWxmLmFzc2VydF9jaGVja2VyKGZpbGVfcGF0aCwgQ3BwQ2hlY2tlcikKIAotICAgIGRl
ZiBhc3NlcnRfcHJvY2Vzc29yX3B5dGhvbihzZWxmLCBmaWxlX3BhdGgpOgotICAgICAgICAiIiJB
c3NlcnQgdGhhdCB0aGUgZGlzcGF0Y2hlZCBwcm9jZXNzb3IgaXMgYSBQeXRob25Qcm9jZXNzb3Iu
IiIiCi0gICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3NvcihmaWxlX3BhdGgsIFB5dGhvblByb2Nl
c3NvcikKKyAgICBkZWYgYXNzZXJ0X2NoZWNrZXJfcHl0aG9uKHNlbGYsIGZpbGVfcGF0aCk6Cisg
ICAgICAgICIiIkFzc2VydCB0aGF0IHRoZSBkaXNwYXRjaGVkIGNoZWNrZXIgaXMgYSBQeXRob25D
aGVja2VyLiIiIgorICAgICAgICBzZWxmLmFzc2VydF9jaGVja2VyKGZpbGVfcGF0aCwgUHl0aG9u
Q2hlY2tlcikKIAotICAgIGRlZiBhc3NlcnRfcHJvY2Vzc29yX3RleHQoc2VsZiwgZmlsZV9wYXRo
KToKLSAgICAgICAgIiIiQXNzZXJ0IHRoYXQgdGhlIGRpc3BhdGNoZWQgcHJvY2Vzc29yIGlzIGEg
VGV4dFByb2Nlc3Nvci4iIiIKLSAgICAgICAgc2VsZi5hc3NlcnRfcHJvY2Vzc29yKGZpbGVfcGF0
aCwgVGV4dFByb2Nlc3NvcikKKyAgICBkZWYgYXNzZXJ0X2NoZWNrZXJfdGV4dChzZWxmLCBmaWxl
X3BhdGgpOgorICAgICAgICAiIiJBc3NlcnQgdGhhdCB0aGUgZGlzcGF0Y2hlZCBjaGVja2VyIGlz
IGEgVGV4dENoZWNrZXIuIiIiCisgICAgICAgIHNlbGYuYXNzZXJ0X2NoZWNrZXIoZmlsZV9wYXRo
LCBUZXh0Q2hlY2tlcikKIAogICAgIGRlZiB0ZXN0X2NwcF9wYXRocyhzZWxmKToKICAgICAgICAg
IiIiVGVzdCBwYXRocyB0aGF0IHNob3VsZCBiZSBjaGVja2VkIGFzIEMrKy4iIiIKQEAgLTM4OCwy
NiArMzg4LDI2IEBAIGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXJEaXNwYXRjaFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICAgICAgXQogCiAgICAgICAgIGZvciBwYXRoIGluIHBhdGhz
OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRfcHJvY2Vzc29yX2NwcChwYXRoKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRfY2hlY2tlcl9jcHAocGF0aCkKIAotICAgICAgICAjIENoZWNrIHByb2Nl
c3NvciBhdHRyaWJ1dGVzIG9uIGEgdHlwaWNhbCBpbnB1dC4KKyAgICAgICAgIyBDaGVjayBjaGVj
a2VyIGF0dHJpYnV0ZXMgb24gYSB0eXBpY2FsIGlucHV0LgogICAgICAgICBmaWxlX2Jhc2UgPSAi
Zm9vIgogICAgICAgICBmaWxlX2V4dGVuc2lvbiA9ICJjIgogICAgICAgICBmaWxlX3BhdGggPSBm
aWxlX2Jhc2UgKyAiLiIgKyBmaWxlX2V4dGVuc2lvbgotICAgICAgICBzZWxmLmFzc2VydF9wcm9j
ZXNzb3JfY3BwKGZpbGVfcGF0aCkKLSAgICAgICAgcHJvY2Vzc29yID0gc2VsZi5kaXNwYXRjaF9w
cm9jZXNzb3IoZmlsZV9wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwcm9jZXNzb3Iu
ZmlsZV9leHRlbnNpb24sIGZpbGVfZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhwcm9jZXNzb3IuZmlsZV9wYXRoLCBmaWxlX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHByb2Nlc3Nvci5oYW5kbGVfc3R5bGVfZXJyb3IsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVf
ZXJyb3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHByb2Nlc3Nvci5taW5fY29uZmlkZW5j
ZSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRfY2hlY2tlcl9jcHAoZmlsZV9wYXRoKQorICAgICAg
ICBjaGVja2VyID0gc2VsZi5kaXNwYXRjaChmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGNoZWNrZXIuZmlsZV9leHRlbnNpb24sIGZpbGVfZXh0ZW5zaW9uKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmZpbGVfcGF0aCwgZmlsZV9wYXRoKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmhhbmRsZV9zdHlsZV9lcnJvciwgc2VsZi5tb2NrX2hh
bmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tlci5taW5f
Y29uZmlkZW5jZSwgMykKICAgICAgICAgIyBDaGVjayAiLSIgZm9yIGdvb2QgbWVhc3VyZS4KICAg
ICAgICAgZmlsZV9iYXNlID0gIi0iCiAgICAgICAgIGZpbGVfZXh0ZW5zaW9uID0gIiIKICAgICAg
ICAgZmlsZV9wYXRoID0gZmlsZV9iYXNlCi0gICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3Nvcl9j
cHAoZmlsZV9wYXRoKQotICAgICAgICBwcm9jZXNzb3IgPSBzZWxmLmRpc3BhdGNoX3Byb2Nlc3Nv
cihmaWxlX3BhdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHByb2Nlc3Nvci5maWxlX2V4
dGVuc2lvbiwgZmlsZV9leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHByb2Nl
c3Nvci5maWxlX3BhdGgsIGZpbGVfcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRfY2hlY2tlcl9j
cHAoZmlsZV9wYXRoKQorICAgICAgICBjaGVja2VyID0gc2VsZi5kaXNwYXRjaChmaWxlX3BhdGgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9leHRlbnNpb24sIGZpbGVf
ZXh0ZW5zaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmZpbGVfcGF0aCwg
ZmlsZV9wYXRoKQogCiAgICAgZGVmIHRlc3RfcHl0aG9uX3BhdGhzKHNlbGYpOgogICAgICAgICAi
IiJUZXN0IHBhdGhzIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQgYXMgUHl0aG9uLiIiIgpAQCAtNDE3
LDE2ICs0MTcsMTYgQEAgY2xhc3MgUHJvY2Vzc29yRGlzcGF0Y2hlckRpc3BhdGNoVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIF0KIAogICAgICAgICBmb3IgcGF0aCBpbiBwYXRoczoK
LSAgICAgICAgICAgIHNlbGYuYXNzZXJ0X3Byb2Nlc3Nvcl9weXRob24ocGF0aCkKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0X2NoZWNrZXJfcHl0aG9uKHBhdGgpCiAKLSAgICAgICAgIyBDaGVjayBw
cm9jZXNzb3IgYXR0cmlidXRlcyBvbiBhIHR5cGljYWwgaW5wdXQuCisgICAgICAgICMgQ2hlY2sg
Y2hlY2tlciBhdHRyaWJ1dGVzIG9uIGEgdHlwaWNhbCBpbnB1dC4KICAgICAgICAgZmlsZV9iYXNl
ID0gImZvbyIKICAgICAgICAgZmlsZV9leHRlbnNpb24gPSAiY3NzIgogICAgICAgICBmaWxlX3Bh
dGggPSBmaWxlX2Jhc2UgKyAiLiIgKyBmaWxlX2V4dGVuc2lvbgotICAgICAgICBzZWxmLmFzc2Vy
dF9wcm9jZXNzb3JfdGV4dChmaWxlX3BhdGgpCi0gICAgICAgIHByb2Nlc3NvciA9IHNlbGYuZGlz
cGF0Y2hfcHJvY2Vzc29yKGZpbGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHJv
Y2Vzc29yLmZpbGVfcGF0aCwgZmlsZV9wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhw
cm9jZXNzb3IuaGFuZGxlX3N0eWxlX2Vycm9yLAorICAgICAgICBzZWxmLmFzc2VydF9jaGVja2Vy
X3RleHQoZmlsZV9wYXRoKQorICAgICAgICBjaGVja2VyID0gc2VsZi5kaXNwYXRjaChmaWxlX3Bh
dGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9wYXRoLCBmaWxlX3Bh
dGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuaGFuZGxlX3N0eWxlX2Vycm9y
LAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9y
KQogCiAgICAgZGVmIHRlc3RfdGV4dF9wYXRocyhzZWxmKToKQEAgLTQ2NCwxNiArNDY0LDE2IEBA
IGNsYXNzIFByb2Nlc3NvckRpc3BhdGNoZXJEaXNwYXRjaFRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBdCiAKICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydF9wcm9jZXNzb3JfdGV4dChwYXRoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRf
Y2hlY2tlcl90ZXh0KHBhdGgpCiAKLSAgICAgICAgIyBDaGVjayBwcm9jZXNzb3IgYXR0cmlidXRl
cyBvbiBhIHR5cGljYWwgaW5wdXQuCisgICAgICAgICMgQ2hlY2sgY2hlY2tlciBhdHRyaWJ1dGVz
IG9uIGEgdHlwaWNhbCBpbnB1dC4KICAgICAgICAgZmlsZV9iYXNlID0gImZvbyIKICAgICAgICAg
ZmlsZV9leHRlbnNpb24gPSAiY3NzIgogICAgICAgICBmaWxlX3BhdGggPSBmaWxlX2Jhc2UgKyAi
LiIgKyBmaWxlX2V4dGVuc2lvbgotICAgICAgICBzZWxmLmFzc2VydF9wcm9jZXNzb3JfdGV4dChm
aWxlX3BhdGgpCi0gICAgICAgIHByb2Nlc3NvciA9IHNlbGYuZGlzcGF0Y2hfcHJvY2Vzc29yKGZp
bGVfcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHJvY2Vzc29yLmZpbGVfcGF0aCwg
ZmlsZV9wYXRoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwcm9jZXNzb3IuaGFuZGxlX3N0
eWxlX2Vycm9yLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBzZWxmLmFz
c2VydF9jaGVja2VyX3RleHQoZmlsZV9wYXRoKQorICAgICAgICBjaGVja2VyID0gc2VsZi5kaXNw
YXRjaChmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9w
YXRoLCBmaWxlX3BhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIuaGFuZGxl
X3N0eWxlX2Vycm9yLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQogCiAgICAgZGVmIHRl
c3Rfbm9uZV9wYXRocyhzZWxmKToKICAgICAgICAgIiIiVGVzdCBwYXRocyB0aGF0IGhhdmUgbm8g
ZmlsZSB0eXBlLi4iIiIKQEAgLTQ4NiwxMiArNDg2LDEyIEBAIGNsYXNzIFByb2Nlc3NvckRpc3Bh
dGNoZXJEaXNwYXRjaFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgXQogCiAg
ICAgICAgIGZvciBwYXRoIGluIHBhdGhzOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRfcHJvY2Vz
c29yX25vbmUocGF0aCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X2NoZWNrZXJfbm9uZShwYXRo
KQogCiAKLWNsYXNzIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb25UZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKK2NsYXNzIFN0eWxlUHJvY2Vzc29yQ29uZmlndXJhdGlvblRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogCi0gICAgIiIiVGVzdHMgdGhlIFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gY2xh
c3MuIiIiCisgICAgIiIiVGVzdHMgdGhlIFN0eWxlUHJvY2Vzc29yQ29uZmlndXJhdGlvbiBjbGFz
cy4iIiIKIAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5fZXJyb3JfbWVzc2Fn
ZXMgPSBbXQpAQCAtNTAxLDExICs1MDEsMTEgQEAgY2xhc3MgU3R5bGVDaGVja2VyQ29uZmlndXJh
dGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLl9lcnJvcl9tZXNzYWdl
cy5hcHBlbmQobWVzc2FnZSkKIAogICAgIGRlZiBfc3R5bGVfY2hlY2tlcl9jb25maWd1cmF0aW9u
KHNlbGYsIG91dHB1dF9mb3JtYXQ9InZzNyIpOgotICAgICAgICAiIiJSZXR1cm4gYSBTdHlsZUNo
ZWNrZXJDb25maWd1cmF0aW9uIGluc3RhbmNlIGZvciB0ZXN0aW5nLiIiIgorICAgICAgICAiIiJS
ZXR1cm4gYSBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgZm9yIHRlc3Rpbmcu
IiIiCiAgICAgICAgIGJhc2VfcnVsZXMgPSBbIi13aGl0ZXNwYWNlIiwgIit3aGl0ZXNwYWNlL3Rh
YiJdCiAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uID0gRmlsdGVyQ29uZmlndXJhdGlvbihi
YXNlX3J1bGVzPWJhc2VfcnVsZXMpCiAKLSAgICAgICAgcmV0dXJuIFN0eWxlQ2hlY2tlckNvbmZp
Z3VyYXRpb24oCisgICAgICAgIHJldHVybiBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24oCiAg
ICAgICAgICAgICAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRpb249ZmlsdGVyX2NvbmZpZ3VyYXRp
b24sCiAgICAgICAgICAgICAgICAgICAgbWF4X3JlcG9ydHNfcGVyX2NhdGVnb3J5PXsid2hpdGVz
cGFjZS9uZXdsaW5lIjogMX0sCiAgICAgICAgICAgICAgICAgICAgbWluX2NvbmZpZGVuY2U9MywK
QEAgLTU2OSw3ICs1NjksNyBAQCBjbGFzcyBTdHlsZVByb2Nlc3Nvcl9FbmRUb0VuZFRlc3QoTG9n
Z2luZ1Rlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6CiAgICAgICAgICIiIlRl
c3QgX19pbml0X18gY29uc3RydWN0b3IuIiIiCi0gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBTdHls
ZUNoZWNrZXJDb25maWd1cmF0aW9uKAorICAgICAgICBjb25maWd1cmF0aW9uID0gU3R5bGVQcm9j
ZXNzb3JDb25maWd1cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcl9j
b25maWd1cmF0aW9uPUZpbHRlckNvbmZpZ3VyYXRpb24oKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXhfcmVwb3J0c19wZXJfY2F0ZWdvcnk9e30sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWluX2NvbmZpZGVuY2U9MywKQEAgLTU4MSw3ICs1ODEsNyBAQCBjbGFzcyBTdHls
ZVByb2Nlc3Nvcl9FbmRUb0VuZFRlc3QoTG9nZ2luZ1Rlc3RDYXNlKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoc2VsZi5fbWVzc2FnZXMsIFtdKQogCiAgICAgZGVmIHRlc3RfcHJvY2Vzcyhz
ZWxmKToKLSAgICAgICAgY29uZmlndXJhdGlvbiA9IFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24o
CisgICAgICAgIGNvbmZpZ3VyYXRpb24gPSBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24oCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyX2NvbmZpZ3VyYXRpb249RmlsdGVyQ29u
ZmlndXJhdGlvbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heF9yZXBvcnRzX3Bl
cl9jYXRlZ29yeT17fSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5j
ZT0zLApAQCAtNjE0LDEyICs2MTQsMTIgQEAgY2xhc3MgU3R5bGVQcm9jZXNzb3JfQ29kZUNvdmVy
YWdlVGVzdChMb2dnaW5nVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5taW5fY29uZmlkZW5j
ZSA9IG1pbl9jb25maWRlbmNlCiAgICAgICAgICAgICBzZWxmLnN0eWxlX2Vycm9yX2hhbmRsZXIg
PSBzdHlsZV9lcnJvcl9oYW5kbGVyCiAKLSAgICAgICAgZGVmIHByb2Nlc3Moc2VsZiwgbGluZXMp
OgorICAgICAgICBkZWYgY2hlY2soc2VsZiwgbGluZXMpOgogICAgICAgICAgICAgc2VsZi5saW5l
cyA9IGxpbmVzCiAKICAgICBjbGFzcyBNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgogCi0gICAgICAg
ICIiIkEgbW9jayBQcm9jZXNzb3JEaXNwYXRjaGVyIGNsYXNzLiIiIgorICAgICAgICAiIiJBIG1v
Y2sgQ2hlY2tlckRpc3BhdGNoZXIgY2xhc3MuIiIiCiAKICAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgogICAgICAgICAgICAgc2VsZi5kaXNwYXRjaGVkX2NoZWNrZXIgPSBOb25lCkBAIC02MzAs
OCArNjMwLDcgQEAgY2xhc3MgU3R5bGVQcm9jZXNzb3JfQ29kZUNvdmVyYWdlVGVzdChMb2dnaW5n
VGVzdENhc2UpOgogICAgICAgICBkZWYgc2hvdWxkX3NraXBfd2l0aG91dF93YXJuaW5nKHNlbGYs
IGZpbGVfcGF0aCk6CiAgICAgICAgICAgICByZXR1cm4gZmlsZV9wYXRoLmVuZHN3aXRoKCdza2lw
X3dpdGhvdXRfd2FybmluZy50eHQnKQogCi0gICAgICAgIGRlZiBkaXNwYXRjaF9wcm9jZXNzb3Io
c2VsZiwgZmlsZV9wYXRoLCBzdHlsZV9lcnJvcl9oYW5kbGVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1pbl9jb25maWRlbmNlKToKKyAgICAgICAgZGVmIGRpc3BhdGNoKHNlbGYs
IGZpbGVfcGF0aCwgc3R5bGVfZXJyb3JfaGFuZGxlciwgbWluX2NvbmZpZGVuY2UpOgogICAgICAg
ICAgICAgaWYgZmlsZV9wYXRoLmVuZHN3aXRoKCdkb19ub3RfcHJvY2Vzcy50eHQnKToKICAgICAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogCkBAIC02NTAsNyArNjQ5LDcgQEAgY2xhc3MgU3R5bGVQ
cm9jZXNzb3JfQ29kZUNvdmVyYWdlVGVzdChMb2dnaW5nVGVzdENhc2UpOgogICAgICAgICBMb2dn
aW5nVGVzdENhc2Uuc2V0VXAoc2VsZikKICAgICAgICAgIyBXZSBjYW4gcGFzcyBhbiBlcnJvci1t
ZXNzYWdlIHN3YWxsb3dlciBoZXJlIGJlY2F1c2UgZXJyb3IgbWVzc2FnZQogICAgICAgICAjIG91
dHB1dCBpcyB0ZXN0ZWQgaW5zdGVhZCBpbiB0aGUgZW5kLXRvLWVuZCB0ZXN0IGNhc2UgYWJvdmUu
Ci0gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBTdHlsZUNoZWNrZXJDb25maWd1cmF0aW9uKAorICAg
ICAgICBjb25maWd1cmF0aW9uID0gU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uKAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPUZpbHRlckNvbmZpZ3Vy
YXRpb24oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfcmVwb3J0c19wZXJfY2F0
ZWdvcnk9eyJ3aGl0ZXNwYWNlL25ld2xpbmUiOiAxfSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtaW5fY29uZmlkZW5jZT0zLApAQCAtNjgyLDcgKzY4MSw3IEBAIGNsYXNzIFN0eWxlUHJv
Y2Vzc29yX0NvZGVDb3ZlcmFnZVRlc3QoTG9nZ2luZ1Rlc3RDYXNlKToKICAgICBkZWYgX3N3YWxs
b3dfc3RkZXJyX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgICIiIlN3YWxsb3cgYSBt
ZXNzYWdlIHBhc3NlZCB0byBzdGRlcnIud3JpdGUoKS4iIiIKICAgICAgICAgIyBUaGlzIGlzIGEg
bW9jayBzdGRlcnIud3JpdGUoKSBmb3IgcGFzc2luZyB0byB0aGUgY29uc3RydWN0b3IKLSAgICAg
ICAgIyBvZiB0aGUgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbiBjbGFzcy4KKyAgICAgICAgIyBv
ZiB0aGUgU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uIGNsYXNzLgogICAgICAgICBwYXNzCiAK
ICAgICBkZWYgX2NyZWF0ZV9jYXJyaWFnZV9jaGVja2VyX2NsYXNzKHNlbGYpOgpAQCAtNzAyLDcg
KzcwMSw3IEBAIGNsYXNzIFN0eWxlUHJvY2Vzc29yX0NvZGVDb3ZlcmFnZVRlc3QoTG9nZ2luZ1Rl
c3RDYXNlKToKICAgICAgICAgICAgICAgICAjIGluc3RhbnRpYXRlZCBjYXJyaWFnZSBjaGVja2Vy
LgogICAgICAgICAgICAgICAgIHRlc3RfY2FzZS5jYXJyaWFnZV9jaGVja2VyID0gc2VsZgogCi0g
ICAgICAgICAgICBkZWYgcHJvY2VzcyhzZWxmLCBsaW5lcyk6CisgICAgICAgICAgICBkZWYgY2hl
Y2soc2VsZiwgbGluZXMpOgogICAgICAgICAgICAgICAgICMgU2F2ZSB0aGUgbGluZXMgc28gdGhl
IGN1cnJlbnQgdGVzdCBjYXNlIGhhcyBhIHdheSB0byBhY2Nlc3MKICAgICAgICAgICAgICAgICAj
IGFuZCBjaGVjayB0aGVtLgogICAgICAgICAgICAgICAgIHNlbGYubGluZXMgPSBsaW5lcwpAQCAt
NzcyLDkgKzc3MSw5IEBAIGNsYXNzIFN0eWxlUHJvY2Vzc29yX0NvZGVDb3ZlcmFnZVRlc3QoTG9n
Z2luZ1Rlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXJzPVsx
MDBdKQogCiAKLWNsYXNzIFBhdGNoQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorY2xh
c3MgUGF0Y2hSZWFkZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAotICAgICIiIlRlc3QgdGhl
IFBhdGNoQ2hlY2tlciBjbGFzcy4iIiIKKyAgICAiIiJUZXN0IHRoZSBQYXRjaFJlYWRlciBjbGFz
cy4iIiIKIAogICAgIGNsYXNzIE1vY2tUZXh0RmlsZVJlYWRlcihvYmplY3QpOgogCkBAIC03ODgs
NyArNzg3LDcgQEAgY2xhc3MgUGF0Y2hDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBmaWxlX3JlYWRlciA9IHNlbGYuTW9ja1RleHRG
aWxlUmVhZGVyKCkKICAgICAgICAgc2VsZi5fZmlsZV9yZWFkZXIgPSBmaWxlX3JlYWRlcgotICAg
ICAgICBzZWxmLl9wYXRjaF9jaGVja2VyID0gUGF0Y2hDaGVja2VyKGZpbGVfcmVhZGVyKQorICAg
ICAgICBzZWxmLl9wYXRjaF9jaGVja2VyID0gUGF0Y2hSZWFkZXIoZmlsZV9yZWFkZXIpCiAKICAg
ICBkZWYgX2NhbGxfY2hlY2tfcGF0Y2goc2VsZiwgcGF0Y2hfc3RyaW5nKToKICAgICAgICAgc2Vs
Zi5fcGF0Y2hfY2hlY2tlci5jaGVjayhwYXRjaF9zdHJpbmcpCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbi5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY29tbW9uLnB5CmluZGV4IDMwYjhm
ZWQuLmEyZDkzM2YgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvY29tbW9uLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY29tbW9uLnB5CkBAIC0yMyw3ICsyMyw3IEBACiAiIiJTdXBwb3J0cyBz
dHlsZSBjaGVja2luZyBub3Qgc3BlY2lmaWMgdG8gYW55IG9uZSBmaWxlIHR5cGUuIiIiCiAKIAot
IyBGSVhNRTogVGVzdCB0aGlzIGxpc3QgaW4gdGhlIHNhbWUgd2F5IHRoYXQgdGhlIGxpc3Qgb2Yg
Q3BwUHJvY2Vzc29yCisjIEZJWE1FOiBUZXN0IHRoaXMgbGlzdCBpbiB0aGUgc2FtZSB3YXkgdGhh
dCB0aGUgbGlzdCBvZiBDcHBDaGVja2VyCiAjICAgICAgICBjYXRlZ29yaWVzIGlzIHRlc3RlZCwg
Zm9yIGV4YW1wbGUgYnkgY2hlY2tpbmcgdGhhdCBhbGwgb2YgaXRzCiAjICAgICAgICBlbGVtZW50
cyBhcHBlYXIgaW4gdGhlIHVuaXQgdGVzdHMuIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGRvbmUK
ICMgICAgICAgIGFmdGVyIG1vdmluZyB0aGUgcmVsZXZhbnQgY3BwX3VuaXR0ZXN0LkVycm9yQ29s
bGVjdG9yIGNvZGUKQEAgLTMzLDE0ICszMywxNCBAQCBjYXRlZ29yaWVzID0gc2V0KFsKIF0pCiAK
IAotY2xhc3MgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3Iob2JqZWN0KToKK2NsYXNzIENhcnJpYWdl
UmV0dXJuQ2hlY2tlcihvYmplY3QpOgogCiAgICAgIiIiU3VwcG9ydHMgY2hlY2tpbmcgZm9yIGFu
ZCBoYW5kbGluZyBjYXJyaWFnZSByZXR1cm5zLiIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGhhbmRsZV9zdHlsZV9lcnJvcik6CiAgICAgICAgIHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvciA9
IGhhbmRsZV9zdHlsZV9lcnJvcgogCi0gICAgZGVmIHByb2Nlc3Moc2VsZiwgbGluZXMpOgorICAg
IGRlZiBjaGVjayhzZWxmLCBsaW5lcyk6CiAgICAgICAgICIiIkNoZWNrIGZvciBhbmQgc3RyaXAg
dHJhaWxpbmcgY2FycmlhZ2UgcmV0dXJucyBmcm9tIGxpbmVzLiIiIgogICAgICAgICBmb3IgbGlu
ZV9udW1iZXIgaW4gcmFuZ2UobGVuKGxpbmVzKSk6CiAgICAgICAgICAgICBpZiBub3QgbGluZXNb
bGluZV9udW1iZXJdLmVuZHN3aXRoKCJcciIpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jb21tb25fdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQpp
bmRleCAzZGRlN2I5Li5iNjdiN2IwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NvbW1vbl91bml0dGVzdC5weQpAQCAt
MjQsMTYgKzI0LDE2IEBACiAKIGltcG9ydCB1bml0dGVzdAogCi1mcm9tIGNvbW1vbiBpbXBvcnQg
Q2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IKK2Zyb20gY29tbW9uIGltcG9ydCBDYXJyaWFnZVJldHVy
bkNoZWNrZXIKIAogCi0jIEZJWE1FOiBUaGUgdW5pdCB0ZXN0cyBmb3IgdGhlIGNwcCwgdGV4dCwg
YW5kIGNvbW1vbiBwcm9jZXNzb3JzIHNob3VsZAorIyBGSVhNRTogVGhlIHVuaXQgdGVzdHMgZm9y
IHRoZSBjcHAsIHRleHQsIGFuZCBjb21tb24gY2hlY2tlcnMgc2hvdWxkCiAjICAgICAgICBzaGFy
ZSBzdXBwb3J0aW5nIHRlc3QgY29kZS4gVGhpcyBjYW4gaW5jbHVkZSwgZm9yIGV4YW1wbGUsIHRo
ZQogIyAgICAgICAgbW9jayBzdHlsZSBlcnJvciBoYW5kbGluZyBjb2RlIGFuZCB0aGUgY29kZSB0
byBjaGVjayB0aGF0IGFsbAotIyAgICAgICAgb2YgYSBwcm9jZXNzb3IncyBjYXRlZ29yaWVzIGFy
ZSBjb3ZlcmVkIGJ5IHRoZSB1bml0IHRlc3RzLgorIyAgICAgICAgb2YgYSBjaGVja2VyJ3MgY2F0
ZWdvcmllcyBhcmUgY292ZXJlZCBieSB0aGUgdW5pdCB0ZXN0cy4KICMgICAgICAgIFN1Y2ggc2hh
cmVkIGNvZGUgY2FuIGJlIGxvY2F0ZWQgaW4gYSBzaGFyZWQgdGVzdCBmaWxlLCBwZXJoYXBzCiAj
ICAgICAgICBldmVuIHRoaXMgZmlsZS4KLWNsYXNzIENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBDYXJyaWFnZVJldHVybkNoZWNrZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICIiIlRlc3RzIGNoZWNrX25vX2NhcnJpYWdlX3JldHVy
bigpLiIiIgogCkBAIC01NSw4ICs1NSw4IEBAIGNsYXNzIENhcnJpYWdlUmV0dXJuUHJvY2Vzc29y
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICIiIlByb2Nlc3MgdGhlIGdpdmVuIGxp
bmUgYW5kIGFzc2VydCB0aGF0IHRoZSByZXN1bHQgaXMgY29ycmVjdC4iIiIKICAgICAgICAgaGFu
ZGxlX3N0eWxlX2Vycm9yID0gc2VsZi5fbW9ja19zdHlsZV9lcnJvcl9oYW5kbGVyCiAKLSAgICAg
ICAgcHJvY2Vzc29yID0gQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IoaGFuZGxlX3N0eWxlX2Vycm9y
KQotICAgICAgICBvdXRwdXRfbGluZXMgPSBwcm9jZXNzb3IucHJvY2VzcyhpbnB1dF9saW5lcykK
KyAgICAgICAgY2hlY2tlciA9IENhcnJpYWdlUmV0dXJuQ2hlY2tlcihoYW5kbGVfc3R5bGVfZXJy
b3IpCisgICAgICAgIG91dHB1dF9saW5lcyA9IGNoZWNrZXIuY2hlY2soaW5wdXRfbGluZXMpCiAK
ICAgICAgICAgIyBDaGVjayBib3RoIHRoZSByZXR1cm4gdmFsdWUgYW5kIGVycm9yIG1lc3NhZ2Vz
LgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhvdXRwdXRfbGluZXMsIGV4cGVjdGVkX2xpbmVz
KQpAQCAtODIsNyArODIsNyBAQCBjbGFzcyBDYXJyaWFnZVJldHVyblByb2Nlc3NvclRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10p
CiAKICAgICBkZWYgdGVzdF9jYXJyaWFnZV9pbl9taWRkbGUoc2VsZik6Ci0gICAgICAgICMgVGhl
IENhcnJpYWdlUmV0dXJuUHJvY2Vzc29yIGNoZWNrcyBvbmx5IHRoZSBmaW5hbCBjaGFyYWN0ZXIK
KyAgICAgICAgIyBUaGUgQ2FycmlhZ2VSZXR1cm5DaGVja2VyIGNoZWNrcyBvbmx5IHRoZSBmaW5h
bCBjaGFyYWN0ZXIKICAgICAgICAgIyBvZiBlYWNoIGxpbmUuCiAgICAgICAgIHNlbGYuYXNzZXJ0
X2NhcnJpYWdlX3JldHVybihbImNhcnJpYWdlXHIgaW4gYSBzdHJpbmciXSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsiY2FycmlhZ2VcciBpbiBhIHN0cmluZyJdLApkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpp
bmRleCAyM2JlOWY5Li45ZDIwYzYyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weQpAQCAtMjg3Nyw3ICsyODc3LDcgQEAgZGVmIF9w
cm9jZXNzX2xpbmVzKGZpbGVuYW1lLCBmaWxlX2V4dGVuc2lvbiwgbGluZXMsIGVycm9yLCBtaW5f
Y29uZmlkZW5jZSk6CiAgICAgY2hlY2tfZm9yX25ld19saW5lX2F0X2VvZihsaW5lcywgZXJyb3Ip
CiAKIAotY2xhc3MgQ3BwUHJvY2Vzc29yKG9iamVjdCk6CitjbGFzcyBDcHBDaGVja2VyKG9iamVj
dCk6CiAKICAgICAiIiJQcm9jZXNzZXMgQysrIGxpbmVzIGZvciBjaGVja2luZyBzdHlsZS4iIiIK
IApAQCAtMjk1Miw3ICsyOTUyLDcgQEAgY2xhc3MgQ3BwUHJvY2Vzc29yKG9iamVjdCk6CiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgZmlsZV9wYXRoLCBmaWxlX2V4dGVuc2lvbiwgaGFuZGxlX3N0
eWxlX2Vycm9yLAogICAgICAgICAgICAgICAgICBtaW5fY29uZmlkZW5jZSk6Ci0gICAgICAgICIi
IkNyZWF0ZSBhIENwcFByb2Nlc3NvciBpbnN0YW5jZS4KKyAgICAgICAgIiIiQ3JlYXRlIGEgQ3Bw
Q2hlY2tlciBpbnN0YW5jZS4KIAogICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVfZXh0ZW5z
aW9uOiBBIHN0cmluZyB0aGF0IGlzIHRoZSBmaWxlIGV4dGVuc2lvbiwgd2l0aG91dApAQCAtMjk2
Niw3ICsyOTY2LDcgQEAgY2xhc3MgQ3BwUHJvY2Vzc29yKG9iamVjdCk6CiAKICAgICAjIFVzZWZ1
bCBmb3IgdW5pdCB0ZXN0aW5nLgogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAg
ICAiIiJSZXR1cm4gd2hldGhlciB0aGlzIENwcFByb2Nlc3NvciBpbnN0YW5jZSBpcyBlcXVhbCB0
byBhbm90aGVyLiIiIgorICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGlzIENwcENoZWNrZXIg
aW5zdGFuY2UgaXMgZXF1YWwgdG8gYW5vdGhlci4iIiIKICAgICAgICAgaWYgc2VsZi5maWxlX2V4
dGVuc2lvbiAhPSBvdGhlci5maWxlX2V4dGVuc2lvbjoKICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQogICAgICAgICBpZiBzZWxmLmZpbGVfcGF0aCAhPSBvdGhlci5maWxlX3BhdGg6CkBAIC0yOTgz
LDEyICsyOTgzLDEyIEBAIGNsYXNzIENwcFByb2Nlc3NvcihvYmplY3QpOgogICAgICAgICAjIFB5
dGhvbiBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IGRlZHVjZSBfX25lX18oKSBmcm9tIF9fZXFfXygp
LgogICAgICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90aGVyKQogCi0gICAgZGVmIHByb2Nl
c3Moc2VsZiwgbGluZXMpOgorICAgIGRlZiBjaGVjayhzZWxmLCBsaW5lcyk6CiAgICAgICAgIF9w
cm9jZXNzX2xpbmVzKHNlbGYuZmlsZV9wYXRoLCBzZWxmLmZpbGVfZXh0ZW5zaW9uLCBsaW5lcywK
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfc3R5bGVfZXJyb3IsIHNlbGYubWlu
X2NvbmZpZGVuY2UpCiAKIAogIyBGSVhNRTogUmVtb3ZlIHRoaXMgZnVuY3Rpb24gKHJlcXVpcmVz
IHJlZmFjdG9yaW5nIHVuaXQgdGVzdHMpLgogZGVmIHByb2Nlc3NfZmlsZV9kYXRhKGZpbGVuYW1l
LCBmaWxlX2V4dGVuc2lvbiwgbGluZXMsIGVycm9yLCBtaW5fY29uZmlkZW5jZSk6Ci0gICAgcHJv
Y2Vzc29yID0gQ3BwUHJvY2Vzc29yKGZpbGVuYW1lLCBmaWxlX2V4dGVuc2lvbiwgZXJyb3IsIG1p
bl9jb25maWRlbmNlKQotICAgIHByb2Nlc3Nvci5wcm9jZXNzKGxpbmVzKQorICAgIGNoZWNrZXIg
PSBDcHBDaGVja2VyKGZpbGVuYW1lLCBmaWxlX2V4dGVuc2lvbiwgZXJyb3IsIG1pbl9jb25maWRl
bmNlKQorICAgIGNoZWNrZXIuY2hlY2sobGluZXMpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CmluZGV4
IDBhM2ZlMDguLjkyNmRkZjQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5CkBAIC00MiwxMyArNDIs
MTMgQEAgaW1wb3J0IHJhbmRvbQogaW1wb3J0IHJlCiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCBj
cHAgYXMgY3BwX3N0eWxlCi1mcm9tIGNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCitmcm9tIGNwcCBp
bXBvcnQgQ3BwQ2hlY2tlcgogCiAjIFRoaXMgY2xhc3Mgd29ya3MgYXMgYW4gZXJyb3IgY29sbGVj
dG9yIGFuZCByZXBsYWNlcyBjcHBfc3R5bGUuRXJyb3IKICMgZnVuY3Rpb24gZm9yIHRoZSB1bml0
IHRlc3RzLiAgV2UgYWxzbyB2ZXJpZnkgZWFjaCBjYXRlZ29yeSB3ZSBzZWUKICMgaXMgaW4gU1RZ
TEVfQ0FURUdPUklFUywgdG8gaGVscCBrZWVwIHRoYXQgbGlzdCB1cCB0byBkYXRlLgogY2xhc3Mg
RXJyb3JDb2xsZWN0b3I6Ci0gICAgX2FsbF9zdHlsZV9jYXRlZ29yaWVzID0gQ3BwUHJvY2Vzc29y
LmNhdGVnb3JpZXMKKyAgICBfYWxsX3N0eWxlX2NhdGVnb3JpZXMgPSBDcHBDaGVja2VyLmNhdGVn
b3JpZXMKICAgICAjIFRoaXMgaXMgYSBsaXN0IGluY2x1ZGluZyBhbGwgY2F0ZWdvcmllcyBzZWVu
IGluIGFueSB1bml0IHRlc3QuCiAgICAgX3NlZW5fc3R5bGVfY2F0ZWdvcmllcyA9IHt9CiAKQEAg
LTM2NzMsNTIgKzM2NzMsNTIgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJh
c2UpOgogICAgICAgICBwYXNzCiAKIAotY2xhc3MgQ3BwUHJvY2Vzc29yVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CitjbGFzcyBDcHBDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAg
ICAiIiJUZXN0cyBDcHBQcm9jZXNzb3IgY2xhc3MuIiIiCisgICAgIiIiVGVzdHMgQ3BwQ2hlY2tl
ciBjbGFzcy4iIiIKIAogICAgIGRlZiBtb2NrX2hhbmRsZV9zdHlsZV9lcnJvcihzZWxmKToKICAg
ICAgICAgcGFzcwogCi0gICAgZGVmIF9wcm9jZXNzb3Ioc2VsZik6Ci0gICAgICAgIHJldHVybiBD
cHBQcm9jZXNzb3IoImZvbyIsICJoIiwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvciwgMykK
KyAgICBkZWYgX2NoZWNrZXIoc2VsZik6CisgICAgICAgIHJldHVybiBDcHBDaGVja2VyKCJmb28i
LCAiaCIsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IsIDMpCiAKICAgICBkZWYgdGVzdF9p
bml0KHNlbGYpOgogICAgICAgICAiIiJUZXN0IF9faW5pdF9fIGNvbnN0cnVjdG9yLiIiIgotICAg
ICAgICBwcm9jZXNzb3IgPSBzZWxmLl9wcm9jZXNzb3IoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyhwcm9jZXNzb3IuZmlsZV9leHRlbnNpb24sICJoIikKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMocHJvY2Vzc29yLmZpbGVfcGF0aCwgImZvbyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHByb2Nlc3Nvci5oYW5kbGVfc3R5bGVfZXJyb3IsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVf
ZXJyb3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHByb2Nlc3Nvci5taW5fY29uZmlkZW5j
ZSwgMykKKyAgICAgICAgY2hlY2tlciA9IHNlbGYuX2NoZWNrZXIoKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyhjaGVja2VyLmZpbGVfZXh0ZW5zaW9uLCAiaCIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGNoZWNrZXIuZmlsZV9wYXRoLCAiZm9vIikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMoY2hlY2tlci5oYW5kbGVfc3R5bGVfZXJyb3IsIHNlbGYubW9ja19oYW5kbGVfc3R5bGVf
ZXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGNoZWNrZXIubWluX2NvbmZpZGVuY2Us
IDMpCiAKICAgICBkZWYgdGVzdF9lcShzZWxmKToKICAgICAgICAgIiIiVGVzdCBfX2VxX18gZXF1
YWxpdHkgZnVuY3Rpb24uIiIiCi0gICAgICAgIHByb2Nlc3NvcjEgPSBzZWxmLl9wcm9jZXNzb3Io
KQotICAgICAgICBwcm9jZXNzb3IyID0gc2VsZi5fcHJvY2Vzc29yKCkKKyAgICAgICAgY2hlY2tl
cjEgPSBzZWxmLl9jaGVja2VyKCkKKyAgICAgICAgY2hlY2tlcjIgPSBzZWxmLl9jaGVja2VyKCkK
IAogICAgICAgICAjID09IGNhbGxzIF9fZXFfXy4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBy
b2Nlc3NvcjEgPT0gcHJvY2Vzc29yMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNoZWNrZXIx
ID09IGNoZWNrZXIyKQogCiAgICAgICAgIGRlZiBtb2NrX2hhbmRsZV9zdHlsZV9lcnJvcjIoc2Vs
Zik6CiAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCBhIGRpZmZlcmVu
Y2UgaW4gYW55IGFyZ3VtZW50IGNhdXNlIGVxdWFsaXR5IHRvIGZhaWwuCi0gICAgICAgIHByb2Nl
c3NvciA9IENwcFByb2Nlc3NvcigiZm9vIiwgImgiLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vy
cm9yLCAzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHByb2Nlc3NvciA9PSBDcHBQcm9jZXNz
b3IoImJhciIsICJoIiwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvciwgMykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vzc29yID09IENwcFByb2Nlc3NvcigiZm9vIiwgImMiLCBz
ZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yLCAzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShwcm9jZXNzb3IgPT0gQ3BwUHJvY2Vzc29yKCJmb28iLCAiaCIsIG1vY2tfaGFuZGxlX3N0eWxl
X2Vycm9yMiwgMykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vzc29yID09IENwcFBy
b2Nlc3NvcigiZm9vIiwgImgiLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yLCA0KSkKKyAg
ICAgICAgY2hlY2tlciA9IENwcENoZWNrZXIoImZvbyIsICJoIiwgc2VsZi5tb2NrX2hhbmRsZV9z
dHlsZV9lcnJvciwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjaGVja2VyID09IENwcENo
ZWNrZXIoImJhciIsICJoIiwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvciwgMykpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2hlY2tlciA9PSBDcHBDaGVja2VyKCJmb28iLCAiYyIsIHNl
bGYubW9ja19oYW5kbGVfc3R5bGVfZXJyb3IsIDMpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KGNoZWNrZXIgPT0gQ3BwQ2hlY2tlcigiZm9vIiwgImgiLCBtb2NrX2hhbmRsZV9zdHlsZV9lcnJv
cjIsIDMpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNoZWNrZXIgPT0gQ3BwQ2hlY2tlcigi
Zm9vIiwgImgiLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yLCA0KSkKIAogICAgIGRlZiB0
ZXN0X25lKHNlbGYpOgogICAgICAgICAiIiJUZXN0IF9fbmVfXyBpbmVxdWFsaXR5IGZ1bmN0aW9u
LiIiIgotICAgICAgICBwcm9jZXNzb3IxID0gc2VsZi5fcHJvY2Vzc29yKCkKLSAgICAgICAgcHJv
Y2Vzc29yMiA9IHNlbGYuX3Byb2Nlc3NvcigpCisgICAgICAgIGNoZWNrZXIxID0gc2VsZi5fY2hl
Y2tlcigpCisgICAgICAgIGNoZWNrZXIyID0gc2VsZi5fY2hlY2tlcigpCiAKICAgICAgICAgIyAh
PSBjYWxscyBfX25lX18uCiAgICAgICAgICMgQnkgZGVmYXVsdCwgX19uZV9fIGFsd2F5cyByZXR1
cm5zIHRydWUgb24gZGlmZmVyZW50IG9iamVjdHMuCiAgICAgICAgICMgVGh1cywganVzdCBjaGVj
ayB0aGUgZGlzdGluZ3Vpc2hpbmcgY2FzZSB0byB2ZXJpZnkgdGhhdCB0aGUKICAgICAgICAgIyBj
b2RlIGRlZmluZXMgX19uZV9fLgotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHByb2Nlc3NvcjEg
IT0gcHJvY2Vzc29yMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjaGVja2VyMSAhPSBjaGVj
a2VyMikKIAogCiBkZWYgdGVhckRvd24oKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcHl0aG9uLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9weXRob24ucHkKaW5kZXggOGFiOTM2ZC4uNzBkNDQ1
MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9weXRob24ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9weXRob24ucHkKQEAgLTI1LDcgKzI1LDcgQEAKIGZyb20gLi4uc3R5bGVfcmVmZXJlbmNl
cyBpbXBvcnQgcGVwOAogCiAKLWNsYXNzIFB5dGhvblByb2Nlc3NvcihvYmplY3QpOgorY2xhc3Mg
UHl0aG9uQ2hlY2tlcihvYmplY3QpOgogCiAgICAgIiIiUHJvY2Vzc2VzIHRleHQgbGluZXMgZm9y
IGNoZWNraW5nIHN0eWxlLiIiIgogCkBAIC0zMyw3ICszMyw3IEBAIGNsYXNzIFB5dGhvblByb2Nl
c3NvcihvYmplY3QpOgogICAgICAgICBzZWxmLl9maWxlX3BhdGggPSBmaWxlX3BhdGgKICAgICAg
ICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yID0gaGFuZGxlX3N0eWxlX2Vycm9yCiAKLSAgICBk
ZWYgcHJvY2VzcyhzZWxmLCBsaW5lcyk6CisgICAgZGVmIGNoZWNrKHNlbGYsIGxpbmVzKToKICAg
ICAgICAgIyBJbml0aWFsaXplIHBlcDgub3B0aW9ucywgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvcgog
ICAgICAgICAjIENoZWNrZXIuY2hlY2tfYWxsKCkgdG8gZXhlY3V0ZS4KICAgICAgICAgcGVwOC5w
cm9jZXNzX29wdGlvbnMoYXJnbGlzdD1bc2VsZi5fZmlsZV9wYXRoXSkKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvcHl0aG9uX3VuaXR0ZXN0
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9weXRob25f
dW5pdHRlc3QucHkKaW5kZXggM2NlMzMxMS4uZTAwM2ViOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9weXRob25fdW5pdHRlc3QucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9weXRob25fdW5p
dHRlc3QucHkKQEAgLTI1LDI1ICsyNSwyNSBAQAogaW1wb3J0IG9zCiBpbXBvcnQgdW5pdHRlc3QK
IAotZnJvbSBweXRob24gaW1wb3J0IFB5dGhvblByb2Nlc3NvcgorZnJvbSBweXRob24gaW1wb3J0
IFB5dGhvbkNoZWNrZXIKIAogCi1jbGFzcyBQeXRob25Qcm9jZXNzb3JUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKK2NsYXNzIFB5dGhvbkNoZWNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAot
ICAgICIiIlRlc3RzIHRoZSBQeXRob25Qcm9jZXNzb3IgY2xhc3MuIiIiCisgICAgIiIiVGVzdHMg
dGhlIFB5dGhvbkNoZWNrZXIgY2xhc3MuIiIiCiAKICAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgog
ICAgICAgICAiIiJUZXN0IF9faW5pdF9fKCkgbWV0aG9kLiIiIgogICAgICAgICBkZWYgX21vY2tf
aGFuZGxlX3N0eWxlX2Vycm9yKHNlbGYpOgogICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIHBy
b2Nlc3NvciA9IFB5dGhvblByb2Nlc3NvcigiZm9vLnR4dCIsIF9tb2NrX2hhbmRsZV9zdHlsZV9l
cnJvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHJvY2Vzc29yLl9maWxlX3BhdGgsICJm
b28udHh0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHJvY2Vzc29yLl9oYW5kbGVfc3R5
bGVfZXJyb3IsCisgICAgICAgIGNoZWNrZXIgPSBQeXRob25DaGVja2VyKCJmb28udHh0IiwgX21v
Y2tfaGFuZGxlX3N0eWxlX2Vycm9yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2Vy
Ll9maWxlX3BhdGgsICJmb28udHh0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoY2hlY2tl
ci5faGFuZGxlX3N0eWxlX2Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfbW9ja19o
YW5kbGVfc3R5bGVfZXJyb3IpCiAKLSAgICBkZWYgdGVzdF9wcm9jZXNzKHNlbGYpOgotICAgICAg
ICAiIiJUZXN0IHByb2Nlc3MoKSBtZXRob2QuIiIiCisgICAgZGVmIHRlc3RfY2hlY2soc2VsZik6
CisgICAgICAgICIiIlRlc3QgY2hlY2soKSBtZXRob2QuIiIiCiAgICAgICAgIGVycm9ycyA9IFtd
CiAKICAgICAgICAgZGVmIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcihsaW5lX251bWJlciwgY2F0
ZWdvcnksIGNvbmZpZGVuY2UsCkBAIC01NCw4ICs1NCw4IEBAIGNsYXNzIFB5dGhvblByb2Nlc3Nv
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjdXJyZW50X2RpciA9IG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXykKICAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKGN1cnJl
bnRfZGlyLCAicHl0aG9uX3VuaXR0ZXN0X2lucHV0LnB5IikKIAotICAgICAgICBwcm9jZXNzb3Ig
PSBQeXRob25Qcm9jZXNzb3IoZmlsZV9wYXRoLCBfbW9ja19oYW5kbGVfc3R5bGVfZXJyb3IpCi0g
ICAgICAgIHByb2Nlc3Nvci5wcm9jZXNzKGxpbmVzPVtdKQorICAgICAgICBjaGVja2VyID0gUHl0
aG9uQ2hlY2tlcihmaWxlX3BhdGgsIF9tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKKyAgICAgICAg
Y2hlY2tlci5jaGVjayhsaW5lcz1bXSkKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4o
ZXJyb3JzKSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXJyb3JzWzBdLApkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0LnB5Cmlu
ZGV4IDMwN2U1YjguLjBkMDM5MzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvdGV4dC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3RleHQucHkKQEAgLTMwLDcgKzMwLDcgQEAKICIiIkNoZWNr
cyBXZWJLaXQgc3R5bGUgZm9yIHRleHQgZmlsZXMuIiIiCiAKIAotY2xhc3MgVGV4dFByb2Nlc3Nv
cihvYmplY3QpOgorY2xhc3MgVGV4dENoZWNrZXIob2JqZWN0KToKIAogICAgICIiIlByb2Nlc3Nl
cyB0ZXh0IGxpbmVzIGZvciBjaGVja2luZyBzdHlsZS4iIiIKIApAQCAtMzgsNyArMzgsNyBAQCBj
bGFzcyBUZXh0UHJvY2Vzc29yKG9iamVjdCk6CiAgICAgICAgIHNlbGYuZmlsZV9wYXRoID0gZmls
ZV9wYXRoCiAgICAgICAgIHNlbGYuaGFuZGxlX3N0eWxlX2Vycm9yID0gaGFuZGxlX3N0eWxlX2Vy
cm9yCiAKLSAgICBkZWYgcHJvY2VzcyhzZWxmLCBsaW5lcyk6CisgICAgZGVmIGNoZWNrKHNlbGYs
IGxpbmVzKToKICAgICAgICAgbGluZXMgPSAoWyIvLyBhZGp1c3QgbGluZSBudW1iZXJzIHRvIG1h
a2UgdGhlIGZpcnN0IGxpbmUgMS4iXSArIGxpbmVzKQogCiAgICAgICAgICMgRklYTUU6IHNoYXJl
IHdpdGggY3BwX3N0eWxlLgpAQCAtNTEsNiArNTEsNiBAQCBjbGFzcyBUZXh0UHJvY2Vzc29yKG9i
amVjdCk6CiAKICMgRklYTUU6IFJlbW92ZSB0aGlzIGZ1bmN0aW9uIChyZXF1aXJlcyByZWZhY3Rv
cmluZyB1bml0IHRlc3RzKS4KIGRlZiBwcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgbGluZXMs
IGVycm9yKToKLSAgICBwcm9jZXNzb3IgPSBUZXh0UHJvY2Vzc29yKGZpbGVuYW1lLCBlcnJvcikK
LSAgICBwcm9jZXNzb3IucHJvY2VzcyhsaW5lcykKKyAgICBjaGVja2VyID0gVGV4dENoZWNrZXIo
ZmlsZW5hbWUsIGVycm9yKQorICAgIGNoZWNrZXIuY2hlY2sobGluZXMpCiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGV4dF91bml0dGVz
dC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGV4dF91
bml0dGVzdC5weQppbmRleCA2MmY4MjViLi5jZWQ0OWE5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3RleHRfdW5pdHRlc3QucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXh0X3VuaXR0ZXN0
LnB5CkBAIC0zMiw3ICszMiw3IEBACiBpbXBvcnQgdW5pdHRlc3QKIAogaW1wb3J0IHRleHQgYXMg
dGV4dF9zdHlsZQotZnJvbSB0ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCitmcm9tIHRleHQgaW1w
b3J0IFRleHRDaGVja2VyCiAKIGNsYXNzIFRleHRTdHlsZVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAiIiJUZXN0Q2FzZSBmb3IgdGV4dF9zdHlsZS5weSIiIgpAQCAtNzYsMTggKzc2
LDE4IEBAIGNsYXNzIFRleHRTdHlsZVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ1x0UmV2aWV3ZWQgYnkgTk9CT0RZLiddLCAzKQogCiAKLWNs
YXNzIFRleHRQcm9jZXNzb3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRleHRDaGVj
a2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICAiIiJUZXN0cyBUZXh0UHJvY2Vzc29y
IGNsYXNzLiIiIgorICAgICIiIlRlc3RzIFRleHRDaGVja2VyIGNsYXNzLiIiIgogCiAgICAgZGVm
IG1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKHNlbGYpOgogICAgICAgICBwYXNzCiAKICAgICBkZWYg
dGVzdF9pbml0KHNlbGYpOgogICAgICAgICAiIiJUZXN0IF9faW5pdF9fIGNvbnN0cnVjdG9yLiIi
IgotICAgICAgICBwcm9jZXNzb3IgPSBUZXh0UHJvY2Vzc29yKCJmb28udHh0Iiwgc2VsZi5tb2Nr
X2hhbmRsZV9zdHlsZV9lcnJvcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHJvY2Vzc29y
LmZpbGVfcGF0aCwgImZvby50eHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwcm9jZXNz
b3IuaGFuZGxlX3N0eWxlX2Vycm9yLCBzZWxmLm1vY2tfaGFuZGxlX3N0eWxlX2Vycm9yKQorICAg
ICAgICBjaGVja2VyID0gVGV4dENoZWNrZXIoImZvby50eHQiLCBzZWxmLm1vY2tfaGFuZGxlX3N0
eWxlX2Vycm9yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmZpbGVfcGF0aCwg
ImZvby50eHQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhjaGVja2VyLmhhbmRsZV9zdHls
ZV9lcnJvciwgc2VsZi5tb2NrX2hhbmRsZV9zdHlsZV9lcnJvcikKIAogCiBpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9lcnJvcl9oYW5kbGVycy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvZXJyb3JfaGFuZGxlcnMucHkKaW5kZXggNTY2NmJmYi4uMGJlZGUyNCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVycy5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzLnB5CkBA
IC02Myw3ICs2Myw3IEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgog
ICAgICAgICBBcmdzOgogICAgICAgICAgIGZpbGVfcGF0aDogVGhlIHBhdGggdG8gdGhlIGZpbGUg
Y29udGFpbmluZyB0aGUgZXJyb3IuIFRoaXMKICAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWQg
Zm9yIHJlcG9ydGluZyB0byB0aGUgdXNlci4KLSAgICAgICAgICBjb25maWd1cmF0aW9uOiBBIFN0
eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCisgICAgICAgICAgY29uZmlndXJhdGlv
bjogQSBTdHlsZVByb2Nlc3NvckNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCiAgICAgICAgICAgaW5j
cmVtZW50X2Vycm9yX2NvdW50OiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgbm8gYXJndW1lbnRzIGFu
ZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50cyB0aGUgdG90YWwg
Y291bnQgb2YgcmVwb3J0YWJsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJy
b3JzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJv
cl9oYW5kbGVyc191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHkKaW5kZXggMDVlNzI1YS4uMjM2MTljYyAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVy
c191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vy
cm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CkBAIC0yNSw3ICsyNSw3IEBACiAKIGltcG9ydCB1bml0
dGVzdAogCi1mcm9tIGNoZWNrZXIgaW1wb3J0IFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRpb24KK2Zy
b20gY2hlY2tlciBpbXBvcnQgU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uCiBmcm9tIGVycm9y
X2hhbmRsZXJzIGltcG9ydCBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIKIGZyb20gZmlsdGVyIGlt
cG9ydCBGaWx0ZXJDb25maWd1cmF0aW9uCiAKQEAgLTUxLDExICs1MSwxMSBAQCBjbGFzcyBEZWZh
dWx0U3R5bGVFcnJvckhhbmRsZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2Vs
Zi5fZXJyb3JfbWVzc2FnZXMuYXBwZW5kKG1lc3NhZ2UpCiAKICAgICBkZWYgX3N0eWxlX2NoZWNr
ZXJfY29uZmlndXJhdGlvbihzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIGEgU3R5bGVDaGVja2Vy
Q29uZmlndXJhdGlvbiBpbnN0YW5jZSBmb3IgdGVzdGluZy4iIiIKKyAgICAgICAgIiIiUmV0dXJu
IGEgU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uIGluc3RhbmNlIGZvciB0ZXN0aW5nLiIiIgog
ICAgICAgICBiYXNlX3J1bGVzID0gWyItd2hpdGVzcGFjZSIsICIrd2hpdGVzcGFjZS90YWIiXQog
ICAgICAgICBmaWx0ZXJfY29uZmlndXJhdGlvbiA9IEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzZV9y
dWxlcz1iYXNlX3J1bGVzKQogCi0gICAgICAgIHJldHVybiBTdHlsZUNoZWNrZXJDb25maWd1cmF0
aW9uKAorICAgICAgICByZXR1cm4gU3R5bGVQcm9jZXNzb3JDb25maWd1cmF0aW9uKAogICAgICAg
ICAgICAgICAgICAgIGZpbHRlcl9jb25maWd1cmF0aW9uPWZpbHRlcl9jb25maWd1cmF0aW9uLAog
ICAgICAgICAgICAgICAgICAgIG1heF9yZXBvcnRzX3Blcl9jYXRlZ29yeT17IndoaXRlc3BhY2Uv
dGFiIjogMn0sCiAgICAgICAgICAgICAgICAgICAgbWluX2NvbmZpZGVuY2U9MywK
</data>

          </attachment>
      

    </bug>

</bugzilla>