<?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>103028</bug_id>
          
          <creation_ts>2012-11-21 23:39:57 -0800</creation_ts>
          <short_desc>REGRESSION(r134927): Reverting the reverts after merging. (Requested by vsevik on #webkit).</short_desc>
          <delta_ts>2012-11-22 00:10:10 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>102476</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773627</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 23:39:57 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/134927 broke the build:
Reverting the reverts after merging. (Requested by vsevik on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773630</commentid>
    <comment_count>1</comment_count>
      <attachid>175600</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 23:40:39 -0800</bug_when>
    <thetext>Created attachment 175600
ROLLOUT of r134927

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773663</commentid>
    <comment_count>2</comment_count>
      <attachid>175600</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-22 00:10:07 -0800</bug_when>
    <thetext>Comment on attachment 175600
ROLLOUT of r134927

Clearing flags on attachment: 175600

Committed r135487: &lt;http://trac.webkit.org/changeset/135487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773665</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-22 00:10:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175600</attachid>
            <date>2012-11-21 23:40:39 -0800</date>
            <delta_ts>2012-11-22 00:10:07 -0800</delta_ts>
            <desc>ROLLOUT of r134927</desc>
            <filename>bug-103028-20121122074656.patch</filename>
            <type>text/plain</type>
            <size>58613</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJlYTFjMTI5MjQwZDZl
OWMzMmJiM2MyYjYwMGViOTZlOWVlN2JhMC4uNzU5NDQ5OGQ2YmNhNzVhZjVjZjM2MTVkYjZkZmU5
MDFkN2QxNTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTExLTIxICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTM0OTI3IGFuZCByMTM0OTQ0LgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzQ5MjcKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTM0OTQ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDMwMjgKKworICAgICAgICBSZXZlcnRpbmcgdGhlIHJldmVydHMgYWZ0
ZXIgbWVyZ2luZy4gKFJlcXVlc3RlZCBieSB2c2V2aWsgb24KKyAgICAgICAgI3dlYmtpdCkuCisK
KyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZS5yZWdpc3RlclNob3J0Y3V0
cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX3JlZ2lzdGVyU2hvcnRjdXRz
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsRGVzY3JpcHRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FbGVtZW50c1BhbmVsRGVzY3JpcHRvci5wcm90b3R5cGUucmVnaXN0ZXJTaG9ydGN1dHMpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvR29Ub0xpbmVEaWFsb2cuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuR29Ub0xpbmVEaWFsb2cuaW5zdGFsbCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9LZXlib2FyZFNob3J0Y3V0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuX2tleU5hbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnJlZ2lz
dGVyU2hvcnRjdXRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IucHJv
dG90eXBlLnBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IucHJv
dG90eXBlLnJlZ2lzdGVyU2hvcnRjdXRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZURlYnVn
VG9vbGJhcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5f
Y3JlYXRlQnV0dG9uQW5kUmVnaXN0ZXJTaG9ydGN1dHMpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9yLnByb3RvdHlwZS5yZWdpc3RlclNob3J0Y3V0cyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TaG9ydGN1dHNTY3JlZW4uanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2hvcnRjdXRzU2NyZWVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
aG9ydGN1dHNTZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaG9ydGN1dHNTZWN0aW9u
LnByb3RvdHlwZS5fcmVuZGVyS2V5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1N0
eWxlc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlw
ZS5fcmVnaXN0ZXJTaG9ydGN1dHMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbERlc2NyaXB0b3IuanM6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5qcy4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbERlc2NyaXB0b3IucHJvdG90eXBlLnJlZ2lzdGVyU2hvcnRjdXRzKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fcGFuZWxEZXNjcmlwdG9y
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3JlZ2lzdGVyU2hvcnRjdXRzKToKKwogMjAxMi0x
MS0yMSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4
XSBXZWJDb3JlU3RyaW5nUmVzb3VyY2VCYXNlIHNob3VsZCBiZSBsb2NhdGVkIGluIFY4U3RyaW5n
UmVzb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IDY1OWRhYzQxZDM1Nzc1NTRiY2ZlZTNmYmU0M2RhZDdjNzJkZTMxZWUu
LmU0MjBmYTUwYTViNWUxZTgyODhkZGQ0NThjZmI4NWQxMmQ2MDhlYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTIyMSw4ICsy
MjEsMTAgQEAgbG9jYWxpemVkU3RyaW5nc1siSGlkZSBjb25zb2xlLiJdID0gIkhpZGUgY29uc29s
ZS4iOwogbG9jYWxpemVkU3RyaW5nc1siSGlkZSB0aGUgcmVjb3JkcyB0aGF0IGFyZSBzaG9ydGVy
IHRoYW4gJXMiXSA9ICJIaWRlIHRoZSBQcmVjb3JkcyB0aGF0IGFyZSBzaG9ydGVyIHRoYW4gJXMi
OwogbG9jYWxpemVkU3RyaW5nc1siSW1hZ2UiXSA9ICJJbWFnZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJJbWFnZXMiXSA9ICJJbWFnZXMiOwotbG9jYWxpemVkU3RyaW5nc1siSW5jcmVtZW50L2RlY3Jl
bWVudCBieSAlZiJdID0gIkluY3JlbWVudC9kZWNyZW1lbnQgYnkgJWYiOwotbG9jYWxpemVkU3Ry
aW5nc1siSW5jcmVtZW50L2RlY3JlbWVudCB2YWx1ZSJdID0gIkluY3JlbWVudC9kZWNyZW1lbnQg
dmFsdWUiOworbG9jYWxpemVkU3RyaW5nc1siSW5jcmVtZW50IGJ5ICVmIl0gPSAiSW5jcmVtZW50
IGJ5ICVmIjsKK2xvY2FsaXplZFN0cmluZ3NbIkRlY3JlbWVudCBieSAlZiJdID0gIkRlY3JlbWVu
dCBieSAlZiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJJbmNyZW1lbnQgdmFsdWUiXSA9ICJJbmNyZW1l
bnQgdmFsdWUiOworbG9jYWxpemVkU3RyaW5nc1siRGVjcmVtZW50IHZhbHVlIl0gPSAiRGVjcmVt
ZW50IHZhbHVlIjsKIGxvY2FsaXplZFN0cmluZ3NbIkluaGVyaXRlZCBmcm9tIl0gPSAiSW5oZXJp
dGVkIGZyb20iOwogbG9jYWxpemVkU3RyaW5nc1siSW5pdGlhdG9yIl0gPSAiSW5pdGlhdG9yIjsK
IGxvY2FsaXplZFN0cmluZ3NbIkluc3BlY3RlZCB3b3JrZXIgdGVybWluYXRlZCJdID0gIkluc3Bl
Y3RlZCB3b3JrZXIgdGVybWluYXRlZCI7CkBAIC0yNTUsNyArMjU3LDcgQEAgbG9jYWxpemVkU3Ry
aW5nc1siTmV4dC9wcmV2aW91cyBjYWxsIGZyYW1lIl0gPSAiTmV4dC9wcmV2aW91cyBjYWxsIGZy
YW1lIjsKIGxvY2FsaXplZFN0cmluZ3NbIk5leHQvcHJldmlvdXMgY29tbWFuZCJdID0gIk5leHQv
cHJldmlvdXMgY29tbWFuZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJOZXh0L3ByZXZpb3VzIGxpbmUi
XSA9ICJOZXh0L3ByZXZpb3VzIGxpbmUiOwogbG9jYWxpemVkU3RyaW5nc1siTmV4dC9wcmV2aW91
cyBwcm9wZXJ0eSJdID0gIk5leHQvcHJldmlvdXMgcHJvcGVydHkiOwotbG9jYWxpemVkU3RyaW5n
c1siTmV4dC9wcmV2aW91cyBzdWdnZXN0aW9uIl0gPSAiTmV4dC9wcmV2aW91cyBzdWdnZXN0aW9u
IjsKK2xvY2FsaXplZFN0cmluZ3NbIkF1dG9jb21wbGV0ZSBjb21tb24gcHJlZml4Il0gPSAiQXV0
b2NvbXBsZXRlIGNvbW1vbiBwcmVmaXgiOwogbG9jYWxpemVkU3RyaW5nc1siTm8gQXBwbGljYXRp
b24gQ2FjaGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlLiJdID0gIk5vIEFwcGxpY2F0aW9uIENhY2hl
IGluZm9ybWF0aW9uIGF2YWlsYWJsZS4iOwogbG9jYWxpemVkU3RyaW5nc1siTm8gQnJlYWtwb2lu
dHMiXSA9ICJObyBCcmVha3BvaW50cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJObyBDU1MgTmFtZWQg
Rmxvd3MiXSA9ICJObyBDU1MgTmFtZWQgRmxvd3MiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGEwYzUw
YjI2ZTZmYzZjY2NhYjU0Y2RlMmI2N2IxMThkNzE2ZGE2MGUuLmFkZDNjZWRhOGU3Y2JiOTEzNDgz
ODE4NzFjN2M1OWFiNjU1MTQ0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTY0OTksNiArNjQ5OSw3
IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lR3JpZC5qcycsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1hbmFnZXIuanMnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbERlc2NyaXB0b3IuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4MDNiZjIxYmJjY2RmMDcwOTg4MjU5YmIxZTEw
MzM2MjQxM2JkZGM1Li5iZjgwNWNmNjFkMzQ2M2IxMjM1MDU0MzRkOTAzZWY2YjIxNzdiNjdhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzY5
MDksNiArNzY5MDksMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcVGltZWxpbmVQYW5lbERlc2NyaXB0
b3IuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMiCiAJ
CQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Y29tcGlsZS1mcm9udC1lbmQucHkgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1m
cm9udC1lbmQucHkKaW5kZXggNmVhZGE0NzFkODVlOGE1YzYzZWUzMGYzNWUyYjYwYWM4ODIxMGJm
ZC4uYWY1MzE5YjAwNzJhZDZiYjUzZDc5YTFkZDY0ODIxNmRlNmRkYzc2MCAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQpAQCAtMjcxLDYgKzI3MSw3
IEBAIG1vZHVsZXMgPSBbCiAgICAgICAgICAgICAiVGltZWxpbmVNb2RlbC5qcyIsCiAgICAgICAg
ICAgICAiVGltZWxpbmVPdmVydmlld1BhbmUuanMiLAogICAgICAgICAgICAgIlRpbWVsaW5lUGFu
ZWwuanMiLAorICAgICAgICAgICAgIlRpbWVsaW5lUGFuZWxEZXNjcmlwdG9yLmpzIiwKICAgICAg
ICAgICAgICJUaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIiwKICAgICAgICAgICAgICJUaW1l
bGluZUZyYW1lQ29udHJvbGxlci5qcyIKICAgICAgICAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxl
ci5qcwppbmRleCA5ZGZhNzhjZDVmNjgwZjMyNWIwZDZiMDUxYTI1MzFlMzM3ODExNWEzLi4zZjRm
OGRmZDQwODhhYzhiMmUyOTM5Mjk4ZDc4YTEzYjQ1OTAwZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29u
dHJvbGxlci5qcwpAQCAtMzksNiArMzksOSBAQCBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hD
b250cm9sbGVyID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5
cGVzLkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7CiB9CiAKKy8q
KgorICogQHJldHVybiB7IVdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LkRlc2NyaXB0b3J9
CisgKi8KIFdlYkluc3BlY3Rvci5BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuY3JlYXRlU2hvcnRj
dXQgPSBmdW5jdGlvbigpCiB7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5pc01hYygpKQpAQCAtNDks
NyArNTIsNyBAQCBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmNyZWF0ZVNo
b3J0Y3V0ID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9s
bGVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAor
ICAgICAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQKICAgICAgKiBAcmV0dXJuIHtib29s
ZWFufQogICAgICAqLwogICAgIGhhbmRsZVNob3J0Y3V0OiBmdW5jdGlvbihldmVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJh
clBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1Np
ZGViYXJQYW5lLmpzCmluZGV4IGMwNjVjOTA2NzY5MTA5OGJlYTljZGUyNjljMGYxMzc1M2M1Mzgw
Y2MuLjI3YWQyMjMxY2FkNmMwNDhjODE3MDZmZDM1YWY2ZmE5NTM5MTE4NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRl
YmFyUGFuZS5qcwpAQCAtMTE1LDE3ICsxMTUsMTMgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1Np
ZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNv
cHlUZXh0KHRleHQpOwogICAgIH0sCiAKLSAgICByZWdpc3RlclNob3J0Y3V0czogZnVuY3Rpb24o
c2VjdGlvbiwgcmVnaXN0ZXJTaG9ydGN1dERlbGVnYXRlKQorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oIUFycmF5LjwhV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuRGVzY3Jp
cHRvcj4sIGZ1bmN0aW9uKEtleWJvYXJkRXZlbnQpKX0gcmVnaXN0ZXJTaG9ydGN1dERlbGVnYXRl
CisgICAgICovCisgICAgcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKHJlZ2lzdGVyU2hvcnRj
dXREZWxlZ2F0ZSkKICAgICB7Ci0gICAgICAgIHZhciBuZXh0Q2FsbEZyYW1lID0gV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQuS2V5cy5QZXJpb2QsCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7Ci0gICAgICAgIHJlZ2lzdGVyU2hvcnRjdXREZWxlZ2F0
ZShuZXh0Q2FsbEZyYW1lLmtleSwgdGhpcy5fc2VsZWN0TmV4dENhbGxGcmFtZU9uU3RhY2suYmlu
ZCh0aGlzKSk7Ci0KLSAgICAgICAgdmFyIHByZXZDYWxsRnJhbWUgPSBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5LZXlzLkNvbW1hLAotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQu
TW9kaWZpZXJzLkN0cmwpOwotICAgICAgICByZWdpc3RlclNob3J0Y3V0RGVsZWdhdGUocHJldkNh
bGxGcmFtZS5rZXksIHRoaXMuX3NlbGVjdFByZXZpb3VzQ2FsbEZyYW1lT25TdGFjay5iaW5kKHRo
aXMpKTsKLQotICAgICAgICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKFsgbmV4dENhbGxGcmFtZS5u
YW1lLCBwcmV2Q2FsbEZyYW1lLm5hbWUgXSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXh0L3By
ZXZpb3VzIGNhbGwgZnJhbWUiKSk7CisgICAgICAgIHJlZ2lzdGVyU2hvcnRjdXREZWxlZ2F0ZShX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuTmV4dENhbGxG
cmFtZSwgdGhpcy5fc2VsZWN0TmV4dENhbGxGcmFtZU9uU3RhY2suYmluZCh0aGlzKSk7CisgICAg
ICAgIHJlZ2lzdGVyU2hvcnRjdXREZWxlZ2F0ZShXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVz
Y3JpcHRvci5TaG9ydGN1dEtleXMuUHJldkNhbGxGcmFtZSwgdGhpcy5fc2VsZWN0UHJldmlvdXND
YWxsRnJhbWVPblN0YWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBzZXRTdGF0dXM6IGZ1
bmN0aW9uKHN0YXR1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVWaWV3LmpzCmluZGV4IDllYTViY2E2MTBjMGY4MzVlZDZjOTEyNDA3ZmIyZDM0ZjJi
YTRhMjMuLmRjZjVmN2FmYTdhOWEzODNmNDEzNWU4ZjhiNTkzMWJkNmIwMWIxNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAt
NDc2LDM3ICs0NzYsMzYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fc2hvcnRjdXRzID0ge307CiAKICAgICAgICAgdmFyIHNob3J0Y3V0ID0g
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQ7CisgICAgICAgIHZhciBzZWN0aW9uID0gV2Vi
SW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q29uc29sZSIpKTsKIAorICAgICAgICB2YXIgc2hvcnRjdXRMID0gc2hvcnRjdXQubWFrZURlc2Ny
aXB0b3IoImwiLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7
CisgICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEwua2V5XSA9IHRoaXMuX3JlcXVlc3RD
bGVhck1lc3NhZ2VzLmJpbmQodGhpcyk7CisgICAgICAgIHZhciBrZXlzID0gW3Nob3J0Y3V0TF07
CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNNYWMoKSkgewogICAgICAgICAgICAgdmFyIHNo
b3J0Y3V0SyA9IHNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJrIiwgV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQuTW9kaWZpZXJzLk1ldGEpOwogICAgICAgICAgICAgdGhpcy5fc2hvcnRjdXRz
W3Nob3J0Y3V0Sy5rZXldID0gdGhpcy5fcmVxdWVzdENsZWFyTWVzc2FnZXMuYmluZCh0aGlzKTsK
KyAgICAgICAgICAgIGtleXMudW5zaGlmdChzaG9ydGN1dEspOwogICAgICAgICB9Ci0KLSAgICAg
ICAgdmFyIHNob3J0Y3V0TCA9IHNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJsIiwgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmwpOwotICAgICAgICB0aGlzLl9zaG9y
dGN1dHNbc2hvcnRjdXRMLmtleV0gPSB0aGlzLl9yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRo
aXMpOwotCi0gICAgICAgIHZhciBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVl
bi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29uc29sZSIpKTsKLSAgICAgICAgdmFy
IGtleXMgPSBXZWJJbnNwZWN0b3IuaXNNYWMoKSA/IFsgc2hvcnRjdXRLLm5hbWUsIHNob3J0Y3V0
TC5uYW1lIF0gOiBbIHNob3J0Y3V0TC5uYW1lIF07CiAgICAgICAgIHNlY3Rpb24uYWRkQWx0ZXJu
YXRlS2V5cyhrZXlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNsZWFyIGNvbnNvbGUiKSk7CiAK
KyAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQubWFrZURlc2NyaXB0b3Ioc2hvcnRjdXQu
S2V5cy5UYWIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkF1dG9jb21wbGV0ZSBjb21tb24gcHJl
Zml4IikpOworICAgICAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihz
aG9ydGN1dC5LZXlzLlJpZ2h0KSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBY2NlcHQgc3VnZ2Vz
dGlvbiIpKTsKKwogICAgICAgICBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRj
dXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlRhYiksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9y
dGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuVGFiLCBzaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQp
Ci0gICAgICAgIF07Ci0gICAgICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJOZXh0L3ByZXZpb3VzIHN1Z2dlc3Rpb24iKSk7Ci0gICAgICAgIHNl
Y3Rpb24uYWRkS2V5KHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5SaWdo
dCksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWNjZXB0IHN1Z2dlc3Rpb24iKSk7Ci0gICAgICAg
IGtleXMgPSBbCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0
LktleXMuRG93biksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0
Y3V0LktleXMuVXApCisgICAgICAgICAgICBzaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihzaG9ydGN1
dC5LZXlzLkRvd24pLAorICAgICAgICAgICAgc2hvcnRjdXQubWFrZURlc2NyaXB0b3Ioc2hvcnRj
dXQuS2V5cy5VcCkKICAgICAgICAgXTsKICAgICAgICAgc2VjdGlvbi5hZGRSZWxhdGVkS2V5cyhr
ZXlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5leHQvcHJldmlvdXMgbGluZSIpKTsKLSAgICAg
ICAga2V5cyA9IFsKLSAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoIk4iLCBz
aG9ydGN1dC5Nb2RpZmllcnMuQWx0KSwKLSAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9T
dHJpbmcoIlAiLCBzaG9ydGN1dC5Nb2RpZmllcnMuQWx0KQotICAgICAgICBdOwotICAgICAgICBp
ZiAoV2ViSW5zcGVjdG9yLmlzTWFjKCkpCisKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5pc01h
YygpKSB7CisgICAgICAgICAgICBrZXlzID0gWworICAgICAgICAgICAgICAgIHNob3J0Y3V0Lm1h
a2VEZXNjcmlwdG9yKCJOIiwgc2hvcnRjdXQuTW9kaWZpZXJzLkFsdCksCisgICAgICAgICAgICAg
ICAgc2hvcnRjdXQubWFrZURlc2NyaXB0b3IoIlAiLCBzaG9ydGN1dC5Nb2RpZmllcnMuQWx0KQor
ICAgICAgICAgICAgXTsKICAgICAgICAgICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXh0L3ByZXZpb3VzIGNvbW1hbmQiKSk7Ci0gICAgICAg
IHNlY3Rpb24uYWRkS2V5KHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5F
bnRlciksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhlY3V0ZSBjb21tYW5kIikpOworICAgICAg
ICB9CisKKyAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQubWFrZURlc2NyaXB0b3Ioc2hv
cnRjdXQuS2V5cy5FbnRlciksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhlY3V0ZSBjb21tYW5k
IikpOwogICAgIH0sCiAKICAgICBfcmVxdWVzdENsZWFyTWVzc2FnZXM6IGZ1bmN0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
cwppbmRleCAxYjg2NTEwYTA3ZDY2YWM2YWEyOTg0ODQ1ODZhNjE3MjU0YWY2NWNiLi44MDMzMjk5
Y2QwYTM2Mjk0MGZkOTlmMTk1MjI0MDlhZWE4NjhhY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC05OCw4ICs5OCw2
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
dGhpcy5zaWRlYmFyUGFuZXNbcGFuZV0ub25hdHRhY2goKTsKICAgICB9CiAKLSAgICB0aGlzLl9y
ZWdpc3RlclNob3J0Y3V0cygpOwotCiAgICAgdGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuUG9wb3ZlckhlbHBlcih0aGlzLmVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNo
b3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5f
cG9wb3ZlckhlbHBlci5zZXRUaW1lb3V0KDApOwogCkBAIC0xMDA1LDI3ICsxMDAzLDYgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBldmVudExpc3Rl
bmVyc1NpZGViYXJQYW5lLm5lZWRzVXBkYXRlID0gZmFsc2U7CiAgICAgfSwKIAotICAgIF9yZWdp
c3RlclNob3J0Y3V0czogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHNob3J0Y3V0ID0g
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQ7Ci0gICAgICAgIHZhciBzZWN0aW9uID0gV2Vi
SW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RWxlbWVudHMgUGFuZWwiKSk7Ci0gICAgICAgIHZhciBrZXlzID0gWwotICAgICAgICAgICAgc2hv
cnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlVwKSwKLSAgICAgICAgICAgIHNo
b3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5Eb3duKQotICAgICAgICBdOwot
ICAgICAgICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiTmF2aWdhdGUgZWxlbWVudHMiKSk7Ci0KLSAgICAgICAga2V5cyA9IFsKLSAgICAgICAgICAg
IHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5SaWdodCksCi0gICAgICAg
ICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuTGVmdCkKLSAgICAg
ICAgXTsKLSAgICAgICAgc2VjdGlvbi5hZGRSZWxhdGVkS2V5cyhrZXlzLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkV4cGFuZC9jb2xsYXBzZSIpKTsKLSAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hv
cnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLkVudGVyKSwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJFZGl0IGF0dHJpYnV0ZSIpKTsKLSAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hv
cnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLkYyKSwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJUb2dnbGUgZWRpdCBhcyBIVE1MIikpOwotCi0gICAgICAgIHRoaXMuc2lkZWJhclBh
bmVzLnN0eWxlcy5yZWdpc3RlclNob3J0Y3V0cygpOwotICAgIH0sCi0KICAgICBoYW5kbGVTaG9y
dGN1dDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuZXZlbnRIYXNDdHJsT3JNZXRhKGV2ZW50KSAmJiAhZXZlbnQuc2hpZnRL
ZXkgJiYgZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDA1QSIpIHsgLy8gWiBrZXkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbERl
c2NyaXB0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRz
UGFuZWxEZXNjcmlwdG9yLmpzCmluZGV4IDhmNzFhYWUwOGQ1YWMzYjBlZDYzMThiZjNhNzZiYmRh
N2U5MDQyMmEuLjAyNjdmNDViNGFlMmEyZTAwZTI2OGJkNDA5YWMyZGYzMTA1MzI3YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbERl
c2NyaXB0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1BhbmVsRGVzY3JpcHRvci5qcwpAQCAtNTIsNSArNTIsMTA0IEBAIFdlYkluc3BlY3Rvci5F
bGVtZW50c1BhbmVsRGVzY3JpcHRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucGFuZWwo
KS5hcHBlbmRBcHBsaWNhYmxlSXRlbXMoZXZlbnQsIGNvbnRleHRNZW51LCB0YXJnZXQpOwogICAg
IH0sCiAKKyAgICByZWdpc3RlclNob3J0Y3V0czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dmFyIGVsZW1lbnRzU2VjdGlvbiA9IFdlYkluc3BlY3Rvci5zaG9ydGN1dHNTY3JlZW4uc2VjdGlv
bihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkVsZW1lbnRzIFBhbmVsIikpOworCisgICAgICAgIHZh
ciBuYXZpZ2F0ZSA9IFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1
dEtleXMuTmF2aWdhdGVVcC5jb25jYXQoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWxEZXNjcmlw
dG9yLlNob3J0Y3V0S2V5cy5OYXZpZ2F0ZURvd24pOworICAgICAgICBlbGVtZW50c1NlY3Rpb24u
YWRkUmVsYXRlZEtleXMobmF2aWdhdGUsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTmF2aWdhdGUg
ZWxlbWVudHMiKSk7CisKKyAgICAgICAgdmFyIGV4cGFuZENvbGxhcHNlID0gV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5FeHBhbmQuY29uY2F0KFdlYklu
c3BlY3Rvci5FbGVtZW50c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuQ29sbGFwc2UpOwor
ICAgICAgICBlbGVtZW50c1NlY3Rpb24uYWRkUmVsYXRlZEtleXMoZXhwYW5kQ29sbGFwc2UsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRXhwYW5kL2NvbGxhcHNlIikpOworCisgICAgICAgIGVsZW1l
bnRzU2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsRGVz
Y3JpcHRvci5TaG9ydGN1dEtleXMuRWRpdEF0dHJpYnV0ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJFZGl0IGF0dHJpYnV0ZSIpKTsKKyAgICAgICAgZWxlbWVudHNTZWN0aW9uLmFkZEFsdGVybmF0
ZUtleXMoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5U
b2dnbGVFZGl0QXNIVE1MLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRvZ2dsZSBlZGl0IGFzIEhU
TUwiKSk7CisKKyAgICAgICAgdmFyIHN0eWxlc1BhbmVTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNo
b3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3R5bGVzIFBhbmUi
KSk7CisKKyAgICAgICAgdmFyIG5leHRQcmV2aW91c1Byb3BlcnR5ID0gV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5OZXh0UHJvcGVydHkuY29uY2F0KFdl
Ykluc3BlY3Rvci5FbGVtZW50c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuUHJldmlvdXNQ
cm9wZXJ0eSk7CisgICAgICAgIHN0eWxlc1BhbmVTZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKG5leHRQ
cmV2aW91c1Byb3BlcnR5LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5leHQvcHJldmlvdXMgcHJv
cGVydHkiKSk7CisKKyAgICAgICAgc3R5bGVzUGFuZVNlY3Rpb24uYWRkUmVsYXRlZEtleXMoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5JbmNyZW1lbnRW
YWx1ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbmNyZW1lbnQgdmFsdWUiKSk7CisgICAgICAg
IHN0eWxlc1BhbmVTZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuRGVjcmVtZW50VmFsdWUsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRGVjcmVtZW50IHZhbHVlIikpOworCisgICAgICAgIHN0eWxlc1BhbmVTZWN0aW9u
LmFkZEFsdGVybmF0ZUtleXMoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNo
b3J0Y3V0S2V5cy5JbmNyZW1lbnRCeTEwLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkluY3JlbWVu
dCBieSAlZiIsIDEwKSk7CisgICAgICAgIHN0eWxlc1BhbmVTZWN0aW9uLmFkZEFsdGVybmF0ZUtl
eXMoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5EZWNy
ZW1lbnRCeTEwLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlY3JlbWVudCBieSAlZiIsIDEwKSk7
CisKKyAgICAgICAgc3R5bGVzUGFuZVNlY3Rpb24uYWRkQWx0ZXJuYXRlS2V5cyhXZWJJbnNwZWN0
b3IuRWxlbWVudHNQYW5lbERlc2NyaXB0b3IuU2hvcnRjdXRLZXlzLkluY3JlbWVudEJ5MTAwLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkluY3JlbWVudCBieSAlZiIsIDEwMCkpOworICAgICAgICBz
dHlsZXNQYW5lU2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuRGVjcmVtZW50QnkxMDAsIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiRGVjcmVtZW50IGJ5ICVmIiwgMTAwKSk7CisKKyAgICAgICAgc3R5bGVzUGFuZVNl
Y3Rpb24uYWRkQWx0ZXJuYXRlS2V5cyhXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbERlc2NyaXB0
b3IuU2hvcnRjdXRLZXlzLkluY3JlbWVudEJ5MDEsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5j
cmVtZW50IGJ5ICVmIiwgMC4xKSk7CisgICAgICAgIHN0eWxlc1BhbmVTZWN0aW9uLmFkZEFsdGVy
bmF0ZUtleXMoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5
cy5EZWNyZW1lbnRCeTAxLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRlY3JlbWVudCBieSAlZiIs
IDAuMSkpOworICAgIH0sCisKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5QYW5lbERlc2Ny
aXB0b3IucHJvdG90eXBlCiB9CisKK1dlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsRGVzY3JpcHRv
ci5TaG9ydGN1dEtleXMgPSB7CisgICAgTmF2aWdhdGVVcDogWworICAgICAgICBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5LZXlzLlVwKQorICAgIF0sCisKKyAgICBOYXZpZ2F0ZURvd246IFsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5cy5Eb3duKQorICAgIF0sCisKKyAgICBFeHBhbmQ6IFsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5z
cGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5SaWdodCkKKyAgICBdLAorCisgICAgQ29sbGFw
c2U6IFsKKyAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0
b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5MZWZ0KQorICAgIF0sCisKKyAg
ICBFZGl0QXR0cmlidXRlOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
Lm1ha2VEZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuRW50ZXIp
CisgICAgXSwKKworICAgIFRvZ2dsZUVkaXRBc0hUTUw6IFsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuS2V5cy5GMikKKyAgICBdLAorCisgICAgTmV4dFByb3BlcnR5OiBbCisgICAgICAgIFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5L
ZXlib2FyZFNob3J0Y3V0LktleXMuVGFiKQorICAgIF0sCisKKyAgICBQcmV2aW91c1Byb3BlcnR5
OiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9y
KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuVGFiLCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQpCisgICAgXSwKKworICAgIEluY3JlbWVudFZh
bHVlOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlw
dG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuVXApCisgICAgXSwKKworICAg
IERlY3JlbWVudFZhbHVlOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
Lm1ha2VEZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuRG93bikK
KyAgICBdLAorCisgICAgSW5jcmVtZW50QnkxMDogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5LZXlzLlBhZ2VVcCksCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1h
a2VEZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuVXAsIFdlYklu
c3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5TaGlmdCkKKyAgICBdLAorCisgICAg
RGVjcmVtZW50QnkxMDogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5t
YWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlBhZ2VEb3du
KSwKKyAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3Io
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5Eb3duLCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQpCisgICAgXSwKKworICAgIEluY3JlbWVudEJ5
MTAwOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlw
dG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuUGFnZVVwLCBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQpCisgICAgXSwKKworICAgIERlY3Jl
bWVudEJ5MTAwOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VE
ZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuUGFnZURvd24sIFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5TaGlmdCkKKyAgICBdLAorCisg
ICAgSW5jcmVtZW50QnkwMTogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlBhZ2VV
cCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkFsdCkKKyAgICBdLAor
CisgICAgRGVjcmVtZW50QnkwMTogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlBh
Z2VEb3duLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQWx0KQorICAg
IF0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0dv
VG9MaW5lRGlhbG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Hb1Rv
TGluZURpYWxvZy5qcwppbmRleCBhYzQxYjdhZDk4ZjkzZWYyMDliMWE4NThjYjMzOWU1YzE2Njlm
ZmZmLi41NzYzOTRlYjBkMTlhYTJhOGU4N2FjMTIxNjRjM2Y3NzA0ZTBiMWJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0dvVG9MaW5lRGlhbG9nLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvR29Ub0xpbmVEaWFsb2cuanMK
QEAgLTY1LDcgKzY1LDcgQEAgV2ViSW5zcGVjdG9yLkdvVG9MaW5lRGlhbG9nLmluc3RhbGwgPSBm
dW5jdGlvbihwYW5lbCwgdmlld0dldHRlcikKICAgICB9CiAKICAgICB2YXIgZ29Ub0xpbmVTaG9y
dGN1dCA9IFdlYkluc3BlY3Rvci5Hb1RvTGluZURpYWxvZy5jcmVhdGVTaG9ydGN1dCgpOwotICAg
IHBhbmVsLnJlZ2lzdGVyU2hvcnRjdXQoZ29Ub0xpbmVTaG9ydGN1dC5rZXksIHNob3dHb1RvTGlu
ZURpYWxvZyk7CisgICAgcGFuZWwucmVnaXN0ZXJTaG9ydGN1dHMoW2dvVG9MaW5lU2hvcnRjdXRd
LCBzaG93R29Ub0xpbmVEaWFsb2cpOwogfQogCiBXZWJJbnNwZWN0b3IuR29Ub0xpbmVEaWFsb2cu
X3Nob3cgPSBmdW5jdGlvbihzb3VyY2VWaWV3KQpAQCAtNzUsNiArNzUsOSBAQCBXZWJJbnNwZWN0
b3IuR29Ub0xpbmVEaWFsb2cuX3Nob3cgPSBmdW5jdGlvbihzb3VyY2VWaWV3KQogICAgIFdlYklu
c3BlY3Rvci5EaWFsb2cuc2hvdyhzb3VyY2VWaWV3LmVsZW1lbnQsIG5ldyBXZWJJbnNwZWN0b3Iu
R29Ub0xpbmVEaWFsb2coc291cmNlVmlldykpOwogfQogCisvKioKKyAqIEByZXR1cm4geyFXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5EZXNjcmlwdG9yfQorICovCiBXZWJJbnNwZWN0b3Iu
R29Ub0xpbmVEaWFsb2cuY3JlYXRlU2hvcnRjdXQgPSBmdW5jdGlvbigpCiB7CiAgICAgdmFyIGlz
TWFjID0gV2ViSW5zcGVjdG9yLmlzTWFjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMKaW5kZXggNGM0MmQ5MmExY2Yz
Yjg3MjlmMThiNTZkMGNjOWE0YjQxODM0OWVmNS4uOWI4ZDg2OGY3YTY5ODg3OWU4ZWNlYmM1Yzcw
YmJmNWNjMTFiYmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9LZXlib2FyZFNob3J0Y3V0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvS2V5Ym9hcmRTaG9ydGN1dC5qcwpAQCAtNTEsNiArNTEsMTAgQEAgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzID0gewogICAgIH0KIH07CiAKKy8qKiBAdHlw
ZWRlZiB7e2NvZGU6IG51bWJlciwgbmFtZTogKHN0cmluZ3xPYmplY3QuPHN0cmluZywgc3RyaW5n
Pil9fSAqLworV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5OworCisvKiogQHR5cGUg
eyFPYmplY3QuPHN0cmluZywgIVdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleT59ICov
CiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzID0gewogICAgIEJhY2tzcGFjZTog
eyBjb2RlOiA4LCBuYW1lOiAiXHUyMWE0IiB9LAogICAgIFRhYjogeyBjb2RlOiA5LCBuYW1lOiB7
IG1hYzogIlx1MjFlNSIsIG90aGVyOiAiPFRhYj4iIH0gfSwKQEAgLTkyLDggKzk2LDEwIEBAIFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMgPSB7CiAvKioKICAqIENyZWF0ZXMgYSBu
dW1iZXIgZW5jb2Rpbmcga2V5Q29kZSBpbiB0aGUgbG93ZXIgOCBiaXRzIGFuZCBtb2RpZmllcnMg
bWFzayBpbiB0aGUgaGlnaGVyIDggYml0cy4KICAqIEl0IGlzIHVzZWZ1bCBmb3IgbWF0Y2hpbmcg
cHJlc3NlZCBrZXlzLgotICoga2V5Q29kZSBpcyB0aGUgQ29kZSBvZiB0aGUga2V5LCBvciBhIGNo
YXJhY3RlciAiYS16IiB3aGljaCBpcyBjb252ZXJ0ZWQgdG8gYSBrZXlDb2RlIHZhbHVlLgorICoK
KyAqIEBwYXJhbSB7bnVtYmVyfHN0cmluZ30ga2V5Q29kZSBUaGUgQ29kZSBvZiB0aGUga2V5LCBv
ciBhIGNoYXJhY3RlciAiYS16IiB3aGljaCBpcyBjb252ZXJ0ZWQgdG8gYSBrZXlDb2RlIHZhbHVl
LgogICogQHBhcmFtIHtudW1iZXI9fSBtb2RpZmllcnMgT3B0aW9uYWwgbGlzdCBvZiBtb2RpZmll
cnMgcGFzc2VkIGFzIGFkZGl0aW9uYWwgcGFyYW1lcnRlcnMuCisgKiBAcmV0dXJuIHtudW1iZXJ9
CiAgKi8KIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkgPSBmdW5jdGlvbihr
ZXlDb2RlLCBtb2RpZmllcnMpCiB7CkBAIC0xMDMsNiArMTA5LDEwIEBAIFdlYkluc3BlY3Rvci5L
ZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkgPSBmdW5jdGlvbihrZXlDb2RlLCBtb2RpZmllcnMpCiAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Ll9tYWtlS2V5RnJvbUNvZGVB
bmRNb2RpZmllcnMoa2V5Q29kZSwgbW9kaWZpZXJzKTsKIH0KIAorLyoqCisgKiBAcGFyYW0ge0tl
eWJvYXJkRXZlbnR9IGtleWJvYXJkRXZlbnQKKyAqIEByZXR1cm4ge251bWJlcn0KKyAqLwogV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZUtleUZyb21FdmVudCA9IGZ1bmN0aW9uKGtl
eWJvYXJkRXZlbnQpCiB7CiAgICAgdmFyIG1vZGlmaWVycyA9IFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0Lk1vZGlmaWVycy5Ob25lOwpAQCAtMTE3LDEzICsxMjcsMjEgQEAgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQubWFrZUtleUZyb21FdmVudCA9IGZ1bmN0aW9uKGtleWJvYXJk
RXZlbnQpCiAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Ll9tYWtlS2V5
RnJvbUNvZGVBbmRNb2RpZmllcnMoa2V5Ym9hcmRFdmVudC5rZXlDb2RlLCBtb2RpZmllcnMpOwog
fQogCisvKioKKyAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQKKyAqLwogV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuZXZlbnRIYXNDdHJsT3JNZXRhID0gZnVuY3Rpb24oZXZlbnQp
CiB7CiAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5pc01hYygpID8gZXZlbnQubWV0YUtleSAmJiAh
ZXZlbnQuY3RybEtleSA6IGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXk7CiB9CiAKKy8q
KiBAdHlwZWRlZiB7e2tleTogbnVtYmVyLCBuYW1lOiBzdHJpbmd9fSAqLworV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuRGVzY3JpcHRvcjsKKwogLyoqCisgKiBAcGFyYW0ge3N0cmluZ3xX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXl9IGtleQogICogQHBhcmFtIHtudW1iZXI9
fSBtb2RpZmllcnMKKyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LkRl
c2NyaXB0b3J9CiAgKi8KIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlw
dG9yID0gZnVuY3Rpb24oa2V5LCBtb2RpZmllcnMpCiB7CkBAIC0xMzQsMjcgKzE1Miw0MiBAQCBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvciA9IGZ1bmN0aW9uKGtl
eSwgbW9kaWZpZXJzKQogfQogCiAvKioKKyAqIEBwYXJhbSB7c3RyaW5nfFdlYkluc3BlY3Rvci5L
ZXlib2FyZFNob3J0Y3V0LktleX0ga2V5CiAgKiBAcGFyYW0ge251bWJlcj19IG1vZGlmaWVycwor
ICogQHJldHVybiB7c3RyaW5nfQogICovCiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5z
aG9ydGN1dFRvU3RyaW5nID0gZnVuY3Rpb24oa2V5LCBtb2RpZmllcnMpCiB7CiAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Ll9tb2RpZmllcnNUb1N0cmluZyhtb2RpZmll
cnMpICsgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuX2tleU5hbWUoa2V5KTsKIH0KIAor
LyoqCisgKiBAcGFyYW0ge3N0cmluZ3xXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXl9
IGtleQorICogQHJldHVybiB7c3RyaW5nfQorICovCiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5fa2V5TmFtZSA9IGZ1bmN0aW9uKGtleSkKIHsKICAgICBpZiAodHlwZW9mIGtleSA9PT0g
InN0cmluZyIpCiAgICAgICAgIHJldHVybiBrZXkudG9VcHBlckNhc2UoKTsKICAgICBpZiAodHlw
ZW9mIGtleS5uYW1lID09PSAic3RyaW5nIikKICAgICAgICAgcmV0dXJuIGtleS5uYW1lOwotICAg
IHJldHVybiBrZXkubmFtZVtXZWJJbnNwZWN0b3IucGxhdGZvcm0oKV0gfHwga2V5Lm5hbWUub3Ro
ZXI7CisgICAgcmV0dXJuIGtleS5uYW1lW1dlYkluc3BlY3Rvci5wbGF0Zm9ybSgpXSB8fCBrZXku
bmFtZS5vdGhlciB8fCAnJzsKIH0KIAorLyoqCisgKiBAcGFyYW0ge251bWJlcn0ga2V5Q29kZQor
ICogQHBhcmFtIHs/bnVtYmVyfSBtb2RpZmllcnMKKyAqIEByZXR1cm4ge251bWJlcn0KKyAqLwog
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuX21ha2VLZXlGcm9tQ29kZUFuZE1vZGlmaWVy
cyA9IGZ1bmN0aW9uKGtleUNvZGUsIG1vZGlmaWVycykKIHsKICAgICByZXR1cm4gKGtleUNvZGUg
JiAyNTUpIHwgKG1vZGlmaWVycyA8PCA4KTsKIH07CiAKKy8qKgorICogQHBhcmFtIHtudW1iZXJ8
dW5kZWZpbmVkfSBtb2RpZmllcnMKKyAqIEByZXR1cm4ge3N0cmluZ30KKyAqLwogV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuX21vZGlmaWVyc1RvU3RyaW5nID0gZnVuY3Rpb24obW9kaWZp
ZXJzKQogewogICAgIGNvbnN0IGNtZEtleSA9ICJcdTIzMTgiOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggZDUzN2M0ZThiN2FkZTJiM2E0M2MwYjdj
ZjgwMWQ0ZjAyZGRlOGNiMi4uMjQ4ZGI5OTUzYjU4ZGZiMzA1NmYxNTg2MDU4OWJkNTY4ZDRmMWU2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0y
MjksNiArMjI5LDkgQEAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIFtdOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0tleWJvYXJkRXZl
bnR9IGV2ZW50CisgICAgICovCiAgICAgaGFuZGxlU2hvcnRjdXQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgdmFyIHNob3J0Y3V0S2V5ID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQubWFrZUtleUZyb21FdmVudChldmVudCk7CkBAIC0yMzksMTQgKzI0MiwxNCBAQCBXZWJJ
bnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIHJl
Z2lzdGVyU2hvcnRjdXQ6IGZ1bmN0aW9uKGtleSwgaGFuZGxlcikKLSAgICB7Ci0gICAgICAgIHRo
aXMuX3Nob3J0Y3V0c1trZXldID0gaGFuZGxlcjsKLSAgICB9LAotCi0gICAgdW5yZWdpc3RlclNo
b3J0Y3V0OiBmdW5jdGlvbihrZXkpCisgICAgLyoqCisgICAgICogQHBhcmFtIHshQXJyYXkuPCFX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5EZXNjcmlwdG9yPn0ga2V5cworICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24oS2V5Ym9hcmRFdmVudCl9IGhhbmRsZXIKKyAgICAgKi8KKyAgICByZWdp
c3RlclNob3J0Y3V0czogZnVuY3Rpb24oa2V5cywgaGFuZGxlcikKICAgICB7Ci0gICAgICAgIGRl
bGV0ZSB0aGlzLl9zaG9ydGN1dHNba2V5XTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBr
ZXlzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fc2hvcnRjdXRzW2tleXNbaV0ua2V5
XSA9IGhhbmRsZXI7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcu
cHJvdG90eXBlCkBAIC0zMTMsNSArMzE2LDcgQEAgV2ViSW5zcGVjdG9yLlBhbmVsRGVzY3JpcHRv
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpbXBvcnRTY3JpcHQodGhpcy5fc2NyaXB0TmFt
ZSk7CiAgICAgICAgIHRoaXMuX3BhbmVsID0gbmV3IFdlYkluc3BlY3Rvclt0aGlzLl9jbGFzc05h
bWVdOwogICAgICAgICByZXR1cm4gdGhpcy5fcGFuZWw7Ci0gICAgfQorICAgIH0sCisKKyAgICBy
ZWdpc3RlclNob3J0Y3V0czogZnVuY3Rpb24oKSB7fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA4NTEyNzNiZGVlZWY4
MGYwODE3YzkxODk2YzU0ODYzMmY1ZDA5ZWE2Li5mNjMxYjU5NTgwN2Y0OTIzYzZmOGQ2ODhlODYz
YzIzMDc5MjYxMGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNjUsNyArNjUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsID0gZnVuY3Rpb24od29ya3NwYWNlRm9yVGVzdCkKICAgICBXZWJJbnNwZWN0b3IuR29U
b0xpbmVEaWFsb2cuaW5zdGFsbCh0aGlzLCB2aWV3R2V0dGVyLmJpbmQodGhpcykpOwogCiAgICAg
dmFyIGhlbHBTZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU291cmNlcyBQYW5lbCIpKTsKLSAgICB0aGlzLmRlYnVnVG9v
bGJhciA9IHRoaXMuX2NyZWF0ZURlYnVnVG9vbGJhcihoZWxwU2VjdGlvbik7CisgICAgdGhpcy5k
ZWJ1Z1Rvb2xiYXIgPSB0aGlzLl9jcmVhdGVEZWJ1Z1Rvb2xiYXIoKTsKIAogICAgIGNvbnN0IGlu
aXRpYWxEZWJ1Z1NpZGViYXJXaWR0aCA9IDIyNTsKICAgICBjb25zdCBtaW5pbXVtRGVidWdTaWRl
YmFyV2lkdGhQZXJjZW50ID0gNTA7CkBAIC0xMzcsMTggKzEzNywxMCBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24od29ya3NwYWNlRm9yVGVzdCkKICAgICB0aGlzLnNpZGVi
YXJQYW5lcy5zY29wZWNoYWluLmV4cGFuZGVkID0gdHJ1ZTsKICAgICB0aGlzLnNpZGViYXJQYW5l
cy5qc0JyZWFrcG9pbnRzLmV4cGFuZGVkID0gdHJ1ZTsKIAotICAgIHRoaXMuc2lkZWJhclBhbmVz
LmNhbGxzdGFjay5yZWdpc3RlclNob3J0Y3V0cyhoZWxwU2VjdGlvbiwgdGhpcy5yZWdpc3RlclNo
b3J0Y3V0LmJpbmQodGhpcykpOwotICAgIHZhciBldmFsdWF0ZUluQ29uc29sZVNob3J0Y3V0ID0g
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoImUiLCBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQgfCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7Ci0gICAgaGVscFNlY3Rpb24uYWRkS2V5KGV2
YWx1YXRlSW5Db25zb2xlU2hvcnRjdXQubmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmFs
dWF0ZSBzZWxlY3Rpb24gaW4gY29uc29sZSIpKTsKLSAgICB0aGlzLnJlZ2lzdGVyU2hvcnRjdXQo
ZXZhbHVhdGVJbkNvbnNvbGVTaG9ydGN1dC5rZXksIHRoaXMuX2V2YWx1YXRlU2VsZWN0aW9uSW5D
b25zb2xlLmJpbmQodGhpcykpOwotCi0gICAgdmFyIG91dGxpbmVTaG9ydGN1dCA9IFdlYkluc3Bl
Y3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJvIiwgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEgfCBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQpOwotICAgIGhlbHBTZWN0aW9uLmFkZEtleShvdXRs
aW5lU2hvcnRjdXQubmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHbyB0byBtZW1iZXIiKSk7
Ci0gICAgdGhpcy5yZWdpc3RlclNob3J0Y3V0KG91dGxpbmVTaG9ydGN1dC5rZXksIHRoaXMuX3No
b3dPdXRsaW5lRGlhbG9nLmJpbmQodGhpcykpOwotCi0gICAgdmFyIGNyZWF0ZUJyZWFrcG9pbnRT
aG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJi
IiwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpOwot
ICAgIGhlbHBTZWN0aW9uLmFkZEtleShjcmVhdGVCcmVha3BvaW50U2hvcnRjdXQubmFtZSwgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJUb2dnbGUgYnJlYWtwb2ludCIpKTsKLSAgICB0aGlzLnJlZ2lz
dGVyU2hvcnRjdXQoY3JlYXRlQnJlYWtwb2ludFNob3J0Y3V0LmtleSwgdGhpcy5fdG9nZ2xlQnJl
YWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2sucmVn
aXN0ZXJTaG9ydGN1dHModGhpcy5yZWdpc3RlclNob3J0Y3V0cy5iaW5kKHRoaXMpKTsKKyAgICB0
aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9y
LlNob3J0Y3V0S2V5cy5FdmFsdWF0ZVNlbGVjdGlvbkluQ29uc29sZSwgdGhpcy5fZXZhbHVhdGVT
ZWxlY3Rpb25JbkNvbnNvbGUuYmluZCh0aGlzKSk7CisgICAgdGhpcy5yZWdpc3RlclNob3J0Y3V0
cyhXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuR29Ub01l
bWJlciwgdGhpcy5fc2hvd091dGxpbmVEaWFsb2cuYmluZCh0aGlzKSk7CisgICAgdGhpcy5yZWdp
c3RlclNob3J0Y3V0cyhXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1
dEtleXMuVG9nZ2xlQnJlYWtwb2ludCwgdGhpcy5fdG9nZ2xlQnJlYWtwb2ludC5iaW5kKHRoaXMp
KTsKIAogICAgIHZhciBwYW5lbEVuYWJsZXJIZWFkaW5nID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJZb3UgbmVlZCB0byBlbmFibGUgZGVidWdnaW5nIGJlZm9yZSB5b3UgY2FuIHVzZSB0aGUgU2Ny
aXB0cyBwYW5lbC4iKTsKICAgICB2YXIgcGFuZWxFbmFibGVyRGlzY2xhaW1lciA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiRW5hYmxpbmcgZGVidWdnaW5nIHdpbGwgbWFrZSBzY3JpcHRzIHJ1biBz
bG93ZXIuIik7CkBAIC03NTQsNDggKzc0NiwzNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5ldmFsdWF0ZUluQ29uc29s
ZShzZWxlY3Rpb24udG9TdHJpbmcoKSk7CiAgICAgfSwKIAotICAgIF9jcmVhdGVEZWJ1Z1Rvb2xi
YXI6IGZ1bmN0aW9uKHNlY3Rpb24pCisgICAgX2NyZWF0ZURlYnVnVG9vbGJhcjogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgdmFyIGRlYnVnVG9vbGJhciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogICAgICAgICBkZWJ1Z1Rvb2xiYXIuY2xhc3NOYW1lID0gInN0YXR1cy1iYXIi
OwogICAgICAgICBkZWJ1Z1Rvb2xiYXIuaWQgPSAic2NyaXB0cy1kZWJ1Zy10b29sYmFyIjsKIAot
ICAgICAgICB2YXIgdGl0bGUsIGhhbmRsZXIsIHNob3J0Y3V0czsKKyAgICAgICAgdmFyIHRpdGxl
LCBoYW5kbGVyOwogICAgICAgICB2YXIgcGxhdGZvcm1TcGVjaWZpY01vZGlmaWVyID0gV2ViSW5z
cGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGE7CiAKICAgICAgICAg
Ly8gQ29udGludWUuCiAgICAgICAgIGhhbmRsZXIgPSB0aGlzLl90b2dnbGVQYXVzZS5iaW5kKHRo
aXMpOwotICAgICAgICBzaG9ydGN1dHMgPSBbXTsKLSAgICAgICAgc2hvcnRjdXRzLnB1c2goV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuS2V5cy5GOCkpOwotICAgICAgICBzaG9ydGN1dHMucHVzaChXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5LZXlzLlNsYXNoLCBwbGF0Zm9ybVNwZWNpZmljTW9kaWZpZXIpKTsKLSAgICAg
ICAgdGhpcy5wYXVzZUJ1dHRvbiA9IHRoaXMuX2NyZWF0ZUJ1dHRvbkFuZFJlZ2lzdGVyU2hvcnRj
dXRzKHNlY3Rpb24sICJzY3JpcHRzLXBhdXNlIiwgIiIsIGhhbmRsZXIsIHNob3J0Y3V0cywgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZS9Db250aW51ZSIpKTsKKyAgICAgICAgdGhpcy5wYXVz
ZUJ1dHRvbiA9IHRoaXMuX2NyZWF0ZUJ1dHRvbkFuZFJlZ2lzdGVyU2hvcnRjdXRzKCJzY3JpcHRz
LXBhdXNlIiwgIiIsIGhhbmRsZXIsIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9y
LlNob3J0Y3V0S2V5cy5QYXVzZUNvbnRpbnVlKTsKICAgICAgICAgZGVidWdUb29sYmFyLmFwcGVu
ZENoaWxkKHRoaXMucGF1c2VCdXR0b24pOwogCiAgICAgICAgIC8vIFN0ZXAgb3Zlci4KICAgICAg
ICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0ZXAgb3ZlciBuZXh0IGZ1bmN0aW9u
IGNhbGwgKCVzKS4iKTsKICAgICAgICAgaGFuZGxlciA9IHRoaXMuX3N0ZXBPdmVyQ2xpY2tlZC5i
aW5kKHRoaXMpOwotICAgICAgICBzaG9ydGN1dHMgPSBbXTsKLSAgICAgICAgc2hvcnRjdXRzLnB1
c2goV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5GMTApKTsKLSAgICAgICAgc2hvcnRjdXRzLnB1c2go
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5cy5TaW5nbGVRdW90ZSwgcGxhdGZvcm1TcGVjaWZpY01vZGlm
aWVyKSk7Ci0gICAgICAgIHRoaXMuc3RlcE92ZXJCdXR0b24gPSB0aGlzLl9jcmVhdGVCdXR0b25B
bmRSZWdpc3RlclNob3J0Y3V0cyhzZWN0aW9uLCAic2NyaXB0cy1zdGVwLW92ZXIiLCB0aXRsZSwg
aGFuZGxlciwgc2hvcnRjdXRzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0ZXAgb3ZlciIpKTsK
KyAgICAgICAgdGhpcy5zdGVwT3ZlckJ1dHRvbiA9IHRoaXMuX2NyZWF0ZUJ1dHRvbkFuZFJlZ2lz
dGVyU2hvcnRjdXRzKCJzY3JpcHRzLXN0ZXAtb3ZlciIsIHRpdGxlLCBoYW5kbGVyLCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuU3RlcE92ZXIpOwogICAg
ICAgICBkZWJ1Z1Rvb2xiYXIuYXBwZW5kQ2hpbGQodGhpcy5zdGVwT3ZlckJ1dHRvbik7CiAKICAg
ICAgICAgLy8gU3RlcCBpbnRvLgogICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU3RlcCBpbnRvIG5leHQgZnVuY3Rpb24gY2FsbCAoJXMpLiIpOwogICAgICAgICBoYW5kbGVy
ID0gdGhpcy5fc3RlcEludG9DbGlja2VkLmJpbmQodGhpcyk7Ci0gICAgICAgIHNob3J0Y3V0cyA9
IFtdOwotICAgICAgICBzaG9ydGN1dHMucHVzaChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkYxMSkp
OwotICAgICAgICBzaG9ydGN1dHMucHVzaChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5t
YWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlNlbWljb2xv
biwgcGxhdGZvcm1TcGVjaWZpY01vZGlmaWVyKSk7Ci0gICAgICAgIHRoaXMuc3RlcEludG9CdXR0
b24gPSB0aGlzLl9jcmVhdGVCdXR0b25BbmRSZWdpc3RlclNob3J0Y3V0cyhzZWN0aW9uLCAic2Ny
aXB0cy1zdGVwLWludG8iLCB0aXRsZSwgaGFuZGxlciwgc2hvcnRjdXRzLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlN0ZXAgaW50byIpKTsKKyAgICAgICAgdGhpcy5zdGVwSW50b0J1dHRvbiA9IHRo
aXMuX2NyZWF0ZUJ1dHRvbkFuZFJlZ2lzdGVyU2hvcnRjdXRzKCJzY3JpcHRzLXN0ZXAtaW50byIs
IHRpdGxlLCBoYW5kbGVyLCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9y
dGN1dEtleXMuU3RlcEludG8pOwogICAgICAgICBkZWJ1Z1Rvb2xiYXIuYXBwZW5kQ2hpbGQodGhp
cy5zdGVwSW50b0J1dHRvbik7CiAKICAgICAgICAgLy8gU3RlcCBvdXQuCiAgICAgICAgIHRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGVwIG91dCBvZiBjdXJyZW50IGZ1bmN0aW9uICgl
cykuIik7CiAgICAgICAgIGhhbmRsZXIgPSB0aGlzLl9zdGVwT3V0Q2xpY2tlZC5iaW5kKHRoaXMp
OwotICAgICAgICBzaG9ydGN1dHMgPSBbXTsKLSAgICAgICAgc2hvcnRjdXRzLnB1c2goV2ViSW5z
cGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQuS2V5cy5GMTEsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlm
aWVycy5TaGlmdCkpOwotICAgICAgICBzaG9ydGN1dHMucHVzaChXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5L
ZXlzLlNlbWljb2xvbiwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLlNo
aWZ0IHwgcGxhdGZvcm1TcGVjaWZpY01vZGlmaWVyKSk7Ci0gICAgICAgIHRoaXMuc3RlcE91dEJ1
dHRvbiA9IHRoaXMuX2NyZWF0ZUJ1dHRvbkFuZFJlZ2lzdGVyU2hvcnRjdXRzKHNlY3Rpb24sICJz
Y3JpcHRzLXN0ZXAtb3V0IiwgdGl0bGUsIGhhbmRsZXIsIHNob3J0Y3V0cywgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTdGVwIG91dCIpKTsKKyAgICAgICAgdGhpcy5zdGVwT3V0QnV0dG9uID0gdGhp
cy5fY3JlYXRlQnV0dG9uQW5kUmVnaXN0ZXJTaG9ydGN1dHMoInNjcmlwdHMtc3RlcC1vdXQiLCB0
aXRsZSwgaGFuZGxlciwgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbERlc2NyaXB0b3IuU2hvcnRj
dXRLZXlzLlN0ZXBPdXQpOwogICAgICAgICBkZWJ1Z1Rvb2xiYXIuYXBwZW5kQ2hpbGQodGhpcy5z
dGVwT3V0QnV0dG9uKTsKIAogICAgICAgICB0aGlzLl90b2dnbGVCcmVha3BvaW50c0J1dHRvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RGVhY3RpdmF0ZSBicmVha3BvaW50cy4iKSwgInRvZ2dsZS1icmVha3BvaW50cyIpOwpAQCAtODIw
LDcgKzgwMCwxMyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGJ1dHRvbi50aXRsZSA9IGJ1dHRvblRpdGxlOwogICAgIH0sCiAKLSAgICBfY3Jl
YXRlQnV0dG9uQW5kUmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKHNlY3Rpb24sIGJ1dHRvbklk
LCBidXR0b25UaXRsZSwgaGFuZGxlciwgc2hvcnRjdXRzLCBzaG9ydGN1dERlc2NyaXB0aW9uKQor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBidXR0b25JZAorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBidXR0b25UaXRsZQorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oRXZlbnQpfSBoYW5k
bGVyCisgICAgICogQHBhcmFtIHshQXJyYXkuPCFXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5EZXNjcmlwdG9yPn0gc2hvcnRjdXRzCisgICAgICovCisgICAgX2NyZWF0ZUJ1dHRvbkFuZFJl
Z2lzdGVyU2hvcnRjdXRzOiBmdW5jdGlvbihidXR0b25JZCwgYnV0dG9uVGl0bGUsIGhhbmRsZXIs
IHNob3J0Y3V0cykKICAgICB7CiAgICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJidXR0b24iKTsKICAgICAgICAgYnV0dG9uLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFy
LWl0ZW0iOwpAQCAtODMxLDEyICs4MTcsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgYnV0dG9uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpKTsKICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
aGFuZGxlciwgZmFsc2UpOwogCi0gICAgICAgIHZhciBzaG9ydGN1dE5hbWVzID0gW107Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2hvcnRjdXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICB0aGlzLnJlZ2lzdGVyU2hvcnRjdXQoc2hvcnRjdXRzW2ldLmtleSwgaGFuZGxlcik7Ci0g
ICAgICAgICAgICBzaG9ydGN1dE5hbWVzLnB1c2goc2hvcnRjdXRzW2ldLm5hbWUpOwotICAgICAg
ICB9Ci0gICAgICAgIHNlY3Rpb24uYWRkQWx0ZXJuYXRlS2V5cyhzaG9ydGN1dE5hbWVzLCBzaG9y
dGN1dERlc2NyaXB0aW9uKTsKKyAgICAgICAgdGhpcy5yZWdpc3RlclNob3J0Y3V0cyhzaG9ydGN1
dHMsIGhhbmRsZXIpOwogCiAgICAgICAgIHJldHVybiBidXR0b247CiAgICAgfSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsRGVzY3Jp
cHRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
RGVzY3JpcHRvci5qcwppbmRleCA4ZjM4N2Y2NWI2ZWYxODAzZjZhZDlkYmI5MTAyYmE1YWE3Y2Ri
Mjk3Li41ZTY1NDJkNzEzOGEzNWQzMGE1OWY3YTE5NjU0ZDcxZTRlZDQ0NzJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbERlc2NyaXB0
b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWxEZXNjcmlwdG9yLmpzCkBAIC01NSw1ICs1NSw2NCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsRGVzY3JpcHRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucGFuZWwoKS5hcHBlbmRB
cHBsaWNhYmxlSXRlbXMoZXZlbnQsIGNvbnRleHRNZW51LCB0YXJnZXQpOwogICAgIH0sCiAKKyAg
ICByZWdpc3RlclNob3J0Y3V0czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNlY3Rp
b24gPSBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTb3VyY2VzIFBhbmVsIikpOworCisgICAgICAgIHNlY3Rpb24uYWRkQWx0ZXJuYXRl
S2V5cyhXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuUGF1
c2VDb250aW51ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZS9Db250aW51ZSIpKTsKKyAg
ICAgICAgc2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxE
ZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5TdGVwT3ZlciwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJT
dGVwIG92ZXIiKSk7CisgICAgICAgIHNlY3Rpb24uYWRkQWx0ZXJuYXRlS2V5cyhXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuU3RlcEludG8sIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU3RlcCBpbnRvIikpOworICAgICAgICBzZWN0aW9uLmFkZEFsdGVybmF0
ZUtleXMoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbERlc2NyaXB0b3IuU2hvcnRjdXRLZXlzLlN0
ZXBPdXQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RlcCBvdXQiKSk7CisKKyAgICAgICAgdmFy
IG5leHRBbmRQcmV2RnJhbWVLZXlzID0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbERlc2NyaXB0
b3IuU2hvcnRjdXRLZXlzLk5leHRDYWxsRnJhbWUuY29uY2F0KFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5QcmV2Q2FsbEZyYW1lKTsKKyAgICAgICAgc2Vj
dGlvbi5hZGRSZWxhdGVkS2V5cyhuZXh0QW5kUHJldkZyYW1lS2V5cywgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJOZXh0L3ByZXZpb3VzIGNhbGwgZnJhbWUiKSk7CisKKyAgICAgICAgc2VjdGlvbi5h
ZGRBbHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9yLlNob3J0
Y3V0S2V5cy5FdmFsdWF0ZVNlbGVjdGlvbkluQ29uc29sZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJFdmFsdWF0ZSBzZWxlY3Rpb24gaW4gY29uc29sZSIpKTsKKyAgICAgICAgc2VjdGlvbi5hZGRB
bHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0
S2V5cy5Hb1RvTWVtYmVyLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdvIHRvIG1lbWJlciIpKTsK
KyAgICAgICAgc2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5Ub2dnbGVCcmVha3BvaW50LCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlRvZ2dsZSBicmVha3BvaW50IikpOworICAgIH0sCisKICAgICBfX3Byb3RvX186
IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0b3IucHJvdG90eXBlCiB9CisKK1dlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cyA9IHsKKyAgICBQYXVzZUNvbnRp
bnVlOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlw
dG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuRjgpLAorICAgICAgICBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5LZXlzLlNsYXNoLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5N
b2RpZmllcnMuQ3RybE9yTWV0YSkKKyAgICBdLAorCisgICAgU3RlcE92ZXI6IFsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5cy5GMTApLAorICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5L
ZXlzLlNpbmdsZVF1b3RlLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMu
Q3RybE9yTWV0YSkKKyAgICBdLAorCisgICAgU3RlcEludG86IFsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQuS2V5cy5GMTEpLAorICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlNlbWlj
b2xvbiwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEp
CisgICAgXSwKKworICAgIFN0ZXBPdXQ6IFsKKyAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5
cy5GMTEsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5TaGlmdCksCisg
ICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKFdlYklu
c3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuU2VtaWNvbG9uLCBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSkKKyAgICBdLAorCisgICAgRXZhbHVhdGVTZWxlY3Rp
b25JbkNvbnNvbGU6IFsKKyAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFr
ZURlc2NyaXB0b3IoImUiLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMu
U2hpZnQgfCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybCkKKyAg
ICBdLAorCisgICAgR29Ub01lbWJlcjogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5tYWtlRGVzY3JpcHRvcigibyIsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
Lk1vZGlmaWVycy5DdHJsT3JNZXRhIHwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9k
aWZpZXJzLlNoaWZ0KQorICAgIF0sCisKKyAgICBUb2dnbGVCcmVha3BvaW50OiBbCisgICAgICAg
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJiIiwgV2ViSW5z
cGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpCisgICAgXSwKKwor
ICAgIE5leHRDYWxsRnJhbWU6IFsKKyAgICAgICAgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5QZXJp
b2QsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5DdHJsKQorICAgIF0s
CisKKyAgICBQcmV2Q2FsbEZyYW1lOiBbCisgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNo
b3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMu
Q29tbWEsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5DdHJsKQorICAg
IF0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1No
b3J0Y3V0c1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hv
cnRjdXRzU2NyZWVuLmpzCmluZGV4IDhhN2NhMTA4OTU0ZTc2ODA5ZmRlYjIxN2FlMGI0ZDM2ODhh
ZDZlZjYuLmExMzZjMzA3YjRiNDEzNjM5NzdmMGM2NDIyMWI5ZTQ3YTM5Mzk2OTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVuLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzU2NyZWVu
LmpzCkBAIC0zMSwxMyArMzEsMTYgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKi8KLVdlYklu
c3BlY3Rvci5TaG9ydGN1dHNTY3JlZW4gPSBmdW5jdGlvbihmaW5pc2hTaG9ydGN1dHNSZWdpc3Ry
YXRpb25DYWxsYmFjaykKK1dlYkluc3BlY3Rvci5TaG9ydGN1dHNTY3JlZW4gPSBmdW5jdGlvbigp
CiB7Ci0gICAgdGhpcy5fc2VjdGlvbnMgPSB7fTsKLSAgICB0aGlzLl9maW5pc2hTaG9ydGN1dHNS
ZWdpc3RyYXRpb25DYWxsYmFjayA9IGZpbmlzaFNob3J0Y3V0c1JlZ2lzdHJhdGlvbkNhbGxiYWNr
OworICAgIHRoaXMuX3NlY3Rpb25zID0gLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgIVdlYklu
c3BlY3Rvci5TaG9ydGN1dHNTZWN0aW9uPn0gKi8gKHt9KTsKIH0KIAogV2ViSW5zcGVjdG9yLlNo
b3J0Y3V0c1NjcmVlbi5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJp
bmd9IG5hbWUKKyAgICAgKiBAcmV0dXJuIHshV2ViSW5zcGVjdG9yLlNob3J0Y3V0c1NlY3Rpb259
CisgICAgICovCiAgICAgc2VjdGlvbjogZnVuY3Rpb24obmFtZSkKICAgICB7CiAgICAgICAgIHZh
ciBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbbmFtZV07CkBAIC00NiwxMiArNDksMTEgQEAgV2Vi
SW5zcGVjdG9yLlNob3J0Y3V0c1NjcmVlbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBz
ZWN0aW9uOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHshV2ViSW5zcGVjdG9y
LlZpZXd9CisgICAgICovCiAgICAgY3JlYXRlU2hvcnRjdXRzVGFiVmlldzogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2ZpbmlzaFNob3J0Y3V0c1JlZ2lzdHJhdGlvbkNhbGxi
YWNrKQotICAgICAgICAgICAgdGhpcy5fZmluaXNoU2hvcnRjdXRzUmVnaXN0cmF0aW9uQ2FsbGJh
Y2soKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2ZpbmlzaFNob3J0Y3V0c1JlZ2lzdHJhdGlvbkNh
bGxiYWNrOwotCiAgICAgICAgIHZhciBvcmRlcmVkU2VjdGlvbnMgPSBbXTsKICAgICAgICAgZm9y
ICh2YXIgc2VjdGlvbiBpbiB0aGlzLl9zZWN0aW9ucykKICAgICAgICAgICAgIG9yZGVyZWRTZWN0
aW9ucy5wdXNoKHRoaXMuX3NlY3Rpb25zW3NlY3Rpb25dKTsKQEAgLTgyLDMyICs4NCw0OSBAQCBX
ZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuID0gbnVsbDsKIAogLyoqCiAgKiBAY29uc3RydWN0
b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgKi8KIFdlYkluc3BlY3Rvci5TaG9ydGN1dHNT
ZWN0aW9uID0gZnVuY3Rpb24obmFtZSkKIHsKICAgICB0aGlzLm5hbWUgPSBuYW1lOwotICAgIHRo
aXMuX2xpbmVzID0gW107CisgICAgdGhpcy5fbGluZXMgPSAvKiogQHR5cGUgeyFBcnJheS48e2tl
eTogIU5vZGUsIHRleHQ6IHN0cmluZ30+fSAqLyAoW10pOwogICAgIHRoaXMub3JkZXIgPSArK1dl
Ykluc3BlY3Rvci5TaG9ydGN1dHNTZWN0aW9uLl9zZXF1ZW5jZU51bWJlcjsKIH07CiAKIFdlYklu
c3BlY3Rvci5TaG9ydGN1dHNTZWN0aW9uLl9zZXF1ZW5jZU51bWJlciA9IDA7CiAKIFdlYkluc3Bl
Y3Rvci5TaG9ydGN1dHNTZWN0aW9uLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0geyFXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5EZXNjcmlwdG9yfSBrZXkKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb24KKyAgICAgKi8KICAgICBhZGRLZXk6IGZ1bmN0
aW9uKGtleSwgZGVzY3JpcHRpb24pCiAgICAgewogICAgICAgICB0aGlzLl9hZGRMaW5lKHRoaXMu
X3JlbmRlcktleShrZXkpLCBkZXNjcmlwdGlvbik7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAq
IEBwYXJhbSB7IUFycmF5LjwhV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuRGVzY3JpcHRv
cj59IGtleXMKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb24KKyAgICAgKi8KICAg
ICBhZGRSZWxhdGVkS2V5czogZnVuY3Rpb24oa2V5cywgZGVzY3JpcHRpb24pCiAgICAgewogICAg
ICAgICB0aGlzLl9hZGRMaW5lKHRoaXMuX3JlbmRlclNlcXVlbmNlKGtleXMsICIvIiksIGRlc2Ny
aXB0aW9uKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHshQXJyYXkuPCFXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5EZXNjcmlwdG9yPn0ga2V5cworICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBkZXNjcmlwdGlvbgorICAgICAqLwogICAgIGFkZEFsdGVybmF0ZUtleXM6IGZ1
bmN0aW9uKGtleXMsIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAgICAgdGhpcy5fYWRkTGluZSh0
aGlzLl9yZW5kZXJTZXF1ZW5jZShrZXlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIm9yIikpLCBk
ZXNjcmlwdGlvbik7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7IU5vZGV9IGtl
eUVsZW1lbnQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGVzY3JpcHRpb24KKyAgICAgKi8KICAg
ICBfYWRkTGluZTogZnVuY3Rpb24oa2V5RWxlbWVudCwgZGVzY3JpcHRpb24pCiAgICAgewogICAg
ICAgICB0aGlzLl9saW5lcy5wdXNoKHsga2V5OiBrZXlFbGVtZW50LCB0ZXh0OiBkZXNjcmlwdGlv
biB9KQpAQCAtMTMzLDE4ICsxNTIsMzMgQEAgV2ViSW5zcGVjdG9yLlNob3J0Y3V0c1NlY3Rpb24u
cHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7IUFycmF5LjwhV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuRGVzY3JpcHRvcj59IHNl
cXVlbmNlCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGRlbGltaXRlcgorICAgICAqIEByZXR1cm4g
eyFOb2RlfQorICAgICAqLwogICAgIF9yZW5kZXJTZXF1ZW5jZTogZnVuY3Rpb24oc2VxdWVuY2Us
IGRlbGltaXRlcikKICAgICB7CiAgICAgICAgIHZhciBkZWxpbWl0ZXJTcGFuID0gdGhpcy5fY3Jl
YXRlU3BhbigiaGVscC1rZXktZGVsaW1pdGVyIiwgZGVsaW1pdGVyKTsKICAgICAgICAgcmV0dXJu
IHRoaXMuX2pvaW5Ob2RlcyhzZXF1ZW5jZS5tYXAodGhpcy5fcmVuZGVyS2V5LmJpbmQodGhpcykp
LCBkZWxpbWl0ZXJTcGFuKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHshV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuRGVzY3JpcHRvcn0ga2V5CisgICAgICogQHJldHVy
biB7IU5vZGV9CisgICAgICovCiAgICAgX3JlbmRlcktleTogZnVuY3Rpb24oa2V5KQogICAgIHsK
KyAgICAgICAgdmFyIGtleU5hbWUgPSBrZXkubmFtZTsKICAgICAgICAgdmFyIHBsdXMgPSB0aGlz
Ll9jcmVhdGVTcGFuKCJoZWxwLWNvbWJpbmUta2V5cyIsICIrIik7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9qb2luTm9kZXMoa2V5LnNwbGl0KCIgKyAiKS5tYXAodGhpcy5fY3JlYXRlU3Bhbi5iaW5k
KHRoaXMsICJoZWxwLWtleSBtb25vc3BhY2UiKSksIHBsdXMpOworICAgICAgICByZXR1cm4gdGhp
cy5fam9pbk5vZGVzKGtleU5hbWUuc3BsaXQoIiArICIpLm1hcCh0aGlzLl9jcmVhdGVTcGFuLmJp
bmQodGhpcywgImhlbHAta2V5IG1vbm9zcGFjZSIpKSwgcGx1cyk7CiAgICAgfSwKIAorICAgIC8q
KgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWUKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gdGV4dENvbnRlbnQKKyAgICAgKiBAcmV0dXJuIHshRWxlbWVudH0KKyAgICAgKi8KICAgICBf
Y3JlYXRlU3BhbjogZnVuY3Rpb24oY2xhc3NOYW1lLCB0ZXh0Q29udGVudCkKICAgICB7CiAgICAg
ICAgIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAtMTUzLDYg
KzE4NywxMSBAQCBXZWJJbnNwZWN0b3IuU2hvcnRjdXRzU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiBub2RlOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0geyFB
cnJheS48IUVsZW1lbnQ+fSBub2RlcworICAgICAqIEBwYXJhbSB7IUVsZW1lbnR9IGRlbGltaXRl
cgorICAgICAqIEByZXR1cm4geyFOb2RlfQorICAgICAqLwogICAgIF9qb2luTm9kZXM6IGZ1bmN0
aW9uKG5vZGVzLCBkZWxpbWl0ZXIpCiAgICAgewogICAgICAgICB2YXIgcmVzdWx0ID0gZG9jdW1l
bnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKaW5kZXggMjliMGU5MjRl
YTc4NTZmNGZhYTQ5NjI2YTJhYWY3OWM1NGI4OWQ1NC4uZjcxOTZhMWYyNWVkNjQwZmE2ZjVkNjBj
NTVlNjljOTFhOGU1ZGY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC02OTMsNDIgKzY5Myw2IEBAIFdl
Ykluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAg
ICB9LAogCi0gICAgcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAg
IHZhciBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU3R5bGVzIFBhbmUiKSk7Ci0gICAgICAgIHZhciBzaG9ydGN1dCA9
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0OwotICAgICAgICB2YXIga2V5cyA9IFsKLSAg
ICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5UYWIpLAot
ICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlRhYiwg
c2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0KQotICAgICAgICBdOwotICAgICAgICBzZWN0aW9uLmFk
ZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTmV4dC9wcmV2aW91cyBw
cm9wZXJ0eSIpKTsKLSAgICAgICAga2V5cyA9IFsKLSAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0
Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5VcCksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9y
dGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuRG93bikKLSAgICAgICAgXTsKLSAgICAgICAgc2Vj
dGlvbi5hZGRSZWxhdGVkS2V5cyhrZXlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkluY3JlbWVu
dC9kZWNyZW1lbnQgdmFsdWUiKSk7Ci0gICAgICAgIGtleXMgPSBbCi0gICAgICAgICAgICBzaG9y
dGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuVXAsIHNob3J0Y3V0Lk1vZGlmaWVy
cy5TaGlmdCksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0
LktleXMuRG93biwgc2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0KQotICAgICAgICBdOwotICAgICAg
ICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5j
cmVtZW50L2RlY3JlbWVudCBieSAlZiIsIDEwKSk7Ci0gICAgICAgIGtleXMgPSBbCi0gICAgICAg
ICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuUGFnZVVwKSwKLSAg
ICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5QYWdlRG93
bikKLSAgICAgICAgXTsKLSAgICAgICAgc2VjdGlvbi5hZGRSZWxhdGVkS2V5cyhrZXlzLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkluY3JlbWVudC9kZWNyZW1lbnQgYnkgJWYiLCAxMCkpOwotICAg
ICAgICBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9y
dGN1dC5LZXlzLlBhZ2VVcCwgc2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0KSwKLSAgICAgICAgICAg
IHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5QYWdlRG93biwgc2hvcnRj
dXQuTW9kaWZpZXJzLlNoaWZ0KQotICAgICAgICBdOwotICAgICAgICBzZWN0aW9uLmFkZFJlbGF0
ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5jcmVtZW50L2RlY3JlbWVudCBi
eSAlZiIsIDEwMCkpOwotICAgICAgICBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQuc2hv
cnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlBhZ2VVcCwgc2hvcnRjdXQuTW9kaWZpZXJzLkFs
dCksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMu
UGFnZURvd24sIHNob3J0Y3V0Lk1vZGlmaWVycy5BbHQpCi0gICAgICAgIF07Ci0gICAgICAgIHNl
Y3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbmNyZW1l
bnQvZGVjcmVtZW50IGJ5ICVmIiwgMC4xKSk7Ci0gICAgfSwKLQogICAgIF90b2dnbGVFbGVtZW50
U3RhdGVQYW5lOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGV2ZW50LmNvbnN1bWUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
YW5lbC5qcwppbmRleCA2NGZlYjlkZmRmOGRmYWE5MGIwZWNlYTBkMmI3YjFlMTNlMjZmNDkzLi43
Y2Y5M2IwNzNjY2RjOWQ0N2MwNjE4NzQ0YmM3MGY2YzNmMTk0ZTMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC0zMTIs
MjAgKzMxMiwxMCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAK
ICAgICBfcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBz
aG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0OwotICAgICAgICB2YXIgbW9k
aWZpZXJzID0gc2hvcnRjdXQuTW9kaWZpZXJzOwotICAgICAgICB2YXIgc2VjdGlvbiA9IFdlYklu
c3BlY3Rvci5zaG9ydGN1dHNTY3JlZW4uc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRp
bWVsaW5lIFBhbmVsIikpOwotCi0gICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dC5tYWtl
S2V5KCJlIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpXSA9IHRoaXMuX3RvZ2dsZVRpbWVsaW5lQnV0
dG9uQ2xpY2tlZC5iaW5kKHRoaXMpOwotICAgICAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1dC5z
aG9ydGN1dFRvU3RyaW5nKCJlIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlN0YXJ0L3N0b3AgcmVjb3JkaW5nIikpOwotCi0gICAgICAgIGlmIChJbnNwZWN0
b3JGcm9udGVuZEhvc3QuY2FuU2F2ZSgpKSB7Ci0gICAgICAgICAgICB0aGlzLl9zaG9ydGN1dHNb
c2hvcnRjdXQubWFrZUtleSgicyIsIG1vZGlmaWVycy5DdHJsT3JNZXRhKV0gPSB0aGlzLl9zYXZl
VG9GaWxlLmJpbmQodGhpcyk7Ci0gICAgICAgICAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1dC5z
aG9ydGN1dFRvU3RyaW5nKCJzIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEpLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlNhdmUgdGltZWxpbmUgZGF0YSIpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRo
aXMuX3Nob3J0Y3V0c1tzaG9ydGN1dC5tYWtlS2V5KCJvIiwgbW9kaWZpZXJzLkN0cmxPck1ldGEp
XSA9IHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQuY2xpY2suYmluZCh0aGlzLl9maWxlU2VsZWN0
b3JFbGVtZW50KTsKLSAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQuc2hvcnRjdXRUb1N0
cmluZygibyIsIG1vZGlmaWVycy5DdHJsT3JNZXRhKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJM
b2FkIHRpbWVsaW5lIGRhdGEiKSk7CisgICAgICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWxEZXNjcmlwdG9yLlNob3J0Y3V0S2V5cy5TdGFydFN0b3BS
ZWNvcmRpbmcsIHRoaXMuX3RvZ2dsZVRpbWVsaW5lQnV0dG9uQ2xpY2tlZC5iaW5kKHRoaXMpKTsK
KyAgICAgICAgaWYgKEluc3BlY3RvckZyb250ZW5kSG9zdC5jYW5TYXZlKCkpCisgICAgICAgICAg
ICB0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsRGVzY3Jp
cHRvci5TaG9ydGN1dEtleXMuU2F2ZVRvRmlsZSwgdGhpcy5fc2F2ZVRvRmlsZS5iaW5kKHRoaXMp
KTsKKyAgICAgICAgdGhpcy5yZWdpc3RlclNob3J0Y3V0cyhXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
YW5lbERlc2NyaXB0b3IuU2hvcnRjdXRLZXlzLkxvYWRGcm9tRmlsZSwgdGhpcy5fZmlsZVNlbGVj
dG9yRWxlbWVudC5jbGljay5iaW5kKHRoaXMuX2ZpbGVTZWxlY3RvckVsZW1lbnQpKTsKICAgICB9
LAogCiAgICAgX2NyZWF0ZUZpbGVTZWxlY3RvcjogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsRGVzY3JpcHRvci5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbERlc2Ny
aXB0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgzNGYwZGY2OGY3OWM0NTg5NjcxOTM5OWZjZTk5M2FiOWIw
OTFiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQYW5lbERlc2NyaXB0b3IuanMKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUg
SU5DLgorICogT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5Q
YW5lbERlc2NyaXB0b3J9CisgKi8KK1dlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsRGVzY3JpcHRv
ciA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yLmNhbGwo
dGhpcywgInRpbWVsaW5lIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaW1lbGluZSIpLCAiVGlt
ZWxpbmVQYW5lbCIsICJUaW1lbGluZVBhbmVsLmpzIik7Cit9CisKK1dlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsRGVzY3JpcHRvci5wcm90b3R5cGUgPSB7CisgICAgcmVnaXN0ZXJTaG9ydGN1dHM6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNo
b3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZWxpbmUgUGFu
ZWwiKSk7CisgICAgICAgIHNlY3Rpb24uYWRkQWx0ZXJuYXRlS2V5cyhXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbERlc2NyaXB0b3IuU2hvcnRjdXRLZXlzLlN0YXJ0U3RvcFJlY29yZGluZywgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTdGFydC9zdG9wIHJlY29yZGluZyIpKTsKKyAgICAgICAgaWYg
KEluc3BlY3RvckZyb250ZW5kSG9zdC5jYW5TYXZlKCkpCisgICAgICAgICAgICBzZWN0aW9uLmFk
ZEFsdGVybmF0ZUtleXMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWxEZXNjcmlwdG9yLlNob3J0
Y3V0S2V5cy5TYXZlVG9GaWxlLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNhdmUgdGltZWxpbmUg
ZGF0YSIpKTsKKyAgICAgICAgc2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsRGVzY3JpcHRvci5TaG9ydGN1dEtleXMuTG9hZEZyb21GaWxlLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkxvYWQgdGltZWxpbmUgZGF0YSIpKTsKKyAgICB9LAorCisgICAgX19w
cm90b19fOiBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yLnByb3RvdHlwZQorfQorCitXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbERlc2NyaXB0b3IuU2hvcnRjdXRLZXlzID0geworICAgIFN0
YXJ0U3RvcFJlY29yZGluZzogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5tYWtlRGVzY3JpcHRvcigiZSIsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlm
aWVycy5DdHJsT3JNZXRhKQorICAgIF0sCisKKyAgICBTYXZlVG9GaWxlOiBbCisgICAgICAgIFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VEZXNjcmlwdG9yKCJzIiwgV2ViSW5zcGVj
dG9yLktleWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpCisgICAgXSwKKworICAg
IExvYWRGcm9tRmlsZTogWworICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5t
YWtlRGVzY3JpcHRvcigibyIsIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVy
cy5DdHJsT3JNZXRhKQorICAgIF0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYwppbmRleCBjY2ZhYmMzYzczOWFkNzFlOTBjZGE1OWUzYTAyZjIzYTFh
OTJkNDdiLi5mZGEyZWU4NDI0NWNiMTgzY2MxMzljNjg0ZGYwMGZjYjMwZWE0YzZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0yMDMsNiAr
MjAzLDcgQEAKICAgICA8ZmlsZT5UaW1lbGluZUdyaWQuanM8L2ZpbGU+CiAgICAgPGZpbGU+VGlt
ZWxpbmVPdmVydmlld1BhbmUuanM8L2ZpbGU+CiAgICAgPGZpbGU+VGltZWxpbmVQYW5lbC5qczwv
ZmlsZT4KKyAgICA8ZmlsZT5UaW1lbGluZVBhbmVsRGVzY3JpcHRvci5qczwvZmlsZT4KICAgICA8
ZmlsZT5Ub29sYmFyLmpzPC9maWxlPgogICAgIDxmaWxlPlRvcERvd25Qcm9maWxlRGF0YUdyaWRU
cmVlLmpzPC9maWxlPgogICAgIDxmaWxlPnRyZWVvdXRsaW5lLmpzPC9maWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggMTlj
OTMzODlmOTM2ZWEyZmVlM2Y0N2JkZjkwYWUwMTQ3OTViNTM4Yi4uNDE4MTU2ZjgwZmZkZjI0NzQ3
Y2Q5ZGVjNzMzNzUxYTAwZmU4MjliOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC0xNjksNiArMTY5LDcgQEAgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJFbGVtZW50c1BhbmVsRGVz
Y3JpcHRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iTmV0d29ya1BhbmVsRGVzY3JpcHRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU2NyaXB0c1BhbmVsRGVzY3JpcHRvci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxpbmVQ
YW5lbERlc2NyaXB0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkRvY2tDb250cm9sbGVyLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
IGNsYXNzPSJ1bmRvY2tlZCIgaWQ9Ii13ZWJraXQtd2ViLWluc3BlY3RvciI+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGRjMTNhM2Vm
MTkxMjU2OGJkZjJhYTA5ZWI5NzIyYWY4YjUzOGZhZDQuLmMzMjRmOWFiN2I4OWU3NmUwNmViNmFk
NDU5YjBlNjUzOTIwOTZhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00MSw3ICs0MSw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7
CiAgICAgICAgIHZhciByZXNvdXJjZXMgPSBuZXcgV2ViSW5zcGVjdG9yLlBhbmVsRGVzY3JpcHRv
cigicmVzb3VyY2VzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZXMiKSwgIlJlc291
cmNlc1BhbmVsIiwgIlJlc291cmNlc1BhbmVsLmpzIik7CiAgICAgICAgIHZhciBuZXR3b3JrID0g
bmV3IFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWxEZXNjcmlwdG9yKCk7CiAgICAgICAgIHZhciBz
Y3JpcHRzID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWxEZXNjcmlwdG9yKCk7Ci0gICAg
ICAgIHZhciB0aW1lbGluZSA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJ0aW1l
bGluZSIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZWxpbmUiKSwgIlRpbWVsaW5lUGFuZWwi
LCAiVGltZWxpbmVQYW5lbC5qcyIpOworICAgICAgICB2YXIgdGltZWxpbmUgPSBuZXcgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lUGFuZWxEZXNjcmlwdG9yKCk7CiAgICAgICAgIHZhciBwcm9maWxlcyA9
IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJwcm9maWxlcyIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUHJvZmlsZXMiKSwgIlByb2ZpbGVzUGFuZWwiLCAiUHJvZmlsZXNQYW5lbC5q
cyIpOwogICAgICAgICB2YXIgYXVkaXRzID0gbmV3IFdlYkluc3BlY3Rvci5QYW5lbERlc2NyaXB0
b3IoImF1ZGl0cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXVkaXRzIiksICJBdWRpdHNQYW5l
bCIsICJBdWRpdHNQYW5lbC5qcyIpOwogICAgICAgICB2YXIgY29uc29sZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuUGFuZWxEZXNjcmlwdG9yKCJjb25zb2xlIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJD
b25zb2xlIiksICJDb25zb2xlUGFuZWwiKTsKQEAgLTU1LDcgKzU1LDYgQEAgdmFyIFdlYkluc3Bl
Y3RvciA9IHsKICAgICAgICAgICAgIHBhbmVsRGVzY3JpcHRvcnMucHVzaChjb25zb2xlKTsKICAg
ICAgICAgICAgIHJldHVybiBwYW5lbERlc2NyaXB0b3JzOwogICAgICAgICB9Ci0gICAgICAgIHZh
ciBhbGxEZXNjcmlwdG9ycyA9IFtlbGVtZW50cywgcmVzb3VyY2VzLCBuZXR3b3JrLCBzY3JpcHRz
LCB0aW1lbGluZSwgcHJvZmlsZXMsIGF1ZGl0cywgY29uc29sZV07CiAgICAgICAgIHZhciBoaWRk
ZW5QYW5lbHMgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaGlkZGVuUGFuZWxzKCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgYWxsRGVzY3JpcHRvcnMubGVuZ3RoOyArK2kpIHsKICAgICAg
ICAgICAgIGlmIChoaWRkZW5QYW5lbHMuaW5kZXhPZihhbGxEZXNjcmlwdG9yc1tpXS5uYW1lKCkp
ID09PSAtMSkKQEAgLTM3OSwxNCArMzc4LDE3IEBAIFdlYkluc3BlY3Rvci5kb0xvYWRlZERvbmUg
PSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGll
cyA9IGZ1bmN0aW9uKCkKIHsKLSAgICB2YXIgcGFuZWxEZXNjcmlwdG9ycyA9IHRoaXMuX3BhbmVs
RGVzY3JpcHRvcnMoKTsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuID0gbmV3IFdl
Ykluc3BlY3Rvci5TaG9ydGN1dHNTY3JlZW4odGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMuYmluZCh0
aGlzLCBwYW5lbERlc2NyaXB0b3JzKSk7CisgICAgV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVl
biA9IG5ldyBXZWJJbnNwZWN0b3IuU2hvcnRjdXRzU2NyZWVuKCk7CisgICAgdGhpcy5fcmVnaXN0
ZXJTaG9ydGN1dHMoKTsKIAogICAgIC8vIHNldCBvcmRlciBvZiBzb21lIHNlY3Rpb25zIGV4cGxp
Y2l0bHkKLSAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNlY3Rpb24oV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJBbGwgUGFuZWxzIikpOwogICAgIFdlYkluc3BlY3Rvci5zaG9ydGN1dHNT
Y3JlZW4uc2VjdGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbnNvbGUiKSk7CiAgICAgV2Vi
SW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RWxlbWVudHMgUGFuZWwiKSk7CiAKKyAgICB2YXIgcGFuZWxEZXNjcmlwdG9ycyA9IHRoaXMuX3Bh
bmVsRGVzY3JpcHRvcnMoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhbmVsRGVzY3JpcHRv
cnMubGVuZ3RoOyArK2kpCisgICAgICAgIHBhbmVsRGVzY3JpcHRvcnNbaV0ucmVnaXN0ZXJTaG9y
dGN1dHMoKTsKKwogICAgIHRoaXMuY29uc29sZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZU1v
ZGVsKCk7CiAgICAgdGhpcy5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNv
bnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX3VwZGF0ZUVycm9yQW5kV2Fy
bmluZ0NvdW50cywgdGhpcyk7CiAgICAgdGhpcy5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuTWVzc2FnZUFkZGVkLCB0aGlzLl91cGRhdGVF
cnJvckFuZFdhcm5pbmdDb3VudHMsIHRoaXMpOwpAQCAtNjEzLDQ2ICs2MTUsNDYgQEAgV2ViSW5z
cGVjdG9yLm9wZW5SZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlVVJMLCBpblJlc291cmNlc1Bh
bmVsKQogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiKHJlc291cmNl
VVJMKTsKIH0KIAotV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyA9IGZ1bmN0aW9uKHBh
bmVsRGVzY3JpcHRvcnMpCitXZWJJbnNwZWN0b3IuX3JlZ2lzdGVyU2hvcnRjdXRzID0gZnVuY3Rp
b24oKQogewogICAgIHZhciBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
OwogICAgIHZhciBzZWN0aW9uID0gV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVlbi5zZWN0aW9u
KFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWxsIFBhbmVscyIpKTsKICAgICB2YXIga2V5cyA9IFsK
LSAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZygiXSIsIHNob3J0Y3V0Lk1vZGlmaWVy
cy5DdHJsT3JNZXRhKSwKLSAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZygiWyIsIHNo
b3J0Y3V0Lk1vZGlmaWVycy5DdHJsT3JNZXRhKQorICAgICAgICBzaG9ydGN1dC5tYWtlRGVzY3Jp
cHRvcigiXSIsIHNob3J0Y3V0Lk1vZGlmaWVycy5DdHJsT3JNZXRhKSwKKyAgICAgICAgc2hvcnRj
dXQubWFrZURlc2NyaXB0b3IoIlsiLCBzaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSkKICAg
ICBdOwogICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJHbyB0byB0aGUgcGFuZWwgdG8gdGhlIGxlZnQvcmlnaHQiKSk7CiAKICAgICB2YXIga2V5
cyA9IFsKLSAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZygiWyIsIHNob3J0Y3V0Lk1v
ZGlmaWVycy5DdHJsT3JNZXRhIHwgc2hvcnRjdXQuTW9kaWZpZXJzLkFsdCksCi0gICAgICAgIHNo
b3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoIl0iLCBzaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0
YSB8IHNob3J0Y3V0Lk1vZGlmaWVycy5BbHQpCisgICAgICAgIHNob3J0Y3V0Lm1ha2VEZXNjcmlw
dG9yKCJbIiwgc2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEgfCBzaG9ydGN1dC5Nb2RpZmll
cnMuQWx0KSwKKyAgICAgICAgc2hvcnRjdXQubWFrZURlc2NyaXB0b3IoIl0iLCBzaG9ydGN1dC5N
b2RpZmllcnMuQ3RybE9yTWV0YSB8IHNob3J0Y3V0Lk1vZGlmaWVycy5BbHQpCiAgICAgXTsKICAg
ICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiR28g
YmFjay9mb3J3YXJkIGluIHBhbmVsIGhpc3RvcnkiKSk7CiAKLSAgICBzZWN0aW9uLmFkZEtleShz
aG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuRXNjKSwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJUb2dnbGUgY29uc29sZSIpKTsKLSAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1
dC5zaG9ydGN1dFRvU3RyaW5nKCJmIiwgc2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCIpKTsKKyAgICBzZWN0aW9uLmFkZEtleShzaG9y
dGN1dC5tYWtlRGVzY3JpcHRvcihzaG9ydGN1dC5LZXlzLkVzYyksIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiVG9nZ2xlIGNvbnNvbGUiKSk7CisgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQubWFr
ZURlc2NyaXB0b3IoImYiLCBzaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSksIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU2VhcmNoIikpOwogCiAgICAgdmFyIGFkdmFuY2VkU2VhcmNoU2hvcnRj
dXQgPSBXZWJJbnNwZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmNyZWF0ZVNob3J0Y3V0
KCk7Ci0gICAgc2VjdGlvbi5hZGRLZXkoYWR2YW5jZWRTZWFyY2hTaG9ydGN1dC5uYW1lLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlNlYXJjaCBhY3Jvc3MgYWxsIHNvdXJjZXMiKSk7CisgICAgc2Vj
dGlvbi5hZGRLZXkoYWR2YW5jZWRTZWFyY2hTaG9ydGN1dCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJTZWFyY2ggYWNyb3NzIGFsbCBzb3VyY2VzIikpOwogCiAgICAgdmFyIG9wZW5SZXNvdXJjZVNo
b3J0Y3V0ID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoIm8i
LCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSk7Ci0g
ICAgc2VjdGlvbi5hZGRLZXkob3BlblJlc291cmNlU2hvcnRjdXQubmFtZSwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJHbyB0byBzb3VyY2UiKSk7CisgICAgc2VjdGlvbi5hZGRLZXkob3BlblJlc291
cmNlU2hvcnRjdXQsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiR28gdG8gc291cmNlIikpOwogCiAg
ICAgaWYgKFdlYkluc3BlY3Rvci5pc01hYygpKSB7CiAgICAgICAgIGtleXMgPSBbCi0gICAgICAg
ICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJnIiwgc2hvcnRjdXQuTW9kaWZpZXJzLk1l
dGEpLAotICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZygiZyIsIHNob3J0Y3V0
Lk1vZGlmaWVycy5NZXRhIHwgc2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0KQorICAgICAgICAgICAg
c2hvcnRjdXQubWFrZURlc2NyaXB0b3IoImciLCBzaG9ydGN1dC5Nb2RpZmllcnMuTWV0YSksCisg
ICAgICAgICAgICBzaG9ydGN1dC5tYWtlRGVzY3JpcHRvcigiZyIsIHNob3J0Y3V0Lk1vZGlmaWVy
cy5NZXRhIHwgc2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0KQogICAgICAgICBdOwogICAgICAgICBz
ZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmluZCBu
ZXh0L3ByZXZpb3VzIikpOwogICAgIH0KIAogICAgIHZhciBnb1RvU2hvcnRjdXQgPSBXZWJJbnNw
ZWN0b3IuR29Ub0xpbmVEaWFsb2cuY3JlYXRlU2hvcnRjdXQoKTsKLSAgICBzZWN0aW9uLmFkZEtl
eShnb1RvU2hvcnRjdXQubmFtZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHbyB0byBsaW5lIikp
OwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5lbERlc2NyaXB0b3JzLmxlbmd0aDsgKytp
KQotICAgICAgICBwYW5lbERlc2NyaXB0b3JzW2ldLnBhbmVsKCk7CisgICAgc2VjdGlvbi5hZGRL
ZXkoZ29Ub1Nob3J0Y3V0LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdvIHRvIGxpbmUiKSk7CiB9
CiAKKy8qKgorICogQHBhcmFtIHtLZXlib2FyZEV2ZW50fSBldmVudAorICovCiBXZWJJbnNwZWN0
b3IuZG9jdW1lbnRLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiB7CiAgICAgY29uc3QgaGVscEtl
eSA9IFdlYkluc3BlY3Rvci5pc01hYygpID8gIlUrMDAzRiIgOiAiVSswMEJGIjsgLy8gIj8iIGZv
ciBib3RoIHBsYXRmb3Jtcwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>