<?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>56100</bug_id>
          
          <creation_ts>2011-03-10 07:28:39 -0800</creation_ts>
          <short_desc>Web Inspector: introduce error argument for backend callbacks</short_desc>
          <delta_ts>2011-03-11 11:55:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</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="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>365156</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-10 07:28:39 -0800</bug_when>
    <thetext>%subj%</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365158</commentid>
    <comment_count>1</comment_count>
      <attachid>85323</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-10 07:32:15 -0800</bug_when>
    <thetext>Created attachment 85323
[patch] initial version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365201</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick Mueller">pmuellr</who>
    <bug_when>2011-03-10 08:27:13 -0800</bug_when>
    <thetext>So all callbacks now have a free &quot;error&quot; parameter as the first parameter.

Not clear what&apos;s expected to be serialized for &quot;error&quot;, just given the patch.  Most (all?) of the checks in the patch for error seem to be checking it for truth-y ness and expecting a valid string value (via toString() maybe).  Is it as simple as &quot;error&quot; is a String, or can it be a richer object that can coerce itself to a nice string?  Wasn&apos;t quite sure where to look in the code for the answer ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365446</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-10 12:47:53 -0800</bug_when>
    <thetext>(In reply to comment #2)

A month ago only InspectorBackendDispatcher was able to produce error messages in order of validation incoming messages.

About two weeks ago the error argument was introduced for the all Agents&apos; methods on the backend side. And now the agents&apos; functions can return a custom error text as the result of an operation. 

But there is a problem here. If the error string is not empty it will be added to the list of errors and transfered to the frontend the same way as the message validation errors. 
At the frontend side all such errors will be printed into Inspector&apos;s inspector console and the callback will be never called.

this patch is a way to solve this problem.

It is not the final version of patch. The custom error text will be transfered as another field of the protocol messages just for separating protocol errors and business errors or marked as a &apos;business&apos; error some other way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365464</commentid>
    <comment_count>4</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-10 12:59:43 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)

&gt; But there is a problem here. If the error string is not empty it will be added to the list of errors and transfered to the frontend the same way as the message validation errors. 
&gt; At the frontend side all such errors will be printed into Inspector&apos;s inspector console and the callback will be never called.


Two problems:
1) we don&apos;t call the callback in case of an error in the message; (in the patch)
2) It is not possible to distinguish custom error and protocol error at frontend side. (will do that in the next version of patch)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365931</commentid>
    <comment_count>5</comment_count>
      <attachid>85460</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-11 04:43:29 -0800</bug_when>
    <thetext>Created attachment 85460
[patch] second version

1) response message field &apos;errors&apos; was renamed to &apos;protocolErrors&apos;;
2) new field &apos;error&apos; was introduced for the response messages. It is used for transfer custom error&apos;s text from the backend agents&apos; functions to frontend callbacks; 
3) &apos;seq&apos; field in the request messages was renamed to &apos;id&apos;;
4) &apos;seq&apos; field in the response messages was renamed to &apos;requestId&apos;;

there is no tests for custom-error functionality.
I&apos;ll do that in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365941</commentid>
    <comment_count>6</comment_count>
      <attachid>85460</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-11 05:24:49 -0800</bug_when>
    <thetext>Comment on attachment 85460
[patch] second version

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

&gt; LayoutTests/inspector/elements/dom-agent-query-selector.html:44
&gt;          if (!(nodeIds instanceof Array))

Should this code be executed in case of error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365964</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-11 06:27:27 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80845 might have broken GTK Linux 64-bit Debug
The following tests are not passing:
svg/custom/clip-path-referencing-use2.svg
tables/mozilla/bugs/bug22246-2a.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366188</commentid>
    <comment_count>8</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-11 11:55:33 -0800</bug_when>
    <thetext>was landed as r80845</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85323</attachid>
            <date>2011-03-10 07:32:15 -0800</date>
            <delta_ts>2011-03-11 04:43:29 -0800</delta_ts>
            <desc>[patch] initial version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>49407</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkY2Y1ZmY0Li5iMTc0YmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMt
MTAgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJv
ZHVjZSBlcnJvciBhcmd1bWVudCBmb3IgYmFja2VuZCBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTAwCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXpl
X0V4dGVuc2lvbnNUZXN0Lkluc3BlY3RvclRlc3QucnVuRXh0ZW5zaW9uVGVzdHMpOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzOgorICAgICAgICAoaW5p
dGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lkluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UubXljYWxs
YmFjayk6CisgICAgICAgIChpbml0aWFsaXplX0luc3BlY3RvclRlc3QuSW5zcGVjdG9yVGVzdC5l
dmFsdWF0ZUluUGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1kaXIt
Z2xvYmFsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1hZ2VudC1xdWVy
eS1zZWxlY3Rvci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1w
YW5lbC1zZWFyY2guaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1h
Z2VudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1s
OgorCiAyMDExLTAzLTA5ICBSb2xhbmQgU3RlaW5lciAgPHJvbGFuZHN0ZWluZXJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQ6IHR3ZWFraW5nIG9mIENocm9taXVtIHRlc3RfZXhw
ZWN0YXRpb25zLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy10ZXN0LmpzCmluZGV4IGZhMjI5YjUuLmYxY2MwMTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zLXRlc3QuanMKQEAgLTM0
LDcgKzM0LDkgQEAgSW5zcGVjdG9yVGVzdC5kaXNwYXRjaE9uTWVzc2FnZSA9IGZ1bmN0aW9uKG1l
c3NhZ2VJZCwgY2FsbGJhY2ssIHJlY3VycmluZykKIAogSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNp
b25UZXN0cyA9IGZ1bmN0aW9uKCkKIHsKLSAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoImxvY2F0
aW9uLmhyZWYiLCAiY29uc29sZSIsIGZhbHNlLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBSdW50
aW1lQWdlbnQuZXZhbHVhdGUoImxvY2F0aW9uLmhyZWYiLCAiY29uc29sZSIsIGZhbHNlLCBmdW5j
dGlvbihlcnJvciwgcmVzdWx0KSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgdmFyIHBhZ2VVUkwgPSByZXN1bHQuZGVzY3JpcHRpb247CiAgICAgICAg
IHZhciBleHRlbnNpb25VUkwgPSAoL15odHRwcz86Ly50ZXN0KHBhZ2VVUkwpID8KICAgICAgICAg
ICAgIHBhZ2VVUkwucmVwbGFjZSgvXihodHRwcz86XC9cL1teL10qXC8pLiokLywiJDEiKSA6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
CmluZGV4IDRmYTRlOWYuLmM1MDdmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCkBAIC00OCw5ICs0OCwxMCBAQCBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlID0gZnVuY3Rpb24oY29kZSwgY2FsbGJhY2spCiB7CiAgICAg
Y2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKIAotICAgIGZ1bmN0
aW9uIG15Y2FsbGJhY2socmVzdWx0KQorICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIHJl
c3VsdCkKICAgICB7Ci0gICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3Qu
ZnJvbVBheWxvYWQocmVzdWx0KSk7CisgICAgICAgIGlmICghZXJyb3IpCisgICAgICAgICAgICBj
YWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOwog
ICAgIH0KICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoY29kZSwgImNvbnNvbGUiLCBmYWxzZSwg
bXljYWxsYmFjayk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sCmluZGV4IDc1NjMwOTMuLjQ0OTk2OTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5o
dG1sCkBAIC0xNCw4ICsxNCwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBSdW50aW1lQWdl
bnQuZXZhbHVhdGUoIndpbmRvdyIsICJjb25zb2xlIiwgZmFsc2UsIGV2YWxDYWxsYmFjayk7CiAK
LSAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2socmVzdWx0KQorICAgIGZ1bmN0aW9uIGV2YWxDYWxs
YmFjayhlcnJvciwgcmVzdWx0KQogICAgIHsKKyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAg
ICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCJFeGNlcHRpb246IiArIGVycm9yKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09
ICJlcnJvciIpCiAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCJFeGNlcHRp
b246IiArIHJlc3VsdCk7CiAgICAgICAgIHZhciBvYmplY3RQcm94eSA9IFdlYkluc3BlY3Rvci5S
ZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9kb20tYWdlbnQtcXVlcnktc2VsZWN0b3IuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kb20tYWdlbnQtcXVlcnktc2VsZWN0b3IuaHRtbApp
bmRleCAxNTlmYWI2Li5kMjFlYTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvZG9tLWFnZW50LXF1ZXJ5LXNlbGVjdG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1hZ2VudC1xdWVyeS1zZWxlY3Rvci5odG1sCkBAIC0zNiw4
ICszNiwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgXSk7CiAgICAgfQogCi0gICAgZnVu
Y3Rpb24gZHVtcE5vZGVzKG5leHQsIG5vZGVJZHMpCisgICAgZnVuY3Rpb24gZHVtcE5vZGVzKG5l
eHQsIGVycm9yLCBub2RlSWRzKQogICAgIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZWNvcmQoZXJyb3IpOworCiAgICAgICAgIGlmICghKG5vZGVJ
ZHMgaW5zdGFuY2VvZiBBcnJheSkpCiAgICAgICAgICAgICBub2RlSWRzID0gW25vZGVJZHNdOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFu
ZWwtc2VhcmNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMt
cGFuZWwtc2VhcmNoLmh0bWwKaW5kZXggNzI0OGU3Ni4uODBlZTdiMCAxMDA3NTUKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlYXJjaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2gu
aHRtbApAQCAtOCw3ICs4LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgV2ViSW5zcGVjdG9yLnNo
b3dQYW5lbCgiZWxlbWVudHMiKTsKIAogICAgIHZhciBzZWFyY2hSZXN1bHRzID0gW107Ci0gICAg
ZnVuY3Rpb24gYWRkU2VhcmNoUmVzdWx0KG1hcmt1cFZhbHVlKQorICAgIGZ1bmN0aW9uIGFkZFNl
YXJjaFJlc3VsdChlcnJvciwgbWFya3VwVmFsdWUpCiAgICAgewogICAgICAgICBpZiAobWFya3Vw
VmFsdWUuaW5kZXhPZigidGVyIiArICJtaSIgKyAibmF0b3IiKSAhPT0gLTEpIHsKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9y
dW50aW1lLWFnZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGlt
ZS1hZ2VudC5odG1sCmluZGV4IGM2Y2YzZTIuLjIzNzg2NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQuaHRtbApAQCAtMTQsNyArMTQsNyBA
QCB0ZXN0UHJvcGVydHkgPSB0cnVlOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBmdW5jdGlv
biBjYWxsYmFjayhyZXN1bHQpCisgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHJlc3VsdCkK
ICAgICB7CiAgICAgICAgIHZhciB0ZXN0U3VpdGUgPSBbCiAgICAgICAgICAgICBbIlJ1bnRpbWVB
Z2VudCIsICJldmFsdWF0ZSIsICd0ZXN0T2JqZWN0JywgJ3Rlc3QnLCBmYWxzZV0sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKaW5kZXggYjg1
ZjcyOS4uYzE0MjdhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtbmV3LUFQSS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5
bGVzLW5ldy1BUEkuaHRtbApAQCAtMTQsOCArMTQsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
dmFyIGJvZHlJZDsKICAgICBmdW5jdGlvbiB0ZXN0X3N0eWxlcyhub2RlKQogICAgIHsKLSAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVzKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhl
cnJvciwgc3R5bGVzKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZEVycm9yKCJlcnJvcjogIiArIGVycm9yKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCI9PT0gQ29tcHV0ZWQgc3R5bGUgcHJvcGVydHkgY291bnQgZm9yIGJvZHkgPT09Iik7CiAg
ICAgICAgICAgICB2YXIgcHJvcENvdW50ID0gc3R5bGVzLmNvbXB1dGVkU3R5bGUuY3NzUHJvcGVy
dGllcy5sZW5ndGg7CkBAIC01Niw4ICs2MSwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1
bmN0aW9uIHRlc3RfdGFibGVTdHlsZXMoKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soc3R5bGVzKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVzKQogICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBdHRyaWJ1dGUg
c3R5bGVzIGZvciB0YWJsZSA9PT0iKTsKICAgICAgICAgICAgIGZvciAodmFyIGF0dHIgaW4gc3R5
bGVzLnN0eWxlQXR0cmlidXRlcykgewpAQCAtNzMsNyArODIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQoInRoZXRhYmxlIiwg
bm9kZUNhbGxiYWNrKTsKICAgICB9Ci0gICAgCisKICAgICBmdW5jdGlvbiB0ZXN0X3N0eWxlU2hl
ZXRzKCkKICAgICB7CiAgICAgICAgIHZhciBuZXdTdHlsZVNoZWV0VGV4dCA9CkBAIC05Myw4ICsx
MDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgbG9hZEFuZER1bXBTdHls
ZVNoZWV0LmJpbmQobnVsbCwgc3R5bGVTaGVldC5zdHlsZVNoZWV0SWQsIHRlc3RfY2hhbmdlU2Vs
ZWN0b3IpKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIHN0eWxlU2hlZXRJZHNMb2Fk
ZWQoaWRzKQorICAgICAgICBmdW5jdGlvbiBzdHlsZVNoZWV0SWRzTG9hZGVkKGVycm9yLCBpZHMp
CiAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFsbCBz
dHlsZXNoZWV0cyA9PT0iKTsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxl
bmd0aDsgKytpKQpAQCAtMTA1LDggKzExOCwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1
bmN0aW9uIHRlc3RfY2hhbmdlU2VsZWN0b3Ioc3R5bGVTaGVldCkKICAgICB7Ci0gICAgICAgIGZ1
bmN0aW9uIGRpZFNldFNlbGVjdG9yKHJ1bGUpCisgICAgICAgIGZ1bmN0aW9uIGRpZFNldFNlbGVj
dG9yKGVycm9yLCBydWxlKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIj09PSBBZnRlciBzZWxlY3RvciBzZXQgPT09Iik7CiAgICAgICAgICAgICBsb2FkQW5k
RHVtcFN0eWxlU2hlZXQocnVsZS5ydWxlSWQuc3R5bGVTaGVldElkLCB0ZXN0X3NldFN0eWxlVGV4
dCk7CkBAIC0xMTcsOCArMTM0LDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24g
dGVzdF9zZXRTdHlsZVRleHQoc3R5bGVTaGVldCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRp
ZFNldFN0eWxlVGV4dChzdHlsZSkKKyAgICAgICAgZnVuY3Rpb24gZGlkU2V0U3R5bGVUZXh0KGVy
cm9yLCBzdHlsZSkKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCI9PT0gQWZ0ZXIgc3R5bGUgdGV4dCBzZXQgPT09Iik7CiAgICAgICAgICAgICBsb2FkQW5kRHVt
cFN0eWxlU2hlZXQoc3R5bGUuc3R5bGVJZC5zdHlsZVNoZWV0SWQsIHRlc3RfYWRkUnVsZSk7CkBA
IC0xMzQsMjEgKzE1NSwzMyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHRlc3Rf
YWRkUnVsZSgpCiAgICAgewotICAgICAgICBmdW5jdGlvbiBkaWRHZXRTdHlsZXMoc3R5bGVzKQor
ICAgICAgICBmdW5jdGlvbiBkaWRHZXRTdHlsZXMoZXJyb3IsIHN0eWxlcykKICAgICAgICAgewor
ICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gTWF0Y2hlZCBydWxlcyBhZnRl
ciBydWxlIGFkZGVkID09PSIpOwogICAgICAgICAgICAgZHVtcFJ1bGVzQXJyYXkoc3R5bGVzLm1h
dGNoZWRDU1NSdWxlcyk7CiAgICAgICAgICAgICB0ZXN0X2Rpc2FibGVQcm9wZXJ0eSgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gZGlkU2V0U3R5bGVUZXh0KHN0eWxlKQorICAgICAg
ICBmdW5jdGlvbiBkaWRTZXRTdHlsZVRleHQoZXJyb3IsIHN0eWxlKQogICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgQ1NTQWdlbnQuZ2V0U3R5bGVzRm9yTm9kZShib2R5SWQsIGRp
ZEdldFN0eWxlcyk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBydWxlQWRkZWQocnVs
ZSkKKyAgICAgICAgZnVuY3Rpb24gcnVsZUFkZGVkKGVycm9yLCBydWxlKQogICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHJ1bGUuc3R5
bGUuc3R5bGVJZCwgMCwgImZvbnQtZmFtaWx5OiBzZXJpZjsiLCBmYWxzZSwgZGlkU2V0U3R5bGVU
ZXh0KTsKICAgICAgICAgfQogCkBAIC0xNTcsMTYgKzE5MCwyNCBAQCBmdW5jdGlvbiB0ZXN0KCkK
IAogICAgIGZ1bmN0aW9uIHRlc3RfZGlzYWJsZVByb3BlcnR5KCkKICAgICB7Ci0gICAgICAgIGZ1
bmN0aW9uIGRpZERpc2FibGVQcm9wZXJ0eShzdHlsZSkKKyAgICAgICAgZnVuY3Rpb24gZGlkRGlz
YWJsZVByb3BlcnR5KGVycm9yLCBzdHlsZSkKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAi
ICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIgdHdvIHByb3BlcnRpZXMgZGlzYWJsZWQsIG9uZSBw
cm9wZXJ0eSBhZGRlZCwgb25lIHByb3BlcnR5IHJlbW92ZWQgPT09Iik7CiAgICAgICAgICAgICBk
dW1wUnVsZU9yU3R5bGUoc3R5bGUpOwogICAgICAgICAgICAgdGVzdF9lbmFibGVQcm9wZXJ0eShz
dHlsZS5zdHlsZUlkKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxi
YWNrKHN0eWxlcykKKyAgICAgICAgZnVuY3Rpb24gc3R5bGVzQ2FsbGJhY2soZXJyb3IsIHN0eWxl
cykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIGhlaWdodCA6IDEwMCUg
OwogICAgICAgICAgICAgLy8gYm9yZGVyOiAxcHggc29saWQ7CiAgICAgICAgICAgICAvLyBib3Jk
ZXItd2lkdGg6IDJweDsKQEAgLTIwNyw4ICsyNDgsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAg
ICBmdW5jdGlvbiB0ZXN0X2VuYWJsZVByb3BlcnR5KHN0eWxlSWQpCiAgICAgewotICAgICAgICBm
dW5jdGlvbiBkaWRFbmFibGVQcm9wZXJ0eShzdHlsZSkKKyAgICAgICAgZnVuY3Rpb24gZGlkRW5h
YmxlUHJvcGVydHkoZXJyb3IsIHN0eWxlKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIg
KyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PSBBZnRlciBwcm9wZXJ0eSBlbmFibGVkID09PSIpOwogICAgICAg
ICAgICAgZHVtcFJ1bGVPclN0eWxlKHN0eWxlKTsKQEAgLTI0OCwxMCArMjkzLDE4IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIH0KIAogCi0gICAgZnVuY3Rpb24gbG9hZEFuZER1bXBTdHlsZVNoZWV0
KHN0eWxlU2hlZXRJZCwgY29udGludWF0aW9uKQorICAgIGZ1bmN0aW9uIGxvYWRBbmREdW1wU3R5
bGVTaGVldChzdHlsZVNoZWV0SWQsIGNvbnRpbnVhdGlvbiwgZXJyb3IpCiAgICAgewotICAgICAg
ICBmdW5jdGlvbiBzdHlsZVNoZWV0TG9hZGVkKHN0eWxlU2hlZXQpCisgICAgICAgIGlmIChlcnJv
cikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZWNvcmQoImVycm9yOiAiICsgZXJy
b3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHN0
eWxlU2hlZXRMb2FkZWQoZXJyb3IsIHN0eWxlU2hlZXQpCiAgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChlcnJvcikgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVjb3JkKCJl
cnJvcjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5bGVTaGVldDogJyIgKyBzdHlsZVNoZWV0LnRleHQg
KyAiJyIpOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0LnJ1bGVz
Lmxlbmd0aDsgKytpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9z
dHlsZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggODRlMzA5Yi4uYTJlNzdmYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zm
c2V0cy5odG1sCkBAIC00MCwxMiArNDAsMTYgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIENT
U0FnZW50LmdldFN0eWxlc0Zvck5vZGUobm9kZS5pZCwgc3RlcDIpOwogICAgIH0KIAotICAgIGZ1
bmN0aW9uIHN0ZXAyKHN0eWxlcykKKyAgICBmdW5jdGlvbiBzdGVwMihlcnJvciwgc3R5bGVzKQog
ICAgIHsKLSAgICAgICAgdmFyIG1hdGNoZWRDU1NSdWxlcyA9IHN0eWxlcy5tYXRjaGVkQ1NTUnVs
ZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgZHVtcFN0eWxlRGF0YShtYXRjaGVkQ1NTUnVsZXNbaV0pOwotICAg
ICAgICBkdW1wU3R5bGVEYXRhKHN0eWxlcy5pbmxpbmVTdHlsZSk7CisgICAgICAgIGlmIChlcnJv
cikKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9y
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB2YXIgbWF0Y2hlZENTU1J1bGVzID0gc3R5
bGVzLm1hdGNoZWRDU1NSdWxlczsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0
Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgICAgIGR1bXBTdHlsZURhdGEo
bWF0Y2hlZENTU1J1bGVzW2ldKTsKKyAgICAgICAgICAgIGR1bXBTdHlsZURhdGEoc3R5bGVzLmlu
bGluZVN0eWxlKTsKKyAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNGVjOTk1Li5iNzNjODQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsOTYgQEAKKzIwMTEtMDMtMTAgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJvZHVjZSBlcnJvciBhcmd1bWVudCBmb3IgYmFja2Vu
ZCBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU2MTAwCisKKyAgICAgICAgKiBpbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5w
bToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5ldmFsdWF0ZUluVGFyZ2V0V2luZG93KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlLmRvUnVu
LmFsbFN0eWxlc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLlVu
dXNlZENzc1J1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRp
dFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90eXBlLmRvUnVuLmdldFN0eWxlcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURpbWVuc2lvbnNSdWxlLnByb3Rv
dHlwZS5kb1J1bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmdldFN0
eWxlc0FzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlw
ZS5nZXRDb21wdXRlZFN0eWxlQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwucHJvdG90eXBlLmdldElubGluZVN0eWxlQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLnNldFJ1bGVTZWxlY3Rvcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuc2V0UnVsZVNlbGVjdG9yLmNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5hZGRS
dWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5hZGRS
dWxlLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3Rv
dHlwZS5fc3R5bGVTaGVldENoYW5nZWQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9zdHlsZVNoZWV0Q2hhbmdlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX29uUmV2ZXJ0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5pbnNlcnRQcm9wZXJ0
eUF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0VGV4
dC5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBl
LnNldFRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5z
ZXREaXNhYmxlZC5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHku
cHJvdG90eXBlLnNldERpc2FibGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZVNo
ZWV0LmNyZWF0ZUZvcklkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LnBy
b3RvdHlwZS5zZXRUZXh0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5ldmFs
SW5JbnNwZWN0ZWRXaW5kb3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdl
bnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLnB1c2hOb2Rl
VG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLnB1
c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQu
cHJvdG90eXBlLmdldENoaWxkTm9kZXNBc3luYy5teWNhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuZ2V0Q2hpbGROb2Rlc0FzeW5jKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2RpZEFwcGx5RG9tQ2hhbmdlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuX2RvY3VtZW50VXBkYXRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZURpc3BhdGNoZXIuZ2V0QXBw
bGljYXRpb25DYWNoZXNBc3luYyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llcy5nZXRD
b29raWVzQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzLmdldEV2
ZW50TGlzdGVuZXJzRm9yTm9kZUFzeW5jKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTVN0b3JhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5
cGUuZ2V0RW50cmllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5
cGUuc2V0SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUu
cmVtb3ZlSXRlbSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZS5wcm90b3R5cGUuZ2V0VGFibGVOYW1lcyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YWJhc2UucHJvdG90eXBlLmV4ZWN1dGVTcWwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50
QnlTb3VyY2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuZWRpdFNjcmlwdFNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90
eXBlLl9zZXRTZWFyY2hpbmdGb3JOb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuX2NyZWF0ZVRvb2x0aXBGb3JOb2RlLnJlc29sdmVkTm9kZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuX2Ny
ZWF0ZVRvb2x0aXBGb3JOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVF
bGVtZW50LnByb3RvdHlwZS5fdGFnTmFtZUVkaXRpbmdDb21taXR0ZWQuY2hhbmdlVGFnTmFtZUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3Rv
dHlwZS5fdGFnTmFtZUVkaXRpbmdDb21taXR0ZWQpOgorICAgICAgICAoKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkV4dGVuc2lvbldhdGNoU2lkZWJhclBhbmUucHJvdG90eXBlLl9vbkV2YWx1YXRlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vbkV2YWx1YXRlT25JbnNw
ZWN0ZWRQYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2Vy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZS5yZXF1
ZXN0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIucHJvdG90
eXBlLl9wcm9jZXNzQ2FjaGVkUmVzb3VyY2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3
LnByb2ZpbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVZpZXcp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5wcm90b3R5cGUuZ2V0UHJvcGVydGllcy5yZW1vdGVPYmplY3RCaW5kZXIp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuZ2V0UHJvcGVy
dGllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZS5zZXRQ
cm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90
eXBlLmV2YWx1YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLnJlcXVlc3RTb3VyY2UuZGlk
R2V0U2NyaXB0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBl
LnJlcXVlc3RTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuZXZh
bHVhdGVJblNlbGVjdGVkQ2FsbEZyYW1lLnVwZGF0aW5nQ2FsbGJhY2tXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmV2YWx1YXRlSW5TZWxlY3Rl
ZENhbGxGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZS5fc2V0UGF1c2VPbkV4Y2VwdGlvbnMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzOgorICAgICAgICAoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb0xvYWRl
ZERvbmUub25Qb3B1bGF0ZVNjcmlwdE9iamVjdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRv
TG9hZGVkRG9uZS5wcm9wZXJ0eU5hbWVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LmRvTG9hZGVkRG9uZSk6CisKIDIwMTEtMDMtMDkgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bn
b29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGF0dGVtcHRlZCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rv
ci5wbSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBt
CmluZGV4IGY0YjBkNTYuLmFjNjI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCkBAIC04NTIsMTMgKzg1MiwxNiBAQCBJbnNw
ZWN0b3JCYWNrZW5kU3R1Yi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgYXJndW1lbnRz
LnB1c2gobWVzc2FnZU9iamVjdC5ib2R5W2tleV0pOwogCiAgICAgICAgIGlmICgic2VxIiBpbiBt
ZXNzYWdlT2JqZWN0KSB7IC8vIGp1c3QgYSByZXNwb25zZSBmb3Igc29tZSByZXF1ZXN0Ci0gICAg
ICAgICAgICBpZiAoIW1lc3NhZ2VPYmplY3QuZXJyb3JzKQotICAgICAgICAgICAgICAgIHRoaXMu
X2NhbGxiYWNrc1ttZXNzYWdlT2JqZWN0LnNlcV0uYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKLSAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmIChtZXNzYWdlT2JqZWN0LmVycm9ycykKICAg
ICAgICAgICAgICAgICB0aGlzLnJlcG9ydFByb3RvY29sRXJyb3IobWVzc2FnZU9iamVjdCk7CiAK
LSAgICAgICAgICAgIC0tdGhpcy5fcGVuZGluZ1Jlc3BvbnNlc0NvdW50OwotICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1ttZXNzYWdlT2JqZWN0LnNlcV07CisgICAgICAgICAgICB2
YXIgY2FsbGJhY2sgPSB0aGlzLl9jYWxsYmFja3NbbWVzc2FnZU9iamVjdC5zZXFdOworICAgICAg
ICAgICAgaWYgKGNhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgYXJndW1lbnRzLnVuc2hpZnQo
bWVzc2FnZU9iamVjdC5lcnJvcnMpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KG51
bGwsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgICAgLS10aGlzLl9wZW5kaW5nUmVzcG9uc2Vz
Q291bnQ7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1ttZXNzYWdlT2Jq
ZWN0LnNlcV07CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICh0aGlzLl9zY3JpcHRz
ICYmICF0aGlzLl9wZW5kaW5nUmVzcG9uc2VzQ291bnQpCiAgICAgICAgICAgICAgICAgdGhpcy5y
dW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzKCk7CkBAIC04NzYsNiArODc5LDcgQEAgSW5zcGVjdG9y
QmFja2VuZFN0dWIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Io
IlByb3RvY29sIEVycm9yOiBBdHRlbXB0ZWQgdG8gZGlzcGF0Y2ggYW4gdW5pbXBsZW1lbnRlZCBt
ZXRob2QgJyIgKyBtZXNzYWdlT2JqZWN0LmRvbWFpbiArICIuIiArIG1lc3NhZ2VPYmplY3QuZXZl
bnQgKyAiJyIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KKwogICAg
ICAgICAgICAgZGlzcGF0Y2hlclttZXNzYWdlT2JqZWN0LmV2ZW50XS5hcHBseShkaXNwYXRjaGVy
LCBhcmd1bWVudHMpOwogICAgICAgICB9CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwppbmRleCA4MDNlOWUwLi5iNjE0MjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpz
CkBAIC02NSw5ICs2NSw5IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLmdldERvbWFpblRvUmVz
b3VyY2VzTWFwID0gZnVuY3Rpb24ocmVzb3VyY2VzLCB0eXBlcywgbmVlCiAKIFdlYkluc3BlY3Rv
ci5BdWRpdFJ1bGVzLmV2YWx1YXRlSW5UYXJnZXRXaW5kb3cgPSBmdW5jdGlvbihmdW5jLCBhcmdz
LCBjYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBteWNhbGxiYWNrKHJlc3VsdCkKKyAgICBmdW5j
dGlvbiBteWNhbGxiYWNrKGVycm9yLCByZXN1bHQpCiAgICAgewotICAgICAgICBpZiAocmVzdWx0
KQorICAgICAgICBpZiAoIWVycm9yICYmIHJlc3VsdCkKICAgICAgICAgICAgIGNhbGxiYWNrKEpT
T04ucGFyc2UocmVzdWx0LmRlc2NyaXB0aW9uKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IGNhbGxiYWNrKG51bGwpOwpAQCAtMzg1LDkgKzM4NSw5IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLlVudXNlZENzc1J1bGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGNvbnRpbnVh
dGlvbihzdHlsZVNoZWV0cyk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBhbGxTdHls
ZXNDYWxsYmFjayhzdHlsZVNoZWV0SWRzKQorICAgICAgICBmdW5jdGlvbiBhbGxTdHlsZXNDYWxs
YmFjayhlcnJvciwgc3R5bGVTaGVldElkcykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFz
dHlsZVNoZWV0SWRzIHx8ICFzdHlsZVNoZWV0SWRzLmxlbmd0aCkKKyAgICAgICAgICAgIGlmIChl
cnJvciB8fCAhc3R5bGVTaGVldElkcyB8fCAhc3R5bGVTaGVldElkcy5sZW5ndGgpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGV2YWxDYWxsYmFjayhbXSk7CiAgICAgICAgICAgICB2YXIgc3R5bGVT
aGVldHMgPSBbXTsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVTaGVldElk
cy5sZW5ndGg7ICsraSkKQEAgLTcxNyw4ICs3MTcsMTAgQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVs
ZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZG9u
ZUNhbGxiYWNrKCk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBnZXRTdHlsZXMobm9k
ZUlkcykKKyAgICAgICAgZnVuY3Rpb24gZ2V0U3R5bGVzKGVycm9yLCBub2RlSWRzKQogICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlSWRzLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXRTdHlsZXNBc3luYyhub2RlSWRzW2ld
LCBpbWFnZVN0eWxlc1JlYWR5LmJpbmQodGhpcywgbm9kZUlkc1tpXSwgaSA9PT0gbm9kZUlkcy5s
ZW5ndGggLSAxKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCA3MDA0MTdlLi5hOTY2ODBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVs
LmpzCkBAIC00Myw5ICs0Myw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnBhcnNlUnVs
ZUFycmF5UGF5bG9hZCA9IGZ1bmN0aW9uKHJ1bGVBcnJheSkKIFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBnZXRTdHlsZXNBc3luYzogZnVuY3Rpb24obm9kZUlk
LCB1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayh1c2VyQ2Fs
bGJhY2ssIHBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywg
ZXJyb3IsIHBheWxvYWQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcGF5bG9hZCkgewor
ICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFwYXlsb2FkKSB7CiAgICAgICAgICAgICAgICAgaWYg
KHVzZXJDYWxsYmFjaykKICAgICAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwpOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTg4LDkgKzg4LDkgQEAgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgZ2V0Q29tcHV0ZWRTdHlsZUFzeW5jOiBm
dW5jdGlvbihub2RlSWQsIHVzZXJDYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNh
bGxiYWNrKHVzZXJDYWxsYmFjaywgc3R5bGVQYXlsb2FkKQorICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjayh1c2VyQ2FsbGJhY2ssIGVycm9yLCBzdHlsZVBheWxvYWQpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGlmICghc3R5bGVQYXlsb2FkKQorICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFzdHls
ZVBheWxvYWQpCiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwpOwogICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKSk7CkBAIC0xMDEsOSArMTAx
LDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgZ2V0
SW5saW5lU3R5bGVBc3luYzogZnVuY3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2spCiAgICAgewot
ICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayh1c2VyQ2FsbGJhY2ssIHN0eWxlUGF5bG9hZCkKKyAg
ICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBlcnJvciwgc3R5bGVQYXlsb2Fk
KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIXN0eWxlUGF5bG9hZCkKKyAgICAgICAgICAg
IGlmIChlcnJvciB8fCAhc3R5bGVQYXlsb2FkKQogICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFj
ayhudWxsKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHN0eWxlUGF5bG9h
ZCkpOwpAQCAtMTE0LDE3ICsxMTQsMjAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJv
dG90eXBlID0gewogCiAgICAgc2V0UnVsZVNlbGVjdG9yOiBmdW5jdGlvbihydWxlSWQsIG5vZGVJ
ZCwgbmV3U2VsZWN0b3IsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrKQogICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gY2hlY2tBZmZlY3RzQ2FsbGJhY2sobm9kZUlkLCBzdWNjZXNzQ2Fs
bGJhY2ssIHJ1bGVQYXlsb2FkLCBzZWxlY3RlZE5vZGVJZHMpCisgICAgICAgIGZ1bmN0aW9uIGNo
ZWNrQWZmZWN0c0NhbGxiYWNrKG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCwg
ZXJyb3IsIHNlbGVjdGVkTm9kZUlkcykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHZhciBkb2VzQWZmZWN0U2Vs
ZWN0ZWROb2RlID0gKHNlbGVjdGVkTm9kZUlkcy5pbmRleE9mKG5vZGVJZCkgPj0gMCk7CiAgICAg
ICAgICAgICB2YXIgcnVsZSA9IFdlYkluc3BlY3Rvci5DU1NSdWxlLnBhcnNlUGF5bG9hZChydWxl
UGF5bG9hZCk7CiAgICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2socnVsZSwgZG9lc0FmZmVjdFNl
bGVjdGVkTm9kZSk7CiAgICAgICAgICAgICB0aGlzLl9zdHlsZVNoZWV0Q2hhbmdlZChydWxlLmlk
LnN0eWxlU2hlZXRJZCwgdHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxs
YmFjayhub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBuZXdTZWxlY3Rv
ciwgcnVsZVBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKG5vZGVJZCwgc3VjY2Vz
c0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2ssIGVycm9yLCBuZXdTZWxlY3RvciwgcnVsZVBheWxv
YWQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghcnVsZVBheWxvYWQpCisgICAgICAgICAg
ICAvLyBGSVhNRTogbG9va3MgbGlyZSBydWxlUGF5bG9hZCBhbHdheXMgbnVsbC4KKyAgICAgICAg
ICAgIGlmIChlcnJvciB8fCAhcnVsZVBheWxvYWQpCiAgICAgICAgICAgICAgICAgZmFpbHVyZUNh
bGxiYWNrKCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgRE9NQWdlbnQucXVl
cnlTZWxlY3RvckFsbChub2RlSWQsIG5ld1NlbGVjdG9yLCB0cnVlLCBjaGVja0FmZmVjdHNDYWxs
YmFjay5iaW5kKHRoaXMsIG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCkpOwpA
QCAtMTM1LDcgKzEzOCw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9
IHsKIAogICAgIGFkZFJ1bGU6IGZ1bmN0aW9uKG5vZGVJZCwgc2VsZWN0b3IsIHN1Y2Nlc3NDYWxs
YmFjaywgZmFpbHVyZUNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2hlY2tBZmZl
Y3RzQ2FsbGJhY2sobm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ssIHJ1bGVQYXlsb2FkLCBzZWxlY3Rl
ZE5vZGVJZHMpCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrQWZmZWN0c0NhbGxiYWNrKG5vZGVJZCwg
c3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCwgZXJyb3IsIHNlbGVjdGVkTm9kZUlkcykKICAg
ICAgICAgewogICAgICAgICAgICAgdmFyIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUgPSAoc2VsZWN0
ZWROb2RlSWRzLmluZGV4T2Yobm9kZUlkKSA+PSAwKTsKICAgICAgICAgICAgIHZhciBydWxlID0g
V2ViSW5zcGVjdG9yLkNTU1J1bGUucGFyc2VQYXlsb2FkKHJ1bGVQYXlsb2FkKTsKQEAgLTE0Myw5
ICsxNDYsOSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICB0aGlzLl9zdHlsZVNoZWV0Q2hhbmdlZChydWxlLmlkLnN0eWxlU2hlZXRJZCwgdHJ1
ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhzdWNjZXNzQ2FsbGJh
Y2ssIGZhaWx1cmVDYWxsYmFjaywgc2VsZWN0b3IsIHJ1bGVQYXlsb2FkKQorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaywgc2VsZWN0b3Is
IGVycm9yLCBydWxlUGF5bG9hZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFydWxlUGF5
bG9hZCkgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFydWxlUGF5bG9hZCkgewogICAgICAg
ICAgICAgICAgIC8vIEludmFsaWQgc3ludGF4IGZvciBhIHNlbGVjdG9yCiAgICAgICAgICAgICAg
ICAgZmFpbHVyZUNhbGxiYWNrKCk7CiAgICAgICAgICAgICB9IGVsc2UKQEAgLTE2MCw4ICsxNjMs
MTAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBp
ZiAoIW1ham9yQ2hhbmdlIHx8ICFzdHlsZVNoZWV0SWQpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soaHJlZiwgY29udGVudCkKKyAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2soZXJyb3IsIGhyZWYsIGNvbnRlbnQpCiAgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgcmVz
b3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoaHJlZik7CiAgICAgICAgICAgICBp
ZiAocmVzb3VyY2UgJiYgcmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5
cGUuU3R5bGVzaGVldCkKICAgICAgICAgICAgICAgICByZXNvdXJjZS5zZXRDb250ZW50KGNvbnRl
bnQsIHRoaXMuX29uUmV2ZXJ0LmJpbmQodGhpcywgc3R5bGVTaGVldElkKSk7CkBAIC0xNzEsOCAr
MTc2LDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAg
IF9vblJldmVydDogZnVuY3Rpb24oc3R5bGVTaGVldElkLCBjb250ZW50VG9SZXZlcnRUbykKICAg
ICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN1Y2Nlc3MpCisgICAgICAgIGZ1bmN0aW9u
IGNhbGxiYWNrKGVycm9yLCBzdWNjZXNzKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJy
b3IpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdGhpcy5fc3R5bGVTaGVl
dENoYW5nZWQoc3R5bGVTaGVldElkLCB0cnVlKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKCJzdHlsZXNoZWV0IGNoYW5nZWQiKTsKICAgICAgICAgfQpAQCAtMzM1
LDEyICszNDIsMTIgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBl
ID0gewogCiAgICAgaW5zZXJ0UHJvcGVydHlBdDogZnVuY3Rpb24oaW5kZXgsIG5hbWUsIHZhbHVl
LCB1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayh1c2VyQ2Fs
bGJhY2ssIHBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywg
ZXJyb3IsIHBheWxvYWQpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghdXNlckNhbGxiYWNr
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgaWYgKCFwYXlsb2FkKQor
ICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFwYXlsb2FkKQogICAgICAgICAgICAgICAgIHVzZXJD
YWxsYmFjayhudWxsKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHVzZXJD
YWxsYmFjayhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQocGF5
bG9hZCkpOwpAQCAtNDY0LDkgKzQ3MSw5IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKHN0eWxlKTsKICAgICAgICAg
fQogCi0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN0eWxlUGF5bG9hZCkKKyAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0eWxlUGF5bG9hZCkKICAgICAgICAgewotICAgICAgICAg
ICAgaWYgKHN0eWxlUGF5bG9hZCkgeworICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBzdHlsZVBh
eWxvYWQpIHsKICAgICAgICAgICAgICAgICB0aGlzLnRleHQgPSBwcm9wZXJ0eVRleHQ7CiAgICAg
ICAgICAgICAgICAgdmFyIHN0eWxlID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24u
cGFyc2VQYXlsb2FkKHN0eWxlUGF5bG9hZCk7CiAgICAgICAgICAgICAgICAgdmFyIG5ld1Byb3Bl
cnR5ID0gc3R5bGUuYWxsUHJvcGVydGllc1t0aGlzLmluZGV4XTsKQEAgLTUwNCwxMSArNTExLDEx
IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChk
aXNhYmxlZCA9PT0gdGhpcy5kaXNhYmxlZCAmJiB1c2VyQ2FsbGJhY2spCiAgICAgICAgICAgICB1
c2VyQ2FsbGJhY2sodGhpcy5vd25lclN0eWxlKTsKIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhzdHlsZVBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBzdHlsZVBh
eWxvYWQpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghdXNlckNhbGxiYWNrKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghc3R5bGVQYXlsb2FkKQorICAgICAg
ICAgICAgaWYgKGVycm9yIHx8ICFzdHlsZVBheWxvYWQpCiAgICAgICAgICAgICAgICAgdXNlckNh
bGxiYWNrKG51bGwpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgdmFyIHN0
eWxlID0gV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHN0eWxl
UGF5bG9hZCk7CkBAIC01NDEsOSArNTQ4LDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQg
PSBmdW5jdGlvbihwYXlsb2FkKQogCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5jcmVhdGVG
b3JJZCA9IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgdXNlckNhbGxiYWNrKQogewotICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKHN0eWxlU2hlZXRQYXlsb2FkKQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVy
cm9yLCBzdHlsZVNoZWV0UGF5bG9hZCkKICAgICB7Ci0gICAgICAgIGlmICghc3R5bGVTaGVldFBh
eWxvYWQpCisgICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVTaGVldFBheWxvYWQpCiAgICAgICAg
ICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHVzZXJD
YWxsYmFjayhuZXcgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQoc3R5bGVTaGVldFBheWxvYWQp
KTsKQEAgLTU1OSw5ICs1NjYsOSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVldC5wcm90b3R5
cGUgPSB7CiAKICAgICBzZXRUZXh0OiBmdW5jdGlvbihuZXdUZXh0LCB1c2VyQ2FsbGJhY2spCiAg
ICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhzdHlsZVNoZWV0UGF5bG9hZCkKKyAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0eWxlU2hlZXRQYXlsb2FkKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIXN0eWxlU2hlZXRQYXlsb2FkKQorICAgICAgICAgICAgaWYgKGVy
cm9yIHx8ICFzdHlsZVNoZWV0UGF5bG9hZCkKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
bnVsbCk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
bmV3IFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0KHN0eWxlU2hlZXRQYXlsb2FkKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3Lmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRl
eCBmNTlkODdmLi5iNGYwNDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTUzMSw5ICs1MzEsMTAgQEAgV2ViSW5zcGVjdG9y
LkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGV4cHJlc3Npb24gPSAidGhp
cyI7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2socmVzdWx0KQor
ICAgICAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2soZXJyb3IsIHJlc3VsdCkKICAgICAgICAgewot
ICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9h
ZChyZXN1bHQpKTsKKyAgICAgICAgICAgIGlmICghZXJyb3IpCisgICAgICAgICAgICAgICAgY2Fs
bGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHQpKTsKICAg
ICAgICAgfQogICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgb2JqZWN0
R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgZXZhbENhbGxiYWNrKTsKICAgICB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXggY2Iy
OGFiYS4uOTkwMGI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTUFnZW50LmpzCkBAIC0yODksNyArMjg5LDcgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFjaygpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmICh0aGlzLl9kb2N1bWVudCkKLSAgICAgICAgICAgICAgICBET01BZ2VudC5w
dXNoTm9kZVRvRnJvbnRlbmQob2JqZWN0SWQsIGNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICBE
T01BZ2VudC5wdXNoTm9kZVRvRnJvbnRlbmQob2JqZWN0SWQsIGVycm9yRmlsdGVyLmJpbmQobnVs
bCwgY2FsbGJhY2spKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIGlmIChj
YWxsYmFjaykKICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soMCk7CkBAIC0zMDMsNyArMzAz
LDcgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rp
b24gbXljYWxsYmFjaygpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9kb2N1bWVu
dCkKLSAgICAgICAgICAgICAgICBET01BZ2VudC5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQocGF0
aCwgY2FsbGJhY2spOworICAgICAgICAgICAgICAgIERPTUFnZW50LnB1c2hOb2RlQnlQYXRoVG9G
cm9udGVuZChwYXRoLCBlcnJvckZpbHRlci5iaW5kKG51bGwsIGNhbGxiYWNrKSk7CiAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKDApOwpAQCAtMzE5LDggKzMxOSw5IEBAIFdlYkluc3BlY3Rvci5ET01B
Z2VudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxsYmFjayhjaGlsZHJlbik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFjaygp
IHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHBhcmVudC5jaGlsZHJlbik7CisgICAgICAgIGZ1bmN0
aW9uIG15Y2FsbGJhY2soZXJyb3IpIHsKKyAgICAgICAgICAgIGlmICghZXJyb3IpCisgICAgICAg
ICAgICAgICAgY2FsbGJhY2socGFyZW50LmNoaWxkcmVuKTsKICAgICAgICAgfQogICAgICAgICBE
T01BZ2VudC5nZXRDaGlsZE5vZGVzKHBhcmVudC5pZCwgbXljYWxsYmFjayk7CiAgICAgfSwKQEAg
LTM0Myw5ICszNDQsOSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewogICAg
ICAgICBET01BZ2VudC5zZXRUZXh0Tm9kZVZhbHVlKG5vZGUuaWQsIHRleHQsIG15Y2FsbGJhY2sp
OwogICAgIH0sCiAKLSAgICBfZGlkQXBwbHlEb21DaGFuZ2U6IGZ1bmN0aW9uKG5vZGUsIGNhbGxi
YWNrLCBzdWNjZXNzKQorICAgIF9kaWRBcHBseURvbUNoYW5nZTogZnVuY3Rpb24obm9kZSwgY2Fs
bGJhY2ssIGVycm9yLCBzdWNjZXNzKQogICAgIHsKLSAgICAgICAgaWYgKCFzdWNjZXNzKQorICAg
ICAgICBpZiAoZXJyb3IgfHwgIXN1Y2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGNhbGxiYWNrKCk7CiAgICAgICAgIC8vIFRPRE8ocGZlbGRtYW4pOiBGaXggdGhpcyBoYWNrLgpA
QCAtMzc4LDggKzM3OSwxMSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlID0gewog
CiAgICAgX2RvY3VtZW50VXBkYXRlZDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAg
ICBmdW5jdGlvbiBteWNhbGxiYWNrKHJvb3QpCisgICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2so
ZXJyb3IsIHJvb3QpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKICAgICAgICAgICAgIHRoaXMuX3NldERvY3VtZW50KHJvb3QpOwog
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQogICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMu
X2RvY3VtZW50KTsKQEAgLTUyOCwxMCArNTMyLDEwIEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlv
bkNhY2hlRGlzcGF0Y2hlciA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9u
Q2FjaGVEaXNwYXRjaGVyLmdldEFwcGxpY2F0aW9uQ2FjaGVzQXN5bmMgPSBmdW5jdGlvbihjYWxs
YmFjaykKIHsKLSAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGFwcGxpY2F0aW9uQ2FjaGVzKQorICAg
IGZ1bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIGFwcGxpY2F0aW9uQ2FjaGVzKQogICAgIHsKICAg
ICAgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgdGhpcyBsaXN0IG9ubHkgcmV0dXJucyBhIHNpbmds
ZSBhcHBsaWNhdGlvbiBjYWNoZS4KLSAgICAgICAgaWYgKGFwcGxpY2F0aW9uQ2FjaGVzKQorICAg
ICAgICBpZiAoIWVycm9yICYmIGFwcGxpY2F0aW9uQ2FjaGVzKQogICAgICAgICAgICAgY2FsbGJh
Y2soYXBwbGljYXRpb25DYWNoZXMpOwogICAgIH0KIApAQCAtNTU2LDggKzU2MCwxMCBAQCBXZWJJ
bnNwZWN0b3IuQ29va2llcyA9IHt9CiAKIFdlYkluc3BlY3Rvci5Db29raWVzLmdldENvb2tpZXNB
c3luYyA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogewotICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soY29v
a2llcywgY29va2llc1N0cmluZykKKyAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVycm9yLCBjb29r
aWVzLCBjb29raWVzU3RyaW5nKQogICAgIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICBpZiAoY29va2llc1N0cmluZykKICAgICAgICAgICAgIGNhbGxi
YWNrKFdlYkluc3BlY3Rvci5Db29raWVzLmJ1aWxkQ29va2llc0Zyb21TdHJpbmcoY29va2llc1N0
cmluZyksIGZhbHNlKTsKICAgICAgICAgZWxzZQpAQCAtNjA5LDUgKzYxNSw1IEBAIFdlYkluc3Bl
Y3Rvci5FdmVudExpc3RlbmVycy5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGVBc3luYyA9IGZ1bmN0
aW9uKG5vZGUsIGNhbGxiCiB7CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47Ci0gICAg
RE9NQWdlbnQuZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKG5vZGUuaWQsIGNhbGxiYWNrKTsKKyAg
ICBET01BZ2VudC5nZXRFdmVudExpc3RlbmVyc0Zvck5vZGUobm9kZS5pZCwgZXJyb3JGaWx0ZXIu
YmluZCh0aGlzLCBjYWxsYmFjaykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCmluZGV4IGVhMjQ5MjEuLjg1NzliYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMKQEAgLTUx
LDE3ICs1MSwxNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUgPSB7CiAKICAg
ICBnZXRFbnRyaWVzOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTVN0b3Jh
Z2VBZ2VudC5nZXRET01TdG9yYWdlRW50cmllcyh0aGlzLl9pZCwgY2FsbGJhY2spOworICAgICAg
ICBET01TdG9yYWdlQWdlbnQuZ2V0RE9NU3RvcmFnZUVudHJpZXModGhpcy5faWQsIGVycm9yRmls
dGVyLmJpbmQobnVsbCwgY2FsbGJhY2spKTsKICAgICB9LAogICAgIAogICAgIHNldEl0ZW06IGZ1
bmN0aW9uKGtleSwgdmFsdWUsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NU3RvcmFnZUFn
ZW50LnNldERPTVN0b3JhZ2VJdGVtKHRoaXMuX2lkLCBrZXksIHZhbHVlLCBjYWxsYmFjayk7Cisg
ICAgICAgIERPTVN0b3JhZ2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2
YWx1ZSwgZXJyb3JGaWx0ZXIuYmluZChudWxsLCBjYWxsYmFjaykpOwogICAgIH0sCiAgICAgCiAg
ICAgcmVtb3ZlSXRlbTogZnVuY3Rpb24oa2V5LCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERP
TVN0b3JhZ2VBZ2VudC5yZW1vdmVET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCBjYWxsYmFj
ayk7CisgICAgICAgIERPTVN0b3JhZ2VBZ2VudC5yZW1vdmVET01TdG9yYWdlSXRlbSh0aGlzLl9p
ZCwga2V5LCBlcnJvckZpbHRlci5iaW5kKG51bGwsIGNhbGxiYWNrKSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5qcwppbmRleCBl
NGJhZmVhLi42ODVjMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RhdGFiYXNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGF0YWJhc2UuanMKQEAgLTc3LDE3ICs3NywyMiBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2Uu
cHJvdG90eXBlID0gewogCiAgICAgZ2V0VGFibGVOYW1lczogZnVuY3Rpb24oY2FsbGJhY2spCiAg
ICAgewotICAgICAgICBmdW5jdGlvbiBzb3J0aW5nQ2FsbGJhY2sobmFtZXMpCisgICAgICAgIGZ1
bmN0aW9uIHNvcnRpbmdDYWxsYmFjayhlcnJvciwgbmFtZXMpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIGNhbGxiYWNrKG5hbWVzLnNvcnQoKSk7CisgICAgICAgICAgICBpZiAoIWVycm9yKQorICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKG5hbWVzLnNvcnQoKSk7CiAgICAgICAgIH0KICAgICAgICAg
RGF0YWJhc2VBZ2VudC5nZXREYXRhYmFzZVRhYmxlTmFtZXModGhpcy5faWQsIHNvcnRpbmdDYWxs
YmFjayk7CiAgICAgfSwKICAgICAKICAgICBleGVjdXRlU3FsOiBmdW5jdGlvbihxdWVyeSwgb25T
dWNjZXNzLCBvbkVycm9yKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3VjY2Vz
cywgdHJhbnNhY3Rpb25JZCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN1Y2Nl
c3MsIHRyYW5zYWN0aW9uSWQpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgewor
ICAgICAgICAgICAgICAgIG9uRXJyb3IoZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICghc3VjY2VzcykgewogICAgICAgICAgICAg
ICAgIG9uRXJyb3IoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEYXRhYmFzZSBub3QgZm91bmQuIikp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBkMzFmZjI0Li5kZWZiZTZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9k
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1v
ZGVsLmpzCkBAIC03OCw5ICs3OCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHVybCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCiAgICAgewotICAgICAgICBmdW5jdGlv
biBkaWRTZXRCcmVha3BvaW50KGJyZWFrcG9pbnRzUHVzaGVkVG9CYWNrZW5kLCBicmVha3BvaW50
SWQsIGxvY2F0aW9ucykKKyAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChicmVha3Bv
aW50c1B1c2hlZFRvQmFja2VuZCwgZXJyb3IsIGJyZWFrcG9pbnRJZCwgbG9jYXRpb25zKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIWJyZWFrcG9pbnRJZCkKKyAgICAgICAgICAgIGlmIChl
cnJvciB8fCAhYnJlYWtwb2ludElkKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIHZhciBicmVha3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50KGJyZWFrcG9p
bnRJZCwgdXJsLCAiIiwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJs
ZWQpOwogICAgICAgICAgICAgYnJlYWtwb2ludC5sb2NhdGlvbnMgPSBsb2NhdGlvbnM7CkBAIC05
NCw5ICs5NCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKIAog
ICAgIHNldEJyZWFrcG9pbnRCeVNvdXJjZUlkOiBmdW5jdGlvbihzb3VyY2VJRCwgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCiAgICAgewotICAgICAgICBmdW5j
dGlvbiBkaWRTZXRCcmVha3BvaW50KGJyZWFrcG9pbnRJZCwgYWN0dWFsTGluZU51bWJlciwgYWN0
dWFsQ29sdW1uTnVtYmVyKQorICAgICAgICBmdW5jdGlvbiBkaWRTZXRCcmVha3BvaW50KGVycm9y
LCBicmVha3BvaW50SWQsIGFjdHVhbExpbmVOdW1iZXIsIGFjdHVhbENvbHVtbk51bWJlcikKICAg
ICAgICAgewotICAgICAgICAgICAgaWYgKCFicmVha3BvaW50SWQpCisgICAgICAgICAgICBpZiAo
ZXJyb3IgfHwgIWJyZWFrcG9pbnRJZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICB2YXIgYnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludChicmVha3Bv
aW50SWQsICIiLCBzb3VyY2VJRCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjb25kaXRpb24s
IGVuYWJsZWQpOwogICAgICAgICAgICAgYnJlYWtwb2ludC5hZGRMb2NhdGlvbihzb3VyY2VJRCwg
YWN0dWFsTGluZU51bWJlciwgYWN0dWFsQ29sdW1uTnVtYmVyKTsKQEAgLTIxMCw4ICsyMTAsMTAg
QEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgZWRpdFNj
cmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlSUQsIHNjcmlwdFNvdXJjZSkKICAgICB7Ci0gICAg
ICAgIGZ1bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2Uoc3VjY2VzcywgbmV3Qm9keU9yRXJyb3JN
ZXNzYWdlLCBjYWxsRnJhbWVzKQorICAgICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNl
KGVycm9yLCBzdWNjZXNzLCBuZXdCb2R5T3JFcnJvck1lc3NhZ2UsIGNhbGxGcmFtZXMpCiAgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgICAgIGlmIChjYWxsRnJhbWVz
ICYmIGNhbGxGcmFtZXMubGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWxsRnJh
bWVzID0gY2FsbEZyYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCAyNDZhYmU4Li4yZGMwMjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBA
IC0xMDczLDkgKzEwNzMsMTAgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKICAg
ICB9LAogCi0gICAgX3NldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVuYWJsZWQpCisgICAg
X3NldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVycm9yLCBlbmFibGVkKQogICAgIHsKLSAg
ICAgICAgdGhpcy5fbm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkID0gZW5hYmxlZDsKKyAgICAgICAg
aWYgKCFlcnJvcikKKyAgICAgICAgICAgIHRoaXMuX25vZGVTZWFyY2hCdXR0b24udG9nZ2xlZCA9
IGVuYWJsZWQ7CiAgICAgfSwKIAogICAgIHNldFNlYXJjaGluZ0Zvck5vZGU6IGZ1bmN0aW9uKGVu
YWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Vs
ZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggN2I1ZmYyZi4uYTE1YzFlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5l
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVl
T3V0bGluZS5qcwpAQCAtNDIzLDkgKzQyMyw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVF
bGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAg
IGZ1bmN0aW9uIHJlc29sdmVkTm9kZShvYmplY3RQYXlsb2FkKQorICAgICAgICBmdW5jdGlvbiBy
ZXNvbHZlZE5vZGUoZXJyb3IsIG9iamVjdFBheWxvYWQpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGlmICghb2JqZWN0UGF5bG9hZCkKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhb2JqZWN0UGF5
bG9hZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIHZhciBvYmplY3Qg
PSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdFBheWxvYWQpOwpA
QCAtOTYyLDEwICs5NjIsMTIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgX3N0YXJ0RWRp
dGluZ0FzSFRNTDogZnVuY3Rpb24oY29tbWl0Q2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkKKyAgICBf
c3RhcnRFZGl0aW5nQXNIVE1MOiBmdW5jdGlvbihjb21taXRDYWxsYmFjaywgZXJyb3IsIGluaXRp
YWxWYWx1ZSkKICAgICB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgaWYgKHRoaXMuX2h0bWxFZGl0RWxlbWVudCAmJiBXZWJJbnNwZWN0b3IuaXNCZWlu
Z0VkaXRlZCh0aGlzLl9odG1sRWRpdEVsZW1lbnQpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5faHRtbEVkaXRFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIHRoaXMuX2h0bWxFZGl0RWxl
bWVudC5jbGFzc05hbWUgPSAic291cmNlLWNvZGUgZWxlbWVudHMtdHJlZS1lZGl0b3IiOwpAQCAt
MTE1Nyw5ICsxMTU5LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgdHJlZU91dGxpbmUgPSB0aGlzLnRyZWVPdXRsaW5lOwogICAg
ICAgICB2YXIgd2FzRXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkOwogCi0gICAgICAgIGZ1bmN0aW9u
IGNoYW5nZVRhZ05hbWVDYWxsYmFjayhub2RlSWQpCisgICAgICAgIGZ1bmN0aW9uIGNoYW5nZVRh
Z05hbWVDYWxsYmFjayhlcnJvciwgbm9kZUlkKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
IW5vZGVJZCkgeworICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFub2RlSWQpIHsKICAgICAgICAg
ICAgICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CkBAIC0xNDAxLDcgKzE0MDMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIC0xIGlzIGFuIGVycm9yIGNv
ZGUsIHdoaWNoIG1lYW5zIHJlbW92aW5nIHRoZSBub2RlIGZyb20gdGhlIERPTSBmYWlsZWQsCiAg
ICAgICAgICAgICAvLyBzbyB3ZSBzaG91bGRuJ3QgcmVtb3ZlIGl0IGZyb20gdGhlIHRyZWUuCi0g
ICAgICAgICAgICBpZiAocmVtb3ZlZE5vZGVJZCA9PT0gLTEpCisgICAgICAgICAgICBpZiAoZXJy
b3IgfHwgcmVtb3ZlZE5vZGVJZCA9PT0gLTEpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgICAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHNlbGYpOwpAQCAtMTQxNyw5ICsx
NDE5LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHZhciB3
YXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQ7CiAKLSAgICAgICAgZnVuY3Rpb24gc2VsZWN0Tm9k
ZShub2RlSWQpCisgICAgICAgIGZ1bmN0aW9uIHNlbGVjdE5vZGUoZXJyb3IsIG5vZGVJZCkKICAg
ICAgICAgewotICAgICAgICAgICAgaWYgKCFub2RlSWQpCisgICAgICAgICAgICBpZiAoZXJyb3Ig
fHwgIW5vZGVJZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgIC8vIFNl
bGVjdCBpdCBhbmQgZXhwYW5kIGlmIG5lY2Vzc2FyeS4gV2UgZm9yY2UgdHJlZSB1cGRhdGUgc28g
dGhhdCBpdCBwcm9jZXNzZXMgZG9tIGV2ZW50cyBhbmQgaXMgdXAgdG8gZGF0ZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCmlu
ZGV4IDE0MmI4YzEuLjQyNDliMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwpAQCAtOTgsOSArOTgsMTAgQEAgV2ViSW5z
cGVjdG9yLkV4dGVuc2lvbldhdGNoU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgImV4dGVuc2lvbi13YXRjaCIsIGZhbHNl
LCB0aGlzLl9vbkV2YWx1YXRlLmJpbmQodGhpcywgdGl0bGUpKTsKICAgICB9LAogCi0gICAgX29u
RXZhbHVhdGU6IGZ1bmN0aW9uKHRpdGxlLCByZXN1bHQpCisgICAgX29uRXZhbHVhdGU6IGZ1bmN0
aW9uKHRpdGxlLCBlcnJvciwgcmVzdWx0KQogICAgIHsKLSAgICAgICAgdGhpcy5fc2V0T2JqZWN0
KFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSwgdGl0bGUpOwor
ICAgICAgICBpZiAoIWVycm9yKQorICAgICAgICAgICAgdGhpcy5fc2V0T2JqZWN0KFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSwgdGl0bGUpOwogICAgIH0sCiAK
ICAgICBfc2V0T2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIHRpdGxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCBm
OWFmN2RjLi42NDQwM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjY5LDggKzI2OSwxMCBAQCBXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKIAogICAgIF9vbkV2YWx1YXRlT25J
bnNwZWN0ZWRQYWdlOiBmdW5jdGlvbihtZXNzYWdlLCBwb3J0KQogICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2socmVzdWx0UGF5bG9hZCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
ZXJyb3IsIHJlc3VsdFBheWxvYWQpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgcmVzdWx0T2JqZWN0ID0g
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChyZXN1bHRQYXlsb2FkKTsKICAg
ICAgICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICAgICAgIGlmIChyZXN1bHRPYmplY3Qu
aXNFcnJvcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya01hbmFnZXIuanMKaW5kZXggMjQ2YjUzYy4uODQ5MmI5ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC01
MywxNSArNTMsMTcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnByb3RvdHlwZSA9IHsK
IAogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihyZXNvdXJjZSwgYmFzZTY0RW5jb2RlLCBj
YWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihzdWNjZXNz
LCBjb250ZW50KQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIoZXJyb3IsIHN1Y2Nl
c3MsIGNvbnRlbnQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MgPyBj
b250ZW50IDogbnVsbCk7CisgICAgICAgICAgICBjYWxsYmFjaygoIWVycm9yICYmIHN1Y2Nlc3Mp
ID8gY29udGVudCA6IG51bGwpOwogICAgICAgICB9CiAgICAgICAgIE5ldHdvcmtBZ2VudC5yZXNv
dXJjZUNvbnRlbnQocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNlLnVybCwgYmFzZTY0
RW5jb2RlLCBjYWxsYmFja1dyYXBwZXIpOwogICAgIH0sCiAKLSAgICBfcHJvY2Vzc0NhY2hlZFJl
c291cmNlczogZnVuY3Rpb24obWFpbkZyYW1lUGF5bG9hZCkKKyAgICBfcHJvY2Vzc0NhY2hlZFJl
c291cmNlczogZnVuY3Rpb24oZXJyb3IsIG1haW5GcmFtZVBheWxvYWQpCiAgICAgeworICAgICAg
ICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciBtYWluUmVzb3Vy
Y2UgPSB0aGlzLl9kaXNwYXRjaGVyLl9hZGRGcmFtZXNSZWN1cnNpdmVseShtYWluRnJhbWVQYXls
b2FkKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLm1haW5SZXNvdXJjZSA9IG1haW5SZXNvdXJjZTsK
ICAgICAgICAgbWFpblJlc291cmNlLmlzTWFpblJlc291cmNlID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IDMzNWJm
MDMuLjlmNGQ4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9maWxlVmlldy5qcwpAQCAtODEsOCArODEsMTAgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2Zp
bGVWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLnByb2ZpbGUgPSBwcm9maWxlOwog
CiAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgIGZ1bmN0aW9uIHByb2ZpbGVDYWxsYmFjayhwcm9m
aWxlKQorICAgIGZ1bmN0aW9uIHByb2ZpbGVDYWxsYmFjayhlcnJvciwgcHJvZmlsZSkKICAgICB7
CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgc2VsZi5w
cm9maWxlLmhlYWQgPSBwcm9maWxlLmhlYWQ7CiAgICAgICAgIHNlbGYuX2Fzc2lnblBhcmVudHNJ
blByb2ZpbGUoKTsKICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGU1ZmI0OWUuLmNiOGUxMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMK
QEAgLTYyNiw3ICs2MjYsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICghdGhpcy5fcHJvZmlsZXJFbmFibGVkIHx8IHRoaXMuX3Byb2ZpbGVz
V2VyZVJlcXVlc3RlZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBmdW5jdGlvbiBw
b3B1bGF0ZUNhbGxiYWNrKHByb2ZpbGVIZWFkZXJzKSB7CisgICAgICAgIGZ1bmN0aW9uIHBvcHVs
YXRlQ2FsbGJhY2soZXJyb3IsIHByb2ZpbGVIZWFkZXJzKSB7CisgICAgICAgICAgICBpZiAoZXJy
b3IpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgcHJvZmlsZUhlYWRlcnMu
c29ydChmdW5jdGlvbihhLCBiKSB7IHJldHVybiBhLnVpZCAtIGIudWlkOyB9KTsKICAgICAgICAg
ICAgIHZhciBwcm9maWxlSGVhZGVyc0xlbmd0aCA9IHByb2ZpbGVIZWFkZXJzLmxlbmd0aDsKICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZUhlYWRlcnNMZW5ndGg7ICsraSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2Jq
ZWN0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3Qu
anMKaW5kZXggYTQzYmI3MS4uNGU5MzNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTQ4LDggKzQ4LDEwIEBAIFdlYklu
c3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbUxvY2FsT2JqZWN0ID0gZnVuY3Rpb24odmFsdWUpCiAK
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUgPSBmdW5jdGlvbihub2RlLCBj
YWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBteWNhbGxiYWNrKG9iamVjdCkKKyAgICBmdW5jdGlv
biBteWNhbGxiYWNrKGVycm9yLCBvYmplY3QpCiAgICAgeworICAgICAgICBpZiAoZXJyb3IpCisg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGNhbGxiYWNrKG9iamVjdCA/IFdlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQob2JqZWN0KSA6IG51bGwpOwogICAgIH0KICAgICBE
T01BZ2VudC5yZXNvbHZlTm9kZShub2RlLmlkLCAiZG9tLXNlbGVjdGlvbiIsIG15Y2FsbGJhY2sp
OwpAQCAtMTEyLDggKzExNCwxMCBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIGNhbGxiYWNrKFtdKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotICAgICAgICBmdW5jdGlvbiByZW1vdGVPYmplY3RCaW5kZXIocHJvcGVydGllcykK
KyAgICAgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0QmluZGVyKGVycm9yLCBwcm9wZXJ0aWVzKQog
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IHByb3BlcnRpZXMgJiYgaSA8IHByb3BlcnRp
ZXMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICAgICAgcHJvcGVydGllc1tpXS52YWx1ZSA9IFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocHJvcGVydGllc1tpXS52YWx1ZSk7
CiAgICAgICAgICAgICBjYWxsYmFjayhwcm9wZXJ0aWVzKTsKQEAgLTEyNyw3ICsxMzEsNyBAQCBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhbGxi
YWNrKGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBSdW50
aW1lQWdlbnQuc2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9vYmplY3RJZCwgbmFtZSwgdmFsdWUsIGNh
bGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LnNldFByb3BlcnR5VmFsdWUodGhpcy5fb2Jq
ZWN0SWQsIG5hbWUsIHZhbHVlLCBlcnJvckZpbHRlci5iaW5kKHRoaXMsIGNhbGxiYWNrKSk7CiAg
ICAgfSwKIAogICAgIHB1c2hOb2RlVG9Gcm9udGVuZDogZnVuY3Rpb24oY2FsbGJhY2spCkBAIC0x
NDAsNyArMTQ0LDcgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAK
ICAgICBldmFsdWF0ZTogZnVuY3Rpb24oZXhwcmVzc2lvbiwgY2FsbGJhY2spCiAgICAgewotICAg
ICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGVPbih0aGlzLl9vYmplY3RJZCwgZXhwcmVzc2lvbiwg
Y2FsbGJhY2spOworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGVPbih0aGlzLl9vYmplY3RJ
ZCwgZXhwcmVzc2lvbiwgZXJyb3JGaWx0ZXIuYmluZCh0aGlzLCBjYWxsYmFjaykpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwppbmRl
eCAzZjI3NDg1Li44MDVlMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdC5qcwpAQCAtMTE1LDggKzExNSwxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGZ1
bmN0aW9uIGRpZEdldFNjcmlwdFNvdXJjZShzb3VyY2UpCisgICAgICAgIGZ1bmN0aW9uIGRpZEdl
dFNjcmlwdFNvdXJjZShlcnJvciwgc291cmNlKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAo
ZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdGhpcy5fc291cmNl
ID0gc291cmNlOwogICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fc291cmNlKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcwppbmRleCAyNjQ3Y2VlLi45MTYwYjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNDA5LDkgKzQwOSw5IEBAIFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRoaXMu
X3BhdXNlZCB8fCAhc2VsZWN0ZWRDYWxsRnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgZnVuY3Rpb24gdXBkYXRpbmdDYWxsYmFja1dyYXBwZXIocmVzdWx0KQorICAgICAgICBm
dW5jdGlvbiB1cGRhdGluZ0NhbGxiYWNrV3JhcHBlcihlcnJvciwgcmVzdWx0KQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgaWYgKCFlcnJvciAmJiByZXN1
bHQpCiAgICAgICAgICAgICAgICAgY2FsbGJhY2soV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZChyZXN1bHQpKTsKICAgICAgICAgfQogICAgICAgICBEZWJ1Z2dlckFnZW50LmV2
YWx1YXRlT25DYWxsRnJhbWUoc2VsZWN0ZWRDYWxsRnJhbWUuaWQsIGNvZGUsIG9iamVjdEdyb3Vw
LCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHVwZGF0aW5nQ2FsbGJhY2tXcmFwcGVyLmJpbmQodGhp
cykpOwpAQCAtNzIxLDggKzcyMSwxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIF9zZXRQYXVzZU9uRXhjZXB0aW9uczogZnVuY3Rpb24ocGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZSkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHBhdXNlT25F
eGNlcHRpb25zU3RhdGUpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBwYXVzZU9u
RXhjZXB0aW9uc1N0YXRlKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgaWYgKHBhdXNlT25FeGNlcHRpb25zU3Rh
dGUgPT0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLkRv
bnRQYXVzZU9uRXhjZXB0aW9ucykKICAgICAgICAgICAgICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0
aW9uQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb24ndCBwYXVzZSBvbiBl
eGNlcHRpb25zLlxuQ2xpY2sgdG8gUGF1c2Ugb24gYWxsIGV4Y2VwdGlvbnMuIik7CiAgICAgICAg
ICAgICBlbHNlIGlmIChwYXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uQWxsRXhjZXB0aW9ucykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXgg
YjRjM2ZkYS4uZWE5ZGY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMKQEAgLTQ4LDYgKzQ4LDE1IEBACiAgICAgKG5ldyBJbWFnZSgpKS5z
cmMgPSAiSW1hZ2VzL3VuZG9ja0J1dHRvbkdseXBoLnBuZyI7CiB9KSgpOwogCitmdW5jdGlvbiBl
cnJvckZpbHRlcigpCit7CisgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs
bChhcmd1bWVudHMpOworICAgIHZhciBjYWxsYmFjayA9IGFyZ3Muc2hpZnQoKTsKKyAgICB2YXIg
ZXJyb3IgPSBhcmdzLnNoaWZ0KCk7CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgY2FsbGJhY2su
YXBwbHkodGhpcywgYXJncyk7Cit9CisKIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAgcmVzb3Vy
Y2VzOiB7fSwKICAgICBtaXNzaW5nTG9jYWxpemVkU3RyaW5nczoge30sCkBAIC01MjIsOSArNTMx
LDkgQEAgV2ViSW5zcGVjdG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMu
ZXh0ZW5zaW9uU2VydmVyLmluaXRFeHRlbnNpb25zKCk7CiAKLSAgICBmdW5jdGlvbiBvblBvcHVs
YXRlU2NyaXB0T2JqZWN0cygpCisgICAgZnVuY3Rpb24gb25Qb3B1bGF0ZVNjcmlwdE9iamVjdHMo
ZXJyb3IpCiAgICAgewotICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwpCisg
ICAgICAgIGlmICghZXJyb3IgJiYgIVdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwpCiAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0QWN0
aXZlUGFuZWwpOwogICAgIH0KICAgICBJbnNwZWN0b3JBZ2VudC5wb3B1bGF0ZVNjcmlwdE9iamVj
dHMob25Qb3B1bGF0ZVNjcmlwdE9iamVjdHMpOwpAQCAtNTM4LDkgKzU0NywxMCBAQCBXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogCiAgICAgQ29uc29sZUFnZW50LnNldENv
bnNvbGVNZXNzYWdlc0VuYWJsZWQodHJ1ZSk7CiAKLSAgICBmdW5jdGlvbiBwcm9wZXJ0eU5hbWVz
Q2FsbGJhY2sobmFtZXMpCisgICAgZnVuY3Rpb24gcHJvcGVydHlOYW1lc0NhbGxiYWNrKGVycm9y
LCBuYW1lcykKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5jc3NOYW1lQ29tcGxldGlvbnMg
PSBuZXcgV2ViSW5zcGVjdG9yLkNTU0NvbXBsZXRpb25zKG5hbWVzKTsKKyAgICAgICAgaWYgKCFl
cnJvcikKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NOYW1lQ29tcGxldGlvbnMgPSBuZXcg
V2ViSW5zcGVjdG9yLkNTU0NvbXBsZXRpb25zKG5hbWVzKTsKICAgICB9CiAgICAgLy8gQXMgYSBE
T01BZ2VudCBtZXRob2QsIHRoaXMgbmVlZHMgdG8gaGFwcGVuIGFmdGVyIHRoZSBmcm9udGVuZCBo
YXMgbG9hZGVkIGFuZCB0aGUgYWdlbnQgaXMgYXZhaWxhYmxlLgogICAgIENTU0FnZW50LmdldFN1
cHBvcnRlZENTU1Byb3BlcnRpZXMocHJvcGVydHlOYW1lc0NhbGxiYWNrKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85460</attachid>
            <date>2011-03-11 04:43:29 -0800</date>
            <delta_ts>2011-03-11 11:55:47 -0800</delta_ts>
            <desc>[patch] second version</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>69526</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YmY2OGI5Li43YTFjOTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMt
MTEgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGludHJv
ZHVjZSBlcnJvciBhcmd1bWVudCBmb3IgYWxsIHRoZSBjYWxsYmFja3Mgb24gZnJvbnRlbmQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjEwMAorCisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzOgorICAgICAg
ICAoaW5pdGlhbGl6ZV9FeHRlbnNpb25zVGVzdC5JbnNwZWN0b3JUZXN0LnJ1bkV4dGVuc2lvblRl
c3RzKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qczoK
KyAgICAgICAgKGluaXRpYWxpemVfSW5zcGVjdG9yVGVzdC5JbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlLm15Y2FsbGJhY2spOgorICAgICAgICAoaW5pdGlhbGl6ZV9JbnNwZWN0b3JUZXN0Lklu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UpOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9k
b20tYWdlbnQtcXVlcnktc2VsZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9j
b2wvY29uc29sZS1hZ2VudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3Rv
Y29sL2NvbnNvbGUtYWdlbnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvcnVu
dGltZS1hZ2VudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL3J1
bnRpbWUtYWdlbnQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVy
cm9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1l
cnJvcnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0
bWw6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGVzdC5qczoKKyAgICAg
ICAgKGluaXRpYWxpemVfVGltZWxpbmUuSW5zcGVjdG9yVGVzdC5zdG9wVGltZWxpbmUpOgorCiAy
MDExLTAzLTExICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEFkZGVkIG5ldyBHVEsrIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9ucy10ZXN0LmpzCmluZGV4IGZhMjI5
YjUuLmYxY2MwMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9leHRlbnNpb25zLXRlc3QuanMKQEAgLTM0LDcgKzM0LDkgQEAgSW5zcGVjdG9yVGVzdC5kaXNw
YXRjaE9uTWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2VJZCwgY2FsbGJhY2ssIHJlY3VycmluZykK
IAogSW5zcGVjdG9yVGVzdC5ydW5FeHRlbnNpb25UZXN0cyA9IGZ1bmN0aW9uKCkKIHsKLSAgICBS
dW50aW1lQWdlbnQuZXZhbHVhdGUoImxvY2F0aW9uLmhyZWYiLCAiY29uc29sZSIsIGZhbHNlLCBm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoImxvY2F0aW9uLmhy
ZWYiLCAiY29uc29sZSIsIGZhbHNlLCBmdW5jdGlvbihlcnJvciwgcmVzdWx0KSB7CisgICAgICAg
IGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIHBhZ2VVUkwgPSBy
ZXN1bHQuZGVzY3JpcHRpb247CiAgICAgICAgIHZhciBleHRlbnNpb25VUkwgPSAoL15odHRwcz86
Ly50ZXN0KHBhZ2VVUkwpID8KICAgICAgICAgICAgIHBhZ2VVUkwucmVwbGFjZSgvXihodHRwcz86
XC9cL1teL10qXC8pLiokLywiJDEiKSA6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzCmluZGV4IDRmYTRlOWYuLmM1MDdmNTkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0Lmpz
CkBAIC00OCw5ICs0OCwxMCBAQCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlID0gZnVuY3Rp
b24oY29kZSwgY2FsbGJhY2spCiB7CiAgICAgY2FsbGJhY2sgPSBJbnNwZWN0b3JUZXN0LnNhZmVX
cmFwKGNhbGxiYWNrKTsKIAotICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2socmVzdWx0KQorICAgIGZ1
bmN0aW9uIG15Y2FsbGJhY2soZXJyb3IsIHJlc3VsdCkKICAgICB7Ci0gICAgICAgIGNhbGxiYWNr
KFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSk7CisgICAgICAg
IGlmICghZXJyb3IpCisgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LmZyb21QYXlsb2FkKHJlc3VsdCkpOwogICAgIH0KICAgICBSdW50aW1lQWdlbnQuZXZhbHVh
dGUoY29kZSwgImNvbnNvbGUiLCBmYWxzZSwgbXljYWxsYmFjayk7CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWRpci1nbG9iYWwuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sCmluZGV4
IDc1NjMwOTMuLjQ0OTk2OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZGlyLWdsb2JhbC5odG1sCkBAIC0xNCw4ICsxNCwxMiBAQCBmdW5jdGlv
biB0ZXN0KCkKIHsKICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoIndpbmRvdyIsICJjb25zb2xl
IiwgZmFsc2UsIGV2YWxDYWxsYmFjayk7CiAKLSAgICBmdW5jdGlvbiBldmFsQ2FsbGJhY2socmVz
dWx0KQorICAgIGZ1bmN0aW9uIGV2YWxDYWxsYmFjayhlcnJvciwgcmVzdWx0KQogICAgIHsKKyAg
ICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCJFeGNlcHRpb246IiArIGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgICAgICBpZiAocmVzdWx0LnR5cGUgPT09ICJlcnJvciIpCiAgICAgICAgICAgICB0ZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCJFeGNlcHRpb246IiArIHJlc3VsdCk7CiAgICAgICAgIHZhciBv
YmplY3RQcm94eSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kb20tYWdlbnQt
cXVlcnktc2VsZWN0b3IuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9kb20t
YWdlbnQtcXVlcnktc2VsZWN0b3IuaHRtbAppbmRleCAxNTlmYWI2Li5kMjFlYTkxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZG9tLWFnZW50LXF1ZXJ5LXNlbGVj
dG9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2RvbS1hZ2VudC1x
dWVyeS1zZWxlY3Rvci5odG1sCkBAIC0zNiw4ICszNiwxMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgXSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZHVtcE5vZGVzKG5leHQsIG5vZGVJZHMp
CisgICAgZnVuY3Rpb24gZHVtcE5vZGVzKG5leHQsIGVycm9yLCBub2RlSWRzKQogICAgIHsKKyAg
ICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZWNvcmQoZXJy
b3IpOworCiAgICAgICAgIGlmICghKG5vZGVJZHMgaW5zdGFuY2VvZiBBcnJheSkpCiAgICAgICAg
ICAgICBub2RlSWRzID0gW25vZGVJZHNdOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC1leHBlY3RlZC50eHQKaW5kZXggMzcxNGRk
Ni4uOTUzYTA0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL2Nv
bnNvbGUtYWdlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90
b2NvbC9jb25zb2xlLWFnZW50LWV4cGVjdGVkLnR4dApAQCAtNyw3ICs3LDcgQEAgQ29uc29sZUFn
ZW50LnNldENvbnNvbGVNZXNzYWdlc0VuYWJsZWQoZmFsc2UpCiAKIHJlcXVlc3Q6CiB7Ci0gICAg
c2VxIDogPG51bWJlcj4KKyAgICBpZCA6IDxudW1iZXI+CiAgICAgZG9tYWluIDogIkNvbnNvbGUi
CiAgICAgY29tbWFuZCA6ICJzZXRDb25zb2xlTWVzc2FnZXNFbmFibGVkIgogICAgIGFyZ3VtZW50
cyA6IHsKQEAgLTE3LDcgKzE3LDcgQEAgcmVxdWVzdDoKIAogcmVzcG9uc2U6CiB7Ci0gICAgc2Vx
IDogPG51bWJlcj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogICAgIGJvZHkgOiB7CiAgICAg
ICAgIG5ld1N0YXRlIDogZmFsc2UKICAgICB9CkBAIC0yOCw3ICsyOCw3IEBAIENvbnNvbGVBZ2Vu
dC5zZXRDb25zb2xlTWVzc2FnZXNFbmFibGVkKHRydWUpCiAKIHJlcXVlc3Q6CiB7Ci0gICAgc2Vx
IDogPG51bWJlcj4KKyAgICBpZCA6IDxudW1iZXI+CiAgICAgZG9tYWluIDogIkNvbnNvbGUiCiAg
ICAgY29tbWFuZCA6ICJzZXRDb25zb2xlTWVzc2FnZXNFbmFibGVkIgogICAgIGFyZ3VtZW50cyA6
IHsKQEAgLTM4LDcgKzM4LDcgQEAgcmVxdWVzdDoKIAogcmVzcG9uc2U6CiB7Ci0gICAgc2VxIDog
PG51bWJlcj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogICAgIGJvZHkgOiB7CiAgICAgICAg
IG5ld1N0YXRlIDogdHJ1ZQogICAgIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgUnVudGltZUFnZW50LmV2
YWx1YXRlKCJjb25zb2xlLmluZm8oJ3Rlc3QnKTsgY29uc29sZS5pbmZvKCd0ZXN0JykiLCJ0ZXN0
LWdyb3VwIiwKIAogcmVxdWVzdDoKIHsKLSAgICBzZXEgOiA8bnVtYmVyPgorICAgIGlkIDogPG51
bWJlcj4KICAgICBkb21haW4gOiAiUnVudGltZSIKICAgICBjb21tYW5kIDogImV2YWx1YXRlIgog
ICAgIGFyZ3VtZW50cyA6IHsKQEAgLTk2LDcgKzk2LDcgQEAgZXZlbnQgQ29uc29sZUFnZW50LnVw
ZGF0ZUNvbnNvbGVNZXNzYWdlUmVwZWF0Q291bnQKIAogcmVzcG9uc2U6CiB7Ci0gICAgc2VxIDog
PG51bWJlcj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogICAgIGJvZHkgOiB7CiAgICAgICAg
IHJlc3VsdCA6IHsKICAgICAgICAgICAgIHR5cGUgOiAidW5kZWZpbmVkIgpAQCAtMTEwLDcgKzEx
MCw3IEBAIENvbnNvbGVBZ2VudC5jbGVhckNvbnNvbGVNZXNzYWdlcygpCiAKIHJlcXVlc3Q6CiB7
Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICBpZCA6IDxudW1iZXI+CiAgICAgZG9tYWluIDogIkNv
bnNvbGUiCiAgICAgY29tbWFuZCA6ICJjbGVhckNvbnNvbGVNZXNzYWdlcyIKICAgICBhcmd1bWVu
dHMgOiB7CkBAIC0xMjgsNyArMTI4LDcgQEAgZXZlbnQgQ29uc29sZUFnZW50LmNvbnNvbGVNZXNz
YWdlc0NsZWFyZWQKIAogcmVzcG9uc2U6CiB7Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICByZXF1
ZXN0SWQgOiA8bnVtYmVyPgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTM2LDcgKzEzNiw3IEBAIENvbnNvbGVBZ2Vu
dC5zZXRNb25pdG9yaW5nWEhSRW5hYmxlZChmYWxzZSkKIAogcmVxdWVzdDoKIHsKLSAgICBzZXEg
OiA8bnVtYmVyPgorICAgIGlkIDogPG51bWJlcj4KICAgICBkb21haW4gOiAiQ29uc29sZSIKICAg
ICBjb21tYW5kIDogInNldE1vbml0b3JpbmdYSFJFbmFibGVkIgogICAgIGFyZ3VtZW50cyA6IHsK
QEAgLTE0Niw3ICsxNDYsNyBAQCByZXF1ZXN0OgogCiByZXNwb25zZToKIHsKLSAgICBzZXEgOiA8
bnVtYmVyPgorICAgIHJlcXVlc3RJZCA6IDxudW1iZXI+CiB9CiAKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTQsNyArMTU0
LDcgQEAgQ29uc29sZUFnZW50LnNldE1vbml0b3JpbmdYSFJFbmFibGVkKHRydWUpCiAKIHJlcXVl
c3Q6CiB7Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICBpZCA6IDxudW1iZXI+CiAgICAgZG9tYWlu
IDogIkNvbnNvbGUiCiAgICAgY29tbWFuZCA6ICJzZXRNb25pdG9yaW5nWEhSRW5hYmxlZCIKICAg
ICBhcmd1bWVudHMgOiB7CkBAIC0xNjQsNyArMTY0LDcgQEAgcmVxdWVzdDoKIAogcmVzcG9uc2U6
CiB7Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogfQogCiA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL2NvbnNvbGUtYWdl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9jb25zb2xlLWFnZW50Lmh0
bWwKaW5kZXggZDRmYmZhMS4uYTY0NGQ3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb3RvY29sL2NvbnNvbGUtYWdlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvdG9jb2wvY29uc29sZS1hZ2VudC5odG1sCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICBbIkNvbnNvbGVBZ2VudCIsICJzZXRNb25pdG9yaW5nWEhSRW5hYmxl
ZCIsIGZhbHNlXSwKICAgICAgICAgWyJDb25zb2xlQWdlbnQiLCAic2V0TW9uaXRvcmluZ1hIUkVu
YWJsZWQiLCB0cnVlXV07CiAKLSAgICBJbnNwZWN0b3JUZXN0LnJ1blByb3RvY29sVGVzdFN1aXRl
KCJDb25zb2xlQWdlbnQiLCB0ZXN0U3VpdGUsIFsnc2VxJywgJ2lkJywgJ2luamVjdGVkU2NyaXB0
SWQnLCAnc3RhY2tUcmFjZSddKTsKKyAgICBJbnNwZWN0b3JUZXN0LnJ1blByb3RvY29sVGVzdFN1
aXRlKCJDb25zb2xlQWdlbnQiLCB0ZXN0U3VpdGUsIFsnaWQnLCAncmVxdWVzdElkJywgJ2luamVj
dGVkU2NyaXB0SWQnLCAnc3RhY2tUcmFjZSddKTsKIH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC1leHBlY3Rl
ZC50eHQKaW5kZXggNWU2MDdjNy4uYWZhOGI3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50LWV4cGVjdGVkLnR4dApAQCAtNSw3
ICs1LDcgQEAgUnVudGltZUFnZW50LmV2YWx1YXRlKCJ0ZXN0T2JqZWN0IiwidGVzdCIsZmFsc2Up
CiAKIHJlcXVlc3Q6CiB7Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICBpZCA6IDxudW1iZXI+CiAg
ICAgZG9tYWluIDogIlJ1bnRpbWUiCiAgICAgY29tbWFuZCA6ICJldmFsdWF0ZSIKICAgICBhcmd1
bWVudHMgOiB7CkBAIC0xNyw3ICsxNyw3IEBAIHJlcXVlc3Q6CiAKIHJlc3BvbnNlOgogewotICAg
IHNlcSA6IDxudW1iZXI+CisgICAgcmVxdWVzdElkIDogPG51bWJlcj4KICAgICBib2R5IDogewog
ICAgICAgICByZXN1bHQgOiB7CiAgICAgICAgICAgICBvYmplY3RJZCA6IHsKQEAgLTM2LDcgKzM2
LDcgQEAgUnVudGltZUFnZW50LmV2YWx1YXRlT24oeyJpbmplY3RlZFNjcmlwdElkIjo8bnVtYmVy
PiwiaWQiOjxudW1iZXI+fSwidGhpcy5hc3NpZ24KIAogcmVxdWVzdDoKIHsKLSAgICBzZXEgOiA8
bnVtYmVyPgorICAgIGlkIDogPG51bWJlcj4KICAgICBkb21haW4gOiAiUnVudGltZSIKICAgICBj
b21tYW5kIDogImV2YWx1YXRlT24iCiAgICAgYXJndW1lbnRzIDogewpAQCAtNTAsNyArNTAsNyBA
QCByZXF1ZXN0OgogCiByZXNwb25zZToKIHsKLSAgICBzZXEgOiA8bnVtYmVyPgorICAgIHJlcXVl
c3RJZCA6IDxudW1iZXI+CiAgICAgYm9keSA6IHsKICAgICAgICAgcmVzdWx0IDogewogICAgICAg
ICAgICAgdHlwZSA6ICJ1bmRlZmluZWQiCkBAIC02NCw3ICs2NCw3IEBAIFJ1bnRpbWVBZ2VudC5z
ZXRQcm9wZXJ0eVZhbHVlKHsiaW5qZWN0ZWRTY3JpcHRJZCI6PG51bWJlcj4sImlkIjo8bnVtYmVy
Pn0sImFzc2lnCiAKIHJlcXVlc3Q6CiB7Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICBpZCA6IDxu
dW1iZXI+CiAgICAgZG9tYWluIDogIlJ1bnRpbWUiCiAgICAgY29tbWFuZCA6ICJzZXRQcm9wZXJ0
eVZhbHVlIgogICAgIGFyZ3VtZW50cyA6IHsKQEAgLTc5LDcgKzc5LDcgQEAgcmVxdWVzdDoKIAog
cmVzcG9uc2U6CiB7Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVy
PgogICAgIGJvZHkgOiB7CiAgICAgICAgIHJlc3VsdCA6IHRydWUKICAgICB9CkBAIC05MCw3ICs5
MCw3IEBAIFJ1bnRpbWVBZ2VudC5zZXRQcm9wZXJ0eVZhbHVlKHsiaW5qZWN0ZWRTY3JpcHRJZCI6
PG51bWJlcj4sImlkIjo8bnVtYmVyPn0sInJlbW92CiAKIHJlcXVlc3Q6CiB7Ci0gICAgc2VxIDog
PG51bWJlcj4KKyAgICBpZCA6IDxudW1iZXI+CiAgICAgZG9tYWluIDogIlJ1bnRpbWUiCiAgICAg
Y29tbWFuZCA6ICJzZXRQcm9wZXJ0eVZhbHVlIgogICAgIGFyZ3VtZW50cyA6IHsKQEAgLTEwNSw3
ICsxMDUsNyBAQCByZXF1ZXN0OgogCiByZXNwb25zZToKIHsKLSAgICBzZXEgOiA8bnVtYmVyPgor
ICAgIHJlcXVlc3RJZCA6IDxudW1iZXI+CiAgICAgYm9keSA6IHsKICAgICAgICAgcmVzdWx0IDog
dHJ1ZQogICAgIH0KQEAgLTExNiw3ICsxMTYsNyBAQCBSdW50aW1lQWdlbnQuZ2V0UHJvcGVydGll
cyh7ImluamVjdGVkU2NyaXB0SWQiOjxudW1iZXI+LCJpZCI6PG51bWJlcj59LGZhbHNlLGZhbAog
CiByZXF1ZXN0OgogewotICAgIHNlcSA6IDxudW1iZXI+CisgICAgaWQgOiA8bnVtYmVyPgogICAg
IGRvbWFpbiA6ICJSdW50aW1lIgogICAgIGNvbW1hbmQgOiAiZ2V0UHJvcGVydGllcyIKICAgICBh
cmd1bWVudHMgOiB7CkBAIC0xMzEsNyArMTMxLDcgQEAgcmVxdWVzdDoKIAogcmVzcG9uc2U6CiB7
Ci0gICAgc2VxIDogPG51bWJlcj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogICAgIGJvZHkg
OiB7CiAgICAgICAgIHJlc3VsdCA6IHsKICAgICAgICAgICAgIDAgOiB7CkBAIC0xNjksNyArMTY5
LDcgQEAgUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QoeyJpbmplY3RlZFNjcmlwdElkIjo8bnVt
YmVyPiwiaWQiOjxudW1iZXI+fSkKIAogcmVxdWVzdDoKIHsKLSAgICBzZXEgOiA8bnVtYmVyPgor
ICAgIGlkIDogPG51bWJlcj4KICAgICBkb21haW4gOiAiUnVudGltZSIKICAgICBjb21tYW5kIDog
InJlbGVhc2VPYmplY3QiCiAgICAgYXJndW1lbnRzIDogewpAQCAtMTgyLDcgKzE4Miw3IEBAIHJl
cXVlc3Q6CiAKIHJlc3BvbnNlOgogewotICAgIHNlcSA6IDxudW1iZXI+CisgICAgcmVxdWVzdElk
IDogPG51bWJlcj4KIH0KIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5MCw3ICsxOTAsNyBAQCBSdW50aW1lQWdlbnQucmVs
ZWFzZU9iamVjdEdyb3VwKDxudW1iZXI+LCJ0ZXN0IikKIAogcmVxdWVzdDoKIHsKLSAgICBzZXEg
OiA8bnVtYmVyPgorICAgIGlkIDogPG51bWJlcj4KICAgICBkb21haW4gOiAiUnVudGltZSIKICAg
ICBjb21tYW5kIDogInJlbGVhc2VPYmplY3RHcm91cCIKICAgICBhcmd1bWVudHMgOiB7CkBAIC0y
MDEsNyArMjAxLDcgQEAgcmVxdWVzdDoKIAogcmVzcG9uc2U6CiB7Ci0gICAgc2VxIDogPG51bWJl
cj4KKyAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogfQogCiA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwKaW5kZXggYzZjZjNlMi4uZGVj
NjI0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUt
YWdlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1h
Z2VudC5odG1sCkBAIC0xNCw4ICsxNCw5IEBAIHRlc3RQcm9wZXJ0eSA9IHRydWU7CiAKIGZ1bmN0
aW9uIHRlc3QoKQogewotICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJlc3VsdCkKKyAgICBmdW5jdGlv
biBjYWxsYmFjayhlcnJvciwgcmVzdWx0KQogICAgIHsKKyAgICAgICAgdmFyIGludmFsaWRPYmpl
Y3RJZCA9IHtpZDogLTEsIGluamVjdGVkU2NyaXB0SWQ6IHJlc3VsdC5vYmplY3RJZC5pbmplY3Rl
ZFNjcmlwdElkfTsKICAgICAgICAgdmFyIHRlc3RTdWl0ZSA9IFsKICAgICAgICAgICAgIFsiUnVu
dGltZUFnZW50IiwgImV2YWx1YXRlIiwgJ3Rlc3RPYmplY3QnLCAndGVzdCcsIGZhbHNlXSwKICAg
ICAgICAgICAgIFsiUnVudGltZUFnZW50IiwgImV2YWx1YXRlT24iLCByZXN1bHQub2JqZWN0SWQs
ICd0aGlzLmFzc2lnbmVkQnlFdmFsdWF0ZU9uID0gImV2YWx1YXRlT24gZnVuY3Rpb24gd29ya3Mg
ZmluZSI7J10sCkBAIC0yNSw3ICsyNiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAg
WyJSdW50aW1lQWdlbnQiLCAicmVsZWFzZU9iamVjdCIsIHJlc3VsdC5vYmplY3RJZF0sCiAgICAg
ICAgICAgICBbIlJ1bnRpbWVBZ2VudCIsICJyZWxlYXNlT2JqZWN0R3JvdXAiLCByZXN1bHQub2Jq
ZWN0SWQuaW5qZWN0ZWRTY3JpcHRJZCwgJ3Rlc3QnXV07CiAKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5ydW5Qcm90b2NvbFRlc3RTdWl0ZSgiUnVudGltZUFnZW50IiwgdGVzdFN1aXRlLCBbJ3NlcScs
ICdpZCcsICdpbmplY3RlZFNjcmlwdElkJ10pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blBy
b3RvY29sVGVzdFN1aXRlKCJSdW50aW1lQWdlbnQiLCB0ZXN0U3VpdGUsIFsnaWQnLCAncmVxdWVz
dElkJywgJ2luamVjdGVkU2NyaXB0SWQnXSk7CiAgICAgfQogCiAgICAgUnVudGltZUFnZW50LmV2
YWx1YXRlKCd3aW5kb3cudGVzdE9iamVjdCcsICd0ZXN0JywgZmFsc2UsIGNhbGxiYWNrKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3Jz
LWV4cGVjdGVkLnR4dAppbmRleCAwNTNkNTRmLi5lZWI1OTJkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcmVwb3J0LXByb3RvY29sLWVycm9ycy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMtZXhwZWN0ZWQudHh0
CkBAIC0xLDY0ICsxLDY0IEBACiBUZXN0cyB0aGF0IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
IGlzIGNhdGNoaW5nIGluY29ycmVjdCBtZXNzYWdlcy4KIAogewotICAgIHNlcSA6IDAKLSAgICBl
cnJvcnMgOiB7CisgICAgcmVxdWVzdElkIDogMAorICAgIHByb3RvY29sRXJyb3JzIDogewogICAg
ICAgICAwIDogIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIG1lc3NhZ2UgZm9ybWF0LiBNZXNzYWdl
IHNob3VsZCBiZSBpbiBKU09OIGZvcm1hdC4iCiAgICAgfQogfQogewotICAgIHNlcSA6IDAKLSAg
ICBlcnJvcnMgOiB7CisgICAgcmVxdWVzdElkIDogMAorICAgIHByb3RvY29sRXJyb3JzIDogewog
ICAgICAgICAwIDogIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIG1lc3NhZ2UgZm9ybWF0LiAnY29t
bWFuZCcgcHJvcGVydHkgd2Fzbid0IGZvdW5kLiIKICAgICB9CiB9CiB7Ci0gICAgc2VxIDogMAot
ICAgIGVycm9ycyA6IHsKKyAgICByZXF1ZXN0SWQgOiAwCisgICAgcHJvdG9jb2xFcnJvcnMgOiB7
CiAgICAgICAgIDAgOiAiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbWVzc2FnZSBmb3JtYXQuIFRo
ZSB0eXBlIG9mICdjb21tYW5kJyBwcm9wZXJ0eSBzaG91bGQgYmUgc3RyaW5nLiIKICAgICB9CiB9
CiB7Ci0gICAgc2VxIDogMAotICAgIGVycm9ycyA6IHsKLSAgICAgICAgMCA6ICJQcm90b2NvbCBF
cnJvcjogSW52YWxpZCBtZXNzYWdlIGZvcm1hdC4gJ3NlcScgcHJvcGVydHkgd2FzIG5vdCBmb3Vu
ZCBpbiB0aGUgcmVxdWVzdC4iCisgICAgcmVxdWVzdElkIDogMAorICAgIHByb3RvY29sRXJyb3Jz
IDogeworICAgICAgICAwIDogIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIG1lc3NhZ2UgZm9ybWF0
LiAnaWQnIHByb3BlcnR5IHdhcyBub3QgZm91bmQgaW4gdGhlIHJlcXVlc3QuIgogICAgIH0KIH0K
IHsKLSAgICBzZXEgOiAwCi0gICAgZXJyb3JzIDogewotICAgICAgICAwIDogIlByb3RvY29sIEVy
cm9yOiBJbnZhbGlkIG1lc3NhZ2UgZm9ybWF0LiBUaGUgdHlwZSBvZiAnc2VxJyBwcm9wZXJ0eSBz
aG91bGQgYmUgbnVtYmVyLiIKKyAgICByZXF1ZXN0SWQgOiAwCisgICAgcHJvdG9jb2xFcnJvcnMg
OiB7CisgICAgICAgIDAgOiAiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbWVzc2FnZSBmb3JtYXQu
IFRoZSB0eXBlIG9mICdpZCcgcHJvcGVydHkgc2hvdWxkIGJlIG51bWJlci4iCiAgICAgfQogfQog
ewotICAgIHNlcSA6IDEKLSAgICBlcnJvcnMgOiB7CisgICAgcmVxdWVzdElkIDogMQorICAgIHBy
b3RvY29sRXJyb3JzIDogewogICAgICAgICAwIDogIlByb3RvY29sIEVycm9yOiBJbnZhbGlkIGNv
bW1hbmQgd2FzIHJlY2VpdmVkLiAndGVzdCcgd2Fzbid0IGZvdW5kIGluIGRvbWFpbiBET00uIgog
ICAgIH0KIH0KIHsKLSAgICBzZXEgOiAyCi0gICAgZXJyb3JzIDogeworICAgIHJlcXVlc3RJZCA6
IDIKKyAgICBwcm90b2NvbEVycm9ycyA6IHsKICAgICAgICAgMCA6ICJQcm90b2NvbCBFcnJvcjog
J2FyZ3VtZW50cycgcHJvcGVydHkgd2l0aCB0eXBlICdvYmplY3QnIHdhcyBub3QgZm91bmQuIgog
ICAgIH0KIH0KIHsKLSAgICBzZXEgOiAzCi0gICAgZXJyb3JzIDogeworICAgIHJlcXVlc3RJZCA6
IDMKKyAgICBwcm90b2NvbEVycm9ycyA6IHsKICAgICAgICAgMCA6ICJQcm90b2NvbCBFcnJvcjog
J2FyZ3VtZW50cycgcHJvcGVydHkgd2l0aCB0eXBlICdvYmplY3QnIHdhcyBub3QgZm91bmQuIgog
ICAgIH0KIH0KIHsKLSAgICBzZXEgOiA0Ci0gICAgZXJyb3JzIDogeworICAgIHJlcXVlc3RJZCA6
IDQKKyAgICBwcm90b2NvbEVycm9ycyA6IHsKICAgICAgICAgMCA6ICJQcm90b2NvbCBFcnJvcjog
QXJndW1lbnQgJ2ZyYW1lSWQnIHdpdGggdHlwZSAnTnVtYmVyJyB3YXMgbm90IGZvdW5kLiIKICAg
ICAgICAgMSA6ICJQcm90b2NvbCBFcnJvcjogQXJndW1lbnQgJ3VybCcgd2l0aCB0eXBlICdTdHJp
bmcnIHdhcyBub3QgZm91bmQuIgogICAgICAgICAyIDogIlByb3RvY29sIEVycm9yOiBBcmd1bWVu
dCAnYmFzZTY0RW5jb2RlJyB3aXRoIHR5cGUgJ0Jvb2xlYW4nIHdhcyBub3QgZm91bmQuIgogICAg
IH0KIH0KIHsKLSAgICBzZXEgOiA1Ci0gICAgZXJyb3JzIDogeworICAgIHJlcXVlc3RJZCA6IDUK
KyAgICBwcm90b2NvbEVycm9ycyA6IHsKICAgICAgICAgMCA6ICJQcm90b2NvbCBFcnJvcjogQXJn
dW1lbnQgJ2ZyYW1lSWQnIHdpdGggdHlwZSAnTnVtYmVyJyB3YXMgbm90IGZvdW5kLiIKICAgICAg
ICAgMSA6ICJQcm90b2NvbCBFcnJvcjogQXJndW1lbnQgJ3VybCcgd2l0aCB0eXBlICdTdHJpbmcn
IHdhcyBub3QgZm91bmQuIgogICAgICAgICAyIDogIlByb3RvY29sIEVycm9yOiBBcmd1bWVudCAn
YmFzZTY0RW5jb2RlJyB3aXRoIHR5cGUgJ0Jvb2xlYW4nIHdhcyBub3QgZm91bmQuIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXBvcnQtcHJvdG9jb2wtZXJyb3JzLmh0bWwKaW5kZXgg
MTNlY2FjNS4uZWVkYmVkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3JlcG9y
dC1wcm90b2NvbC1lcnJvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVwb3J0
LXByb3RvY29sLWVycm9ycy5odG1sCkBAIC0xMCwxMiArMTAsMTIgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgICd7fScsCiAgICAgICAgICd7ImNvbW1hbmQiOjF9JywKICAgICAgICAgJ3siZG9t
YWluIjoiTmV0d29yayIsImNvbW1hbmQiOiJyZXNvdXJjZUNvbnRlbnQifScsCi0gICAgICAgICd7
InNlcSI6Im5vdCBhIG51bWJlciIsImRvbWFpbiI6Ik5ldHdvcmsiLCJjb21tYW5kIjoicmVzb3Vy
Y2VDb250ZW50In0nLAotICAgICAgICAneyJzZXEiOjEsImRvbWFpbiI6IkRPTSIsImNvbW1hbmQi
OiJ0ZXN0In0nLAotICAgICAgICAneyJzZXEiOjIsImRvbWFpbiI6Ik5ldHdvcmsiLCJjb21tYW5k
IjoicmVzb3VyY2VDb250ZW50In0nLAotICAgICAgICAneyJzZXEiOjMsImRvbWFpbiI6Ik5ldHdv
cmsiLCJjb21tYW5kIjoicmVzb3VyY2VDb250ZW50IiwiYXJndW1lbnRzIjpbXX0nLAotICAgICAg
ICAneyJzZXEiOjQsImRvbWFpbiI6Ik5ldHdvcmsiLCJjb21tYW5kIjoicmVzb3VyY2VDb250ZW50
IiwiYXJndW1lbnRzIjp7fX0nLAotICAgICAgICAneyJzZXEiOjUsImRvbWFpbiI6Ik5ldHdvcmsi
LCJjb21tYW5kIjoicmVzb3VyY2VDb250ZW50IiwiYXJndW1lbnRzIjp7ImlkZW50aWZpZXIiOiJu
b3QgYSBudW1iZXIifX0nLAorICAgICAgICAneyJpZCI6Im5vdCBhIG51bWJlciIsImRvbWFpbiI6
Ik5ldHdvcmsiLCJjb21tYW5kIjoicmVzb3VyY2VDb250ZW50In0nLAorICAgICAgICAneyJpZCI6
MSwiZG9tYWluIjoiRE9NIiwiY29tbWFuZCI6InRlc3QifScsCisgICAgICAgICd7ImlkIjoyLCJk
b21haW4iOiJOZXR3b3JrIiwiY29tbWFuZCI6InJlc291cmNlQ29udGVudCJ9JywKKyAgICAgICAg
J3siaWQiOjMsImRvbWFpbiI6Ik5ldHdvcmsiLCJjb21tYW5kIjoicmVzb3VyY2VDb250ZW50Iiwi
YXJndW1lbnRzIjpbXX0nLAorICAgICAgICAneyJpZCI6NCwiZG9tYWluIjoiTmV0d29yayIsImNv
bW1hbmQiOiJyZXNvdXJjZUNvbnRlbnQiLCJhcmd1bWVudHMiOnt9fScsCisgICAgICAgICd7Imlk
Ijo1LCJkb21haW4iOiJOZXR3b3JrIiwiY29tbWFuZCI6InJlc291cmNlQ29udGVudCIsImFyZ3Vt
ZW50cyI6eyJpZGVudGlmaWVyIjoibm90IGEgbnVtYmVyIn19JywKICAgICBdOwogICAgIHZhciBu
dW1iZXJPZlJlcG9ydHMgPSAwOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
L3N0eWxlcy1uZXctQVBJLmh0bWwKaW5kZXggYjg1ZjcyOS4uYzE0MjdhMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtbmV3LUFQSS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbApAQCAtMTQsOCAr
MTQsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgdmFyIGJvZHlJZDsKICAgICBmdW5jdGlvbiB0
ZXN0X3N0eWxlcyhub2RlKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVz
KQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVzKQogICAgICAgICB7Cisg
ICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZEVycm9yKCJlcnJvcjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQ29tcHV0ZWQgc3R5bGUgcHJv
cGVydHkgY291bnQgZm9yIGJvZHkgPT09Iik7CiAgICAgICAgICAgICB2YXIgcHJvcENvdW50ID0g
c3R5bGVzLmNvbXB1dGVkU3R5bGUuY3NzUHJvcGVydGllcy5sZW5ndGg7CkBAIC01Niw4ICs2MSwx
MiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHRlc3RfdGFibGVTdHlsZXMoKQog
ICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVzKQorICAgICAgICBmdW5jdGlv
biBjYWxsYmFjayhlcnJvciwgc3R5bGVzKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIg
KyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIj09PSBBdHRyaWJ1dGUgc3R5bGVzIGZvciB0YWJsZSA9PT0iKTsKICAg
ICAgICAgICAgIGZvciAodmFyIGF0dHIgaW4gc3R5bGVzLnN0eWxlQXR0cmlidXRlcykgewpAQCAt
NzMsNyArODIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgfQogICAgICAgICBJbnNwZWN0
b3JUZXN0Lm5vZGVXaXRoSWQoInRoZXRhYmxlIiwgbm9kZUNhbGxiYWNrKTsKICAgICB9Ci0gICAg
CisKICAgICBmdW5jdGlvbiB0ZXN0X3N0eWxlU2hlZXRzKCkKICAgICB7CiAgICAgICAgIHZhciBu
ZXdTdHlsZVNoZWV0VGV4dCA9CkBAIC05Myw4ICsxMDIsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICAgICAgbG9hZEFuZER1bXBTdHlsZVNoZWV0LmJpbmQobnVsbCwgc3R5bGVTaGVl
dC5zdHlsZVNoZWV0SWQsIHRlc3RfY2hhbmdlU2VsZWN0b3IpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIGZ1bmN0aW9uIHN0eWxlU2hlZXRJZHNMb2FkZWQoaWRzKQorICAgICAgICBmdW5jdGlvbiBz
dHlsZVNoZWV0SWRzTG9hZGVkKGVycm9yLCBpZHMpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGlm
IChlcnJvcikgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJlcnJv
cjogIiArIGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiIik7CiAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IEFsbCBzdHlsZXNoZWV0cyA9PT0iKTsKICAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgKytpKQpAQCAtMTA1LDggKzExOCwx
MiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHRlc3RfY2hhbmdlU2VsZWN0b3Io
c3R5bGVTaGVldCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZFNldFNlbGVjdG9yKHJ1bGUp
CisgICAgICAgIGZ1bmN0aW9uIGRpZFNldFNlbGVjdG9yKGVycm9yLCBydWxlKQogICAgICAgICB7
CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZnRlciBzZWxlY3RvciBz
ZXQgPT09Iik7CiAgICAgICAgICAgICBsb2FkQW5kRHVtcFN0eWxlU2hlZXQocnVsZS5ydWxlSWQu
c3R5bGVTaGVldElkLCB0ZXN0X3NldFN0eWxlVGV4dCk7CkBAIC0xMTcsOCArMTM0LDEyIEBAIGZ1
bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gdGVzdF9zZXRTdHlsZVRleHQoc3R5bGVTaGVl
dCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZFNldFN0eWxlVGV4dChzdHlsZSkKKyAgICAg
ICAgZnVuY3Rpb24gZGlkU2V0U3R5bGVUZXh0KGVycm9yLCBzdHlsZSkKICAgICAgICAgeworICAg
ICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIgc3R5bGUgdGV4dCBzZXQg
PT09Iik7CiAgICAgICAgICAgICBsb2FkQW5kRHVtcFN0eWxlU2hlZXQoc3R5bGUuc3R5bGVJZC5z
dHlsZVNoZWV0SWQsIHRlc3RfYWRkUnVsZSk7CkBAIC0xMzQsMjEgKzE1NSwzMyBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHRlc3RfYWRkUnVsZSgpCiAgICAgewotICAgICAgICBm
dW5jdGlvbiBkaWRHZXRTdHlsZXMoc3R5bGVzKQorICAgICAgICBmdW5jdGlvbiBkaWRHZXRTdHls
ZXMoZXJyb3IsIHN0eWxlcykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3Ip
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCI9PT0gTWF0Y2hlZCBydWxlcyBhZnRlciBydWxlIGFkZGVkID09PSIpOwogICAgICAg
ICAgICAgZHVtcFJ1bGVzQXJyYXkoc3R5bGVzLm1hdGNoZWRDU1NSdWxlcyk7CiAgICAgICAgICAg
ICB0ZXN0X2Rpc2FibGVQcm9wZXJ0eSgpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24g
ZGlkU2V0U3R5bGVUZXh0KHN0eWxlKQorICAgICAgICBmdW5jdGlvbiBkaWRTZXRTdHlsZVRleHQo
ZXJyb3IsIHN0eWxlKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgQ1NTQWdl
bnQuZ2V0U3R5bGVzRm9yTm9kZShib2R5SWQsIGRpZEdldFN0eWxlcyk7CiAgICAgICAgIH0KIAot
ICAgICAgICBmdW5jdGlvbiBydWxlQWRkZWQocnVsZSkKKyAgICAgICAgZnVuY3Rpb24gcnVsZUFk
ZGVkKGVycm9yLCBydWxlKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgQ1NT
QWdlbnQuc2V0UHJvcGVydHlUZXh0KHJ1bGUuc3R5bGUuc3R5bGVJZCwgMCwgImZvbnQtZmFtaWx5
OiBzZXJpZjsiLCBmYWxzZSwgZGlkU2V0U3R5bGVUZXh0KTsKICAgICAgICAgfQogCkBAIC0xNTcs
MTYgKzE5MCwyNCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHRlc3RfZGlzYWJs
ZVByb3BlcnR5KCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGRpZERpc2FibGVQcm9wZXJ0eShz
dHlsZSkKKyAgICAgICAgZnVuY3Rpb24gZGlkRGlzYWJsZVByb3BlcnR5KGVycm9yLCBzdHlsZSkK
ICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoImVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCIiKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCI9PT0gQWZ0ZXIg
dHdvIHByb3BlcnRpZXMgZGlzYWJsZWQsIG9uZSBwcm9wZXJ0eSBhZGRlZCwgb25lIHByb3BlcnR5
IHJlbW92ZWQgPT09Iik7CiAgICAgICAgICAgICBkdW1wUnVsZU9yU3R5bGUoc3R5bGUpOwogICAg
ICAgICAgICAgdGVzdF9lbmFibGVQcm9wZXJ0eShzdHlsZS5zdHlsZUlkKTsKICAgICAgICAgfQog
Ci0gICAgICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKHN0eWxlcykKKyAgICAgICAgZnVuY3Rp
b24gc3R5bGVzQ2FsbGJhY2soZXJyb3IsIHN0eWxlcykKICAgICAgICAgeworICAgICAgICAgICAg
aWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImVy
cm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIC8vIGhlaWdodCA6IDEwMCUgOwogICAgICAgICAgICAgLy8gYm9yZGVyOiAx
cHggc29saWQ7CiAgICAgICAgICAgICAvLyBib3JkZXItd2lkdGg6IDJweDsKQEAgLTIwNyw4ICsy
NDgsMTIgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICBmdW5jdGlvbiB0ZXN0X2VuYWJsZVByb3Bl
cnR5KHN0eWxlSWQpCiAgICAgewotICAgICAgICBmdW5jdGlvbiBkaWRFbmFibGVQcm9wZXJ0eShz
dHlsZSkKKyAgICAgICAgZnVuY3Rpb24gZGlkRW5hYmxlUHJvcGVydHkoZXJyb3IsIHN0eWxlKQog
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiZXJyb3I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBBZnRlciBw
cm9wZXJ0eSBlbmFibGVkID09PSIpOwogICAgICAgICAgICAgZHVtcFJ1bGVPclN0eWxlKHN0eWxl
KTsKQEAgLTI0OCwxMCArMjkzLDE4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIH0KIAogCi0gICAg
ZnVuY3Rpb24gbG9hZEFuZER1bXBTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgY29udGludWF0aW9u
KQorICAgIGZ1bmN0aW9uIGxvYWRBbmREdW1wU3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIGNvbnRp
bnVhdGlvbiwgZXJyb3IpCiAgICAgewotICAgICAgICBmdW5jdGlvbiBzdHlsZVNoZWV0TG9hZGVk
KHN0eWxlU2hlZXQpCisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZWNvcmQoImVycm9yOiAiICsgZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIGZ1bmN0aW9uIHN0eWxlU2hlZXRMb2FkZWQoZXJyb3IsIHN0eWxl
U2hlZXQpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVjb3JkKCJlcnJvcjogIiArIGVycm9yKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiIik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU3R5
bGVTaGVldDogJyIgKyBzdHlsZVNoZWV0LnRleHQgKyAiJyIpOwogICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzdHlsZVNoZWV0LnJ1bGVzLmxlbmd0aDsgKytpKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwK
aW5kZXggODRlMzA5Yi4uYTJlNzdmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCkBAIC00MCwxMiArNDAsMTYg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIENTU0FnZW50LmdldFN0eWxlc0Zvck5vZGUobm9k
ZS5pZCwgc3RlcDIpOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHN0ZXAyKHN0eWxlcykKKyAgICBm
dW5jdGlvbiBzdGVwMihlcnJvciwgc3R5bGVzKQogICAgIHsKLSAgICAgICAgdmFyIG1hdGNoZWRD
U1NSdWxlcyA9IHN0eWxlcy5tYXRjaGVkQ1NTUnVsZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgZHVtcFN0eWxl
RGF0YShtYXRjaGVkQ1NTUnVsZXNbaV0pOwotICAgICAgICBkdW1wU3R5bGVEYXRhKHN0eWxlcy5p
bmxpbmVTdHlsZSk7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJlcnJvcjogIiArIGVycm9yKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICB2YXIgbWF0Y2hlZENTU1J1bGVzID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxlczsKKyAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgICAgIGR1bXBTdHlsZURhdGEobWF0Y2hlZENTU1J1bGVzW2ldKTsKKyAgICAg
ICAgICAgIGR1bXBTdHlsZURhdGEoc3R5bGVzLmlubGluZVN0eWxlKTsKKyAgICAgICAgfQogICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRlc3QuanMKaW5kZXggMDI0OWQ4My4u
YmUwOTdhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LXRlc3QuanMKQEAgLTE4LDcgKzE4LDcgQEAgSW5zcGVjdG9yVGVzdC50aW1lbGluZU5vbkRldGVy
bWluaXN0aWNQcm9wcyA9IHsKIEluc3BlY3RvclRlc3Quc3RhcnRUaW1lbGluZSA9IGZ1bmN0aW9u
KGNhbGxiYWNrKQogewogICAgIEluc3BlY3RvclRlc3QuX3RpbWVsaW5lUmVjb3JkcyA9IFtdOwot
ICAgIFRpbWVsaW5lQWdlbnQuc3RhcnQoY2FsbGJhY2spOworICAgIFRpbWVsaW5lQWdlbnQuc3Rh
cnQoZXJyb3JGaWx0ZXIuYmluZCh0aGlzLCBjYWxsYmFjaykpOwogICAgIGZ1bmN0aW9uIGFkZFJl
Y29yZChyZWNvcmQpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0Ll90aW1lbGluZVJlY29y
ZHMucHVzaChyZWNvcmQpOwpAQCAtMzAsNyArMzAsNyBAQCBJbnNwZWN0b3JUZXN0LnN0YXJ0VGlt
ZWxpbmUgPSBmdW5jdGlvbihjYWxsYmFjaykKIAogSW5zcGVjdG9yVGVzdC5zdG9wVGltZWxpbmUg
PSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBUaW1lbGluZUFnZW50LnN0b3AoY2FsbGJhY2sp
OworICAgIFRpbWVsaW5lQWdlbnQuc3RvcChlcnJvckZpbHRlci5iaW5kKHRoaXMsIGNhbGxiYWNr
KSk7CiB9OwogCiBJbnNwZWN0b3JUZXN0LnBlcmZvcm1BY3Rpb25zQW5kUHJpbnQgPSBmdW5jdGlv
bihhY3Rpb25zLCB0eXBlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YjE5OWZhLi4zZTE3NTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTA0IEBACisyMDExLTAzLTExICBJbHlhIFRpa2hvbm92c2t5ICA8
bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbnRyb2R1Y2UgZXJyb3IgYXJndW1lbnQgZm9y
IGFsbCB0aGUgY2FsbGJhY2tzIG9uIGZyb250ZW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxMDAKKworICAgICAgICAqIGluc3BlY3Rvci9Db2Rl
R2VuZXJhdG9ySW5zcGVjdG9yLnBtOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRSdWxlcy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLmV2YWx1YXRlSW5U
YXJnZXRXaW5kb3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3Nz
UnVsZS5wcm90b3R5cGUuZG9SdW4uYWxsU3R5bGVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkF1ZGl0UnVsZXMuVW51c2VkQ3NzUnVsZS5wcm90b3R5cGUuZG9SdW4pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUu
ZG9SdW4uZ2V0U3R5bGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdl
RGltZW5zaW9uc1J1bGUucHJvdG90eXBlLmRvUnVuKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVN
b2RlbC5wcm90b3R5cGUuZ2V0U3R5bGVzQXN5bmMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U1N0eWxlTW9kZWwucHJvdG90eXBlLmdldENvbXB1dGVkU3R5bGVBc3luYyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuZ2V0SW5saW5lU3R5bGVBc3luYyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuc2V0UnVsZVNl
bGVjdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5z
ZXRSdWxlU2VsZWN0b3IuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwucHJvdG90eXBlLmFkZFJ1bGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwucHJvdG90eXBlLmFkZFJ1bGUuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9zdHlsZVNoZWV0Q2hhbmdlZC5jYWxsYmFjayk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuX3N0eWxlU2hlZXRD
aGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5f
b25SZXZlcnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJv
dG90eXBlLmluc2VydFByb3BlcnR5QXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3Bl
cnR5LnByb3RvdHlwZS5zZXRUZXh0LmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
U1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0VGV4dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NT
UHJvcGVydHkucHJvdG90eXBlLnNldERpc2FibGVkLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0RGlzYWJsZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlLnNldFRleHQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZVZpZXcucHJvdG90eXBlLmV2YWxJbkluc3BlY3RlZFdpbmRvdyk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2Rl
LnByb3RvdHlwZS5zZXROb2RlTmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5w
cm90b3R5cGUuc2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnBy
b3RvdHlwZS5zZXRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJv
dG90eXBlLnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5w
cm90b3R5cGUuY2hpbGROb2Rlcy5teWNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLnByb3RvdHlwZS5jaGlsZE5vZGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01O
b2RlLnByb3RvdHlwZS5vdXRlckhUTUwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUu
cHJvdG90eXBlLnNldE91dGVySFRNTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5w
cm90b3R5cGUucmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90
b3R5cGUuY29weU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlw
ZS5wdXNoTm9kZVRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnBy
b3RvdHlwZS5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRPTUFnZW50LnByb3RvdHlwZS5fZG9jdW1lbnRVcGRhdGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5BcHBsaWNhdGlvbkNhY2hlRGlzcGF0Y2hlci5nZXRBcHBsaWNhdGlvbkNhY2hlc0FzeW5j
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db29raWVzLmdldENvb2tpZXNBc3luYyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnMuZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2Rl
QXN5bmMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5nZXRFbnRyaWVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5zZXRJdGVtKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5yZW1vdmVJdGVtKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRhdGFiYXNlLnByb3RvdHlwZS5nZXRUYWJsZU5hbWVzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EYXRhYmFzZS5wcm90b3R5cGUuZXhlY3V0ZVNxbCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnQuZGlkU2V0QnJlYWtwb2ludCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuc2V0QnJlYWtw
b2ludEJ5U291cmNlSWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJv
dG90eXBlLmVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnBy
b3RvdHlwZS5fc2V0U2VhcmNoaW5nRm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9jcmVhdGVUb29sdGlwRm9yTm9kZS5yZXNvbHZlZE5v
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9jcmVhdGVUb29sdGlwRm9yTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuX3RhZ05hbWVFZGl0aW5nQ29tbWl0dGVkLmNoYW5nZVRhZ05h
bWVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5w
cm90b3R5cGUuX3RhZ05hbWVFZGl0aW5nQ29tbWl0dGVkKToKKyAgICAgICAgKCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FeHRlbnNpb25XYXRjaFNpZGViYXJQYW5lLnByb3RvdHlwZS5fb25FdmFsdWF0ZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25FdmFsdWF0ZU9u
SW5zcGVjdGVkUGFnZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFu
YWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUu
cmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtNYW5hZ2VyLnBy
b3RvdHlwZS5fcHJvY2Vzc0NhY2hlZFJlc291cmNlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
Vmlldy5wcm9maWxlQ2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVW
aWV3KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanM6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLmdldFByb3BlcnRpZXMucmVtb3RlT2JqZWN0Qmlu
ZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLmdldFBy
b3BlcnRpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUu
c2V0UHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnBy
b3RvdHlwZS5ldmFsdWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZS5yZXF1ZXN0U291cmNl
LmRpZEdldFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3Rv
dHlwZS5yZXF1ZXN0U291cmNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
LmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZS51cGRhdGluZ0NhbGxiYWNrV3JhcHBlcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5ldmFsdWF0ZUluU2Vs
ZWN0ZWRDYWxsRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX3NldFBhdXNlT25FeGNlcHRpb25zKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9M
b2FkZWREb25lLm9uUG9wdWxhdGVTY3JpcHRPYmplY3RzKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5kb0xvYWRlZERvbmUucHJvcGVydHlOYW1lc0NhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5kb0xvYWRlZERvbmUpOgorCiAyMDExLTAzLTExICBBbnRvbiBNdWhpbiAgPGFudG9ubUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KaW5kZXgg
ZjRiMGQ1Ni4uNmI5YjRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucG0KQEAgLTQxMyw3ICs0MTMsNiBAQCBzdWIgZ2VuZXJhdGVE
b2N1bWVudGF0aW9uRXZlbnQKIAogICAgIHB1c2goQGxpbmVzLCAiPHByZSBzdHlsZT0nYmFja2dy
b3VuZDogbGlnaHRHcmV5OyBwYWRkaW5nOiAxMHB4Jz4iKTsKICAgICBwdXNoKEBsaW5lcywgInsi
KTsKLSAgICBwdXNoKEBsaW5lcywgIiAgICBzZXE6ICZsdDtudW1iZXImZ3Q7LCIpOwogICAgIHB1
c2goQGxpbmVzLCAiICAgIHR5cGU6IFwiZXZlbnRcIiwiKTsKICAgICBwdXNoKEBsaW5lcywgIiAg
ICBkb21haW46IFwiJGRvbWFpblwiLCIpOwogICAgIGlmIChzY2FsYXIoQGFyZ3NGaWx0ZXJlZCkp
IHsKQEAgLTQ3OCw2ICs0NzcsOSBAQCBzdWIgZ2VuZXJhdGVCYWNrZW5kRnVuY3Rpb24KIAogICAg
ICMgZGVjbGFyZSBsb2NhbCB2YXJpYWJsZXMgZm9yIG91dCBhcmd1bWVudHMuCiAgICAgcHVzaChA
ZnVuY3Rpb24sIG1hcCgiICAgICIgLiB0eXBlVHJhaXRzKCRfLT50eXBlLCAidmFyaWFibGUiKSAu
ICIgIiAuICRfLT5uYW1lIC4gIiA9ICIgLiB0eXBlVHJhaXRzKCRfLT50eXBlLCAiZGVmYXVsdFZh
bHVlIikgLiAiOyIsIEBvdXRBcmdzKSk7CisgICAgcHVzaChAZnVuY3Rpb24sICIiKTsKKyAgICBw
dXNoKEBmdW5jdGlvbiwgIiAgICBFcnJvclN0cmluZyBlcnJvcjsiKTsKKyAgICBwdXNoKEBmdW5j
dGlvbiwgIiIpOwogCiAgICAgbXkgJGluZGVudCA9ICIiOwogICAgIGlmIChzY2FsYXIoQGluQXJn
cykpIHsKQEAgLTQ5MywxMiArNDk1LDkgQEAgc3ViIGdlbmVyYXRlQmFja2VuZEZ1bmN0aW9uCiAg
ICAgICAgICRpbmRlbnQgPSAiICAgICI7CiAgICAgfQogCi0gICAgcHVzaChAZnVuY3Rpb24sICIk
aW5kZW50ICAgIEVycm9yU3RyaW5nIGVycm9yOyIpOwogICAgIG15ICRhcmdzID0gam9pbigiLCAi
LCAoIiZlcnJvciIsIG1hcCgkXy0+bmFtZSwgQGluQXJncyksIG1hcCgiJiIgLiAkXy0+bmFtZSwg
QG91dEFyZ3MpKSk7CiAgICAgcHVzaChAZnVuY3Rpb24sICIkaW5kZW50ICAgIGlmICghcHJvdG9j
b2xFcnJvcnMtPmxlbmd0aCgpKSIpOwogICAgIHB1c2goQGZ1bmN0aW9uLCAiJGluZGVudCAgICAg
ICAgJGRvbWFpbkFjY2Vzc29yLT4kZnVuY3Rpb25OYW1lKCRhcmdzKTsiKTsKLSAgICBwdXNoKEBm
dW5jdGlvbiwgIiRpbmRlbnQgICAgaWYgKGVycm9yLmxlbmd0aCgpKSIpOwotICAgIHB1c2goQGZ1
bmN0aW9uLCAiJGluZGVudCAgICAgICAgcHJvdG9jb2xFcnJvcnMtPnB1c2hTdHJpbmcoZXJyb3Ip
OyIpOwogICAgIGlmIChzY2FsYXIoQGluQXJncykpIHsKICAgICAgICAgcHVzaChAZnVuY3Rpb24s
ICIgICAgfSBlbHNlIHsiKTsKICAgICAgICAgcHVzaChAZnVuY3Rpb24sICIgICAgICAgIHByb3Rv
Y29sRXJyb3JzLT5wdXNoU3RyaW5nKFwiUHJvdG9jb2wgRXJyb3I6ICdhcmd1bWVudHMnIHByb3Bl
cnR5IHdpdGggdHlwZSAnb2JqZWN0JyB3YXMgbm90IGZvdW5kLlwiKTsiKTsKQEAgLTUwOCwxMiAr
NTA3LDE0IEBAIHN1YiBnZW5lcmF0ZUJhY2tlbmRGdW5jdGlvbgogICAgIHB1c2goQGZ1bmN0aW9u
LCAiICAgIC8vIHVzZSBJbnNwZWN0b3JGcm9udGVuZCBhcyBhIG1hcmtlciBvZiBXZWJJbnNwZWN0
b3IgYXZhaWxhYmlsaXR5Iik7CiAgICAgcHVzaChAZnVuY3Rpb24sICIgICAgaWYgKGNhbGxJZCB8
fCBwcm90b2NvbEVycm9ycy0+bGVuZ3RoKCkpIHsiKTsKICAgICBwdXNoKEBmdW5jdGlvbiwgIiAg
ICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzcG9uc2VNZXNzYWdlID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsiKTsKLSAgICBwdXNoKEBmdW5jdGlvbiwgIiAgICAgICAgcmVzcG9u
c2VNZXNzYWdlLT5zZXROdW1iZXIoXCJzZXFcIiwgY2FsbElkKTsiKTsKKyAgICBwdXNoKEBmdW5j
dGlvbiwgIiAgICAgICAgcmVzcG9uc2VNZXNzYWdlLT5zZXROdW1iZXIoXCJyZXF1ZXN0SWRcIiwg
Y2FsbElkKTsiKTsKICAgICBwdXNoKEBmdW5jdGlvbiwgIiIpOwogICAgIHB1c2goQGZ1bmN0aW9u
LCAiICAgICAgICBpZiAocHJvdG9jb2xFcnJvcnMtPmxlbmd0aCgpKSIpOwotICAgIHB1c2goQGZ1
bmN0aW9uLCAiICAgICAgICAgICAgcmVzcG9uc2VNZXNzYWdlLT5zZXRBcnJheShcImVycm9yc1wi
LCBwcm90b2NvbEVycm9ycyk7Iik7CisgICAgcHVzaChAZnVuY3Rpb24sICIgICAgICAgICAgICBy
ZXNwb25zZU1lc3NhZ2UtPnNldEFycmF5KFwicHJvdG9jb2xFcnJvcnNcIiwgcHJvdG9jb2xFcnJv
cnMpOyIpOwogICAgIGlmIChzY2FsYXIoQG91dEFyZ3MpKSB7CiAgICAgICAgIHB1c2goQGZ1bmN0
aW9uLCAiICAgICAgICBlbHNlIHsiKTsKKyAgICAgICAgcHVzaChAZnVuY3Rpb24sICIgICAgICAg
ICAgICBpZiAoZXJyb3IubGVuZ3RoKCkpIik7CisgICAgICAgIHB1c2goQGZ1bmN0aW9uLCAiICAg
ICAgICAgICAgICAgIHJlc3BvbnNlTWVzc2FnZS0+c2V0U3RyaW5nKFwiZXJyb3JcIiwgZXJyb3Ip
OyIpOwogICAgICAgICBwdXNoKEBmdW5jdGlvbiwgIiAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlc3BvbnNlQm9keSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Iik7CiAg
ICAgICAgIHB1c2goQGZ1bmN0aW9uLCBtYXAoIiAgICAgICAgICAgIHJlc3BvbnNlQm9keS0+c2V0
IiAuIHR5cGVUcmFpdHMoJF8tPnR5cGUsICJKU09OVHlwZSIpIC4gIihcIiIgLiAkXy0+bmFtZSAu
ICJcIiwgIiAuICRfLT5uYW1lIC4gIik7IiwgQG91dEFyZ3MpKTsKICAgICAgICAgcHVzaChAZnVu
Y3Rpb24sICIgICAgICAgICAgICByZXNwb25zZU1lc3NhZ2UtPnNldE9iamVjdChcImJvZHlcIiwg
cmVzcG9uc2VCb2R5KTsiKTsKQEAgLTU0Nyw3ICs1NDgsNyBAQCBzdWIgZ2VuZXJhdGVEb2N1bWVu
dGF0aW9uQ29tbWFuZAogICAgIG15IEBpbkFyZ3MgPSBncmVwKCRfLT5kaXJlY3Rpb24gZXEgImlu
IiAmJiAhKCRfLT5uYW1lIGVxICJjYWxsSWQiKSAsIEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSk7
CiAgICAgcHVzaChAbGluZXMsICI8cHJlIHN0eWxlPSdiYWNrZ3JvdW5kOiBsaWdodEdyZXk7IHBh
ZGRpbmc6IDEwcHgnPiIpOwogICAgIHB1c2goQGxpbmVzLCAicmVxdWVzdDogeyIpOwotICAgIHB1
c2goQGxpbmVzLCAiICAgIHNlcTogJmx0O251bWJlciZndDssIik7CisgICAgcHVzaChAbGluZXMs
ICIgICAgaWQ6ICZsdDtudW1iZXImZ3Q7LCIpOwogICAgIHB1c2goQGxpbmVzLCAiICAgIHR5cGU6
IFwicmVxdWVzdFwiLCIpOwogICAgIHB1c2goQGxpbmVzLCAiICAgIGRvbWFpbjogXCIiIC4gJGlu
dGVyZmFjZS0+bmFtZSAuICJcIiwiKTsKICAgICBpZiAoc2NhbGFyKEBpbkFyZ3MpKSB7CkBAIC01
NjcsNyArNTY4LDcgQEAgc3ViIGdlbmVyYXRlRG9jdW1lbnRhdGlvbkNvbW1hbmQKICAgICBteSBA
b3V0QXJncyA9IGdyZXAoJF8tPmRpcmVjdGlvbiBlcSAib3V0IiwgQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KTsgICAgCiAgICAgcHVzaChAbGluZXMsICIiKTsKICAgICBwdXNoKEBsaW5lcywgInJl
c3BvbnNlOiB7Iik7Ci0gICAgcHVzaChAbGluZXMsICIgICAgc2VxOiAmbHQ7bnVtYmVyJmd0Oywi
KTsKKyAgICBwdXNoKEBsaW5lcywgIiAgICByZXF1ZXN0SWQ6ICZsdDtudW1iZXImZ3Q7LCIpOwog
ICAgIGlmIChzY2FsYXIoQG91dEFyZ3MpKSB7CiAgICAgICAgIHB1c2goQGxpbmVzLCAiICAgIHR5
cGU6IFwicmVzcG9uc2VcIiwiKTsKICAgICAgICAgcHVzaChAbGluZXMsICIgICAgYm9keTogeyIp
OwpAQCAtNTkzLDEwICs1OTQsMTAgQEAgc3ViIGdlbmVyYXRlQmFja2VuZFJlcG9ydFByb3RvY29s
RXJyb3IKIHZvaWQgJHtiYWNrZW5kQ2xhc3NOYW1lfTo6cmVwb3J0UHJvdG9jb2xFcnJvcihjb25z
dCBsb25nIGNhbGxJZCwgY29uc3QgU3RyaW5nJiBlcnJvclRleHQpIGNvbnN0CiB7CiAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gbWVzc2FnZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
Ci0gICAgbWVzc2FnZS0+c2V0TnVtYmVyKCJzZXEiLCBjYWxsSWQpOworICAgIG1lc3NhZ2UtPnNl
dE51bWJlcigicmVxdWVzdElkIiwgY2FsbElkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
IGVycm9ycyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKICAgICBlcnJvcnMtPnB1c2hTdHJp
bmcoZXJyb3JUZXh0KTsKLSAgICBtZXNzYWdlLT5zZXRBcnJheSgiZXJyb3JzIiwgZXJyb3JzKTsK
KyAgICBtZXNzYWdlLT5zZXRBcnJheSgicHJvdG9jb2xFcnJvcnMiLCBlcnJvcnMpOwogICAgIG1f
aW5zcGVjdG9yQ2xpZW50LT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZS0+dG9KU09OU3Ry
aW5nKCkpOwogfQogRU9GCkBAIC02OTYsMTQgKzY5NywxNCBAQCAkbWFwRW50cmllcwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBjYWxsSWRWYWx1
ZSA9IG1lc3NhZ2VPYmplY3QtPmdldCgic2VxIik7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVl
PiBjYWxsSWRWYWx1ZSA9IG1lc3NhZ2VPYmplY3QtPmdldCgiaWQiKTsKICAgICBpZiAoIWNhbGxJ
ZFZhbHVlKSB7Ci0gICAgICAgIHJlcG9ydFByb3RvY29sRXJyb3IoY2FsbElkLCAiUHJvdG9jb2wg
RXJyb3I6IEludmFsaWQgbWVzc2FnZSBmb3JtYXQuICdzZXEnIHByb3BlcnR5IHdhcyBub3QgZm91
bmQgaW4gdGhlIHJlcXVlc3QuIik7CisgICAgICAgIHJlcG9ydFByb3RvY29sRXJyb3IoY2FsbElk
LCAiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbWVzc2FnZSBmb3JtYXQuICdpZCcgcHJvcGVydHkg
d2FzIG5vdCBmb3VuZCBpbiB0aGUgcmVxdWVzdC4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGlmICghY2FsbElkVmFsdWUtPmFzTnVtYmVyKCZjYWxsSWQpKSB7Ci0gICAgICAgIHJl
cG9ydFByb3RvY29sRXJyb3IoY2FsbElkLCAiUHJvdG9jb2wgRXJyb3I6IEludmFsaWQgbWVzc2Fn
ZSBmb3JtYXQuIFRoZSB0eXBlIG9mICdzZXEnIHByb3BlcnR5IHNob3VsZCBiZSBudW1iZXIuIik7
CisgICAgICAgIHJlcG9ydFByb3RvY29sRXJyb3IoY2FsbElkLCAiUHJvdG9jb2wgRXJyb3I6IElu
dmFsaWQgbWVzc2FnZSBmb3JtYXQuIFRoZSB0eXBlIG9mICdpZCcgcHJvcGVydHkgc2hvdWxkIGJl
IG51bWJlci4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzU3LDcgKzc1OCw3IEBA
IHN1YiBjb2xsZWN0QmFja2VuZEpTU3R1YkZ1bmN0aW9ucwogICAgICAgICBteSAkbmFtZSA9ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICBteSAkYXJndW1lbnROYW1lcyA9IGpv
aW4oIiwiLCBtYXAoIlwiIiAuICRfLT5uYW1lIC4gIlwiOiBcIiIgLiB0eXBlVHJhaXRzKCRfLT50
eXBlLCAiSlNUeXBlIikgLiAiXCIiLCBncmVwKCRfLT5kaXJlY3Rpb24gZXEgImluIiwgQHskZnVu
Y3Rpb24tPnBhcmFtZXRlcnN9KSkpOwogICAgICAgICBwdXNoKEBiYWNrZW5kSlNTdHVicywgIiAg
ICB0aGlzLl9yZWdpc3RlckRlbGVnYXRlKCd7IiAuCi0gICAgICAgICAgICAiXCJzZXFcIjogMCwg
IiAuCisgICAgICAgICAgICAiXCJpZFwiOiAwLCAiIC4KICAgICAgICAgICAgICJcImRvbWFpblwi
OiBcIiRkb21haW5cIiwgIiAuCiAgICAgICAgICAgICAiXCJjb21tYW5kXCI6IFwiJG5hbWVcIiwg
IiAuCiAgICAgICAgICAgICAiXCJhcmd1bWVudHNcIjogeyRhcmd1bWVudE5hbWVzfSIgLgpAQCAt
ODIzLDcgKzgyNCw3IEBAIEluc3BlY3RvckJhY2tlbmRTdHViLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGNhbGxiYWNrID0gYXJnc1swXTsKICAgICAgICAgfQotICAg
ICAgICByZXF1ZXN0LnNlcSA9IHRoaXMuX3dyYXAoY2FsbGJhY2sgfHwgZnVuY3Rpb24oKSB7fSk7
CisgICAgICAgIHJlcXVlc3QuaWQgPSB0aGlzLl93cmFwKGNhbGxiYWNrIHx8IGZ1bmN0aW9uKCkg
e30pOwogCiAgICAgICAgIGlmICh3aW5kb3cuZHVtcEluc3BlY3RvclByb3RvY29sTWVzc2FnZXMp
CiAgICAgICAgICAgICBjb25zb2xlLmxvZygiZnJvbnRlbmQ6ICIgKyBKU09OLnN0cmluZ2lmeShy
ZXF1ZXN0KSk7CkBAIC04NTEsMTQgKzg1MiwxOSBAQCBJbnNwZWN0b3JCYWNrZW5kU3R1Yi5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbWVzc2FnZU9iamVjdC5ib2R5
KQogICAgICAgICAgICAgICAgIGFyZ3VtZW50cy5wdXNoKG1lc3NhZ2VPYmplY3QuYm9keVtrZXld
KTsKIAotICAgICAgICBpZiAoInNlcSIgaW4gbWVzc2FnZU9iamVjdCkgeyAvLyBqdXN0IGEgcmVz
cG9uc2UgZm9yIHNvbWUgcmVxdWVzdAotICAgICAgICAgICAgaWYgKCFtZXNzYWdlT2JqZWN0LmVy
cm9ycykKLSAgICAgICAgICAgICAgICB0aGlzLl9jYWxsYmFja3NbbWVzc2FnZU9iamVjdC5zZXFd
LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7Ci0gICAgICAgICAgICBlbHNlCisgICAgICAgIGlmICgi
cmVxdWVzdElkIiBpbiBtZXNzYWdlT2JqZWN0KSB7IC8vIGp1c3QgYSByZXNwb25zZSBmb3Igc29t
ZSByZXF1ZXN0CisgICAgICAgICAgICBpZiAobWVzc2FnZU9iamVjdC5wcm90b2NvbEVycm9ycykK
ICAgICAgICAgICAgICAgICB0aGlzLnJlcG9ydFByb3RvY29sRXJyb3IobWVzc2FnZU9iamVjdCk7
CiAKLSAgICAgICAgICAgIC0tdGhpcy5fcGVuZGluZ1Jlc3BvbnNlc0NvdW50OwotICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1ttZXNzYWdlT2JqZWN0LnNlcV07CisgICAgICAgICAg
ICB2YXIgY2FsbGJhY2sgPSB0aGlzLl9jYWxsYmFja3NbbWVzc2FnZU9iamVjdC5yZXF1ZXN0SWRd
OworICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtZXNz
YWdlT2JqZWN0LnByb3RvY29sRXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50
cy51bnNoaWZ0KG1lc3NhZ2VPYmplY3QuZXJyb3IpOworICAgICAgICAgICAgICAgICAgICBjYWxs
YmFjay5hcHBseShudWxsLCBhcmd1bWVudHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAtLXRoaXMuX3BlbmRpbmdSZXNwb25zZXNDb3VudDsKKyAgICAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5fY2FsbGJhY2tzW21lc3NhZ2VPYmplY3QucmVxdWVzdElkXTsKKyAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKHRoaXMuX3NjcmlwdHMgJiYgIXRoaXMuX3BlbmRpbmdS
ZXNwb25zZXNDb3VudCkKICAgICAgICAgICAgICAgICB0aGlzLnJ1bkFmdGVyUGVuZGluZ0Rpc3Bh
dGNoZXMoKTsKQEAgLTg3NiwxNSArODgyLDE2IEBAIEluc3BlY3RvckJhY2tlbmRTdHViLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJQcm90b2NvbCBFcnJvcjog
QXR0ZW1wdGVkIHRvIGRpc3BhdGNoIGFuIHVuaW1wbGVtZW50ZWQgbWV0aG9kICciICsgbWVzc2Fn
ZU9iamVjdC5kb21haW4gKyAiLiIgKyBtZXNzYWdlT2JqZWN0LmV2ZW50ICsgIiciKTsKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGRpc3BhdGNo
ZXJbbWVzc2FnZU9iamVjdC5ldmVudF0uYXBwbHkoZGlzcGF0Y2hlciwgYXJndW1lbnRzKTsKICAg
ICAgICAgfQogICAgIH0sCiAKICAgICByZXBvcnRQcm90b2NvbEVycm9yOiBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KQogICAgIHsKLSAgICAgICAgY29uc29sZS5lcnJvcigiUHJvdG9jb2wgRXJyb3I6
IEluc3BlY3RvckJhY2tlbmQgcmVxdWVzdCB3aXRoIHNlcSA9ICIgKyBtZXNzYWdlT2JqZWN0LnNl
cSArICIgZmFpbGVkLiIpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VPYmpl
Y3QuZXJyb3JzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgY29uc29sZS5lcnJvcigiICAgICIg
KyBtZXNzYWdlT2JqZWN0LmVycm9yc1tpXSk7CisgICAgICAgIGNvbnNvbGUuZXJyb3IoIlByb3Rv
Y29sIEVycm9yOiBJbnNwZWN0b3JCYWNrZW5kIHJlcXVlc3Qgd2l0aCBpZCA9ICIgKyBtZXNzYWdl
T2JqZWN0LnJlcXVlc3RJZCArICIgZmFpbGVkLiIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG1lc3NhZ2VPYmplY3QucHJvdG9jb2xFcnJvcnMubGVuZ3RoOyArK2kpCisgICAgICAgICAg
ICBjb25zb2xlLmVycm9yKCIgICAgIiArIG1lc3NhZ2VPYmplY3QucHJvdG9jb2xFcnJvcnNbaV0p
OwogICAgIH0sCiAKICAgICBydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzOiBmdW5jdGlvbihzY3Jp
cHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0
UnVsZXMuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMu
anMKaW5kZXggODAzZTllMC4uYjYxNDI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcwpAQCAtNjUsOSArNjUsOSBAQCBXZWJJbnNwZWN0
b3IuQXVkaXRSdWxlcy5nZXREb21haW5Ub1Jlc291cmNlc01hcCA9IGZ1bmN0aW9uKHJlc291cmNl
cywgdHlwZXMsIG5lZQogCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5ldmFsdWF0ZUluVGFyZ2V0
V2luZG93ID0gZnVuY3Rpb24oZnVuYywgYXJncywgY2FsbGJhY2spCiB7Ci0gICAgZnVuY3Rpb24g
bXljYWxsYmFjayhyZXN1bHQpCisgICAgZnVuY3Rpb24gbXljYWxsYmFjayhlcnJvciwgcmVzdWx0
KQogICAgIHsKLSAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgaWYgKCFlcnJvciAmJiByZXN1
bHQpCiAgICAgICAgICAgICBjYWxsYmFjayhKU09OLnBhcnNlKHJlc3VsdC5kZXNjcmlwdGlvbikp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjYWxsYmFjayhudWxsKTsKQEAgLTM4NSw5ICsz
ODUsOSBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5VbnVzZWRDc3NSdWxlLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgICAgICBjb250aW51YXRpb24oc3R5bGVTaGVldHMpOwogICAgICAgICB9
CiAKLSAgICAgICAgZnVuY3Rpb24gYWxsU3R5bGVzQ2FsbGJhY2soc3R5bGVTaGVldElkcykKKyAg
ICAgICAgZnVuY3Rpb24gYWxsU3R5bGVzQ2FsbGJhY2soZXJyb3IsIHN0eWxlU2hlZXRJZHMpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghc3R5bGVTaGVldElkcyB8fCAhc3R5bGVTaGVldElk
cy5sZW5ndGgpCisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXN0eWxlU2hlZXRJZHMgfHwgIXN0
eWxlU2hlZXRJZHMubGVuZ3RoKQogICAgICAgICAgICAgICAgIHJldHVybiBldmFsQ2FsbGJhY2so
W10pOwogICAgICAgICAgICAgdmFyIHN0eWxlU2hlZXRzID0gW107CiAgICAgICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHN0eWxlU2hlZXRJZHMubGVuZ3RoOyArK2kpCkBAIC03MTcsOCArNzE3
LDEwIEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUucHJvdG90
eXBlID0gewogICAgICAgICAgICAgICAgIGRvbmVDYWxsYmFjaygpOwogICAgICAgICB9CiAKLSAg
ICAgICAgZnVuY3Rpb24gZ2V0U3R5bGVzKG5vZGVJZHMpCisgICAgICAgIGZ1bmN0aW9uIGdldFN0
eWxlcyhlcnJvciwgbm9kZUlkcykKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKQor
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bm9kZUlkcy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9k
ZWwuZ2V0U3R5bGVzQXN5bmMobm9kZUlkc1tpXSwgaW1hZ2VTdHlsZXNSZWFkeS5iaW5kKHRoaXMs
IG5vZGVJZHNbaV0sIGkgPT09IG5vZGVJZHMubGVuZ3RoIC0gMSkpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMK
aW5kZXggMGU3Y2Q0OS4uYzY2ZGZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtNDMsOSArNDMsOSBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wYXJzZVJ1bGVBcnJheVBheWxvYWQgPSBmdW5jdGlvbihydWxl
QXJyYXkpCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0
U3R5bGVzQXN5bmM6IGZ1bmN0aW9uKG5vZGVJZCwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBwYXlsb2FkKQorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayh1c2VyQ2FsbGJhY2ssIGVycm9yLCBwYXlsb2FkKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBpZiAoIXBheWxvYWQpIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhcGF5
bG9hZCkgewogICAgICAgICAgICAgICAgIGlmICh1c2VyQ2FsbGJhY2spCiAgICAgICAgICAgICAg
ICAgICAgIHVzZXJDYWxsYmFjayhudWxsKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC04
OCw5ICs4OCw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKIAog
ICAgIGdldENvbXB1dGVkU3R5bGVBc3luYzogZnVuY3Rpb24obm9kZUlkLCB1c2VyQ2FsbGJhY2sp
CiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayh1c2VyQ2FsbGJhY2ssIHN0eWxlUGF5
bG9hZCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBlcnJvciwgc3R5
bGVQYXlsb2FkKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIXN0eWxlUGF5bG9hZCkKKyAg
ICAgICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVQYXlsb2FkKQogICAgICAgICAgICAgICAgIHVz
ZXJDYWxsYmFjayhudWxsKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB1c2Vy
Q2FsbGJhY2soV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHN0
eWxlUGF5bG9hZCkpOwpAQCAtMTAxLDkgKzEwMSw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGdldElubGluZVN0eWxlQXN5bmM6IGZ1bmN0aW9uKG5v
ZGVJZCwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNl
ckNhbGxiYWNrLCBzdHlsZVBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJD
YWxsYmFjaywgZXJyb3IsIHN0eWxlUGF5bG9hZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYg
KCFzdHlsZVBheWxvYWQpCisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXN0eWxlUGF5bG9hZCkK
ICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0
aW9uLnBhcnNlUGF5bG9hZChzdHlsZVBheWxvYWQpKTsKQEAgLTExNCwxNyArMTE0LDIwIEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIHNldFJ1bGVTZWxl
Y3RvcjogZnVuY3Rpb24ocnVsZUlkLCBub2RlSWQsIG5ld1NlbGVjdG9yLCBzdWNjZXNzQ2FsbGJh
Y2ssIGZhaWx1cmVDYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNoZWNrQWZmZWN0
c0NhbGxiYWNrKG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5bG9hZCwgc2VsZWN0ZWRO
b2RlSWRzKQorICAgICAgICBmdW5jdGlvbiBjaGVja0FmZmVjdHNDYWxsYmFjayhub2RlSWQsIHN1
Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxvYWQsIGVycm9yLCBzZWxlY3RlZE5vZGVJZHMpCiAgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgICAgICB2YXIgZG9lc0FmZmVjdFNlbGVjdGVkTm9kZSA9IChzZWxlY3RlZE5vZGVJZHMu
aW5kZXhPZihub2RlSWQpID49IDApOwogICAgICAgICAgICAgdmFyIHJ1bGUgPSBXZWJJbnNwZWN0
b3IuQ1NTUnVsZS5wYXJzZVBheWxvYWQocnVsZVBheWxvYWQpOwogICAgICAgICAgICAgc3VjY2Vz
c0NhbGxiYWNrKHJ1bGUsIGRvZXNBZmZlY3RTZWxlY3RlZE5vZGUpOwogICAgICAgICAgICAgdGhp
cy5fc3R5bGVTaGVldENoYW5nZWQocnVsZS5pZC5zdHlsZVNoZWV0SWQsIHRydWUpOwogICAgICAg
ICB9CiAKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sobm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ss
IGZhaWx1cmVDYWxsYmFjaywgbmV3U2VsZWN0b3IsIHJ1bGVQYXlsb2FkKQorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbHVyZUNhbGxiYWNrLCBl
cnJvciwgbmV3U2VsZWN0b3IsIHJ1bGVQYXlsb2FkKQogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoIXJ1bGVQYXlsb2FkKQorICAgICAgICAgICAgLy8gRklYTUU6IGxvb2tzIGxpcmUgcnVsZVBh
eWxvYWQgYWx3YXlzIG51bGwuCisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXJ1bGVQYXlsb2Fk
KQogICAgICAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIERPTUFnZW50LnF1ZXJ5U2VsZWN0b3JBbGwobm9kZUlkLCBuZXdTZWxl
Y3RvciwgdHJ1ZSwgY2hlY2tBZmZlY3RzQ2FsbGJhY2suYmluZCh0aGlzLCBub2RlSWQsIHN1Y2Nl
c3NDYWxsYmFjaywgcnVsZVBheWxvYWQpKTsKQEAgLTEzNSw3ICsxMzgsNyBAQCBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBhZGRSdWxlOiBmdW5jdGlvbihu
b2RlSWQsIHNlbGVjdG9yLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaykKICAgICB7
Ci0gICAgICAgIGZ1bmN0aW9uIGNoZWNrQWZmZWN0c0NhbGxiYWNrKG5vZGVJZCwgc3VjY2Vzc0Nh
bGxiYWNrLCBydWxlUGF5bG9hZCwgc2VsZWN0ZWROb2RlSWRzKQorICAgICAgICBmdW5jdGlvbiBj
aGVja0FmZmVjdHNDYWxsYmFjayhub2RlSWQsIHN1Y2Nlc3NDYWxsYmFjaywgcnVsZVBheWxvYWQs
IGVycm9yLCBzZWxlY3RlZE5vZGVJZHMpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBkb2Vz
QWZmZWN0U2VsZWN0ZWROb2RlID0gKHNlbGVjdGVkTm9kZUlkcy5pbmRleE9mKG5vZGVJZCkgPj0g
MCk7CiAgICAgICAgICAgICB2YXIgcnVsZSA9IFdlYkluc3BlY3Rvci5DU1NSdWxlLnBhcnNlUGF5
bG9hZChydWxlUGF5bG9hZCk7CkBAIC0xNDMsOSArMTQ2LDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0
eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fc3R5bGVTaGVldENoYW5n
ZWQocnVsZS5pZC5zdHlsZVNoZWV0SWQsIHRydWUpOwogICAgICAgICB9CiAKLSAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJhY2ssIHNlbGVjdG9y
LCBydWxlUGF5bG9hZCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNr
LCBmYWlsdXJlQ2FsbGJhY2ssIHNlbGVjdG9yLCBlcnJvciwgcnVsZVBheWxvYWQpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGlmICghcnVsZVBheWxvYWQpIHsKKyAgICAgICAgICAgIGlmIChlcnJv
ciB8fCAhcnVsZVBheWxvYWQpIHsKICAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIHN5bnRheCBm
b3IgYSBzZWxlY3RvcgogICAgICAgICAgICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwogICAgICAg
ICAgICAgfSBlbHNlCkBAIC0xNjAsOCArMTYzLDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFtYWpvckNoYW5nZSB8fCAhc3R5bGVTaGVl
dElkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGhy
ZWYsIGNvbnRlbnQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBocmVmLCBjb250
ZW50KQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNl
Rm9yVVJMKGhyZWYpOwogICAgICAgICAgICAgaWYgKHJlc291cmNlICYmIHJlc291cmNlLnR5cGUg
PT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlN0eWxlc2hlZXQpCiAgICAgICAgICAgICAg
ICAgcmVzb3VyY2Uuc2V0Q29udGVudChjb250ZW50LCB0aGlzLl9vblJldmVydC5iaW5kKHRoaXMs
IHN0eWxlU2hlZXRJZCkpOwpAQCAtMTcxLDggKzE3NiwxMCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBfb25SZXZlcnQ6IGZ1bmN0aW9uKHN0eWxlU2hl
ZXRJZCwgY29udGVudFRvUmV2ZXJ0VG8pCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhzdWNjZXNzKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3VjY2VzcykKICAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIHRoaXMuX3N0eWxlU2hlZXRDaGFuZ2VkKHN0eWxlU2hlZXRJZCwgdHJ1ZSk7
CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygic3R5bGVzaGVldCBj
aGFuZ2VkIik7CiAgICAgICAgIH0KQEAgLTMzNSwxMiArMzQyLDEyIEBAIFdlYkluc3BlY3Rvci5D
U1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSA9IHsKIAogICAgIGluc2VydFByb3BlcnR5QXQ6
IGZ1bmN0aW9uKGluZGV4LCBuYW1lLCB2YWx1ZSwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAg
ICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBwYXlsb2FkKQorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayh1c2VyQ2FsbGJhY2ssIGVycm9yLCBwYXlsb2FkKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAoIXVzZXJDYWxsYmFjaykKICAgICAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgICAgIGlmICghcGF5bG9hZCkKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhcGF5
bG9hZCkKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CiAgICAgICAgICAgICBl
bHNlIHsKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb24ucGFyc2VQYXlsb2FkKHBheWxvYWQpKTsKQEAgLTQ2NCw5ICs0NzEsOSBAQCBX
ZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHVz
ZXJDYWxsYmFjayhzdHlsZSk7CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhzdHlsZVBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBzdHlsZVBh
eWxvYWQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChzdHlsZVBheWxvYWQpIHsKKyAgICAg
ICAgICAgIGlmICghZXJyb3IgJiYgc3R5bGVQYXlsb2FkKSB7CiAgICAgICAgICAgICAgICAgdGhp
cy50ZXh0ID0gcHJvcGVydHlUZXh0OwogICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IFdlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5bG9hZChzdHlsZVBheWxvYWQpOwog
ICAgICAgICAgICAgICAgIHZhciBuZXdQcm9wZXJ0eSA9IHN0eWxlLmFsbFByb3BlcnRpZXNbdGhp
cy5pbmRleF07CkBAIC01MDQsMTEgKzUxMSwxMSBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHku
cHJvdG90eXBlID0gewogICAgICAgICBpZiAoZGlzYWJsZWQgPT09IHRoaXMuZGlzYWJsZWQgJiYg
dXNlckNhbGxiYWNrKQogICAgICAgICAgICAgdXNlckNhbGxiYWNrKHRoaXMub3duZXJTdHlsZSk7
CiAKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soc3R5bGVQYXlsb2FkKQorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVQYXlsb2FkKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAoIXVzZXJDYWxsYmFjaykKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAg
ICBpZiAoIXN0eWxlUGF5bG9hZCkKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVQYXls
b2FkKQogICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhudWxsKTsKICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgIHZhciBzdHlsZSA9IFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
Y2xhcmF0aW9uLnBhcnNlUGF5bG9hZChzdHlsZVBheWxvYWQpOwpAQCAtNTQxLDkgKzU0OCw5IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0ID0gZnVuY3Rpb24ocGF5bG9hZCkKIAogV2ViSW5z
cGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQgPSBmdW5jdGlvbihzdHlsZVNoZWV0SWQs
IHVzZXJDYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBjYWxsYmFjayhzdHlsZVNoZWV0UGF5bG9h
ZCkKKyAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgc3R5bGVTaGVldFBheWxvYWQpCiAgICAg
ewotICAgICAgICBpZiAoIXN0eWxlU2hlZXRQYXlsb2FkKQorICAgICAgICBpZiAoZXJyb3IgfHwg
IXN0eWxlU2hlZXRQYXlsb2FkKQogICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobmV3IFdlYkluc3BlY3Rvci5DU1NT
dHlsZVNoZWV0KHN0eWxlU2hlZXRQYXlsb2FkKSk7CkBAIC01NTksOSArNTY2LDkgQEAgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBlID0gewogCiAgICAgc2V0VGV4dDogZnVuY3Rp
b24obmV3VGV4dCwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soc3R5bGVTaGVldFBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBz
dHlsZVNoZWV0UGF5bG9hZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFzdHlsZVNoZWV0
UGF5bG9hZCkKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhc3R5bGVTaGVldFBheWxvYWQpCiAg
ICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwpOwogICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVl
dChzdHlsZVNoZWV0UGF5bG9hZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXggZjU5ZDg3Zi4uYjRmMDQ2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC01
MzEsOSArNTMxLDEwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBleHByZXNzaW9uID0gInRoaXMiOwogICAgICAgICB9CiAKLSAgICAgICAgZnVu
Y3Rpb24gZXZhbENhbGxiYWNrKHJlc3VsdCkKKyAgICAgICAgZnVuY3Rpb24gZXZhbENhbGxiYWNr
KGVycm9yLCByZXN1bHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSk7CisgICAgICAgICAgICBpZiAo
IWVycm9yKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbVBheWxvYWQocmVzdWx0KSk7CiAgICAgICAgIH0KICAgICAgICAgUnVudGltZUFnZW50
LmV2YWx1YXRlKGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEks
IGV2YWxDYWxsYmFjayk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDhkYzIzNzguLjUwMDIxY2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtMTA0LDcgKzEwNCw3
IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZSA9IHsKIAogICAgIHNldE5vZGVOYW1l
OiBmdW5jdGlvbihuYW1lLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTUFnZW50LnNldE5v
ZGVOYW1lKHRoaXMuaWQsIG5hbWUsIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQuc2V0Tm9k
ZU5hbWUodGhpcy5pZCwgbmFtZSwgZXJyb3JGaWx0ZXIuYmluZChudWxsLCBjYWxsYmFjaykpOwog
ICAgIH0sCiAKICAgICBsb2NhbE5hbWU6IGZ1bmN0aW9uKCkKQEAgLTExOSw3ICsxMTksNyBAQCBX
ZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAKICAgICBzZXROb2RlVmFsdWU6IGZ1
bmN0aW9uKHZhbHVlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTUFnZW50LnNldE5vZGVW
YWx1ZSh0aGlzLmlkLCB2YWx1ZSwgY2FsbGJhY2spOworICAgICAgICBET01BZ2VudC5zZXROb2Rl
VmFsdWUodGhpcy5pZCwgdmFsdWUsIGVycm9yRmlsdGVyLmJpbmQobnVsbCwgY2FsbGJhY2spKTsK
ICAgICB9LAogCiAgICAgZ2V0QXR0cmlidXRlOiBmdW5jdGlvbihuYW1lKQpAQCAtMTMwLDkgKzEz
MCw5IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZSA9IHsKIAogICAgIHNldEF0dHJp
YnV0ZTogZnVuY3Rpb24obmFtZSwgdmFsdWUsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gbXljYWxsYmFjayhzdWNjZXNzKQorICAgICAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVy
cm9yLCBzdWNjZXNzKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAg
ICAgICAgICBpZiAoZXJyb3IgfHwgIXN1Y2Nlc3MpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgICAgICB2YXIgYXR0ciA9IHRoaXMuX2F0dHJpYnV0ZXNNYXBbbmFtZV07CkBAIC0x
NTQsOSArMTU0LDkgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogCiAgICAg
cmVtb3ZlQXR0cmlidXRlOiBmdW5jdGlvbihuYW1lLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAg
IGZ1bmN0aW9uIG15Y2FsbGJhY2soc3VjY2VzcykKKyAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFj
ayhlcnJvciwgc3VjY2VzcykKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQor
ICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFzdWNjZXNzKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2F0dHJpYnV0ZXNNYXBbbmFtZV07CkBAIC0x
ODAsOCArMTgwLDggQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFjaygp
IHsKLSAgICAgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFj
ayhlcnJvcikgeworICAgICAgICAgICAgaWYgKCFlcnJvciAmJiBjYWxsYmFjaykKICAgICAgICAg
ICAgICAgICBjYWxsYmFjayh0aGlzLmNoaWxkcmVuKTsKICAgICAgICAgfQogICAgICAgICBET01B
Z2VudC5jaGlsZE5vZGVzKHRoaXMuaWQsIG15Y2FsbGJhY2suYmluZCh0aGlzKSk7CkBAIC0xODks
MjIgKzE4OSwyMiBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAKICAgICBv
dXRlckhUTUw6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQub3V0
ZXJIVE1MKHRoaXMuaWQsIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQub3V0ZXJIVE1MKHRo
aXMuaWQsIGVycm9yRmlsdGVyLmJpbmQobnVsbCwgY2FsbGJhY2spKTsKICAgICB9LAogCiAgICAg
c2V0T3V0ZXJIVE1MOiBmdW5jdGlvbihodG1sLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERP
TUFnZW50LnNldE91dGVySFRNTCh0aGlzLmlkLCBodG1sLCBjYWxsYmFjayk7CisgICAgICAgIERP
TUFnZW50LnNldE91dGVySFRNTCh0aGlzLmlkLCBodG1sLCBlcnJvckZpbHRlci5iaW5kKG51bGws
IGNhbGxiYWNrKSk7CiAgICAgfSwKIAogICAgIHJlbW92ZU5vZGU6IGZ1bmN0aW9uKGNhbGxiYWNr
KQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQucmVtb3ZlTm9kZSh0aGlzLmlkKTsKKyAgICAgICAg
RE9NQWdlbnQucmVtb3ZlTm9kZSh0aGlzLmlkLCBlcnJvckZpbHRlci5iaW5kKG51bGwsIGNhbGxi
YWNrKSk7CiAgICAgfSwKIAotICAgIGNvcHlOb2RlOiBmdW5jdGlvbigpCisgICAgY29weU5vZGU6
IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQuY29weU5vZGUodGhp
cy5pZCk7CisgICAgICAgIERPTUFnZW50LmNvcHlOb2RlKHRoaXMuaWQsIGVycm9yRmlsdGVyLmJp
bmQobnVsbCwgY2FsbGJhY2spKTsKICAgICB9LAogCiAgICAgcGF0aDogZnVuY3Rpb24oKQpAQCAt
MzU3LDcgKzM1Nyw3IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAodGhp
cy5fZG9jdW1lbnQpCi0gICAgICAgICAgICAgICAgRE9NQWdlbnQucHVzaE5vZGVUb0Zyb250ZW5k
KG9iamVjdElkLCBjYWxsYmFjayk7CisgICAgICAgICAgICAgICAgRE9NQWdlbnQucHVzaE5vZGVU
b0Zyb250ZW5kKG9iamVjdElkLCBlcnJvckZpbHRlci5iaW5kKG51bGwsIGNhbGxiYWNrKSk7CiAg
ICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKDApOwpAQCAtMzcxLDcgKzM3MSw3IEBAIFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2soKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnQpCi0gICAgICAgICAgICAg
ICAgRE9NQWdlbnQucHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKHBhdGgsIGNhbGxiYWNrKTsKKyAg
ICAgICAgICAgICAgICBET01BZ2VudC5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQocGF0aCwgZXJy
b3JGaWx0ZXIuYmluZChudWxsLCBjYWxsYmFjaykpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQogICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaygw
KTsKQEAgLTQwMyw4ICs0MDMsMTEgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9
IHsKIAogICAgIF9kb2N1bWVudFVwZGF0ZWQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAg
ICAgICAgZnVuY3Rpb24gbXljYWxsYmFjayhyb290KQorICAgICAgICBmdW5jdGlvbiBteWNhbGxi
YWNrKGVycm9yLCByb290KQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgICAgICB0aGlzLl9zZXREb2N1bWVudChyb290
KTsKICAgICAgICAgICAgIGlmIChjYWxsYmFjaykKICAgICAgICAgICAgICAgICBjYWxsYmFjayh0
aGlzLl9kb2N1bWVudCk7CkBAIC01NTMsMTAgKzU1NiwxMCBAQCBXZWJJbnNwZWN0b3IuQXBwbGlj
YXRpb25DYWNoZURpc3BhdGNoZXIgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5BcHBsaWNh
dGlvbkNhY2hlRGlzcGF0Y2hlci5nZXRBcHBsaWNhdGlvbkNhY2hlc0FzeW5jID0gZnVuY3Rpb24o
Y2FsbGJhY2spCiB7Ci0gICAgZnVuY3Rpb24gbXljYWxsYmFjayhhcHBsaWNhdGlvbkNhY2hlcykK
KyAgICBmdW5jdGlvbiBteWNhbGxiYWNrKGVycm9yLCBhcHBsaWNhdGlvbkNhY2hlcykKICAgICB7
CiAgICAgICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHRoaXMgbGlzdCBvbmx5IHJldHVybnMgYSBz
aW5nbGUgYXBwbGljYXRpb24gY2FjaGUuCi0gICAgICAgIGlmIChhcHBsaWNhdGlvbkNhY2hlcykK
KyAgICAgICAgaWYgKCFlcnJvciAmJiBhcHBsaWNhdGlvbkNhY2hlcykKICAgICAgICAgICAgIGNh
bGxiYWNrKGFwcGxpY2F0aW9uQ2FjaGVzKTsKICAgICB9CiAKQEAgLTU4MSw4ICs1ODQsMTAgQEAg
V2ViSW5zcGVjdG9yLkNvb2tpZXMgPSB7fQogCiBXZWJJbnNwZWN0b3IuQ29va2llcy5nZXRDb29r
aWVzQXN5bmMgPSBmdW5jdGlvbihjYWxsYmFjaykKIHsKLSAgICBmdW5jdGlvbiBteWNhbGxiYWNr
KGNvb2tpZXMsIGNvb2tpZXNTdHJpbmcpCisgICAgZnVuY3Rpb24gbXljYWxsYmFjayhlcnJvciwg
Y29va2llcywgY29va2llc1N0cmluZykKICAgICB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGNvb2tpZXNTdHJpbmcpCiAgICAgICAgICAgICBj
YWxsYmFjayhXZWJJbnNwZWN0b3IuQ29va2llcy5idWlsZENvb2tpZXNGcm9tU3RyaW5nKGNvb2tp
ZXNTdHJpbmcpLCBmYWxzZSk7CiAgICAgICAgIGVsc2UKQEAgLTYzNCw1ICs2MzksNSBAQCBXZWJJ
bnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnMuZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlQXN5bmMgPSBm
dW5jdGlvbihub2RlLCBjYWxsYgogewogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwot
ICAgIERPTUFnZW50LmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFjayk7
CisgICAgRE9NQWdlbnQuZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKG5vZGUuaWQsIGVycm9yRmls
dGVyLmJpbmQodGhpcywgY2FsbGJhY2spKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwppbmRleCBlYTI0OTIxLi44NTc5YmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCkBA
IC01MSwxNyArNTEsMTcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0gewog
CiAgICAgZ2V0RW50cmllczogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICBET01T
dG9yYWdlQWdlbnQuZ2V0RE9NU3RvcmFnZUVudHJpZXModGhpcy5faWQsIGNhbGxiYWNrKTsKKyAg
ICAgICAgRE9NU3RvcmFnZUFnZW50LmdldERPTVN0b3JhZ2VFbnRyaWVzKHRoaXMuX2lkLCBlcnJv
ckZpbHRlci5iaW5kKG51bGwsIGNhbGxiYWNrKSk7CiAgICAgfSwKICAgICAKICAgICBzZXRJdGVt
OiBmdW5jdGlvbihrZXksIHZhbHVlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTVN0b3Jh
Z2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2sp
OworICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0RE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtl
eSwgdmFsdWUsIGVycm9yRmlsdGVyLmJpbmQobnVsbCwgY2FsbGJhY2spKTsKICAgICB9LAogICAg
IAogICAgIHJlbW92ZUl0ZW06IGZ1bmN0aW9uKGtleSwgY2FsbGJhY2spCiAgICAgewotICAgICAg
ICBET01TdG9yYWdlQWdlbnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgY2Fs
bGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhp
cy5faWQsIGtleSwgZXJyb3JGaWx0ZXIuYmluZChudWxsLCBjYWxsYmFjaykpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFz
ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMKaW5k
ZXggZTRiYWZlYS4uNjg1YzI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EYXRhYmFzZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RhdGFiYXNlLmpzCkBAIC03NywxNyArNzcsMjIgQEAgV2ViSW5zcGVjdG9yLkRhdGFi
YXNlLnByb3RvdHlwZSA9IHsKIAogICAgIGdldFRhYmxlTmFtZXM6IGZ1bmN0aW9uKGNhbGxiYWNr
KQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gc29ydGluZ0NhbGxiYWNrKG5hbWVzKQorICAgICAg
ICBmdW5jdGlvbiBzb3J0aW5nQ2FsbGJhY2soZXJyb3IsIG5hbWVzKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBjYWxsYmFjayhuYW1lcy5zb3J0KCkpOworICAgICAgICAgICAgaWYgKCFlcnJvcikK
KyAgICAgICAgICAgICAgICBjYWxsYmFjayhuYW1lcy5zb3J0KCkpOwogICAgICAgICB9CiAgICAg
ICAgIERhdGFiYXNlQWdlbnQuZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKHRoaXMuX2lkLCBzb3J0aW5n
Q2FsbGJhY2spOwogICAgIH0sCiAgICAgCiAgICAgZXhlY3V0ZVNxbDogZnVuY3Rpb24ocXVlcnks
IG9uU3VjY2Vzcywgb25FcnJvcikKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHN1
Y2Nlc3MsIHRyYW5zYWN0aW9uSWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBz
dWNjZXNzLCB0cmFuc2FjdGlvbklkKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3Ip
IHsKKyAgICAgICAgICAgICAgICBvbkVycm9yKGVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAgICAgICAg
ICAgICAgICBvbkVycm9yKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRGF0YWJhc2Ugbm90IGZvdW5k
LiIpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggYmZkZmE1Ni4uYTA5N2Uw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
ck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJNb2RlbC5qcwpAQCAtODcsOSArODcsOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgY29sdW1uTnVtYmVyID0gTWF0aC5tYXgo
Y29sdW1uTnVtYmVyLCBtaW5Db2x1bW5OdW1iZXIpOwogCi0gICAgICAgIGZ1bmN0aW9uIGRpZFNl
dEJyZWFrcG9pbnQoYnJlYWtwb2ludHNQdXNoZWRUb0JhY2tlbmQsIGJyZWFrcG9pbnRJZCwgbG9j
YXRpb25zKQorICAgICAgICBmdW5jdGlvbiBkaWRTZXRCcmVha3BvaW50KGJyZWFrcG9pbnRzUHVz
aGVkVG9CYWNrZW5kLCBlcnJvciwgYnJlYWtwb2ludElkLCBsb2NhdGlvbnMpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGlmICghYnJlYWtwb2ludElkKSB7CisgICAgICAgICAgICBpZiAoZXJyb3Ig
fHwgIWJyZWFrcG9pbnRJZCkgewogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5sb2coImZh
aWxlZCIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTEwNiw5
ICsxMDYsOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAg
ICBzZXRCcmVha3BvaW50QnlTb3VyY2VJZDogZnVuY3Rpb24oc291cmNlSUQsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQogICAgIHsKLSAgICAgICAgZnVuY3Rp
b24gZGlkU2V0QnJlYWtwb2ludChicmVha3BvaW50SWQsIGFjdHVhbExpbmVOdW1iZXIsIGFjdHVh
bENvbHVtbk51bWJlcikKKyAgICAgICAgZnVuY3Rpb24gZGlkU2V0QnJlYWtwb2ludChlcnJvciwg
YnJlYWtwb2ludElkLCBhY3R1YWxMaW5lTnVtYmVyLCBhY3R1YWxDb2x1bW5OdW1iZXIpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmICghYnJlYWtwb2ludElkKQorICAgICAgICAgICAgaWYgKGVy
cm9yIHx8ICFicmVha3BvaW50SWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgdmFyIGJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQoYnJlYWtwb2lu
dElkLCAiIiwgc291cmNlSUQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBl
bmFibGVkKTsKICAgICAgICAgICAgIGJyZWFrcG9pbnQuYWRkTG9jYXRpb24oc291cmNlSUQsIGFj
dHVhbExpbmVOdW1iZXIsIGFjdHVhbENvbHVtbk51bWJlcik7CkBAIC0yMjIsOCArMjIyLDEwIEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIGVkaXRTY3Jp
cHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZUlELCBzY3JpcHRTb3VyY2UpCiAgICAgewotICAgICAg
ICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKHN1Y2Nlc3MsIG5ld0JvZHlPckVycm9yTWVz
c2FnZSwgY2FsbEZyYW1lcykKKyAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNvdXJjZShl
cnJvciwgc3VjY2VzcywgbmV3Qm9keU9yRXJyb3JNZXNzYWdlLCBjYWxsRnJhbWVzKQogICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgICBpZiAoY2FsbEZyYW1lcyAm
JiBjYWxsRnJhbWVzLmxlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FsbEZyYW1l
cyA9IGNhbGxGcmFtZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggYTYxMTVhMC4uN2ZmZjViNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAt
MTEwNCw5ICsxMTA0LDEwIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fbm9kZVNlYXJjaEJ1dHRvbi50b2dnbGVkID0gZmFsc2U7CiAgICAg
fSwKIAotICAgIF9zZXRTZWFyY2hpbmdGb3JOb2RlOiBmdW5jdGlvbihlbmFibGVkKQorICAgIF9z
ZXRTZWFyY2hpbmdGb3JOb2RlOiBmdW5jdGlvbihlcnJvciwgZW5hYmxlZCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX25vZGVTZWFyY2hCdXR0b24udG9nZ2xlZCA9IGVuYWJsZWQ7CisgICAgICAgIGlm
ICghZXJyb3IpCisgICAgICAgICAgICB0aGlzLl9ub2RlU2VhcmNoQnV0dG9uLnRvZ2dsZWQgPSBl
bmFibGVkOwogICAgIH0sCiAKICAgICBzZXRTZWFyY2hpbmdGb3JOb2RlOiBmdW5jdGlvbihlbmFi
bGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDYzMGMzNzQuLjZjOWNkNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91
dGxpbmUuanMKQEAgLTQyNiw5ICs0MjYsOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBm
dW5jdGlvbiByZXNvbHZlZE5vZGUob2JqZWN0UGF5bG9hZCkKKyAgICAgICAgZnVuY3Rpb24gcmVz
b2x2ZWROb2RlKGVycm9yLCBvYmplY3RQYXlsb2FkKQogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAoIW9iamVjdFBheWxvYWQpCisgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIW9iamVjdFBheWxv
YWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICB2YXIgb2JqZWN0ID0g
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChvYmplY3RQYXlsb2FkKTsKQEAg
LTk2OSwxMCArOTY5LDEyIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIF9zdGFydEVkaXRp
bmdBc0hUTUw6IGZ1bmN0aW9uKGNvbW1pdENhbGxiYWNrLCBpbml0aWFsVmFsdWUpCisgICAgX3N0
YXJ0RWRpdGluZ0FzSFRNTDogZnVuY3Rpb24oY29tbWl0Q2FsbGJhY2ssIGVycm9yLCBpbml0aWFs
VmFsdWUpCiAgICAgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIGlmICh0aGlzLl9odG1sRWRpdEVsZW1lbnQgJiYgV2ViSW5zcGVjdG9yLmlzQmVpbmdF
ZGl0ZWQodGhpcy5faHRtbEVkaXRFbGVtZW50KSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX2h0bWxFZGl0RWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLl9odG1sRWRpdEVsZW1l
bnQuY2xhc3NOYW1lID0gInNvdXJjZS1jb2RlIGVsZW1lbnRzLXRyZWUtZWRpdG9yIjsKQEAgLTEx
NjQsOSArMTE2Niw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdmFyIHRyZWVPdXRsaW5lID0gdGhpcy50cmVlT3V0bGluZTsKICAgICAg
ICAgdmFyIHdhc0V4cGFuZGVkID0gdGhpcy5leHBhbmRlZDsKIAotICAgICAgICBmdW5jdGlvbiBj
aGFuZ2VUYWdOYW1lQ2FsbGJhY2sobm9kZUlkKQorICAgICAgICBmdW5jdGlvbiBjaGFuZ2VUYWdO
YW1lQ2FsbGJhY2soZXJyb3IsIG5vZGVJZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFu
b2RlSWQpIHsKKyAgICAgICAgICAgIGlmIChlcnJvciB8fCAhbm9kZUlkKSB7CiAgICAgICAgICAg
ICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQpA
QCAtMTQyMiw3ICsxNDI0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgICAgICB7CiAgICAgICAgICAgICAvLyAtMSBpcyBhbiBlcnJvciBjb2Rl
LCB3aGljaCBtZWFucyByZW1vdmluZyB0aGUgbm9kZSBmcm9tIHRoZSBET00gZmFpbGVkLAogICAg
ICAgICAgICAgLy8gc28gd2Ugc2hvdWxkbid0IHJlbW92ZSBpdCBmcm9tIHRoZSB0cmVlLgotICAg
ICAgICAgICAgaWYgKHJlbW92ZWROb2RlSWQgPT09IC0xKQorICAgICAgICAgICAgaWYgKGVycm9y
IHx8IHJlbW92ZWROb2RlSWQgPT09IC0xKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgcGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChzZWxmKTsKQEAgLTE0MzgsOSArMTQ0
MCw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwogICAgICAgICB2YXIgd2Fz
RXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkOwogCi0gICAgICAgIGZ1bmN0aW9uIHNlbGVjdE5vZGUo
bm9kZUlkKQorICAgICAgICBmdW5jdGlvbiBzZWxlY3ROb2RlKGVycm9yLCBub2RlSWQpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmICghbm9kZUlkKQorICAgICAgICAgICAgaWYgKGVycm9yIHx8
ICFub2RlSWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAvLyBTZWxl
Y3QgaXQgYW5kIGV4cGFuZCBpZiBuZWNlc3NhcnkuIFdlIGZvcmNlIHRyZWUgdXBkYXRlIHNvIHRo
YXQgaXQgcHJvY2Vzc2VzIGRvbSBldmVudHMgYW5kIGlzIHVwIHRvIGRhdGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcwppbmRl
eCAxNDJiOGMxLi40MjQ5YjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMKQEAgLTk4LDkgKzk4LDEwIEBAIFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25XYXRjaFNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgUnVu
dGltZUFnZW50LmV2YWx1YXRlKGV4cHJlc3Npb24sICJleHRlbnNpb24td2F0Y2giLCBmYWxzZSwg
dGhpcy5fb25FdmFsdWF0ZS5iaW5kKHRoaXMsIHRpdGxlKSk7CiAgICAgfSwKIAotICAgIF9vbkV2
YWx1YXRlOiBmdW5jdGlvbih0aXRsZSwgcmVzdWx0KQorICAgIF9vbkV2YWx1YXRlOiBmdW5jdGlv
bih0aXRsZSwgZXJyb3IsIHJlc3VsdCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3NldE9iamVjdChX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCksIHRpdGxlKTsKKyAg
ICAgICAgaWYgKCFlcnJvcikKKyAgICAgICAgICAgIHRoaXMuX3NldE9iamVjdChXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHJlc3VsdCksIHRpdGxlKTsKICAgICB9LAogCiAg
ICAgX3NldE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCB0aXRsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggZjlh
ZjdkYy4uNjQ0MDNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMKQEAgLTI2OSw4ICsyNjksMTAgQEAgV2ViSW5zcGVj
dG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAKICAgICBfb25FdmFsdWF0ZU9uSW5z
cGVjdGVkUGFnZTogZnVuY3Rpb24obWVzc2FnZSwgcG9ydCkKICAgICB7Ci0gICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKHJlc3VsdFBheWxvYWQpCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVy
cm9yLCByZXN1bHRQYXlsb2FkKQogICAgICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdmFyIHJlc3VsdE9iamVjdCA9IFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0UGF5bG9hZCk7CiAgICAg
ICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgICAgICBpZiAocmVzdWx0T2JqZWN0Lmlz
RXJyb3IoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCmluZGV4IDI0NmI1M2MuLjg0OTJiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpAQCAtNTMs
MTUgKzUzLDE3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5wcm90b3R5cGUgPSB7CiAK
ICAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGJhc2U2NEVuY29kZSwgY2Fs
bGJhY2spCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIoc3VjY2Vzcywg
Y29udGVudCkKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tXcmFwcGVyKGVycm9yLCBzdWNjZXNz
LCBjb250ZW50KQogICAgICAgICB7Ci0gICAgICAgICAgICBjYWxsYmFjayhzdWNjZXNzID8gY29u
dGVudCA6IG51bGwpOworICAgICAgICAgICAgY2FsbGJhY2soKCFlcnJvciAmJiBzdWNjZXNzKSA/
IGNvbnRlbnQgOiBudWxsKTsKICAgICAgICAgfQogICAgICAgICBOZXR3b3JrQWdlbnQucmVzb3Vy
Y2VDb250ZW50KHJlc291cmNlLmxvYWRlci5mcmFtZUlkLCByZXNvdXJjZS51cmwsIGJhc2U2NEVu
Y29kZSwgY2FsbGJhY2tXcmFwcGVyKTsKICAgICB9LAogCi0gICAgX3Byb2Nlc3NDYWNoZWRSZXNv
dXJjZXM6IGZ1bmN0aW9uKG1haW5GcmFtZVBheWxvYWQpCisgICAgX3Byb2Nlc3NDYWNoZWRSZXNv
dXJjZXM6IGZ1bmN0aW9uKGVycm9yLCBtYWluRnJhbWVQYXlsb2FkKQogICAgIHsKKyAgICAgICAg
aWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgbWFpblJlc291cmNl
ID0gdGhpcy5fZGlzcGF0Y2hlci5fYWRkRnJhbWVzUmVjdXJzaXZlbHkobWFpbkZyYW1lUGF5bG9h
ZCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2UgPSBtYWluUmVzb3VyY2U7CiAg
ICAgICAgIG1haW5SZXNvdXJjZS5pc01haW5SZXNvdXJjZSA9IHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcwppbmRleCAzMzViZjAz
Li45ZjRkODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvZmlsZVZpZXcuanMKQEAgLTgxLDggKzgxLDEwIEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
VmlldyA9IGZ1bmN0aW9uKHByb2ZpbGUpCiAgICAgdGhpcy5wcm9maWxlID0gcHJvZmlsZTsKIAog
ICAgIHZhciBzZWxmID0gdGhpczsKLSAgICBmdW5jdGlvbiBwcm9maWxlQ2FsbGJhY2socHJvZmls
ZSkKKyAgICBmdW5jdGlvbiBwcm9maWxlQ2FsbGJhY2soZXJyb3IsIHByb2ZpbGUpCiAgICAgewor
ICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHNlbGYucHJv
ZmlsZS5oZWFkID0gcHJvZmlsZS5oZWFkOwogICAgICAgICBzZWxmLl9hc3NpZ25QYXJlbnRzSW5Q
cm9maWxlKCk7CiAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCBlNWZiNDllLi5jYjhlMTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBA
IC02MjYsNyArNjI2LDkgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICBpZiAoIXRoaXMuX3Byb2ZpbGVyRW5hYmxlZCB8fCB0aGlzLl9wcm9maWxlc1dl
cmVSZXF1ZXN0ZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZnVuY3Rpb24gcG9w
dWxhdGVDYWxsYmFjayhwcm9maWxlSGVhZGVycykgeworICAgICAgICBmdW5jdGlvbiBwb3B1bGF0
ZUNhbGxiYWNrKGVycm9yLCBwcm9maWxlSGVhZGVycykgeworICAgICAgICAgICAgaWYgKGVycm9y
KQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHByb2ZpbGVIZWFkZXJzLnNv
cnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS51aWQgLSBiLnVpZDsgfSk7CiAgICAgICAgICAg
ICB2YXIgcHJvZmlsZUhlYWRlcnNMZW5ndGggPSBwcm9maWxlSGVhZGVycy5sZW5ndGg7CiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVIZWFkZXJzTGVuZ3RoOyArK2kpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVj
dC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0Lmpz
CmluZGV4IGE0M2JiNzEuLjRlOTMzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC00OCw4ICs0OCwxMCBAQCBXZWJJbnNw
ZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Mb2NhbE9iamVjdCA9IGZ1bmN0aW9uKHZhbHVlKQogCiBX
ZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlID0gZnVuY3Rpb24obm9kZSwgY2Fs
bGJhY2spCiB7Ci0gICAgZnVuY3Rpb24gbXljYWxsYmFjayhvYmplY3QpCisgICAgZnVuY3Rpb24g
bXljYWxsYmFjayhlcnJvciwgb2JqZWN0KQogICAgIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBjYWxsYmFjayhvYmplY3QgPyBXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVjdCkgOiBudWxsKTsKICAgICB9CiAgICAgRE9N
QWdlbnQucmVzb2x2ZU5vZGUobm9kZS5pZCwgImRvbS1zZWxlY3Rpb24iLCBteWNhbGxiYWNrKTsK
QEAgLTExMiw4ICsxMTQsMTAgQEAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBjYWxsYmFjayhbXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICAgICAgZnVuY3Rpb24gcmVtb3RlT2JqZWN0QmluZGVyKHByb3BlcnRpZXMpCisg
ICAgICAgIGZ1bmN0aW9uIHJlbW90ZU9iamVjdEJpbmRlcihlcnJvciwgcHJvcGVydGllcykKICAg
ICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBwcm9wZXJ0aWVzICYmIGkgPCBwcm9wZXJ0aWVz
Lmxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbaV0udmFsdWUgPSBXZWJJ
bnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKHByb3BlcnRpZXNbaV0udmFsdWUpOwog
ICAgICAgICAgICAgY2FsbGJhY2socHJvcGVydGllcyk7CkBAIC0xMjcsNyArMTMxLDcgQEAgV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxsYmFj
ayhmYWxzZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgUnVudGlt
ZUFnZW50LnNldFByb3BlcnR5VmFsdWUodGhpcy5fb2JqZWN0SWQsIG5hbWUsIHZhbHVlLCBjYWxs
YmFjayk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5zZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX29iamVj
dElkLCBuYW1lLCB2YWx1ZSwgZXJyb3JGaWx0ZXIuYmluZCh0aGlzLCBjYWxsYmFjaykpOwogICAg
IH0sCiAKICAgICBwdXNoTm9kZVRvRnJvbnRlbmQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQpAQCAtMTQw
LDcgKzE0NCw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogCiAg
ICAgZXZhbHVhdGU6IGZ1bmN0aW9uKGV4cHJlc3Npb24sIGNhbGxiYWNrKQogICAgIHsKLSAgICAg
ICAgUnVudGltZUFnZW50LmV2YWx1YXRlT24odGhpcy5fb2JqZWN0SWQsIGV4cHJlc3Npb24sIGNh
bGxiYWNrKTsKKyAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlT24odGhpcy5fb2JqZWN0SWQs
IGV4cHJlc3Npb24sIGVycm9yRmlsdGVyLmJpbmQodGhpcywgY2FsbGJhY2spKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKaW5kZXgg
M2YyNzQ4NS4uODA1ZTE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHQuanMKQEAgLTExNSw4ICsxMTUsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBmdW5j
dGlvbiBkaWRHZXRTY3JpcHRTb3VyY2Uoc291cmNlKQorICAgICAgICBmdW5jdGlvbiBkaWRHZXRT
Y3JpcHRTb3VyY2UoZXJyb3IsIHNvdXJjZSkKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVy
cm9yKQorICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHRoaXMuX3NvdXJjZSA9
IHNvdXJjZTsKICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX3NvdXJjZSk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKaW5kZXggOTcxMzY0MC4uYzc5MzQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTQxMyw5ICs0MTMsOSBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLl9w
YXVzZWQgfHwgIXNlbGVjdGVkQ2FsbEZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGZ1bmN0aW9uIHVwZGF0aW5nQ2FsbGJhY2tXcmFwcGVyKHJlc3VsdCkKKyAgICAgICAgZnVu
Y3Rpb24gdXBkYXRpbmdDYWxsYmFja1dyYXBwZXIoZXJyb3IsIHJlc3VsdCkKICAgICAgICAgewot
ICAgICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIGlmICghZXJyb3IgJiYgcmVzdWx0
KQogICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJv
bVBheWxvYWQocmVzdWx0KSk7CiAgICAgICAgIH0KICAgICAgICAgRGVidWdnZXJBZ2VudC5ldmFs
dWF0ZU9uQ2FsbEZyYW1lKHNlbGVjdGVkQ2FsbEZyYW1lLmlkLCBjb2RlLCBvYmplY3RHcm91cCwg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCB1cGRhdGluZ0NhbGxiYWNrV3JhcHBlci5iaW5kKHRoaXMp
KTsKQEAgLTczMSw4ICs3MzEsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAKICAgICBfc2V0UGF1c2VPbkV4Y2VwdGlvbnM6IGZ1bmN0aW9uKHBhdXNlT25FeGNl
cHRpb25zU3RhdGUpCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhwYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlKQorICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgcGF1c2VPbkV4
Y2VwdGlvbnNTdGF0ZSkKICAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9yKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGlmIChwYXVzZU9uRXhjZXB0aW9uc1N0YXRl
ID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250
UGF1c2VPbkV4Y2VwdGlvbnMpCiAgICAgICAgICAgICAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlv
bkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9uJ3QgcGF1c2Ugb24gZXhj
ZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBleGNlcHRpb25zLiIpOwogICAgICAgICAg
ICAgZWxzZSBpZiAocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9PSBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuUGF1c2VPbkFsbEV4Y2VwdGlvbnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGI0
YzNmZGEuLmVhOWRmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC00OCw2ICs0OCwxNSBAQAogICAgIChuZXcgSW1hZ2UoKSkuc3Jj
ID0gIkltYWdlcy91bmRvY2tCdXR0b25HbHlwaC5wbmciOwogfSkoKTsKIAorZnVuY3Rpb24gZXJy
b3JGaWx0ZXIoKQoreworICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
YXJndW1lbnRzKTsKKyAgICB2YXIgY2FsbGJhY2sgPSBhcmdzLnNoaWZ0KCk7CisgICAgdmFyIGVy
cm9yID0gYXJncy5zaGlmdCgpOworICAgIGlmICghZXJyb3IpCisgICAgICAgIGNhbGxiYWNrLmFw
cGx5KHRoaXMsIGFyZ3MpOworfQorCiB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgIHJlc291cmNl
czoge30sCiAgICAgbWlzc2luZ0xvY2FsaXplZFN0cmluZ3M6IHt9LApAQCAtNTIyLDkgKzUzMSw5
IEBAIFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLmV4
dGVuc2lvblNlcnZlci5pbml0RXh0ZW5zaW9ucygpOwogCi0gICAgZnVuY3Rpb24gb25Qb3B1bGF0
ZVNjcmlwdE9iamVjdHMoKQorICAgIGZ1bmN0aW9uIG9uUG9wdWxhdGVTY3JpcHRPYmplY3RzKGVy
cm9yKQogICAgIHsKLSAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsKQorICAg
ICAgICBpZiAoIWVycm9yICYmICFXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsKQogICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbChXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdEFjdGl2
ZVBhbmVsKTsKICAgICB9CiAgICAgSW5zcGVjdG9yQWdlbnQucG9wdWxhdGVTY3JpcHRPYmplY3Rz
KG9uUG9wdWxhdGVTY3JpcHRPYmplY3RzKTsKQEAgLTUzOCw5ICs1NDcsMTAgQEAgV2ViSW5zcGVj
dG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIENvbnNvbGVBZ2VudC5zZXRDb25z
b2xlTWVzc2FnZXNFbmFibGVkKHRydWUpOwogCi0gICAgZnVuY3Rpb24gcHJvcGVydHlOYW1lc0Nh
bGxiYWNrKG5hbWVzKQorICAgIGZ1bmN0aW9uIHByb3BlcnR5TmFtZXNDYWxsYmFjayhlcnJvciwg
bmFtZXMpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zID0g
bmV3IFdlYkluc3BlY3Rvci5DU1NDb21wbGV0aW9ucyhuYW1lcyk7CisgICAgICAgIGlmICghZXJy
b3IpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTmFtZUNvbXBsZXRpb25zID0gbmV3IFdl
Ykluc3BlY3Rvci5DU1NDb21wbGV0aW9ucyhuYW1lcyk7CiAgICAgfQogICAgIC8vIEFzIGEgRE9N
QWdlbnQgbWV0aG9kLCB0aGlzIG5lZWRzIHRvIGhhcHBlbiBhZnRlciB0aGUgZnJvbnRlbmQgaGFz
IGxvYWRlZCBhbmQgdGhlIGFnZW50IGlzIGF2YWlsYWJsZS4KICAgICBDU1NBZ2VudC5nZXRTdXBw
b3J0ZWRDU1NQcm9wZXJ0aWVzKHByb3BlcnR5TmFtZXNDYWxsYmFjayk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>