<?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>39064</bug_id>
          
          <creation_ts>2010-05-13 07:17:18 -0700</creation_ts>
          <short_desc>REGRESSION(r59360): Breaks chromium build (concatenate files comment is too long) (Requested by pfeldman on #webkit).</short_desc>
          <delta_ts>2010-06-12 20:59:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>38667</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>pfeldman</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>225268</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-13 07:17:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59360 broke the build:
Breaks chromium build (concatenate files comment is too long) (Requested by pfeldman 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>225269</commentid>
    <comment_count>1</comment_count>
      <attachid>55971</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-13 07:17:28 -0700</bug_when>
    <thetext>Created attachment 55971
ROLLOUT of r59360

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225290</commentid>
    <comment_count>2</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-05-13 07:43:02 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	D	WebCore/inspector/front-end/HelpScreen.js
	D	WebCore/inspector/front-end/ShortcutsHelp.js
	D	WebCore/inspector/front-end/helpScreen.css
	M	WebCore/ChangeLog
	M	WebCore/English.lproj/localizedStrings.js
	M	WebCore/WebCore.gypi
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/inspector/front-end/CallStackSidebarPane.js
	M	WebCore/inspector/front-end/ConsoleView.js
	M	WebCore/inspector/front-end/ElementsPanel.js
	M	WebCore/inspector/front-end/ElementsTreeOutline.js
	M	WebCore/inspector/front-end/KeyboardShortcut.js
	M	WebCore/inspector/front-end/ScriptsPanel.js
	M	WebCore/inspector/front-end/SidebarPane.js
	M	WebCore/inspector/front-end/StylesSidebarPane.js
	M	WebCore/inspector/front-end/TextViewer.js
	M	WebCore/inspector/front-end/WebKit.qrc
	M	WebCore/inspector/front-end/inspector.html
	M	WebCore/inspector/front-end/inspector.js
	M	WebCore/inspector/front-end/utilities.js
Committed r59365</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55971</attachid>
            <date>2010-05-13 07:17:28 -0700</date>
            <delta_ts>2010-06-12 20:59:42 -0700</delta_ts>
            <desc>ROLLOUT of r59360</desc>
            <filename>bug-39064-20100513141726.patch</filename>
            <type>text/plain</type>
            <size>49799</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDU5NmE3MWNhMTdhOTgzYmQ0ZTkwNTljYjBjOThhNjFmMGI2MjhkMC4uOTRlYjA5NzBjMDc2YzU5
YzEwZTk0NGZkYjZhNjMyYWMxNjdhYjJhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0wNS0xMyAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjU5MzYwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC81OTM2MAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzkwNjQKKworICAgICAgICBCcmVha3MgY2hyb21pdW0gYnVpbGQgKGNvbmNhdGVu
YXRlIGZpbGVzIGNvbW1lbnQgaXMgdG9vIGxvbmcpCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgcGZl
bGRtYW4gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanM6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0
YWNrU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJh
clBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3Rv
dHlwZS5fcGxhY2FyZFNlbGVjdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNQYW5lbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZU91dGxpbmUucHJvdG90eXBlLl9rZXlEb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlbHBTY3JlZW4uanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9LZXlib2FyZFNob3J0Y3V0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuX21ha2VLZXlGcm9tQ29kZUFuZE1vZGlmaWVycyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmVs
ZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Nob3J0Y3V0c0hlbHAuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaWRlYmFy
UGFuZS5wcm90b3R5cGUuX29uVGl0bGVLZXlEb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxl
c1NpZGViYXJQYW5lLnByb3RvdHlwZS5yZW1vdmVTZWN0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZp
ZXdlci5wcm90b3R5cGUuX2hhbmRsZUtleURvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3Jl
ZW4uY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IubG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb2N1bWVu
dEtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9zZWFyY2hLZXlEb3duKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcua2V5RG93bkV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC91dGlsaXRpZXMuanM6CisKIDIwMTAtMDUtMTMgIENoYW5nIFNodSAgPGNoYW5nLnNo
dUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGYx
NWE4ZjdlYzg0MTlmMjlkYjk3NjFlMjdiOGZmMTQ0ZWEyZDE0YmIuLjhhNjc2MmEzMzk1MjJhOWVm
M2RhNGFmYjk4NjNhNmI3NDQwYmU3NzkgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOQpR
Y21YP2lseGZqQXJWVUVkMFQtZUtRMituewoKZGVsdGEgMTUyOAp6Y21iN0UlV2VgOzgyK2coSCVY
fHtzdTYxck0yIyYpK0hecm8oQDFNLUxNcFVjdzxWcHp2fDxMUnotWVVaN2pXfH0KelQ8WmZFQUU2
dCF3WGRMMFVebTlORm4odHc1ZkNQamxZdypvPi1TJGpkPmxMZEpvWUw2NCFfRWAhWm9RJlR5e2pz
CnozY29sVz81Nk5HO216KHpPJF9vJXE7QVZ8elV0REhxUypYeGJaVz9rbX50IXc8IzgjSlQzaSoy
TjY4aiNSdy19dwp6KiFZaSttQGohWFBzdDx0T1VXVTxvQU9HXiM5YHo3Tz5gaEgtTVN4bU15VWZI
MyFYIy1yO1NoIzw+JUJLUFMoY3AKeko+JHBrJXIkKHdiMXpxUUJHdVVYYzxlI0BoJld2M0hUdX5C
PXhJeXd2bUp5Y1olcjVya3JBWjd0fVJBYVMmMVVDCno5eF4rOXRod15GejYmO1p0WjcmTmpKMzRt
cUVCMmtzcXBBWm0lMkotTkctR2kkQE8qQyFFRT1OJHJ1TSliJj1HVAp6YTl2R2E/QzNucXMra0xY
VzJMbmUkckdqU3Nzc0t2PX0oRD9zRVlRYnJgN1ZxQldDPD5UcXleVT9yTVh5MjZhMjgKek5Ibkdh
a35zR3pRRnRBfik5Py1LK0NnbEVyIVo7WCNvNUw8M1kmZ2s4IU8pRCp9SSRtM0ZuUU5sYGBEJnJ6
Zk9GCnpwUWJhWCQ2YVdLKWBLVU10WWxmWXFCQ3o1VEJ8enFTS19Va3JrRlFfKGMzK2RrRXBHKVE1
I2xnazkkVlJaUTFYTgp6WmUocjVHVTxlIyFoaFNTdnYlN35xLUV3KFpAUEE7O0gyUlZHQFpGOyNR
NCZobyt2WG5IZU9+XklMbW80cDlgWHAKenlOTXFRYkZBY0wtbWdHQ185TEV8Kkw7dHtsV0dKbmF2
PX0qUzI8YUN0NFl6eHRscFJWdGJAVD4+aDctNWIoYlk1CkZlKm5Fck1hJSNJCgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5NjA4
YWIyOWE0NGRhMzczZDNlMjY1ODhiYzZlNGJjZGQ5YzA2OWVmLi40NWMyNWVjNmIzZTg0ZWVmOTg5
MzU2NjRkM2Y0ODZkMTAxZmNiMDViIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzg0NCw3ICszODQ0LDYgQEAKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Gb250Vmlldy5qcycsCi0gICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9JbnNwZWN0b3JCYWNrZW5kU3R1Yi5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzJywKQEAgLTM4NzQsNyAr
Mzg3Myw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMnLAotICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzSGVscC5qcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9TZWN0aW9uLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1NldHRpbmdzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Np
ZGViYXJQYW5lLmpzJywKQEAgLTM5MDYsNyArMzkwNCw2IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9XZWxjb21lVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvYXVkaXRzLmNzcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9o
ZWxwU2NyZWVuLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3RvclN5bnRh
eEhpZ2hsaWdodC5jc3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvcG9wb3Zl
ci5jc3MnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNjVjZWFkMjdj
ODY1NDg2MDYyN2ZmMWU3MDY2ODczMWFhOGJjOWIxYi4uNGRmMGVkMTUwMGVlNTllOGVhZDAyOGMx
OWI2ODM2MjhiNzdmMTFmNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC00MzkyOCwxMCArNDM5MjgsNiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUN
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxIZWxwU2NyZWVuLmpz
Ig0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcSW1hZ2VWaWV3LmpzIg0KIAkJCQkJPg0KIAkJCQk8L0Zp
bGU+DQpAQCAtNDM5NDgsMTAgKzQzOTQ0LDYgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcaGVscFNj
cmVlbi5jc3MiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxpbnNwZWN0b3IuY3NzIg0KIAkJCQkJPg0K
IAkJCQk8L0ZpbGU+DQpAQCAtNDQwNjQsMTAgKzQ0MDU2LDYgQEAKIAkJCQkJPg0KIAkJCQk8L0Zp
bGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1l
bmRcU2hvcnRjdXRzSGVscC5qcyINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0K
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNpZGViYXJQYW5lLmpz
Ig0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzCmluZGV4IGZjOTZkNzRlYWM5ZjUxMTNhYWI0
Y2VhZmIzMWNiYzZiMmI5MjcyMTcuLmRkY2E4MGI0NjA2MmQxZTBmZThiZTA1OWEyZTdlMjc5YWIw
NTQzZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tT
aWRlYmFyUGFuZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNr
U2lkZWJhclBhbmUuanMKQEAgLTI3LDYgKzI3LDE1IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tT
aWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUu
Y2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbGwgU3RhY2siKSk7CiAgICAgCisg
ICAgdGhpcy5fc2hvcnRjdXRzID0ge307CisKKyAgICB2YXIgc2hvcnRjdXQgPSBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
LktleUNvZGVzLlBlcmlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVy
cy5DdHJsKTsKKyAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdID0gdGhpcy5fc2VsZWN0TmV4
dENhbGxGcmFtZU9uU3RhY2suYmluZCh0aGlzKTsKKworICAgIHZhciBzaG9ydGN1dCA9IFdlYklu
c3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQuS2V5Q29kZXMuQ29tbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2Rp
ZmllcnMuQ3RybCk7CisgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0XSA9IHRoaXMuX3NlbGVj
dFByZXZpb3VzQ2FsbEZyYW1lT25TdGFjay5iaW5kKHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3Iu
Q2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewpAQCAtMTUwLDIxICsxNTksNiBAQCBX
ZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIHsKICAg
ICAgICAgdmFyIHBsYWNhcmRFbGVtZW50ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNl
bGZXaXRoQ2xhc3MoInBsYWNhcmQiKTsKICAgICAgICAgdGhpcy5zZWxlY3RlZENhbGxGcmFtZSA9
IHBsYWNhcmRFbGVtZW50LnBsYWNhcmQuY2FsbEZyYW1lOwotICAgIH0sCi0KLSAgICByZWdpc3Rl
clNob3J0Y3V0czogZnVuY3Rpb24oc2VjdGlvbikKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Nob3J0
Y3V0cyA9IHt9OwotCi0gICAgICAgIHZhciBuZXh0Q2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuS2V5cy5QZXJpb2QsCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1
dC5Nb2RpZmllcnMuQ3RybCk7Ci0gICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tuZXh0Q2FsbEZyYW1l
LmtleV0gPSB0aGlzLl9zZWxlY3ROZXh0Q2FsbEZyYW1lT25TdGFjay5iaW5kKHRoaXMpOwotCi0g
ICAgICAgIHZhciBwcmV2Q2FsbEZyYW1lID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQu
bWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5Db21tYSwK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5DdHJs
KTsKLSAgICAgICAgdGhpcy5fc2hvcnRjdXRzW3ByZXZDYWxsRnJhbWUua2V5XSA9IHRoaXMuX3Nl
bGVjdFByZXZpb3VzQ2FsbEZyYW1lT25TdGFjay5iaW5kKHRoaXMpOwotCi0gICAgICAgIHNlY3Rp
b24uYWRkUmVsYXRlZEtleXMoWyBuZXh0Q2FsbEZyYW1lLm5hbWUsIHByZXZDYWxsRnJhbWUubmFt
ZSBdLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5leHQvcHJldmlvdXMgY2FsbCBmcmFtZSIpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpp
bmRleCA5ZDUwNDJlYTViOTk3NTRiNWRjYTRjYTViNzFlMGMwMmZkMzZhNWJjLi5mODQwYTgxOGU4
YmYyOTVmYWNmMWQ3MDIzYmU5MWE1YWQ0YTEzYjdhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC04OSw4ICs4OSwyNCBAQCBXZWJJbnNwZWN0b3IuQ29u
c29sZVZpZXcgPSBmdW5jdGlvbihkcmF3ZXIpCiAgICAgdGhpcy5sb2dFbGVtZW50ID0gY3JlYXRl
RmlsdGVyRWxlbWVudC5jYWxsKHRoaXMsICJMb2dzIik7CiAKICAgICB0aGlzLmZpbHRlcih0aGlz
LmFsbEVsZW1lbnQsIGZhbHNlKTsKLSAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogCisg
ICAgdGhpcy5fc2hvcnRjdXRzID0ge307CisKKyAgICB2YXIgc2hvcnRjdXQ7CisKKyAgICBzaG9y
dGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoImsiLCBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuTWV0YSk7CisgICAgLy8gVGhpcyBjYXNl
IHJlcXVpcmVzIGEgc2VwYXJhdGUgYm91bmQgZnVuY3Rpb24gYXMgaXRzIGlzTWFjT25seSBwcm9w
ZXJ0eSBzaG91bGQgbm90IGJlIHNoYXJlZCBhbW9uZyBkaWZmZXJlbnQgc2hvcnRjdXQgaGFuZGxl
cnMuCisgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0XSA9IHRoaXMucmVxdWVzdENsZWFyTWVz
c2FnZXMuYmluZCh0aGlzKTsKKyAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdLmlzTWFjT25s
eSA9IHRydWU7CisKKyAgICB2YXIgY2xlYXJDb25zb2xlSGFuZGxlciA9IHRoaXMucmVxdWVzdENs
ZWFyTWVzc2FnZXMuYmluZCh0aGlzKTsKKyAgICBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lm1ha2VLZXkoImwiLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5N
b2RpZmllcnMuQ3RybCk7CisgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0XSA9IGNsZWFyQ29u
c29sZUhhbmRsZXI7CisKKyAgICAvLyBTaW5jZSB0aGUgQ29udGV4dCBNZW51IGZvciB0aGUgQ29u
c29sZSBWaWV3IHdpbGwgYWx3YXlzIGJlIHRoZSBzYW1lLCB3ZSBjYW4gY3JlYXRlIGl0IGluCisg
ICAgLy8gdGhlIGNvbnN0cnVjdG9yLgorICAgIHRoaXMuX2NvbnRleHRNZW51ID0gbmV3IFdlYklu
c3BlY3Rvci5Db250ZXh0TWVudSgpOworICAgIHRoaXMuX2NvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDbGVhciBDb25zb2xlIiksIGNsZWFyQ29uc29sZUhhbmRs
ZXIpOwogICAgIHRoaXMubWVzc2FnZXNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRt
ZW51IiwgdGhpcy5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpLCB0cnVlKTsKICAg
ICAKICAgICB0aGlzLl9jdXN0b21Gb3JtYXR0ZXJzID0gewpAQCAtNDMxLDQ2ICs0NDcsNiBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOwogICAgIH0sCiAKLSAgICBfcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Nob3J0Y3V0cyA9IHt9OwotCi0gICAgICAgIHZhciBz
aG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0OwotICAgICAgICB2YXIgc2hv
cnRjdXRLID0gc2hvcnRjdXQubWFrZURlc2NyaXB0b3IoImsiLCBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5Nb2RpZmllcnMuTWV0YSk7Ci0gICAgICAgIC8vIFRoaXMgY2FzZSByZXF1aXJl
cyBhIHNlcGFyYXRlIGJvdW5kIGZ1bmN0aW9uIGFzIGl0cyBpc01hY09ubHkgcHJvcGVydHkgc2hv
dWxkIG5vdCBiZSBzaGFyZWQgYW1vbmcgZGlmZmVyZW50IHNob3J0Y3V0IGhhbmRsZXJzLgotICAg
ICAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRLLmtleV0gPSB0aGlzLnJlcXVlc3RDbGVhck1l
c3NhZ2VzLmJpbmQodGhpcyk7Ci0gICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEsua2V5
XS5pc01hY09ubHkgPSB0cnVlOwotCi0gICAgICAgIHZhciBjbGVhckNvbnNvbGVIYW5kbGVyID0g
dGhpcy5yZXF1ZXN0Q2xlYXJNZXNzYWdlcy5iaW5kKHRoaXMpOwotICAgICAgICB2YXIgc2hvcnRj
dXRMID0gc2hvcnRjdXQubWFrZURlc2NyaXB0b3IoImwiLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5Nb2RpZmllcnMuQ3RybCk7Ci0gICAgICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1
dEwua2V5XSA9IGNsZWFyQ29uc29sZUhhbmRsZXI7Ci0gICAgICAgIHRoaXMuX2NvbnRleHRNZW51
ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOwotICAgICAgICB0aGlzLl9jb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIgQ29uc29sZSIpLCBj
bGVhckNvbnNvbGVIYW5kbGVyKTsKLQotICAgICAgICB2YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rv
ci5zaG9ydGN1dHNIZWxwLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb25zb2xlIikp
OwotICAgICAgICB2YXIga2V5cyA9IFdlYkluc3BlY3Rvci5pc01hYygpID8gWyBzaG9ydGN1dEsu
bmFtZSwgc2hvcnRjdXRMLm5hbWUgXSA6IFsgc2hvcnRjdXRMLm5hbWUgXTsKLSAgICAgICAgc2Vj
dGlvbi5hZGRBbHRlcm5hdGVLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2xlYXIg
Q29uc29sZSIpKTsKLQotICAgICAgICBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQuc2hv
cnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlRhYiksCi0gICAgICAgICAgICBzaG9ydGN1dC5z
aG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuVGFiLCBzaG9ydGN1dC5Nb2RpZmllcnMuU2hp
ZnQpCi0gICAgICAgIF07Ci0gICAgICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJOZXh0L3ByZXZpb3VzIHN1Z2dlc3Rpb24iKSk7Ci0gICAgICAg
IHNlY3Rpb24uYWRkS2V5KHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5S
aWdodCksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWNjZXB0IHN1Z2dlc3Rpb24iKSk7Ci0gICAg
ICAgIGtleXMgPSBbCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0
Y3V0LktleXMuRG93biksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNo
b3J0Y3V0LktleXMuVXApCi0gICAgICAgIF07Ci0gICAgICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtl
eXMoa2V5cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXh0L3ByZXZpb3VzIGxpbmUiKSk7Ci0g
ICAgICAgIGtleXMgPSBbCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJO
Iiwgc2hvcnRjdXQuTW9kaWZpZXJzLkFsdCksCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1
dFRvU3RyaW5nKCJQIiwgc2hvcnRjdXQuTW9kaWZpZXJzLkFsdCkKLSAgICAgICAgXTsKLSAgICAg
ICAgaWYgKFdlYkluc3BlY3Rvci5pc01hYygpKQotICAgICAgICAgICAgc2VjdGlvbi5hZGRSZWxh
dGVkS2V5cyhrZXlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk5leHQvcHJldmlvdXMgY29tbWFu
ZCIpKTsKLSAgICAgICAgc2VjdGlvbi5hZGRLZXkoc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZyhz
aG9ydGN1dC5LZXlzLkVudGVyKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeGVjdXRlIGNvbW1h
bmQiKSk7Ci0gICAgfSwKLQogICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAg
ICB7CiAgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRleCBjODUzNDQwM2I3NjAzZDNiOGUwYzNl
Yjg5M2IyYjdkMGUwOWMyODI4Li4zMGUwZGJmZjk3ZjhkOWY1MjM5MWU4MjIwZTUzNjBiMTM1ZjQx
MTU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5l
bC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpA
QCAtMTA3LDcgKzEwNyw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsID0gZnVuY3Rpb24o
KQogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNpZGViYXJFbGVtZW50KTsKICAg
ICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaWRlYmFyUmVzaXplRWxlbWVudCk7CiAK
LSAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogICAgIHRoaXMuX2NoYW5nZWRTdHlsZXMg
PSB7fTsKIAogICAgIHRoaXMucmVzZXQoKTsKQEAgLTEwNjUsMjUgKzEwNjQsNiBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGV2ZW50TGlzdGVuZXJz
U2lkZWJhclBhbmUubmVlZHNVcGRhdGUgPSBmYWxzZTsKICAgICB9LAogCi0gICAgX3JlZ2lzdGVy
U2hvcnRjdXRzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgc2hvcnRjdXQgPSBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dDsKLSAgICAgICAgdmFyIHNlY3Rpb24gPSBXZWJJbnNw
ZWN0b3Iuc2hvcnRjdXRzSGVscC5zZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWxlbWVu
dHMgUGFuZWwiKSk7Ci0gICAgICAgIHZhciBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQu
c2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlVwKSwKLSAgICAgICAgICAgIHNob3J0Y3V0
LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5Eb3duKQotICAgICAgICBdOwotICAgICAg
ICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTmF2
aWdhdGUgZWxlbWVudHMiKSk7Ci0gICAgICAgIHZhciBrZXlzID0gWwotICAgICAgICAgICAgc2hv
cnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlJpZ2h0KSwKLSAgICAgICAgICAg
IHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5MZWZ0KQotICAgICAgICBd
OwotICAgICAgICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRXhwYW5kL2NvbGxhcHNlIikpOwotICAgICAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1
dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuRW50ZXIpLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkVkaXQgYXR0cmlidXRlIikpOwotCi0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLnN0
eWxlcy5yZWdpc3RlclNob3J0Y3V0cygpOwotICAgIH0sCi0KICAgICBoYW5kbGVTaG9ydGN1dDog
ZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICAvLyBDbWQvQ29udHJvbCArIFNoaWZ0ICsg
QyBzaG91bGQgYmUgYSBzaG9ydGN1dCB0byBjbGlja2luZyB0aGUgTm9kZSBTZWFyY2ggQnV0dG9u
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91
dGxpbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGlu
ZS5qcwppbmRleCAwZTk0M2MwNmJjNjEwMDZjMWEyYjRhYmYzOTExZWM4MTI2OTlmM2RiLi5jZDFi
ZjIzODE3YzQ4YTNkN2M4Y2E5NWIxNjQwNTcwN2Q3MmNhMjI0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMjM1LDggKzIz
NSw4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgaWYgKCFzZWxlY3RlZEVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lktl
eXMuQmFja3NwYWNlLmNvZGUgfHwKLSAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkRlbGV0ZS5jb2RlKSB7CisgICAgICAg
IGlmIChldmVudC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlD
b2Rlcy5CYWNrc3BhY2UgfHwKKyAgICAgICAgICAgICAgICBldmVudC5rZXlDb2RlID09PSBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlDb2Rlcy5EZWxldGUpIHsKICAgICAgICAgICAg
IHZhciBzdGFydFRhZ1RyZWVFbGVtZW50ID0gdGhpcy5maW5kVHJlZUVsZW1lbnQoc2VsZWN0ZWRF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKICAgICAgICAgICAgIGlmIChzZWxlY3RlZEVsZW1l
bnQgIT09IHN0YXJ0VGFnVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVt
ZW50ID0gc3RhcnRUYWdUcmVlRWxlbWVudDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hl
bHBTY3JlZW4uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2ZjA0NGU1NGFjNzQ0
MDdlYzAzMjhjOTcxYjg0Yjg3MTQxZjkxMDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4u
anMKKysrIC9kZXYvbnVsbApAQCAtMSw4OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4g
PSBmdW5jdGlvbih0aXRsZSkKLXsKLSAgICB0aGlzLl9hZGRTdHlsZVNoZWV0SWZOZWVkZWQoImhl
bHBTY3JlZW4uY3NzIik7Ci0KLSAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Ci0gICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3du
IiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLQotICAgIHZhciB1cHBlcldp
bmRvdyA9IHRoaXMuX2VsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJoZWxwLXdpbmRvdy11cHBl
ciBoZWxwLXdpbmRvdyIpOwotICAgIHZhciBjbG9zZUJ1dHRvbiA9IHVwcGVyV2luZG93LmNyZWF0
ZUNoaWxkKCJidXR0b24iLCAiaGVscC1jbG9zZS1idXR0b24iKTsKLSAgICB2YXIgbG93ZXJXaW5k
b3cgPSB0aGlzLl9lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAiaGVscC13aW5kb3ctbG93ZXIi
KTsKLSAgICB0aGlzLmNvbnRlbnRFbGVtZW50ID0gbG93ZXJXaW5kb3cuY3JlYXRlQ2hpbGQoImRp
diIsICJoZWxwLXNjcm9sbGFibGUgaGVscC13aW5kb3ciKTsKLSAgICB0aGlzLmNvbnRlbnRFbGVt
ZW50LnRhYkluZGV4ID0gMDsKLSAgICB1cHBlcldpbmRvdy5jcmVhdGVDaGlsZCgiaDEiLCAiaGVs
cC13aW5kb3ctdGl0bGUiKS5pbm5lclRleHQgPSB0aXRsZTsKLQotICAgIGNsb3NlQnV0dG9uLmlu
bmVyVGV4dCA9ICJcdTI3MTYiOyAvLyBDb2RlIHN0YW5kcyBmb3IgSEVBVlkgTVVMVElQTElDQVRJ
T04gWC4KLSAgICBjbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hp
ZGUuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuX2Nsb3NlS2V5cyA9IFsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5FbnRlci5jb2RlLAotICAgICAgICBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkVzYy5jb2RlLAotICAgICAgICBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlNwYWNlLmNvZGUsCi0gICAgXTsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpOwotfQotCi1XZWJJbnNwZWN0
b3IuSGVscFNjcmVlbi5wcm90b3R5cGUgPSB7Ci0gICAgc2hvdzogZnVuY3Rpb24oKQotICAgIHsK
LSAgICAgICAgdGhpcy5fZWxlbWVudC5zdHlsZS52aXNpYmlsaXR5ID0gInZpc2libGUiOwotICAg
ICAgICB0aGlzLl9pc1Nob3duID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5m
b2N1cygpOwotICAgIH0sCi0KLSAgICBfaGlkZTogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dGhpcy5faXNTaG93biA9IGZhbHNlOwotICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLnZpc2li
aWxpdHkgPSAiaGlkZGVuIjsKLSAgICB9LAotCi0gICAgX29uS2V5RG93bjogZnVuY3Rpb24oZXZl
bnQpCi0gICAgewotICAgICAgICBpZiAodGhpcy5faXNTaG93biAmJiB0aGlzLl9jbG9zZUtleXMu
aW5kZXhPZihldmVudC5rZXlDb2RlKSA+PSAwKSB7Ci0gICAgICAgICAgICB0aGlzLl9oaWRlKCk7
Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgfQotICAgIH0s
Ci0KLSAgICBfYWRkU3R5bGVTaGVldElmTmVlZGVkOiBmdW5jdGlvbihocmVmKQotICAgIHsKLSAg
ICAgICAgaWYgKFdlYkluc3BlY3Rvci5IZWxwU2NyZWVuLl9zdHlsZVNoZWV0QWRkZWQpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgCi0gICAgICAgIFdlYkluc3BlY3Rvci5IZWxwU2NyZWVu
Ll9zdHlsZVNoZWV0QWRkZWQgPSB0cnVlOwotICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50Lmhl
YWQuY3JlYXRlQ2hpbGQoImxpbmsiKTsKLSAgICAgICAgbGluay50eXBlID0gInRleHQvY3NzIjsK
LSAgICAgICAgbGluay5yZWwgPSAic3R5bGVzaGVldCI7Ci0gICAgICAgIGxpbmsuaHJlZiA9IGhy
ZWY7Ci0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9L
ZXlib2FyZFNob3J0Y3V0LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJk
U2hvcnRjdXQuanMKaW5kZXggZjg4OGNjNDk0NjE4N2UzZTY2NGFhMzhlNGZiZDhmZmQ2ZTQxMjIw
ZC4uYjRkZGE4YmU4MzQ4MWQ3ZmRhNTZmMTIyMGM1ZmI1OWFiZmQzY2MzMiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMKQEAgLTcsMTMgKzcs
MTMgQEAKICAqIGFyZSBtZXQ6CiAgKgogICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4gCiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKICAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCiAgKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAogICoKICAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC00MCw1MCArNDAsNDQgQEAgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzID0gewogICAgIFNoaWZ0OiAxLAogICAgIEN0cmw6IDIs
CiAgICAgQWx0OiA0LAotICAgIE1ldGE6IDgsICAgLy8gQ29tbWFuZCBrZXkgb24gTWFjLCBXaW4g
a2V5IG9uIG90aGVyIHBsYXRmb3Jtcy4KLSAgICBnZXQgQ3RybE9yTWV0YSgpCi0gICAgewotICAg
ICAgICAvLyAiZGVmYXVsdCIgY29tbWFuZC9jdHJsIGtleSBmb3IgcGxhdGZvcm0sIENvbW1hbmQg
b24gTWFjLCBDdHJsIG9uIG90aGVyIHBsYXRmb3JtcwotICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLmlzTWFjKCkgPyB0aGlzLk1ldGEgOiB0aGlzLkN0cmw7Ci0gICAgfQorICAgIE1ldGE6IDgg
ICAgLy8gQ29tbWFuZCBrZXkgb24gTWFjLCBXaW4ga2V5IG9uIG90aGVyIHBsYXRmb3Jtcy4KIH07
CiAKLVdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMgPSB7Ci0gICAgQmFja3NwYWNl
OiB7IGNvZGU6IDgsIG5hbWU6ICJcdTIxYTQiIH0sCi0gICAgVGFiOiB7IGNvZGU6IDksIG5hbWU6
ICI8VGFiPiIgfSwKLSAgICBFbnRlcjogeyBjb2RlOiAxMywgbmFtZTogIjxFbnRlcj4iIH0sCi0g
ICAgRXNjOiB7IGNvZGU6IDI3LCBuYW1lOiAiPEVzYz4iIH0sCi0gICAgU3BhY2U6IHsgY29kZTog
MzIsIG5hbWU6ICI8U3BhY2U+IiB9LAotICAgIFBhZ2VVcDogeyBjb2RlOiAzMywgIG5hbWU6ICI8
UGFnZVVwPiIgfSwgICAgICAvLyBhbHNvIE5VTV9OT1JUSF9FQVNUCi0gICAgUGFnZURvd246IHsg
Y29kZTogMzQsIG5hbWU6ICI8UGFnZURvd24+IiB9LCAgIC8vIGFsc28gTlVNX1NPVVRIX0VBU1QK
LSAgICBFbmQ6IHsgY29kZTogMzUsIG5hbWU6ICI8RW5kPiIgfSwgICAgICAgICAgICAgLy8gYWxz
byBOVU1fU09VVEhfV0VTVAotICAgIEhvbWU6IHsgY29kZTogMzYsIG5hbWU6ICI8SG9tZT4iIH0s
ICAgICAgICAgICAvLyBhbHNvIE5VTV9OT1JUSF9XRVNUCi0gICAgTGVmdDogeyBjb2RlOiAzNywg
bmFtZTogIlx1MjE5MCIgfSwgICAgICAgICAgIC8vIGFsc28gTlVNX1dFU1QKLSAgICBVcDogeyBj
b2RlOiAzOCwgbmFtZTogIlx1MjE5MSIgfSwgICAgICAgICAgICAgLy8gYWxzbyBOVU1fTk9SVEgK
LSAgICBSaWdodDogeyBjb2RlOiAzOSwgbmFtZTogIlx1MjE5MiIgfSwgICAgICAgICAgLy8gYWxz
byBOVU1fRUFTVAotICAgIERvd246IHsgY29kZTogNDAsIG5hbWU6ICJcdTIxOTMiIH0sICAgICAg
ICAgICAvLyBhbHNvIE5VTV9TT1VUSAotICAgIERlbGV0ZTogeyBjb2RlOiA0NiwgbmFtZTogIjxE
ZWw+IiB9LAotICAgIFplcm86IHsgY29kZTogNDgsIG5hbWU6ICIwIiB9LAotICAgIEYxOiB7IGNv
ZGU6IDExMiwgbmFtZTogIkYxIiB9LAotICAgIEYyOiB7IGNvZGU6IDExMywgbmFtZTogIkYyIiB9
LAotICAgIEYzOiB7IGNvZGU6IDExNCwgbmFtZTogIkYzIiB9LAotICAgIEY0OiB7IGNvZGU6IDEx
NSwgbmFtZTogIkY0IiB9LAotICAgIEY1OiB7IGNvZGU6IDExNiwgbmFtZTogIkY1IiB9LAotICAg
IEY2OiB7IGNvZGU6IDExNywgbmFtZTogIkY2IiB9LAotICAgIEY3OiB7IGNvZGU6IDExOCwgbmFt
ZTogIkY3IiB9LAotICAgIEY4OiB7IGNvZGU6IDExOSwgbmFtZTogIkY4IiB9LAotICAgIEY5OiB7
IGNvZGU6IDEyMCwgbmFtZTogIkY5IiB9LAotICAgIEYxMDogeyBjb2RlOiAxMjEsIG5hbWU6ICJG
MTAiIH0sCi0gICAgRjExOiB7IGNvZGU6IDEyMiwgbmFtZTogIkYxMSIgfSwKLSAgICBGMTI6IHsg
Y29kZTogMTIzLCBuYW1lOiAiRjEyIiB9LAotICAgIFNlbWljb2xvbjogeyBjb2RlOiAxODYsIG5h
bWU6ICI7IiB9LAotICAgIFBsdXM6IHsgY29kZTogMTg3LCBuYW1lOiAiKyIgfSwKLSAgICBDb21t
YTogeyBjb2RlOiAxODgsIG5hbWU6ICIsIiB9LAotICAgIE1pbnVzOiB7IGNvZGU6IDE4OSwgbmFt
ZTogIi0iIH0sCi0gICAgUGVyaW9kOiB7IGNvZGU6IDE5MCwgbmFtZTogIi4iIH0sCi0gICAgU2xh
c2g6IHsgY29kZTogMTkxLCBuYW1lOiAiLyIgfSwKLSAgICBBcG9zdHJvcGhlOiB7IGNvZGU6IDE5
MiwgbmFtZTogImAiIH0sCi0gICAgU2luZ2xlUXVvdGU6IHsgY29kZTogMjIyLCBuYW1lOiAiXCci
IH0KK1dlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleUNvZGVzID0geworICAgIEJhY2tz
cGFjZTogOCwKKyAgICBUYWI6IDksCisgICAgRXNjOiAyNywKKyAgICBTcGFjZTogMzIsCisgICAg
UGFnZVVwOiAzMywgICAgICAvLyBhbHNvIE5VTV9OT1JUSF9FQVNUCisgICAgUGFnZURvd246IDM0
LCAgICAvLyBhbHNvIE5VTV9TT1VUSF9FQVNUCisgICAgRW5kOiAzNSwgICAgICAgICAvLyBhbHNv
IE5VTV9TT1VUSF9XRVNUCisgICAgSG9tZTogMzYsICAgICAgICAvLyBhbHNvIE5VTV9OT1JUSF9X
RVNUCisgICAgTGVmdDogMzcsICAgICAgICAvLyBhbHNvIE5VTV9XRVNUCisgICAgVXA6IDM4LCAg
ICAgICAgICAvLyBhbHNvIE5VTV9OT1JUSAorICAgIFJpZ2h0OiAzOSwgICAgICAgLy8gYWxzbyBO
VU1fRUFTVAorICAgIERvd246IDQwLCAgICAgICAgLy8gYWxzbyBOVU1fU09VVEgKKyAgICBEZWxl
dGU6IDQ2LAorICAgIFplcm86IDQ4LAorICAgIEYxOiAxMTIsCisgICAgRjI6IDExMywKKyAgICBG
MzogMTE0LAorICAgIEY0OiAxMTUsCisgICAgRjU6IDExNiwKKyAgICBGNjogMTE3LAorICAgIEY3
OiAxMTgsCisgICAgRjg6IDExOSwKKyAgICBGOTogMTIwLAorICAgIEYxMDogMTIxLAorICAgIEYx
MTogMTIyLAorICAgIEYxMjogMTIzLAorICAgIFNlbWljb2xvbjogMTg2LCAgICAvLyA7CisgICAg
UGx1czogMTg3LCAgICAgICAgIC8vICsKKyAgICBDb21tYTogMTg4LCAgICAgICAgLy8gLAorICAg
IE1pbnVzOiAxODksICAgICAgICAvLyAtCisgICAgUGVyaW9kOiAxOTAsICAgICAgIC8vIC4KKyAg
ICBTbGFzaDogMTkxLCAgICAgICAgLy8gLworICAgIEFwb3N0cm9waGU6IDE5MiwgICAvLyBgCisg
ICAgU2luZ2xlUXVvdGU6IDIyMiAgIC8vICcKIH07CiAKIC8qKgpAQCAtMTE2LDQ0ICsxMTAsNyBA
QCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5RnJvbUV2ZW50ID0gZnVuY3Rp
b24oa2V5Ym9hcmRFdmVudCkKICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuX21ha2VLZXlGcm9tQ29kZUFuZE1vZGlmaWVycyhrZXlib2FyZEV2ZW50LmtleUNvZGUsIG1v
ZGlmaWVycyk7CiB9OwogCi1XZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3Jp
cHRvciA9IGZ1bmN0aW9uKGtleSwgb3B0TW9kaWZpZXJzKQotewotICAgIHZhciBtb2RpZmllcnMg
PSAwOwotICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKQotICAg
ICAgICBtb2RpZmllcnMgfD0gYXJndW1lbnRzW2ldOwotCi0gICAgcmV0dXJuIHsKLSAgICAgICAg
a2V5OiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5KHR5cGVvZiBrZXkgPT09
ICJzdHJpbmciID8ga2V5IDoga2V5LmNvZGUsIG1vZGlmaWVycyksCi0gICAgICAgIG5hbWU6IFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoa2V5LCBtb2RpZmll
cnMpCi0gICAgfTsKLX0KLQotV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuc2hvcnRjdXRU
b1N0cmluZyA9IGZ1bmN0aW9uKGtleSwgbW9kaWZpZXJzKQotewotICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5fbW9kaWZpZXJzVG9TdHJpbmcobW9kaWZpZXJzKSArICh0
eXBlb2Yga2V5ID09PSAic3RyaW5nIiA/IGtleS50b1VwcGVyQ2FzZSgpIDoga2V5Lm5hbWUpOwot
fQotCiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5fbWFrZUtleUZyb21Db2RlQW5kTW9k
aWZpZXJzID0gZnVuY3Rpb24oa2V5Q29kZSwgbW9kaWZpZXJzKQogewogICAgIHJldHVybiAoa2V5
Q29kZSAmIDI1NSkgfCAobW9kaWZpZXJzIDw8IDgpOwogfTsKLQotV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQuX21vZGlmaWVyc1RvU3RyaW5nID0gZnVuY3Rpb24obW9kaWZpZXJzKQotewot
ICAgIGNvbnN0IGNtZEtleSA9ICJcdTIzMTgiOwotICAgIGNvbnN0IG9wdEtleSA9ICJcdTIzMjUi
OwotICAgIGNvbnN0IHNoaWZ0S2V5ID0gIlx1MjFkMSI7Ci0KLSAgICB2YXIgaXNNYWMgPSBXZWJJ
bnNwZWN0b3IuaXNNYWMoKTsKLSAgICB2YXIgcmVzID0gIiI7Ci0gICAgaWYgKG1vZGlmaWVycyAm
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5DdHJsKQotICAgICAgICBy
ZXMgKz0gIjxDdHJsPiArICI7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5BbHQpCi0gICAgICAgIHJlcyArPSBpc01hYyA/IG9wdEtl
eSA6ICI8QWx0PiArICI7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0Lk1vZGlmaWVycy5TaGlmdCkKLSAgICAgICAgcmVzICs9IGlzTWFjID8gc2hpZnRL
ZXkgOiAiPFNoaWZ0PiArICI7Ci0gICAgaWYgKG1vZGlmaWVycyAmIFdlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lk1vZGlmaWVycy5NZXRhKQotICAgICAgICByZXMgKz0gaXNNYWMgPyBjbWRL
ZXkgOiAiPFdpbj4gKyAiOwotCi0gICAgcmV0dXJuIHJlczsKLX07CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA3ZjBlN2RmMDM0MTcxMTA2ODU3YTQw
OTYxOWY4MzMyYmIzMTUxMGQ5Li42MzQ0NTU0ZjUyMzY2MmVhNjFjY2RiZTdiMzc2MjM1MmZmMDE5
ODBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAg
LTE2NSw3ICsxNjUsMzcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkK
ICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5fdG9nZ2xlUGF1c2VPbkV4Y2VwdGlvbnMuYmluZCh0aGlzKSwgZmFsc2UpOwogICAg
IHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uc3RhdGUgPSBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zOwogCi0g
ICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKKyAgICB0aGlzLl9zaG9ydGN1dHMgPSB7fTsK
KyAgICB2YXIgaGFuZGxlciwgc2hvcnRjdXQ7CisgICAgdmFyIHBsYXRmb3JtU3BlY2lmaWNNb2Rp
ZmllciA9IFdlYkluc3BlY3Rvci5pc01hYygpID8gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuTW9kaWZpZXJzLk1ldGEgOiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmll
cnMuQ3RybDsKKworICAgIC8vIENvbnRpbnVlLgorICAgIGhhbmRsZXIgPSB0aGlzLnBhdXNlQnV0
dG9uLmNsaWNrLmJpbmQodGhpcy5wYXVzZUJ1dHRvbik7CisgICAgc2hvcnRjdXQgPSBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5KFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0
Y3V0LktleUNvZGVzLkY4KTsKKyAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdID0gaGFuZGxl
cjsKKyAgICBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXko
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuU2xhc2gsIHBsYXRmb3JtU3Bl
Y2lmaWNNb2RpZmllcik7CisgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0XSA9IGhhbmRsZXI7
CisKKyAgICAvLyBTdGVwIG92ZXIuCisgICAgaGFuZGxlciA9IHRoaXMuc3RlcE92ZXJCdXR0b24u
Y2xpY2suYmluZCh0aGlzLnN0ZXBPdmVyQnV0dG9uKTsKKyAgICBzaG9ydGN1dCA9IFdlYkluc3Bl
Y3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuS2V5Q29kZXMuRjEwKTsKKyAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdID0gaGFuZGxl
cjsKKyAgICBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXko
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuU2luZ2xlUXVvdGUsIHBsYXRm
b3JtU3BlY2lmaWNNb2RpZmllcik7CisgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0XSA9IGhh
bmRsZXI7CisKKyAgICAvLyBTdGVwIGludG8uCisgICAgaGFuZGxlciA9IHRoaXMuc3RlcEludG9C
dXR0b24uY2xpY2suYmluZCh0aGlzLnN0ZXBJbnRvQnV0dG9uKTsKKyAgICBzaG9ydGN1dCA9IFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQuS2V5Q29kZXMuRjExKTsKKyAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdID0g
aGFuZGxlcjsKKyAgICBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1h
a2VLZXkoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuU2VtaWNvbG9uLCBw
bGF0Zm9ybVNwZWNpZmljTW9kaWZpZXIpOworICAgIHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dF0g
PSBoYW5kbGVyOworCisgICAgLy8gU3RlcCBvdXQuCisgICAgaGFuZGxlciA9IHRoaXMuc3RlcE91
dEJ1dHRvbi5jbGljay5iaW5kKHRoaXMuc3RlcE91dEJ1dHRvbik7CisgICAgc2hvcnRjdXQgPSBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5KFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0LktleUNvZGVzLkYxMSwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuTW9k
aWZpZXJzLlNoaWZ0KTsKKyAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdID0gaGFuZGxlcjsK
KyAgICBzaG9ydGN1dCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoV2Vi
SW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuU2VtaWNvbG9uLCBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQsIHBsYXRmb3JtU3BlY2lmaWNNb2Rp
Zmllcik7CisgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0XSA9IGhhbmRsZXI7CiAKICAgICB0
aGlzLl9kZWJ1Z2dlckVuYWJsZWQgPSBQcmVmZXJlbmNlcy5kZWJ1Z2dlckFsd2F5c0VuYWJsZWQ7
CiAgICAgaWYgKFByZWZlcmVuY2VzLmRlYnVnZ2VyQWx3YXlzRW5hYmxlZCkKQEAgLTk3Myw0OSAr
MTAwMyw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIGVs
ZW1lbnRzVG9SZXN0b3JlU2Nyb2xsUG9zaXRpb25zRm9yOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICByZXR1cm4gWyB0aGlzLnNpZGViYXJFbGVtZW50IF07Ci0gICAgfSwKLQotICAgIF9yZWdp
c3RlclNob3J0Y3V0czogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHNlY3Rpb24gPSBX
ZWJJbnNwZWN0b3Iuc2hvcnRjdXRzSGVscC5zZWN0aW9uKCJTY3JpcHRzIFBhbmVsIik7Ci0gICAg
ICAgIHZhciBoYW5kbGVyLCBzaG9ydGN1dDEsIHNob3J0Y3V0MjsKLSAgICAgICAgdmFyIHBsYXRm
b3JtU3BlY2lmaWNNb2RpZmllciA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lk1vZGlm
aWVycy5DdHJsT3JNZXRhOwotCi0gICAgICAgIHRoaXMuX3Nob3J0Y3V0cyA9IHt9OwotCi0gICAg
ICAgIC8vIENvbnRpbnVlLgotICAgICAgICBoYW5kbGVyID0gdGhpcy5wYXVzZUJ1dHRvbi5jbGlj
ay5iaW5kKHRoaXMucGF1c2VCdXR0b24pOwotICAgICAgICBzaG9ydGN1dDEgPSBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5LZXlzLkY4KTsKLSAgICAgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0MS5rZXld
ID0gaGFuZGxlcjsKLSAgICAgICAgc2hvcnRjdXQyID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hv
cnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5T
bGFzaCwgcGxhdGZvcm1TcGVjaWZpY01vZGlmaWVyKTsKLSAgICAgICAgdGhpcy5fc2hvcnRjdXRz
W3Nob3J0Y3V0Mi5rZXldID0gaGFuZGxlcjsKLSAgICAgICAgc2VjdGlvbi5hZGRBbHRlcm5hdGVL
ZXlzKFsgc2hvcnRjdXQxLm5hbWUsIHNob3J0Y3V0Mi5uYW1lIF0sICJDb250aW51ZSIpOwotCi0g
ICAgICAgIC8vIFN0ZXAgb3Zlci4KLSAgICAgICAgaGFuZGxlciA9IHRoaXMuc3RlcE92ZXJCdXR0
b24uY2xpY2suYmluZCh0aGlzLnN0ZXBPdmVyQnV0dG9uKTsKLSAgICAgICAgc2hvcnRjdXQxID0g
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2NyaXB0b3IoV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5cy5GMTApOwotICAgICAgICB0aGlzLl9zaG9ydGN1dHNbc2hv
cnRjdXQxLmtleV0gPSBoYW5kbGVyOwotICAgICAgICBzaG9ydGN1dDIgPSBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5LZXlzLlNpbmdsZVF1b3RlLCBwbGF0Zm9ybVNwZWNpZmljTW9kaWZpZXIpOwotICAgICAg
ICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXQyLmtleV0gPSBoYW5kbGVyOwotICAgICAgICBzZWN0
aW9uLmFkZEFsdGVybmF0ZUtleXMoWyBzaG9ydGN1dDEubmFtZSwgc2hvcnRjdXQyLm5hbWUgXSwg
IlN0ZXAgb3ZlciIpOwotCi0gICAgICAgIC8vIFN0ZXAgaW50by4KLSAgICAgICAgaGFuZGxlciA9
IHRoaXMuc3RlcEludG9CdXR0b24uY2xpY2suYmluZCh0aGlzLnN0ZXBJbnRvQnV0dG9uKTsKLSAg
ICAgICAgc2hvcnRjdXQxID0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQubWFrZURlc2Ny
aXB0b3IoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5GMTEpOwotICAgICAgICB0
aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXQxLmtleV0gPSBoYW5kbGVyOwotICAgICAgICBzaG9ydGN1
dDIgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlNlbWljb2xvbiwgcGxhdGZvcm1TcGVjaWZpY01v
ZGlmaWVyKTsKLSAgICAgICAgdGhpcy5fc2hvcnRjdXRzW3Nob3J0Y3V0Mi5rZXldID0gaGFuZGxl
cjsKLSAgICAgICAgc2VjdGlvbi5hZGRBbHRlcm5hdGVLZXlzKFsgc2hvcnRjdXQxLm5hbWUsIHNo
b3J0Y3V0Mi5uYW1lIF0sICJTdGVwIGludG8iKTsKLQotICAgICAgICAvLyBTdGVwIG91dC4KLSAg
ICAgICAgaGFuZGxlciA9IHRoaXMuc3RlcE91dEJ1dHRvbi5jbGljay5iaW5kKHRoaXMuc3RlcE91
dEJ1dHRvbik7Ci0gICAgICAgIHNob3J0Y3V0MSA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0
Y3V0Lm1ha2VEZXNjcmlwdG9yKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuRjEx
LCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQpOwotICAgICAg
ICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXQxLmtleV0gPSBoYW5kbGVyOwotICAgICAgICBzaG9y
dGN1dDIgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlRGVzY3JpcHRvcihXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlNlbWljb2xvbiwgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0LCBwbGF0Zm9ybVNwZWNpZmljTW9kaWZpZXIp
OwotICAgICAgICB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXQyLmtleV0gPSBoYW5kbGVyOwotICAg
ICAgICBzZWN0aW9uLmFkZEFsdGVybmF0ZUtleXMoWyBzaG9ydGN1dDEubmFtZSwgc2hvcnRjdXQy
Lm5hbWUgXSwgIlN0ZXAgb3V0Iik7Ci0KLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0
YWNrLnJlZ2lzdGVyU2hvcnRjdXRzKHNlY3Rpb24pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nob3J0Y3V0c0hlbHAuanMgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2hvcnRjdXRzSGVscC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDA0ZWQ0OGZhY2MxYWQ1NDVlODBhN2Q5Yzg5YTFhMzU3NzFlMDNlMi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2hvcnRjdXRzSGVscC5qcworKysgL2Rldi9udWxsCkBAIC0xLDE1OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotV2ViSW5zcGVjdG9yLlNob3J0Y3V0c0hlbHAgPSBmdW5jdGlvbigpCi17Ci0gICAgdGhpcy5f
c2VjdGlvbnMgPSB7fTsKLX0KLQotV2ViSW5zcGVjdG9yLlNob3J0Y3V0c0hlbHAucHJvdG90eXBl
ID0gewotICAgIHNlY3Rpb246IGZ1bmN0aW9uKG5hbWUpCi0gICAgewotICAgICAgICB2YXIgc2Vj
dGlvbiA9IHRoaXMuX3NlY3Rpb25zW25hbWVdOwotICAgICAgICBpZiAoIXNlY3Rpb24pCi0gICAg
ICAgICAgICB0aGlzLl9zZWN0aW9uc1tuYW1lXSA9IHNlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9y
LlNob3J0Y3V0c1NlY3Rpb24obmFtZSk7Ci0gICAgICAgIHJldHVybiBzZWN0aW9uOwotICAgIH0s
Ci0KLSAgICBzaG93OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX2hlbHBT
Y3JlZW4pIHsKLSAgICAgICAgICAgIHRoaXMuX2hlbHBTY3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9y
LkhlbHBTY3JlZW4oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJLZXlib2FyZCBTaG9ydGN1dHMiKSk7
Ci0gICAgICAgICAgICB0aGlzLl9idWlsZFRhYmxlKHRoaXMuX2hlbHBTY3JlZW4uY29udGVudEVs
ZW1lbnQsIDIpOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2hlbHBTY3JlZW4uc2hvdygpOwot
ICAgIH0sCi0KLSAgICBfYnVpbGRUYWJsZTogZnVuY3Rpb24ocGFyZW50LCBuQ29sdW1ucykKLSAg
ICB7Ci0gICAgICAgIHZhciBoZWlnaHQgPSAwOwotICAgICAgICB2YXIgb3JkZXJlZFNlY3Rpb25z
ID0gW107Ci0gICAgICAgIGZvciAodmFyIHNlY3Rpb24gaW4gdGhpcy5fc2VjdGlvbnMpIHsKLSAg
ICAgICAgICAgIGhlaWdodCArPSB0aGlzLl9zZWN0aW9uc1tzZWN0aW9uXS5faGVpZ2h0OwotICAg
ICAgICAgICAgb3JkZXJlZFNlY3Rpb25zLnB1c2godGhpcy5fc2VjdGlvbnNbc2VjdGlvbl0pCi0g
ICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gY29tcGFyZVNlY3Rpb25zKGEsIGIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlcjsKLSAgICAgICAgfQotICAg
ICAgICBvcmRlcmVkU2VjdGlvbnMgPSBvcmRlcmVkU2VjdGlvbnMuc29ydChjb21wYXJlU2VjdGlv
bnMpOwotCi0gICAgICAgIGNvbnN0IHdyYXBBZnRlciA9IGhlaWdodCAvIG5Db2x1bW5zOwotICAg
ICAgICB2YXIgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwotICAgICAg
ICB0YWJsZS5jbGFzc05hbWUgPSAiaGVscC10YWJsZSI7Ci0gICAgICAgIHZhciByb3cgPSB0YWJs
ZS5jcmVhdGVDaGlsZCgidHIiKTsKLQotICAgICAgICAvLyBUaGlzIG1hbnVhbCBsYXlvdXQgdWds
aW5lc3Mgc2hvdWxkIGJlIGdvbmUgb25jZSBXZWJLaXQgaW1wbGVtZW50cwotICAgICAgICAvLyBw
YWdpbmF0aW9uIGhpbnRzIGZvciBDU1MgY29sdW1ucyAoYnJlYWstaW5zaWRlIGV0YykuCi0gICAg
ICAgIGZvciAodmFyIHNlY3Rpb24gPSAwOyBzZWN0aW9uIDwgb3JkZXJlZFNlY3Rpb25zLmxlbmd0
aDspIHsKLSAgICAgICAgICAgIHZhciB0ZCA9IHJvdy5jcmVhdGVDaGlsZCgidGQiKTsKLSAgICAg
ICAgICAgIHRkLnN0eWxlLndpZHRoID0gKDEwMCAvIG5Db2x1bW5zKSArICIlIjsKLSAgICAgICAg
ICAgIHZhciBjb2x1bW4gPSB0ZC5jcmVhdGVDaGlsZCgidGFibGUiKTsKLSAgICAgICAgICAgIGZv
ciAodmFyIGNvbHVtbkhlaWdodCA9IDA7Ci0gICAgICAgICAgICAgICAgY29sdW1uSGVpZ2h0IDwg
d3JhcEFmdGVyICYmIHNlY3Rpb24gPCBvcmRlcmVkU2VjdGlvbnMubGVuZ3RoOwotICAgICAgICAg
ICAgICAgIGNvbHVtbkhlaWdodCArPSBvcmRlcmVkU2VjdGlvbnNbc2VjdGlvbl0uX2hlaWdodCwg
c2VjdGlvbisrKSB7Ci0gICAgICAgICAgICAgICAgb3JkZXJlZFNlY3Rpb25zW3NlY3Rpb25dLnJl
bmRlclNlY3Rpb24oY29sdW1uKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBw
YXJlbnQuYXBwZW5kQ2hpbGQodGFibGUpOwotICAgIH0KLX07Ci0KLVdlYkluc3BlY3Rvci5zaG9y
dGN1dHNIZWxwID0gbmV3IFdlYkluc3BlY3Rvci5TaG9ydGN1dHNIZWxwKCk7Ci0KLVdlYkluc3Bl
Y3Rvci5TaG9ydGN1dHNTZWN0aW9uID0gZnVuY3Rpb24obmFtZSkKLXsKLSAgICB0aGlzLm5hbWUg
PSBuYW1lOwotICAgIHRoaXMuX2xpbmVzID0gW107Ci0gICAgdGhpcy5vcmRlciA9ICsrV2ViSW5z
cGVjdG9yLlNob3J0Y3V0c1NlY3Rpb24uX3NlcXVlbmNlTnVtYmVyOwotfTsKLQotV2ViSW5zcGVj
dG9yLlNob3J0Y3V0c1NlY3Rpb24uX3NlcXVlbmNlTnVtYmVyID0gMDsKLQotV2ViSW5zcGVjdG9y
LlNob3J0Y3V0c1NlY3Rpb24ucHJvdG90eXBlID0gewotICAgIGFkZEtleTogZnVuY3Rpb24oa2V5
LCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgIHRoaXMuYWRkTGluZSh0aGlzLl9yZW5kZXJL
ZXkoa2V5KSwgZGVzY3JpcHRpb24pOwotICAgIH0sCi0KLSAgICBhZGRSZWxhdGVkS2V5czogZnVu
Y3Rpb24oa2V5cywgZGVzY3JpcHRpb24pCi0gICAgewotICAgICAgICB0aGlzLmFkZExpbmUodGhp
cy5fcmVuZGVyU2VxdWVuY2Uoa2V5cywiLyIpLCBkZXNjcmlwdGlvbik7Ci0gICAgfSwKLQotICAg
IGFkZEFsdGVybmF0ZUtleXM6IGZ1bmN0aW9uKGtleXMsIGRlc2NyaXB0aW9uKQotICAgIHsKLSAg
ICAgICAgdGhpcy5hZGRMaW5lKHRoaXMuX3JlbmRlclNlcXVlbmNlKGtleXMsV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJvciIpKSwgZGVzY3JpcHRpb24pOwotICAgIH0sCi0KLSAgICBhZGRMaW5lOiBm
dW5jdGlvbihodG1sS2V5LCBkZXNjcmlwdGlvbikKLSAgICB7Ci0gICAgICAgIHRoaXMuX2xpbmVz
LnB1c2goeyBrZXk6IGh0bWxLZXksIHRleHQ6IGRlc2NyaXB0aW9uIH0pCi0gICAgfSwKLQotICAg
IHJlbmRlclNlY3Rpb246IGZ1bmN0aW9uKHBhcmVudCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jl
bmRlckhlYWRlcihwYXJlbnQpOwotCi0gICAgICAgIGZvciAodmFyIGxpbmUgPSAwOyBsaW5lIDwg
dGhpcy5fbGluZXMubGVuZ3RoOyArK2xpbmUpIHsKLSAgICAgICAgICAgIHZhciB0ciA9IHBhcmVu
dC5jcmVhdGVDaGlsZCgidHIiKTsKLSAgICAgICAgICAgIHRyLmNyZWF0ZUNoaWxkKCJ0ZCIsICJo
ZWxwLWtleS1jZWxsIikuaW5uZXJIVE1MID0gdGhpcy5fbGluZXNbbGluZV0ua2V5ICsgIiA6ICI7
Ci0gICAgICAgICAgICB0ci5jcmVhdGVDaGlsZCgidGQiKS5pbm5lclRleHQgPSB0aGlzLl9saW5l
c1tsaW5lXS50ZXh0OwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9yZW5kZXJIZWFkZXI6IGZ1
bmN0aW9uKHBhcmVudCkKLSAgICB7Ci0gICAgICAgIHZhciB0ckhlYWQgPSBwYXJlbnQuY3JlYXRl
Q2hpbGQoInRyIik7Ci0gCi0gICAgICAgIHRySGVhZC5jcmVhdGVDaGlsZCgidGgiKTsKLSAgICAg
ICAgdHJIZWFkLmNyZWF0ZUNoaWxkKCJ0aCIpLmlubmVyVGV4dCA9IHRoaXMubmFtZTsKLSAgICB9
LAotCi0gICAgX3JlbmRlclNlcXVlbmNlOiBmdW5jdGlvbihzZXF1ZW5jZSwgZGVsaW1pdGVyKQot
ICAgIHsKLSAgICAgICAgdmFyIGRlbGltaXRlckh0bWwgPSAnPHNwYW4gY2xhc3M9ImhlbHAta2V5
LWRlbGltaXRlciI+JyArIGRlbGltaXRlci5lc2NhcGVIVE1MKCkgKyAnPC9zcGFuPicKLSAgICAg
ICAgcmV0dXJuIHNlcXVlbmNlLm1hcCh0aGlzLl9yZW5kZXJLZXkpLmpvaW4oZGVsaW1pdGVySHRt
bCk7Ci0gICAgfSwKLQotICAgIF9yZW5kZXJLZXk6IGZ1bmN0aW9uKGtleSkKLSAgICB7Ci0gICAg
ICAgIGZ1bmN0aW9uIHJlbmRlckxhYmVsKGxhYmVsKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gJzxzcGFuIGNsYXNzPSJoZWxwLWtleSBtb25vc3BhY2UiPicgKyBsYWJlbC5lc2NhcGVI
VE1MKCkgKyAnPC9zcGFuPic7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGtleS5zcGxpdCgi
ICsgIikubWFwKHJlbmRlckxhYmVsKS5qb2luKCc8c3BhbiBjbGFzcz0iaGVscC1jb21iaW5lLWtl
eXMiPis8L3NwYW4+Jyk7Ci0gICAgfSwKLQotICAgIGdldCBfaGVpZ2h0KCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9saW5lcy5sZW5ndGggKyAyOyAvLyBhZGQgc29tZSBzcGFjZSBmb3Ig
aGVhZGVyCi0gICAgfQotfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TaWRlYmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFu
ZS5qcwppbmRleCBlYmM2MmRiZmMzMjAwZmY0MjE5MGRiMWE1ZGRiMTI2ZmE4YWI3NDhiLi44NTU4
OTRjNjRkNjRlOTRjNThjY2NjMjM3ZTU1Y2VlNmI0OGExZmZlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NpZGViYXJQYW5lLmpzCkBAIC0xMjUsNyArMTI1LDcgQEAgV2ViSW5zcGVj
dG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF9vblRpdGxlS2V5RG93bjogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkgfHwgZXZl
bnQua2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5TcGFjZS5j
b2RlKQorICAgICAgICBpZiAoaXNFbnRlcktleShldmVudCkgfHwgZXZlbnQua2V5Q29kZSA9PT0g
V2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuU3BhY2UpCiAgICAgICAgICAg
ICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCmluZGV4IDM1ZDI1ZDRkOWUxZjI2Njgy
Y2VmNTY0MjYxNDk2NGVlMzgzNDg3MzYuLjYwMmRlM2Q0NGIxOWY3NjBhNGEyNjFmMmM0ZTMwZjVm
ZGI5YjQ5ZGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNT
aWRlYmFyUGFuZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lk
ZWJhclBhbmUuanMKQEAgLTUzMiw0MiArNTMyLDYgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmIChzZWN0aW9uLmVsZW1lbnQucGFy
ZW50Tm9kZSkKICAgICAgICAgICAgICAgICBzZWN0aW9uLmVsZW1lbnQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChzZWN0aW9uLmVsZW1lbnQpOwogICAgICAgICB9Ci0gICAgfSwKLQotICAgIHJlZ2lz
dGVyU2hvcnRjdXRzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgc2VjdGlvbiA9IFdl
Ykluc3BlY3Rvci5zaG9ydGN1dHNIZWxwLnNlY3Rpb24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJT
dHlsZXMgUGFuZSIpKTsKLSAgICAgICAgdmFyIHNob3J0Y3V0ID0gV2ViSW5zcGVjdG9yLktleWJv
YXJkU2hvcnRjdXQ7Ci0gICAgICAgIHZhciBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQu
c2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlRhYiksCi0gICAgICAgICAgICBzaG9ydGN1
dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuVGFiLCBzaG9ydGN1dC5Nb2RpZmllcnMu
U2hpZnQpCi0gICAgICAgIF07Ci0gICAgICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOZXh0L3ByZXZpb3VzIHByb3BlcnR5IikpOwotICAgICAg
ICBrZXlzID0gWwotICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1
dC5LZXlzLlVwKSwKLSAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRj
dXQuS2V5cy5Eb3duKQotICAgICAgICBdOwotICAgICAgICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlz
KGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5jcmVtZW50L2RlY3JlbWVudCB2YWx1ZSIp
KTsKLSAgICAgICAga2V5cyA9IFsKLSAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJp
bmcoc2hvcnRjdXQuS2V5cy5VcCwgc2hvcnRjdXQuTW9kaWZpZXJzLlNoaWZ0KSwKLSAgICAgICAg
ICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5Eb3duLCBzaG9ydGN1
dC5Nb2RpZmllcnMuU2hpZnQpCi0gICAgICAgIF07Ci0gICAgICAgIHNlY3Rpb24uYWRkUmVsYXRl
ZEtleXMoa2V5cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJJbmNyZW1lbnQvZGVjcmVtZW50IGJ5
ICVmIiwgMTApKTsKLSAgICAgICAga2V5cyA9IFsKLSAgICAgICAgICAgIHNob3J0Y3V0LnNob3J0
Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5QYWdlVXApLAotICAgICAgICAgICAgc2hvcnRjdXQu
c2hvcnRjdXRUb1N0cmluZyhzaG9ydGN1dC5LZXlzLlBhZ2VEb3duKQotICAgICAgICBdOwotICAg
ICAgICBzZWN0aW9uLmFkZFJlbGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
SW5jcmVtZW50L2RlY3JlbWVudCBieSAlZiIsIDEwKSk7Ci0gICAgICAgIGtleXMgPSBbCi0gICAg
ICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0Y3V0LktleXMuUGFnZVVwLCBz
aG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQpLAotICAgICAgICAgICAgc2hvcnRjdXQuc2hvcnRjdXRU
b1N0cmluZyhzaG9ydGN1dC5LZXlzLlBhZ2VEb3duLCBzaG9ydGN1dC5Nb2RpZmllcnMuU2hpZnQp
Ci0gICAgICAgIF07Ci0gICAgICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJJbmNyZW1lbnQvZGVjcmVtZW50IGJ5ICVmIiwgMTAwKSk7Ci0gICAg
ICAgIGtleXMgPSBbCi0gICAgICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKHNob3J0
Y3V0LktleXMuUGFnZVVwLCBzaG9ydGN1dC5Nb2RpZmllcnMuQWx0KSwKLSAgICAgICAgICAgIHNo
b3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoc2hvcnRjdXQuS2V5cy5QYWdlRG93biwgc2hvcnRjdXQu
TW9kaWZpZXJzLkFsdCkKLSAgICAgICAgXTsKLSAgICAgICAgc2VjdGlvbi5hZGRSZWxhdGVkS2V5
cyhrZXlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkluY3JlbWVudC9kZWNyZW1lbnQgYnkgJWYi
LCAwLjEpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0Vmlld2VyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3
ZXIuanMKaW5kZXggMWRlMWMxMjQyMWFkYTJjN2RkNjJkMTk1YWQ1OGUwMDI3YTQyNGU3NC4uZWFl
NzM5NDJjMjZmYjBlMTJkMDIwZmNhOTQ2ODYyODJmNzAwZTJjZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKQEAgLTIyMSw5ICsyMjEsOSBAQCBXZWJJbnNwZWN0
b3IuVGV4dFZpZXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAg
ICAgdmFyIHNjcm9sbFZhbHVlID0gMDsKLSAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFdl
Ykluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuVXAuY29kZSkKKyAgICAgICAgaWYgKGV2
ZW50LmtleUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleUNvZGVzLlVw
KQogICAgICAgICAgICAgc2Nyb2xsVmFsdWUgPSAtMTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnQu
a2V5Q29kZSA9PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkRvd24uY29kZSkK
KyAgICAgICAgZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dC5LZXlDb2Rlcy5Eb3duKQogICAgICAgICAgICAgc2Nyb2xsVmFsdWUgPSAxOwogICAg
ICAgICAKICAgICAgICAgaWYgKHNjcm9sbFZhbHVlKSB7CkBAIC0yMzQsOSArMjM0LDkgQEAgV2Vi
SW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICBzY3JvbGxWYWx1ZSA9IDA7Ci0gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBX
ZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkxlZnQuY29kZSkKKyAgICAgICAgaWYg
KGV2ZW50LmtleUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleUNvZGVz
LkxlZnQpCiAgICAgICAgICAgICBzY3JvbGxWYWx1ZSA9IC00MDsKLSAgICAgICAgZWxzZSBpZiAo
ZXZlbnQua2V5Q29kZSA9PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlJpZ2h0
LmNvZGUpCisgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT0gV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuUmlnaHQpCiAgICAgICAgICAgICBzY3JvbGxWYWx1ZSA9
IDQwOwogICAgICAgICAKICAgICAgICAgaWYgKHNjcm9sbFZhbHVlKSB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjCmluZGV4IDBmOGQxYWM2ZGE0YWQ3NmZmMDQ5ODYxYzgxNWU1
YjQ1ZWRhYjQ3ZTkuLjQ3YTJlOTBkZWMyMzVlMTMwMzMxNmM5ZTVhOGIwYmI3YzUyZjAwNzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0zMiw3ICszMiw2IEBACiAg
ICAgPGZpbGU+RWxlbWVudHNUcmVlT3V0bGluZS5qczwvZmlsZT4KICAgICA8ZmlsZT5FdmVudExp
c3RlbmVyc1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxmaWxlPkZvbnRWaWV3LmpzPC9maWxl
PgotICAgIDxmaWxlPkhlbHBTY3JlZW4uanM8L2ZpbGU+CiAgICAgPGZpbGU+SW1hZ2VWaWV3Lmpz
PC9maWxlPgogICAgIDxmaWxlPkluamVjdGVkRmFrZVdvcmtlci5qczwvZmlsZT4KICAgICA8Zmls
ZT5JbmplY3RlZFNjcmlwdC5qczwvZmlsZT4KQEAgLTY0LDcgKzYzLDYgQEAKICAgICA8ZmlsZT5T
Y3JpcHRWaWV3LmpzPC9maWxlPgogICAgIDxmaWxlPlNlY3Rpb24uanM8L2ZpbGU+CiAgICAgPGZp
bGU+U2V0dGluZ3MuanM8L2ZpbGU+Ci0gICAgPGZpbGU+U2hvcnRjdXRzSGVscC5qczwvZmlsZT4K
ICAgICA8ZmlsZT5TaWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5TaWRlYmFyVHJlZUVs
ZW1lbnQuanM8L2ZpbGU+CiAgICAgPGZpbGU+U291cmNlQ1NTVG9rZW5pemVyLmpzPC9maWxlPgpA
QCAtOTQsNyArOTIsNiBAQAogICAgIDxmaWxlPldlbGNvbWVWaWV3LmpzPC9maWxlPgogICAgIDxm
aWxlPldvcmtlcnNTaWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5hdWRpdHMuY3NzPC9m
aWxlPgotICAgIDxmaWxlPmhlbHBTY3JlZW4uY3NzPC9maWxlPgogICAgIDxmaWxlPmluc3BlY3Rv
ci5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+aW5zcGVjdG9yU3ludGF4SGlnaGxpZ2h0LmNzczwvZmls
ZT4KICAgICA8ZmlsZT5wb3BvdmVyLmNzczwvZmlsZT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9oZWxwU2NyZWVuLmNzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODU5N2M0
MjgxNWQ5NjJhZTQ3YzQ0NGEyYTg4NTk2MDU5Njk1NWU0MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVs
cFNjcmVlbi5jc3MKKysrIC9kZXYvbnVsbApAQCAtMSwxNjYgKzAsMCBAQAotLmhlbHAtd2luZG93
IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKLSAgICBjb2xvcjogd2hpdGU7Ci0gICAg
b3BhY2l0eTogMC44NTsKLSAgICBib3JkZXI6IHNvbGlkIGJsYWNrOwotICAgIGJvcmRlci1yYWRp
dXM6IDhweDsKLSAgICB6LWluZGV4OiAyMDAwOwotfQotCi0uaGVscC13aW5kb3ctdXBwZXIgewot
ICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7Ci0gICAgYm9yZGVyLWJvdHRvbS1yaWdo
dC1yYWRpdXM6IDA7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogNjBweDsKLSAg
ICBoZWlnaHQ6IDQ3cHg7Ci0gICAgbGVmdDogNSU7Ci0gICAgd2lkdGg6IDkwJTsKLX0KLQotYm9k
eS5hdHRhY2hlZCAuaGVscC13aW5kb3ctdXBwZXIgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0K
LS5oZWxwLXdpbmRvdy10aXRsZSB7Ci0gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4IGxpZ2h0
R3JleTsKLSAgICBmb250LXNpemU6IDE4cHg7Ci0gICAgbWFyZ2luOiAxMHB4IDIwcHggMnB4IDIw
cHg7Ci0gICAgcGFkZGluZy1ib3R0b206IDZweDsKLX0KLQotLmhlbHAtd2luZG93LWxvd2VyIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgei1pbmRleDogMjAwMDsKLSAgICB0b3A6IDEw
N3B4OwotICAgIGxlZnQ6IDUlOwotICAgIHdpZHRoOiA5MCU7Ci0gICAgYm90dG9tOiAzMnB4Owot
fQotCi1ib2R5LmF0dGFjaGVkIC5oZWxwLXdpbmRvdy1sb3dlciB7Ci0gICAgcG9zaXRpb246IGFi
c29sdXRlOwotICAgIGxlZnQ6IDA7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgdG9wOiAzMnB4Owot
ICAgIGJvdHRvbTogMDsKLX0KLQotYm9keS5hdHRhY2hlZCAuaGVscC1zY3JvbGxhYmxlIHsKLSAg
ICBib3JkZXItcmFkaXVzOiAwOwotICAgIGJvcmRlci13aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6
IDEwMCU7Ci0gICAgYm9yZGVyLXRvcC13aWR0aDogMTBweCAhaW1wb3J0YW50OwotfQotCi0uaGVs
cC1zY3JvbGxhYmxlIHsKLSAgICBib3JkZXI6IDIwcHggc29saWQgYmxhY2s7Ci0gICAgYm9yZGVy
LXJhZGl1czogOHB4OwotICAgIGJvcmRlci10b3Atd2lkdGg6IDA7Ci0gICAgYm9yZGVyLXRvcC1s
ZWZ0LXJhZGl1czogMDsKLSAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDsKLSAgICB3aWR0
aDogMTAwJTsKLSAgICBtYXgtaGVpZ2h0OiAxMDAlOwotICAgIG92ZXJmbG93LXk6IGF1dG87Ci0g
ICAgb3ZlcmZsb3cteDogaGlkZGVuOwotICAgIHNjcm9sbGJhci13aWR0aDogMTFweDsKLX0KLQot
LmhlbHAtc2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXIgewotICAgIHdpZHRoOiAxMXB4Owot
fQotCi0uaGVscC1zY3JvbGxhYmxlOjotd2Via2l0LXNjcm9sbGJhci1jb3JuZXIgewotICAgIGRp
c3BsYXk6IG5vbmU7Ci19Ci0KLS5oZWxwLXNjcm9sbGFibGU6Oi13ZWJraXQtcmVzaXplciB7Ci0g
ICAgZGlzcGxheTogbm9uZTsKLX0KLQotLmhlbHAtc2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxi
YXItdGh1bWI6dmVydGljYWwgewotICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGlu
ZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHJnYigxMjgsIDEyOCwgMTI4KSksIHRvKHJn
YigxMjgsIDEyOCwgMTI4KSksIGNvbG9yLXN0b3AoNDAlLCByZ2IoOTYsIDk2LCA5NikpKTsKLSAg
ICBib3JkZXItcmFkaXVzOiA1cHg7Ci0gICAgbWluLWhlaWdodDogMjBweDsKLX0KLQotLmhlbHAt
c2Nyb2xsYWJsZTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6dmVydGljYWw6aG92ZXIsCi0uaGVs
cC1zY3JvbGxhYmxlOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp2ZXJ0aWNhbDphY3RpdmUgewot
ICAgIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQg
dG9wLCBmcm9tKHJnYigxNzYsIDE3NiwgMTc2KSksIHRvKHJnYigxNzYsIDE3NiwgMTc2KSksIGNv
bG9yLXN0b3AoNDAlLCByZ2IoMTQ0LCAxNDQsIDE0NCkpKTsKLX0KLQotLmhlbHAtc2Nyb2xsYWJs
ZTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2s6dmVydGljYWwgewotICAgIGJhY2tncm91bmQ6IC13
ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKGJsYWNrKSwg
dG8ocmdiKDMyLCAzMiwgMzIpKSwgY29sb3Itc3RvcCgyMCUsIHJnYigzMiwgMzIsIDMyKSkpOwot
ICAgIGJvcmRlci1yYWRpdXM6IDVweDsKLX0KLQotLmhlbHAtY2xvc2UtYnV0dG9uIHsKLSAgICBi
b3JkZXI6IDAgbm9uZSB0cmFuc3BhcmVudDsKLSAgICBwYWRkaW5nOiAwOwotICAgIG1hcmdpbjog
MnB4IDEwcHggMHB4IDJweDsKLSAgICBmb250LXNpemU6IDE0cHg7Ci0gICAgY29sb3I6IHJnYigy
MjIsIDIyMiwgMjIyKTsKLSAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KHJhZGlhbCwg
MzAlIDMwJSwgMSwgNTAlIDUwJSwgOCwgZnJvbShyZ2IoMTI4LCAxMjgsIDEyOCkpLCB0byhyZ2Io
ODAsIDgwLCA4MCkpKTsKLSAgICBib3JkZXItcmFkaXVzOiA4cHg7Ci0gICAgaGVpZ2h0OiAxNnB4
OwotICAgIHdpZHRoOiAxNnB4OwotfQotCi0uaGVscC1jbG9zZS1idXR0b246aG92ZXIgewotICAg
IGNvbG9yOiB3aGl0ZTsKLX0KLQotYm9keS5wbGF0Zm9ybS1tYWMgLmhlbHAtY2xvc2UtYnV0dG9u
IHsKLSAgICBmbG9hdDogbGVmdDsKLSAgICBmb250LXNpemU6IDEycHg7Ci19Ci0KLWJvZHk6bm90
KC5wbGF0Zm9ybS1tYWMpIC5oZWxwLWNsb3NlLWJ1dHRvbiB7Ci0gICAgZmxvYXQ6IHJpZ2h0Owot
ICAgIG1hcmdpbi10b3A6IDEwcHg7Ci19Ci0KLS5oZWxwLXRhYmxlIHsKLSAgICB3aWR0aDogMTAw
JTsKLSAgICBmb250LXNpemU6IDEzcHg7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bzsK
LX0KLQotLmhlbHAtdGFibGUgdGggewotICAgIHBhZGRpbmctdG9wOiA2cHg7Ci0gICAgdGV4dC1h
bGlnbjogbGVmdDsKLSAgICBjb2xvcjogeWVsbG93OwotfQotCi0uaGVscC10YWJsZSB0ZCB7Ci0g
ICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwotfQotCi0u
aGVscC1rZXktY2VsbCB7Ci0gICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci19Ci0KLS5oZWxwLWtleSB7
Ci0gICAgY29sb3I6IHllbGxvdzsKLX0KLQotYm9keTpub3QoLnBsYXRmb3JtLW1hYykgLmhlbHAt
a2V5IHsKLSAgICBmb250LXdlaWdodDogYm9sZDsKLSAgICB0ZXh0LXNoYWRvdzogYmxhY2sgMXB4
IDFweCA3cHg7Ci19Ci0KLWJvZHkucGxhdGZvcm0tbWFjIC5oZWxwLWtleSB7Ci0gICAgZm9udC1m
YW1pbHk6IEx1Y2lkYSBHcmFuZGUsIHNhbnMtc2VyaWY7Ci0gICAgZm9udC1zaXplOiAxMHB4Owot
fQotCi0uaGVscC1jb21iaW5lLWtleXMgewotICAgIGNvbG9yOiB3aGl0ZTsKLSAgICBmb250LXdl
aWdodDogYm9sZDsKLSAgICBtYXJnaW46IDAgMC4zZW07Ci19Ci0KLS5oZWxwLWtleS1kZWxpbWl0
ZXIgewotICAgIGNvbG9yOiB3aGl0ZTsKLSAgICBtYXJnaW46IDAgMC41ZW07Ci19CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggNzRiZGRhZjdiNzdkMzdj
MWM0NjZkNTM3MDVlYjFiODA5ODI2NGE3OC4uNGZhOGRkY2E2YThiZGE3NmI1MDE1NTY4NTU4MDdl
NzMxNDU1ZjM0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5odG1sCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRt
bApAQCAtMTI0LDggKzEyNCw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iVGltZWxpbmVQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGltZWxpbmVPdmVydmlld1BhbmUuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRlc3RDb250cm9s
bGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJIZWxwU2NyZWVuLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJTaG9ydGN1dHNIZWxwLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGNs
YXNzPSJkZXRhY2hlZCI+CiAgICAgPGRpdiBpZD0idG9vbGJhciI+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBmNmFlNzlkMmE5MDQ0NDRkYzQyYTA2YjEyMWFj
NTBhNDFmYmQzYjI0Li45ZmI5ZWY0YTlhMmVhOTg3OTljNmE0NDY4ZmU3M2I2OTk2NWZjMTEzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTQ0MSwxMSArNDQx
LDYgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICBkb2N1bWVudC5ib2R5
LmFkZFN0eWxlQ2xhc3MoInBvcnQtIiArIHBvcnQpOwogCiAgICAgdGhpcy5zZXR0aW5ncyA9IG5l
dyBXZWJJbnNwZWN0b3IuU2V0dGluZ3MoKTsKLSAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygp
OwotCi0gICAgLy8gc2V0IG9yZGVyIG9mIHNvbWUgc2VjdGlvbnMgZXhwbGljaXRseQotICAgIFdl
Ykluc3BlY3Rvci5zaG9ydGN1dHNIZWxwLnNlY3Rpb24oIkNvbnNvbGUiKTsKLSAgICBXZWJJbnNw
ZWN0b3Iuc2hvcnRjdXRzSGVscC5zZWN0aW9uKCJFbGVtZW50cyBQYW5lbCIpOwogCiAgICAgdGhp
cy5kcmF3ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdlcigpOwogICAgIHRoaXMuY29uc29sZSA9
IG5ldyBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcodGhpcy5kcmF3ZXIpOwpAQCAtNjg1LDM1ICs2
ODAsOCBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDbGljayA9IGZ1bmN0aW9uKGV2ZW50KQogICAg
IGZvbGxvd0xpbmsoKTsKIH0KIAotV2ViSW5zcGVjdG9yLl9yZWdpc3RlclNob3J0Y3V0cyA9IGZ1
bmN0aW9uKCkKLXsKLSAgICB2YXIgc2hvcnRjdXQgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dDsKLSAgICB2YXIgc2VjdGlvbiA9IFdlYkluc3BlY3Rvci5zaG9ydGN1dHNIZWxwLnNlY3Rp
b24oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJBbGwgUGFuZWxzIikpOwotICAgIHZhciBrZXlzID0g
WwotICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJdIiwgc2hvcnRjdXQuTW9kaWZp
ZXJzLkN0cmxPck1ldGEpLAotICAgICAgICBzaG9ydGN1dC5zaG9ydGN1dFRvU3RyaW5nKCJbIiwg
c2hvcnRjdXQuTW9kaWZpZXJzLkN0cmxPck1ldGEpCi0gICAgXTsKLSAgICBzZWN0aW9uLmFkZFJl
bGF0ZWRLZXlzKGtleXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTmV4dC9wcmV2aW91cyBwYW5l
bCIpKTsKLSAgICBzZWN0aW9uLmFkZEtleShzaG9ydGN1dC5LZXlzLkVzYy5uYW1lLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlRvZ2dsZSBjb25zb2xlIikpOwotICAgIHNlY3Rpb24uYWRkS2V5KHNo
b3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoImYiLCBzaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0
YSksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2VhcmNoIikpOwotICAgIGtleXMgPSBbCi0gICAg
ICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoImciLCBzaG9ydGN1dC5Nb2RpZmllcnMuQ3Ry
bE9yTWV0YSksCi0gICAgICAgIHNob3J0Y3V0LnNob3J0Y3V0VG9TdHJpbmcoImciLCBzaG9ydGN1
dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSB8IHNob3J0Y3V0Lk1vZGlmaWVycy5TaGlmdCkKLSAgICBd
OwotICAgIHNlY3Rpb24uYWRkUmVsYXRlZEtleXMoa2V5cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJGaW5kIG5leHQvcHJldmlvdXMiKSk7Ci19Ci0KIFdlYkluc3BlY3Rvci5kb2N1bWVudEtleURv
d24gPSBmdW5jdGlvbihldmVudCkKIHsKLSAgICBjb25zdCBoZWxwS2V5ID0gV2ViSW5zcGVjdG9y
LmlzTWFjKCkgPyAiVSswMDNGIiA6ICJVKzAwQkYiOyAvLyAiPyIgZm9yIGJvdGggcGxhdGZvcm1z
Ci0KLSAgICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIkYxIiB8fAotICAgICAgICAoZXZl
bnQua2V5SWRlbnRpZmllciA9PT0gaGVscEtleSAmJiAoIVdlYkluc3BlY3Rvci5pc0VkaXRpbmdB
bnlGaWVsZCgpIHx8IGV2ZW50Lm1ldGFLZXkpKSkgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LnNob3J0Y3V0c0hlbHAuc2hvdygpOwotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9u
KCk7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgIH0KLQogICAgIGlm
IChXZWJJbnNwZWN0b3IuaXNFZGl0aW5nQW55RmllbGQoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0xNzM2LDcgKzE3MDQsNyBAQCBXZWJJbnNwZWN0b3IuX3NlYXJjaEZpZWxkTWFudWFsRm9jdXMg
PSBmdW5jdGlvbihldmVudCkKIFdlYkluc3BlY3Rvci5fc2VhcmNoS2V5RG93biA9IGZ1bmN0aW9u
KGV2ZW50KQogewogICAgIC8vIEVzY2FwZSBLZXkgd2lsbCBjbGVhciB0aGUgZmllbGQgYW5kIGNs
ZWFyIHRoZSBzZWFyY2ggcmVzdWx0cwotICAgIGlmIChldmVudC5rZXlDb2RlID09PSBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkVzYy5jb2RlKSB7CisgICAgaWYgKGV2ZW50Lmtl
eUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleUNvZGVzLkVzYykgewog
ICAgICAgICAvLyBJZiBmb2N1cyBiZWxvbmdzIGhlcmUgYW5kIHRleHQgaXMgZW1wdHkgLSBub3Ro
aW5nIHRvIGRvLCByZXR1cm4gdW5oYW5kbGVkLgogICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnZh
bHVlID09PSAiIiAmJiB0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQgPT09IHRoaXMucHJldmlvdXNG
b2N1c0VsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xOTYyLDcgKzE5MzAsNyBAQCBX
ZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nID0gZnVuY3Rpb24oZWxlbWVudCwgY29tbWl0dGVkQ2Fs
bGJhY2ssIGNhbmNlbGxlZENhbGxiYQogICAgICAgICAgICAgZWRpdGluZ0NvbW1pdHRlZC5jYWxs
KGVsZW1lbnQpOwogICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICB9IGVsc2UgaWYgKGV2ZW50Lmtl
eUNvZGUgPT09IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuRXNjLmNvZGUpIHsK
KyAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9h
cmRTaG9ydGN1dC5LZXlDb2Rlcy5Fc2MpIHsKICAgICAgICAgICAgIGVkaXRpbmdDYW5jZWxsZWQu
Y2FsbChlbGVtZW50KTsKICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAg
ICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvdXRpbGl0aWVzLmpzCmluZGV4IGY4N2I1M2Q4MzkzM2JiZDI3NzVmZjdlODAxYmNjZjJmNmRm
MDkwOTEuLjk4ZjM0YjkyNWM2ZmJiNmUwOTc1MjJkZjczMzJmMTgwYTNjMjgxNmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwpAQCAtMjc4LDE1ICsyNzgsNiBAQCBF
bGVtZW50LnByb3RvdHlwZS5pc0luc2VydGlvbkNhcmV0SW5zaWRlID0gZnVuY3Rpb24oKQogICAg
IHJldHVybiBzZWxlY3Rpb25SYW5nZS5zdGFydENvbnRhaW5lciA9PT0gdGhpcyB8fCBzZWxlY3Rp
b25SYW5nZS5zdGFydENvbnRhaW5lci5pc0Rlc2NlbmRhbnQodGhpcyk7CiB9CiAKLUVsZW1lbnQu
cHJvdG90eXBlLmNyZWF0ZUNoaWxkID0gZnVuY3Rpb24oZWxlbWVudE5hbWUsIGNsYXNzTmFtZSkK
LXsKLSAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZWxlbWVudE5hbWUp
OwotICAgIGlmIChjbGFzc05hbWUpCi0gICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NO
YW1lOwotICAgIHRoaXMuYXBwZW5kQ2hpbGQoZWxlbWVudCk7Ci0gICAgcmV0dXJuIGVsZW1lbnQ7
Ci19Ci0KIEVsZW1lbnQucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18oInRvdGFsT2Zmc2V0TGVm
dCIsIGZ1bmN0aW9uKCkKIHsKICAgICB2YXIgdG90YWwgPSAwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>