<?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>66847</bug_id>
          
          <creation_ts>2011-08-24 03:22:30 -0700</creation_ts>
          <short_desc>Web Inspector: Add 9 more javascript files to the compilation.</short_desc>
          <delta_ts>2011-08-24 06:35:22 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>456040</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 03:22:30 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456041</commentid>
    <comment_count>1</comment_count>
      <attachid>104977</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 03:26:41 -0700</bug_when>
    <thetext>Created attachment 104977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456061</commentid>
    <comment_count>2</comment_count>
      <attachid>104977</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-24 05:35:52 -0700</bug_when>
    <thetext>Comment on attachment 104977
Patch

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

&gt; Source/WebCore/inspector/front-end/inspector.js:1444
&gt; +console.trace();

Remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456071</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-24 06:35:22 -0700</bug_when>
    <thetext>Committed r93706: &lt;http://trac.webkit.org/changeset/93706&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104977</attachid>
            <date>2011-08-24 03:26:41 -0700</date>
            <delta_ts>2011-08-24 05:35:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66847-20110824142639.patch</filename>
            <type>text/plain</type>
            <size>82795</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM3MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNTJjOWExNWNmYjk2M2Nh
NTNlNmYzOWI3NzJkMDMwZmNjNDUwOGFlLi5hZmUxMTdhZjM5YjkzOTRjZTFkNWVmNTc1MWRkNDZl
YWRiZDhkNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTEtMDgtMjQgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEFkZCA5IG1vcmUgamF2YXNjcmlwdCBmaWxlcyB0byB0aGUgY29tcGlsYXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njg0NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3Bl
Y3Rvci9jb21waWxlLWZyb250LWVuZC5zaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0JyZWFrcG9pbnRNYW5hZ2VyLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U3R5bGVNb2RlbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NoZWNrYm94Lmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6IEFkZGVk
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVTdGFja0ZyYW1lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuY3JlYXRlVGV4dE1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9saW5raWZ5TG9jYXRpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fbGlua2lmeUNhbGxGcmFtZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLmlzRXJyb3JP
cldhcm5pbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlw
ZS5fZm9ybWF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5
cGUuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmcudmFsdWVGb3JtYXR0ZXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0V2l0aFN1YnN0
aXR1dGlvblN0cmluZy5hcHBlbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLnByb3RvdHlwZS5jbGVhckhpZ2hsaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UucHJvdG90eXBlLmhpZ2hsaWdodFNlYXJjaFJlc3VsdHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5tYXRjaGVzUmVnZXgpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS50b01lc3NhZ2VFbGVt
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUuX3Bv
cHVsYXRlU3RhY2tUcmFjZVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25z
b2xlTWVzc2FnZS5wcm90b3R5cGUuX3VwZGF0ZVJlcGVhdENvdW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5pc0VxdWFsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUuZ2V0IHN0YWNrVHJhY2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLl9yZWdpc3RlckNvbnNvbGVEb21haW5EaXNw
YXRjaGVyLmRpc3BhdGNoZXIubWVzc2FnZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUuX3JlZ2lzdGVyQ29uc29sZURvbWFpbkRpc3BhdGNoZXIuZGlz
cGF0Y2hlci5tZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0Nvb2tpZVBhcnNlci5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RPTUFnZW50LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5q
czoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlLmpzOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLmlzTWFjKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtNYW5hZ2VyLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5wcm90b3R5cGUuc2V0UHJv
cGVydHlWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2UuVHlwZS5Eb2N1bWVudC4wLlN0eWxlc2hlZXQuMS5JbWFnZS4yLkZvbnQuMy5TY3Jp
cHQuNC5YSFIuNS5XZWJTb2NrZXQuNy5PdGhlci44LmlzVGV4dFR5cGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlLlR5cGUudG9VSVN0cmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2UuVHlwZS50b1N0cmluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2UucHJvdG90eXBlLl9jaGVja1dhcm5pbmdzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZURvbWFpbk1vZGVsQmluZGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VE
b21haW5Nb2RlbEJpbmRpbmcucHJvdG90eXBlLmNhblNldENvbnRlbnQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlRG9tYWluTW9kZWxCaW5kaW5nLnByb3RvdHlwZS5zZXRDb250ZW50
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlQ2F0ZWdvcnkuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VDYXRlZ29yeS5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlQ2F0ZWdvcnkucHJvdG90eXBlLmdldCB0aXRsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlLl9kaWRGb3JtYXRDb250ZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXJNYXBwaW5nUGF5bG9hZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1hbmFnZXIuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZXh0
ZXJucy5qczoKKyAgICAgICAgKGNvbnNvbGUuYXNzZXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5saW5raWZ5VVJMQXNOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5n
QXNGcmFnbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTdHJpbmcpOgorICAgICAgICAo
RWxlbWVudC5wcm90b3R5cGUuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVN0cmluZyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZ2Vu
ZXJhdGUtcHJvdG9jb2wtZXh0ZXJuczoKKwogMjAxMS0wOC0yMyAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYW5ub3RhdGUgYW5k
IHByZXBhcmUgZm9yIGNvbXBpbGF0aW9uIGZpcnN0IDE0IEphdmFTY3JpcHQgZmlsZXMgd2l0aGlu
IDQgbW9kdWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1YmJjOGFiNGIzOWNlNTRmZGNiZTAzZjkx
YjI5MTA4YThjNDQwZTQzLi45NzM0NmM1NDFmYzA0YThhOGZhZmFmYmE4NmZmM2UwNjIzN2ExYzJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MjkwLDYgKzYyOTAsNyBAQAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvQ2hlY2tib3guanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29sb3IuanMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZU1lc3NhZ2UuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVBhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVW
aWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250
ZXh0TWFuYWdlci5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDcyYmZlMzhhMmViNDVmZjAyY2Q4MjM0ZmFkZTBiMzQ3ZTk0NjgyZjQuLjQ0
ZjJmMTUwMjcyM2M3MjYxMTVmNWY1OTI1ZTE3NmNlOGZmMmZjZmQgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02ODc2MSw2ICs2ODc2MSwxMCBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aW5zcGVjdG9yXGZyb250LWVuZFxDb25zb2xlTWVzc2FnZS5qcyIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRc
Q29uc29sZVZpZXcuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2ggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKaW5kZXggZDQwMzA3MDY4MzEzZTk5OTAwNTAw
YWE5NzJjNTY5ZDA1NzkzNmY1Zi4uZmExMjAyZWYxYjE1MDZkNGY5Y2M3YjkxNmNhZTgxN2ZjMjgy
Yzk3NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQt
ZW5kLnNoCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5z
aApAQCAtNDEsMTQgKzQxLDIzIEBAIGphdmEgLWphciB+L2Nsb3N1cmUvY29tcGlsZXIuamFyIC0t
Y29tcGlsYXRpb25fbGV2ZWwgU0lNUExFX09QVElNSVpBVElPTlMgLS13YXJuCiAgICAgICAgIC0t
anMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBcCiAgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5q
cyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNw
ZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzIFwKLSAgICAtLW1vZHVsZSBqc21vZHVsZV9zZGs6NDpq
c21vZHVsZV9jb3JlLGpzbW9kdWxlX2VudiBcCi0gICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3QuanMgXAorICAgIC0tbW9kdWxlIGpzbW9kdWxlX3Nk
azo4OmpzbW9kdWxlX2NvcmUsanNtb2R1bGVfZW52IFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JpbmFyeVNlYXJjaC5qcyBcCisgICAgICAgIC0tanMg
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIuanMgXAogICAg
ICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMg
XAotICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanMgXAotICAgIC0tbW9kdWxlIGpzbW9kdWxlX3VpOjU6anNtb2R1bGVfc2Rr
IFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVj
dC5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanMgXAorICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVtb3RlT2JqZWN0LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlQ2F0ZWdvcnkuanMgXAorICAgIC0tbW9kdWxlIGpzbW9kdWxl
X21pc2M6MTA6anNtb2R1bGVfc2RrIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NoZWNrYm94LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRleHRNZW51LmpzIFwKKyAgICAgICAgLS1qcyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMgXAogICAg
ICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcyBcCiAg
ICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QbGFjYXJkLmpz
IFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92
ZXIuanMgXAotICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29udGV4dE1lbnUuanMgXAotICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU29mdENvbnRleHRNZW51LmpzCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb2Z0Q29udGV4dE1lbnUuanMgXAorICAgICAgICAtLWpzIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcyBcCisgICAgICAg
IC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0LmpzIFwK
KyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
TWFuYWdlci5qcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQnJlYWtwb2ludE1hbmFnZXIuanMKaW5kZXggODY2OTI2ZTljMjIwMGI0YzA5OWNkMDc4ZDZl
MjQ1MmRhODczMzk2YS4uNWY5NjRkMWE5YjAxN2ZhZmQyODQwY2ExNjEzZWNiMzE2OWZhNWUwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFr
cG9pbnRNYW5hZ2VyLmpzCkBAIC0yOCw2ICsyOCw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
Ky8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdl
ciA9IGZ1bmN0aW9uKGJyZWFrcG9pbnRTdG9yYWdlLCBicmVha3BvaW50QWRkZWREZWxlZ2F0ZSwg
YnJlYWtwb2ludFJlbW92ZWREZWxlZ2F0ZSwgZGVidWdnZXJNb2RlbCkKIHsKICAgICB0aGlzLl9i
cmVha3BvaW50U3RvcmFnZSA9IGJyZWFrcG9pbnRTdG9yYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IDkzNTc5MmZi
YzZmMWUwMDc1ZDk0OWM5ZGVlMTdiNDQxNmQ2YzE1MTguLjgwYmI0NDJlNjA1ZWUwMjkzYWU3YzE1
ZGZmM2RjZGVhMTI4Mjk3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTI4LDYgKzI4LDEwIEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLk9iamVjdH0KKyAqLwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwgPSBmdW5jdGlvbigp
CiB7CiAgICAgbmV3IFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nKHRo
aXMpOwpAQCAtMjE5LDYgKzIyMywxMCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90
b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fX3Byb3Rv
X18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAorLyoqCisgKiBAY29uc3RydWN0
b3IKKyAqIEBwYXJhbSB7Kn0gcGF5bG9hZAorICovCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbiA9IGZ1bmN0aW9uKHBheWxvYWQpCiB7CiAgICAgdGhpcy5pZCA9IHBheWxvYWQuc3R5
bGVJZDsKQEAgLTQwNSw2ICs0MTMsOSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
bi5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBX
ZWJJbnNwZWN0b3IuQ1NTUnVsZSA9IGZ1bmN0aW9uKHBheWxvYWQpCiB7CiAgICAgdGhpcy5pZCA9
IHBheWxvYWQucnVsZUlkOwpAQCAtNDQ0LDYgKzQ1NSw5IEBAIFdlYkluc3BlY3Rvci5DU1NSdWxl
LnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdl
Ykluc3BlY3Rvci5DU1NQcm9wZXJ0eSA9IGZ1bmN0aW9uKG93bmVyU3R5bGUsIGluZGV4LCBuYW1l
LCB2YWx1ZSwgcHJpb3JpdHksIHN0YXR1cywgcGFyc2VkT2ssIGltcGxpY2l0LCBzaG9ydGhhbmQs
IHRleHQpCiB7CiAgICAgdGhpcy5vd25lclN0eWxlID0gb3duZXJTdHlsZTsKQEAgLTU3NSw2ICs1
ODksOSBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgIH0KIH0K
IAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQg
PSBmdW5jdGlvbihwYXlsb2FkKQogewogICAgIHRoaXMuaWQgPSBwYXlsb2FkLnN0eWxlU2hlZXRJ
ZDsKQEAgLTYyMiw2ICs2MzksMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90
eXBlID0gewogICAgIH0KIH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBpbXBsZW1lbnRz
IHtXZWJJbnNwZWN0b3IuUmVzb3VyY2VEb21haW5Nb2RlbEJpbmRpbmd9CisgKi8KIFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nID0gZnVuY3Rpb24oY3NzTW9kZWwpCiB7
CiAgICAgdGhpcy5fY3NzTW9kZWwgPSBjc3NNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hlY2tib3guanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NoZWNrYm94LmpzCmluZGV4IGFlZDg1MzQ4NjNjMzM4OTU5OGQ5Y2Vj
MDIwZjNjYjM2NzZmZjNkYjguLmMyMmJmODg1MzE1MDc5ZDViYzlhNWZlY2NmYTI4NTg3Nzg0MWFl
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hlY2ti
b3guanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DaGVja2JveC5q
cwpAQCAtMjMsNiArMjMsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBjb25z
dHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuQ2hlY2tib3ggPSBmdW5jdGlvbihsYWJlbCwgY2xh
c3NOYW1lLCB0b29sdGlwKQogewogICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2xhYmVsJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzNkZWY5ZDk5OGQzYzM0NzUzZGZm
YWI2MmEyYmJlZTM1N2I5ZGVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtMCwwICsxLDQ5OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IEpvc2VwaCBQZWNvcmFybworICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0
cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5Db25zb2xlU3RhY2tGcmFtZSA9IGZ1bmN0aW9uKCkK
K3sKKyAgICB0aGlzLnVybCA9IHVuZGVmaW5lZDsKKyAgICB0aGlzLmZ1bmN0aW9uTmFtZSA9IHVu
ZGVmaW5lZDsKKyAgICB0aGlzLmxpbmVOdW1iZXIgPSB1bmRlZmluZWQ7CisgICAgdGhpcy5jb2x1
bW5OdW1iZXIgPSB1bmRlZmluZWQ7Cit9CisgICAgICAgICAgICAgICAgICAgIAorLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5Db25zb2xlU3RhY2tG
cmFtZT49fSBzdGFja1RyYWNlCisgKiBAcGFyYW0ge251bWJlcj19IHJlcXVlc3QKKyAqLworV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlID0gZnVuY3Rpb24oc291cmNlLCB0eXBlLCBsZXZlbCwg
bGluZSwgdXJsLCByZXBlYXRDb3VudCwgbWVzc2FnZSwgcGFyYW1ldGVycywgc3RhY2tUcmFjZSwg
cmVxdWVzdCkKK3sKKyAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTsKKyAgICB0aGlzLnR5cGUgPSB0
eXBlOworICAgIHRoaXMubGV2ZWwgPSBsZXZlbDsKKyAgICB0aGlzLmxpbmUgPSBsaW5lOworICAg
IHRoaXMudXJsID0gdXJsOworICAgIHRoaXMucmVwZWF0Q291bnQgPSByZXBlYXRDb3VudDsKKyAg
ICB0aGlzLnJlcGVhdERlbHRhID0gcmVwZWF0Q291bnQ7CisgICAgdGhpcy50b3RhbFJlcGVhdENv
dW50ID0gcmVwZWF0Q291bnQ7CisgICAgdGhpcy5fbWVzc2FnZVRleHQgPSBtZXNzYWdlOworICAg
IHRoaXMuX3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOworICAgIHRoaXMuX3N0YWNrVHJhY2UgPSBz
dGFja1RyYWNlOworICAgIHRoaXMuX3JlcXVlc3QgPSByZXF1ZXN0OworCisgICAgaWYgKHN0YWNr
VHJhY2UgJiYgc3RhY2tUcmFjZS5sZW5ndGgpIHsKKyAgICAgICAgdmFyIHRvcENhbGxGcmFtZSA9
IHN0YWNrVHJhY2VbMF07CisgICAgICAgIGlmICghdGhpcy51cmwpCisgICAgICAgICAgICB0aGlz
LnVybCA9IHRvcENhbGxGcmFtZS51cmw7CisgICAgICAgIGlmICghdGhpcy5saW5lKQorICAgICAg
ICAgICAgdGhpcy5saW5lID0gdG9wQ2FsbEZyYW1lLmxpbmVOdW1iZXI7CisgICAgfQorCisgICAg
dGhpcy5fZm9ybWF0TWVzc2FnZSgpOworfQorCitXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
Y3JlYXRlVGV4dE1lc3NhZ2UgPSBmdW5jdGlvbih0ZXh0LCBsZXZlbCkKK3sKKyAgICBsZXZlbCA9
IGxldmVsIHx8IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nOwor
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLkpTLCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3Nh
Z2UuTWVzc2FnZVR5cGUuTG9nLCBsZXZlbCwgMCwgbnVsbCwgMSwgbnVsbCwgW3RleHRdLCBudWxs
KTsKK30KKworV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKKyAgICBf
Zm9ybWF0TWVzc2FnZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHN0YWNrVHJhY2Ug
PSB0aGlzLl9zdGFja1RyYWNlOworICAgICAgICB2YXIgbWVzc2FnZVRleHQ7CisgICAgICAgIHN3
aXRjaCAodGhpcy50eXBlKSB7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJjb25zb2xlLnRyYWNlKCkiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlVuY2F1Z2h0RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIG1lc3NhZ2VU
ZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGhpcy5fbWVzc2FnZVRleHQpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2UuTWVzc2FnZVR5cGUuTmV0d29ya0Vycm9yOgorICAgICAgICAgICAgICAgIGlmICh0aGlz
Ll9yZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIHN0YWNrVHJhY2UgPSB0aGlzLl9yZXF1
ZXN0LnN0YWNrVHJhY2U7CisKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVRleHQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VU
ZXh0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuX3JlcXVlc3QucmVx
dWVzdE1ldGhvZCArICIgIikpOworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBl
bmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh0aGlzLl9yZXF1ZXN0LnVybCkp
OworICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVxdWVzdC5mYWlsZWQpCisgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSgiICIgKyB0aGlzLl9yZXF1ZXN0LmxvY2FsaXplZEZhaWxEZXNjcmlwdGlvbikpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
VGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIgKyB0aGlzLl9yZXF1
ZXN0LnN0YXR1c0NvZGUgKyAiICgiICsgdGhpcy5fcmVxdWVzdC5zdGF0dXNUZXh0ICsgIikiKSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0
ID0gdGhpcy5fZm9ybWF0KFt0aGlzLl9tZXNzYWdlVGV4dF0pOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVR5cGUuQXNzZXJ0OgorICAgICAgICAgICAgICAgIHZhciBhcmdzID0gW1dlYkluc3BlY3Rvci5V
SVN0cmluZygiQXNzZXJ0aW9uIGZhaWxlZDoiKV07CisgICAgICAgICAgICAgICAgaWYgKHRoaXMu
X3BhcmFtZXRlcnMpCisgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzLmNvbmNhdCh0aGlz
Ll9wYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IHRoaXMuX2Zvcm1h
dChhcmdzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLk9iamVjdDoKKyAgICAgICAgICAgICAg
ICB2YXIgb2JqID0gdGhpcy5fcGFyYW1ldGVycyA/IHRoaXMuX3BhcmFtZXRlcnNbMF0gOiB1bmRl
ZmluZWQ7CisgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbIiVPIiwgb2JqXTsKKyAgICAgICAg
ICAgICAgICBtZXNzYWdlVGV4dCA9IHRoaXMuX2Zvcm1hdChhcmdzKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdmFyIGFyZ3Mg
PSB0aGlzLl9wYXJhbWV0ZXJzIHx8IFt0aGlzLl9tZXNzYWdlVGV4dF07CisgICAgICAgICAgICAg
ICAgbWVzc2FnZVRleHQgPSB0aGlzLl9mb3JtYXQoYXJncyk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdl
LmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2UtY29kZSI7CisKKyAgICAg
ICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UgJiYgdGhpcy5fc3RhY2tUcmFjZS5sZW5ndGggJiYgdGhp
cy5fc3RhY2tUcmFjZVswXS51cmwpIHsKKyAgICAgICAgICAgIHZhciB1cmxFbGVtZW50ID0gdGhp
cy5fbGlua2lmeUNhbGxGcmFtZSh0aGlzLl9zdGFja1RyYWNlWzBdKTsKKyAgICAgICAgICAgIHRo
aXMuX2Zvcm1hdHRlZE1lc3NhZ2UuYXBwZW5kQ2hpbGQodXJsRWxlbWVudCk7CisgICAgICAgIH0g
ZWxzZSBpZiAodGhpcy51cmwgJiYgdGhpcy51cmwgIT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAg
ICAgICB2YXIgdXJsRWxlbWVudCA9IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCwgdGhp
cy5saW5lLCAwKTsKKyAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UuYXBwZW5kQ2hp
bGQodXJsRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNz
YWdlLmFwcGVuZENoaWxkKG1lc3NhZ2VUZXh0KTsKKworICAgICAgICBpZiAodGhpcy5fc3RhY2tU
cmFjZSkgeworICAgICAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHsKKyAgICAgICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZToKKyAg
ICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlw
ZS5VbmNhdWdodEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5OZXR3b3JrRXJyb3I6CisgICAgICAgICAgICAgICAg
Y2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuQXNzZXJ0OiB7Cisg
ICAgICAgICAgICAgICAgICAgIHZhciBvbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7
CisgICAgICAgICAgICAgICAgICAgIG9sLmNsYXNzTmFtZSA9ICJvdXRsaW5lLWRpc2Nsb3N1cmUi
OworICAgICAgICAgICAgICAgICAgICB2YXIgdHJlZU91dGxpbmUgPSBuZXcgVHJlZU91dGxpbmUo
b2wpOworCisgICAgICAgICAgICAgICAgICAgIHZhciBjb250ZW50ID0gdGhpcy5fZm9ybWF0dGVk
TWVzc2FnZTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHJvb3QgPSBuZXcgVHJlZUVsZW1lbnQo
Y29udGVudCwgbnVsbCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQudHJlZUVs
ZW1lbnRGb3JUZXN0ID0gcm9vdDsKKyAgICAgICAgICAgICAgICAgICAgdHJlZU91dGxpbmUuYXBw
ZW5kQ2hpbGQocm9vdCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJvb3QuZXhwYW5kKCk7CisKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5f
cG9wdWxhdGVTdGFja1RyYWNlVHJlZUVsZW1lbnQocm9vdCk7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UgPSBvbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBUaGlzIGlzIHVzZWQgZm9yIGlubGluZSBt
ZXNzYWdlIGJ1YmJsZXMgaW4gU291cmNlRnJhbWVzLCBvciBvdGhlciBwbGFpbi10ZXh0IHJlcHJl
c2VudGF0aW9ucy4KKyAgICAgICAgdGhpcy5tZXNzYWdlID0gKHVybEVsZW1lbnQgPyB1cmxFbGVt
ZW50LnRleHRDb250ZW50ICsgIiAiIDogIiIpICsgbWVzc2FnZVRleHQudGV4dENvbnRlbnQ7Cisg
ICAgfSwKKworICAgIF9saW5raWZ5TG9jYXRpb246IGZ1bmN0aW9uKHVybCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyKQorICAgIHsKKyAgICAgICAgLy8gRklYTUUoNjI3MjUpOiBzdGFjayB0cmFj
ZSBsaW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUtYmFzZWQuCisgICAgICAgIGxpbmVOdW1iZXIg
PSBsaW5lTnVtYmVyID8gbGluZU51bWJlciAtIDEgOiB1bmRlZmluZWQ7CisgICAgICAgIGNvbHVt
bk51bWJlciA9IGNvbHVtbk51bWJlciA/IGNvbHVtbk51bWJlciAtIDEgOiAwOworICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwubGlua2lmeUxvY2F0
aW9uKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAiY29uc29sZS1tZXNzYWdlLXVybCIp
OworICAgIH0sCisKKyAgICBfbGlua2lmeUNhbGxGcmFtZTogZnVuY3Rpb24oY2FsbEZyYW1lKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2xpbmtpZnlMb2NhdGlvbihjYWxsRnJhbWUudXJs
LCBjYWxsRnJhbWUubGluZU51bWJlciwgY2FsbEZyYW1lLmNvbHVtbk51bWJlcik7CisgICAgfSwK
KworICAgIGlzRXJyb3JPcldhcm5pbmc6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biAodGhpcy5sZXZlbCA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZl
bC5XYXJuaW5nIHx8IHRoaXMubGV2ZWwgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5N
ZXNzYWdlTGV2ZWwuRXJyb3IpOworICAgIH0sCisKKyAgICBfZm9ybWF0OiBmdW5jdGlvbihwYXJh
bWV0ZXJzKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBub2RlIGlzIHVzZWQgbGlrZSBhIEJ1aWxk
ZXIuIFZhbHVlcyBhcmUgY29udGludWFsbHkgYXBwZW5kZWQgb250byBpdC4KKyAgICAgICAgdmFy
IGZvcm1hdHRlZFJlc3VsdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAg
ICAgaWYgKCFwYXJhbWV0ZXJzLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRS
ZXN1bHQ7CisKKyAgICAgICAgLy8gRm9ybWF0dGluZyBjb2RlIGJlbG93IGFzc3VtZXMgdGhhdCBw
YXJhbWV0ZXJzIGFyZSBhbGwgd3JhcHBlcnMgd2hlcmVhcyBmcm9udGVuZCBjb25zb2xlCisgICAg
ICAgIC8vIEFQSSBhbGxvd3MgcGFzc2luZyBhcmJpdHJhcnkgdmFsdWVzIGFzIG1lc3NhZ2VzIChz
dHJpbmdzLCBudW1iZXJzLCBldGMuKS4gV3JhcCB0aGVtIGhlcmUuCisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgLy8gRklY
TUU6IE9ubHkgcGFzcyBydW50aW1lIHdyYXBwZXJzIGhlcmUuCisgICAgICAgICAgICBpZiAocGFy
YW1ldGVyc1tpXSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW1ldGVyc1tp
XSA9PT0gIm9iamVjdCIpCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tpXSA9IFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocGFyYW1ldGVyc1tpXSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyc1tpXSA9IFdlYkluc3BlY3Rvci5SZW1v
dGVPYmplY3QuZnJvbVByaW1pdGl2ZVZhbHVlKHBhcmFtZXRlcnNbaV0pOworICAgICAgICB9CisK
KyAgICAgICAgLy8gVGhlcmUgY2FuIGJlIHN0cmluZyBsb2cgYW5kIHN0cmluZyBldmFsIHJlc3Vs
dC4gV2UgZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGVtIGJhc2VkIG9uIG1lc3NhZ2UgdHlwZS4KKyAg
ICAgICAgdmFyIHNob3VsZEZvcm1hdE1lc3NhZ2UgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LnR5cGUocGFyYW1ldGVyc1swXSkgPT09ICJzdHJpbmciICYmIHRoaXMudHlwZSAhPT0gV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlJlc3VsdDsKKworICAgICAgICAvLyBN
dWx0aXBsZSBwYXJhbWV0ZXJzIHdpdGggdGhlIGZpcnN0IGJlaW5nIGEgZm9ybWF0IHN0cmluZy4g
U2F2ZSB1bnVzZWQgc3Vic3RpdHV0aW9ucy4KKyAgICAgICAgaWYgKHNob3VsZEZvcm1hdE1lc3Nh
Z2UpIHsKKyAgICAgICAgICAgIC8vIE11bHRpcGxlIHBhcmFtZXRlcnMgd2l0aCB0aGUgZmlyc3Qg
YmVpbmcgYSBmb3JtYXQgc3RyaW5nLiBTYXZlIHVudXNlZCBzdWJzdGl0dXRpb25zLgorICAgICAg
ICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmcocGFy
YW1ldGVycywgZm9ybWF0dGVkUmVzdWx0KTsKKyAgICAgICAgICAgIHBhcmFtZXRlcnMgPSByZXN1
bHQudW51c2VkU3Vic3RpdHV0aW9uczsKKyAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzLmxlbmd0
aCkKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIiAiKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBTaW5nbGUgcGFy
YW1ldGVyLCBvciB1bnVzZWQgc3Vic3RpdHV0aW9ucyBmcm9tIGFib3ZlLgorICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIC8v
IElubGluZSBzdHJpbmdzIHdoZW4gZm9ybWF0dGluZy4KKyAgICAgICAgICAgIGlmIChzaG91bGRG
b3JtYXRNZXNzYWdlICYmIHBhcmFtZXRlcnNbaV0udHlwZSA9PT0gInN0cmluZyIpCisgICAgICAg
ICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHBhcmFtZXRlcnNbaV0uZGVzY3JpcHRpb24pKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmNvbnNv
bGUuX2Zvcm1hdChwYXJhbWV0ZXJzW2ldKSk7CisgICAgICAgICAgICBpZiAoaSA8IHBhcmFtZXRl
cnMubGVuZ3RoIC0gMSkKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGZvcm1hdHRlZFJlc3VsdDsKKyAgICB9LAorCisgICAgX2Zvcm1hdFdpdGhTdWJzdGl0dXRp
b25TdHJpbmc6IGZ1bmN0aW9uKHBhcmFtZXRlcnMsIGZvcm1hdHRlZFJlc3VsdCkKKyAgICB7Cisg
ICAgICAgIHZhciBmb3JtYXR0ZXJzID0ge30KKworICAgICAgICBmdW5jdGlvbiBjb25zb2xlRm9y
bWF0V3JhcHBlcihmb3JjZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
KG9iaikgeworICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuY29uc29sZS5fZm9y
bWF0KG9iaiwgZm9yY2UpOworICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHZhbHVlRm9ybWF0dGVyKG9iaikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IG9iai5kZXNjcmlwdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZpcmVidWcgdXNlcyAl
byBmb3IgZm9ybWF0dGluZyBvYmplY3RzLgorICAgICAgICBmb3JtYXR0ZXJzLm8gPSBjb25zb2xl
Rm9ybWF0V3JhcHBlcihmYWxzZSk7CisgICAgICAgIGZvcm1hdHRlcnMucyA9IHZhbHVlRm9ybWF0
dGVyOworICAgICAgICBmb3JtYXR0ZXJzLmYgPSB2YWx1ZUZvcm1hdHRlcjsKKyAgICAgICAgLy8g
RmlyZWJ1ZyBhbGxvd3MgYm90aCAlaSBhbmQgJWQgZm9yIGZvcm1hdHRpbmcgaW50ZWdlcnMuCisg
ICAgICAgIGZvcm1hdHRlcnMuaSA9IHZhbHVlRm9ybWF0dGVyOworICAgICAgICBmb3JtYXR0ZXJz
LmQgPSB2YWx1ZUZvcm1hdHRlcjsKKworICAgICAgICAvLyBTdXBwb3J0ICVPIHRvIGZvcmNlIG9i
amVjdCBmb3JtYXR0aW5nLCBpbnN0ZWFkIG9mIHRoZSB0eXBlLWJhc2VkICVvIGZvcm1hdHRpbmcu
CisgICAgICAgIGZvcm1hdHRlcnMuTyA9IGNvbnNvbGVGb3JtYXRXcmFwcGVyKHRydWUpOworCisg
ICAgICAgIGZ1bmN0aW9uIGFwcGVuZChhLCBiKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IShiIGluc3RhbmNlb2YgTm9kZSkpCisgICAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChXZWJJ
bnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQoYi50b1N0cmluZygpKSk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgYS5hcHBlbmRDaGlsZChiKTsKKyAgICAgICAgICAg
IHJldHVybiBhOworICAgICAgICB9CisKKyAgICAgICAgLy8gU3RyaW5nLmZvcm1hdCBkb2VzIHRy
ZWF0IGZvcm1hdHRlZFJlc3VsdCBsaWtlIGEgQnVpbGRlciwgcmVzdWx0IGlzIGFuIG9iamVjdC4K
KyAgICAgICAgcmV0dXJuIFN0cmluZy5mb3JtYXQocGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiwg
cGFyYW1ldGVycy5zbGljZSgxKSwgZm9ybWF0dGVycywgZm9ybWF0dGVkUmVzdWx0LCBhcHBlbmQp
OworICAgIH0sCisKKyAgICBjbGVhckhpZ2hsaWdodDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdmFyIGhpZ2hsaWdodGVkTWVzc2FnZSA9IHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2U7CisgICAg
ICAgIGRlbGV0ZSB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlOworICAgICAgICB0aGlzLl9mb3JtYXRN
ZXNzYWdlKCk7CisgICAgICAgIHRoaXMuX2VsZW1lbnQucmVwbGFjZUNoaWxkKHRoaXMuX2Zvcm1h
dHRlZE1lc3NhZ2UsIGhpZ2hsaWdodGVkTWVzc2FnZSk7CisgICAgfSwKKworICAgIGhpZ2hsaWdo
dFNlYXJjaFJlc3VsdHM6IGZ1bmN0aW9uKHJlZ2V4T2JqZWN0KQorICAgIHsKKyAgICAgICAgcmVn
ZXhPYmplY3QubGFzdEluZGV4ID0gMDsKKyAgICAgICAgdmFyIHRleHQgPSB0aGlzLm1lc3NhZ2U7
CisgICAgICAgIHZhciBtYXRjaCA9IHJlZ2V4T2JqZWN0LmV4ZWModGV4dCk7CisgICAgICAgIHZh
ciBvZmZzZXQgPSAwOworICAgICAgICB2YXIgbWF0Y2hSYW5nZXMgPSBbXTsKKyAgICAgICAgd2hp
bGUgKG1hdGNoKSB7CisgICAgICAgICAgICBtYXRjaFJhbmdlcy5wdXNoKHsgb2Zmc2V0OiBtYXRj
aC5pbmRleCwgbGVuZ3RoOiBtYXRjaFswXS5sZW5ndGggfSk7CisgICAgICAgICAgICBtYXRjaCA9
IHJlZ2V4T2JqZWN0LmV4ZWModGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgaGlnaGxpZ2h0U2Vh
cmNoUmVzdWx0cyh0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLCBtYXRjaFJhbmdlcyk7CisgICAgICAg
IHRoaXMuX2VsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpOworICAgIH0sCisKKyAgICBt
YXRjaGVzUmVnZXg6IGZ1bmN0aW9uKHJlZ2V4T2JqZWN0KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHJlZ2V4T2JqZWN0LnRlc3QodGhpcy5tZXNzYWdlKTsKKyAgICB9LAorCisgICAgdG9NZXNzYWdl
RWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnQpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDsKKworICAgICAgICB2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBlbGVtZW50Lm1lc3NhZ2Ug
PSB0aGlzOworICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UiOwor
CisgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50OworCisgICAgICAgIHN3aXRjaCAodGhp
cy5sZXZlbCkgeworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2Uu
TWVzc2FnZUxldmVsLlRpcDoKKyAgICAgICAgICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3Mo
ImNvbnNvbGUtdGlwLWxldmVsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuTG9nOgorICAg
ICAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1sb2ctbGV2ZWwiKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5EZWJ1ZzoKKyAgICAgICAgICAgICAgICBlbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZGVidWctbGV2ZWwiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VMZXZlbC5XYXJuaW5nOgorICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygi
Y29uc29sZS13YXJuaW5nLWxldmVsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRXJyb3I6
CisgICAgICAgICAgICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLWVycm9yLWxl
dmVsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
dGhpcy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3Rh
cnRHcm91cCB8fCB0aGlzLnR5cGUgPT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlVHlwZS5TdGFydEdyb3VwQ29sbGFwc2VkKQorICAgICAgICAgICAgZWxlbWVudC5hZGRTdHls
ZUNsYXNzKCJjb25zb2xlLWdyb3VwLXRpdGxlIik7CisKKyAgICAgICAgZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlKTsKKworICAgICAgICBpZiAodGhpcy5yZXBlYXRD
b3VudCA+IDEpCisgICAgICAgICAgICB0aGlzLl91cGRhdGVSZXBlYXRDb3VudCgpOworCisgICAg
ICAgIHJldHVybiBlbGVtZW50OworICAgIH0sCisKKyAgICBfcG9wdWxhdGVTdGFja1RyYWNlVHJl
ZUVsZW1lbnQ6IGZ1bmN0aW9uKHBhcmVudFRyZWVFbGVtZW50KQorICAgIHsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zdGFja1RyYWNlLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgICB2YXIgZnJhbWUgPSB0aGlzLl9zdGFja1RyYWNlW2ldOworCisgICAgICAgICAgICB2YXIg
Y29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICAgICAgdmFy
IG1lc3NhZ2VUZXh0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAg
ICAgICAgICAgIG1lc3NhZ2VUZXh0RWxlbWVudC5jbGFzc05hbWUgPSAiY29uc29sZS1tZXNzYWdl
LXRleHQgc291cmNlLWNvZGUiOworICAgICAgICAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IGZyYW1l
LmZ1bmN0aW9uTmFtZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rp
b24pIik7CisgICAgICAgICAgICBtZXNzYWdlVGV4dEVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoZnVuY3Rpb25OYW1lKSk7CisgICAgICAgICAgICBjb250ZW50LmFw
cGVuZENoaWxkKG1lc3NhZ2VUZXh0RWxlbWVudCk7CisKKyAgICAgICAgICAgIGlmIChmcmFtZS51
cmwpIHsKKyAgICAgICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IHRoaXMuX2xpbmtpZnlDYWxs
RnJhbWUoZnJhbWUpOworICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQodXJsRWxl
bWVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IG5l
dyBUcmVlRWxlbWVudChjb250ZW50KTsKKyAgICAgICAgICAgIHBhcmVudFRyZWVFbGVtZW50LmFw
cGVuZENoaWxkKHRyZWVFbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfdXBkYXRl
UmVwZWF0Q291bnQ6IGZ1bmN0aW9uKCkgeworICAgICAgICBpZiAoIXRoaXMucmVwZWF0Q291bnRF
bGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLnJlcGVhdENvdW50RWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgIHRoaXMucmVwZWF0Q291bnRFbGVt
ZW50LmNsYXNzTmFtZSA9ICJidWJibGUiOworCisgICAgICAgICAgICB0aGlzLl9lbGVtZW50Lmlu
c2VydEJlZm9yZSh0aGlzLnJlcGVhdENvdW50RWxlbWVudCwgdGhpcy5fZWxlbWVudC5maXJzdENo
aWxkKTsKKyAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuYWRkU3R5bGVDbGFzcygicmVwZWF0ZWQt
bWVzc2FnZSIpOworICAgICAgICB9CisgICAgICAgIHRoaXMucmVwZWF0Q291bnRFbGVtZW50LnRl
eHRDb250ZW50ID0gdGhpcy5yZXBlYXRDb3VudDsKKyAgICB9LAorCisgICAgdG9TdHJpbmc6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzb3VyY2VTdHJpbmc7CisgICAgICAgIHN3aXRj
aCAodGhpcy5zb3VyY2UpIHsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSFRNTDoKKyAgICAgICAgICAgICAgICBzb3VyY2VTdHJpbmcg
PSAiSFRNTCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLlhNTDoKKyAgICAgICAgICAgICAg
ICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3VyY2UuSlM6Cisg
ICAgICAgICAgICAgICAgc291cmNlU3RyaW5nID0gIkpTIjsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VT
b3VyY2UuQ1NTOgorICAgICAgICAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2UuTWVzc2FnZVNvdXJjZS5PdGhlcjoKKyAgICAgICAgICAgICAgICBzb3VyY2VTdHJpbmcg
PSAiT3RoZXIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
dmFyIHR5cGVTdHJpbmc7CisgICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7CisgICAgICAgICAg
ICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2c6CisgICAg
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5VbmNh
dWdodEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlLk1lc3NhZ2VUeXBlLk5ldHdvcmtFcnJvcjoKKyAgICAgICAgICAgICAgICB0eXBlU3RyaW5n
ID0gIkxvZyI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5PYmplY3Q6CisgICAgICAgICAgICAg
ICAgdHlwZVN0cmluZyA9ICJPYmplY3QiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVHJhY2U6
CisgICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9ICJUcmFjZSI7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlVHlwZS5TdGFydEdyb3VwQ29sbGFwc2VkOgorICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuU3RhcnRHcm91cDoKKyAgICAgICAgICAgICAg
ICB0eXBlU3RyaW5nID0gIlN0YXJ0IEdyb3VwIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkVu
ZEdyb3VwOgorICAgICAgICAgICAgICAgIHR5cGVTdHJpbmcgPSAiRW5kIEdyb3VwIjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLk1lc3NhZ2VUeXBlLkFzc2VydDoKKyAgICAgICAgICAgICAgICB0eXBlU3RyaW5nID0g
IkFzc2VydCI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5SZXN1bHQ6CisgICAgICAgICAgICAg
ICAgdHlwZVN0cmluZyA9ICJSZXN1bHQiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGxldmVsU3RyaW5nOworICAgICAgICBzd2l0Y2ggKHRoaXMubGV2
ZWwpIHsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VMZXZlbC5UaXA6CisgICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVGlwIjsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2c6CisgICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
TG9nIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5XYXJuaW5nOgorICAgICAgICAgICAgICAg
IGxldmVsU3RyaW5nID0gIldhcm5pbmciOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkRlYnVn
OgorICAgICAgICAgICAgICAgIGxldmVsU3RyaW5nID0gIkRlYnVnIjsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VMZXZlbC5FcnJvcjoKKyAgICAgICAgICAgICAgICBsZXZlbFN0cmluZyA9ICJFcnJvciI7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc291
cmNlU3RyaW5nICsgIiAiICsgdHlwZVN0cmluZyArICIgIiArIGxldmVsU3RyaW5nICsgIjogIiAr
IHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UudGV4dENvbnRlbnQgKyAiXG4iICsgdGhpcy51cmwgKyAi
IGxpbmUgIiArIHRoaXMubGluZTsKKyAgICB9LAorCisgICAgaXNFcXVhbDogZnVuY3Rpb24obXNn
KQorICAgIHsKKyAgICAgICAgaWYgKCFtc2cpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UpIHsKKyAgICAgICAgICAgIGlmICghbXNnLl9z
dGFja1RyYWNlKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHZh
ciBsID0gdGhpcy5fc3RhY2tUcmFjZTsKKyAgICAgICAgICAgIHZhciByID0gbXNnLl9zdGFja1Ry
YWNlOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGxbaV0udXJsICE9PSByW2ldLnVybCB8fAorICAgICAgICAgICAg
ICAgICAgICBsW2ldLmZ1bmN0aW9uTmFtZSAhPT0gcltpXS5mdW5jdGlvbk5hbWUgfHwKKyAgICAg
ICAgICAgICAgICAgICAgbFtpXS5saW5lTnVtYmVyICE9PSByW2ldLmxpbmVOdW1iZXIgfHwKKyAg
ICAgICAgICAgICAgICAgICAgbFtpXS5jb2x1bW5OdW1iZXIgIT09IHJbaV0uY29sdW1uTnVtYmVy
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICByZXR1cm4gKHRoaXMuc291cmNlID09PSBtc2cuc291cmNlKQorICAg
ICAgICAgICAgJiYgKHRoaXMudHlwZSA9PT0gbXNnLnR5cGUpCisgICAgICAgICAgICAmJiAodGhp
cy5sZXZlbCA9PT0gbXNnLmxldmVsKQorICAgICAgICAgICAgJiYgKHRoaXMubGluZSA9PT0gbXNn
LmxpbmUpCisgICAgICAgICAgICAmJiAodGhpcy51cmwgPT09IG1zZy51cmwpCisgICAgICAgICAg
ICAmJiAodGhpcy5tZXNzYWdlID09PSBtc2cubWVzc2FnZSkKKyAgICAgICAgICAgICYmICh0aGlz
Ll9yZXF1ZXN0ID09PSBtc2cuX3JlcXVlc3QpOworICAgIH0sCisKKyAgICBnZXQgc3RhY2tUcmFj
ZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc3RhY2tUcmFjZTsKKyAgICB9Cit9CisK
Ky8vIE5vdGU6IEtlZXAgdGhlc2UgY29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgb25lcyBpbiBD
b25zb2xlLmgKK1dlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlID0gewor
ICAgIEhUTUw6ICJodG1sIiwKKyAgICBYTUw6ICJ4bWwiLAorICAgIEpTOiAiamF2YXNjcmlwdCIs
CisgICAgQ1NTOiAiY3NzIiwKKyAgICBPdGhlcjogIm90aGVyIgorfQorCitXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUgPSB7CisgICAgTG9nOiAibG9nIiwKKyAgICBPYmpl
Y3Q6ICJvdGhlciIsCisgICAgVHJhY2U6ICJ0cmFjZSIsCisgICAgU3RhcnRHcm91cDogInN0YXJ0
R3JvdXAiLAorICAgIFN0YXJ0R3JvdXBDb2xsYXBzZWQ6ICJzdGFydEdyb3VwQ29sbGFwc2VkIiwK
KyAgICBFbmRHcm91cDogImVuZEdyb3VwIiwKKyAgICBBc3NlcnQ6ICJhc3NlcnQiLAorICAgIFVu
Y2F1Z2h0RXhjZXB0aW9uOiAidW5jYXVnaHRFeGNlcHRpb24iLAorICAgIE5ldHdvcmtFcnJvcjog
Im5ldHdvcmtFcnJvciIsCisgICAgUmVzdWx0OiAicmVzdWx0IgorfQorCitXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsID0geworICAgIFRpcDogInRpcCIsCisgICAgTG9n
OiAibG9nIiwKKyAgICBXYXJuaW5nOiAid2FybmluZyIsCisgICAgRXJyb3I6ICJlcnJvciIsCisg
ICAgRGVidWc6ICJkZWJ1ZyIKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IGJmZmNhYTYwY2Q1ZjE4NjdkMWRlMTA2M2NjNmJh
N2JiZTBiMWJlOGIuLjgwMWVlNDUxMzlmNzM5YTc1M2Y0ZWIyNGQ3NTIzMmZiODQ4NDhjMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5q
cwpAQCAtMTI3LDcgKzEyNyw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQudGV4dCwKICAgICAgICAgICAgICAgICAg
ICAgcGF5bG9hZC5wYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICBwYXlsb2FkLnN0YWNr
VHJhY2UsCi0gICAgICAgICAgICAgICAgICAgIHBheWxvYWQubmV0d29ya1JlcXVlc3RJZCk7Cisg
ICAgICAgICAgICAgICAgICAgIHBheWxvYWQubmV0d29ya1JlcXVlc3RJZCA/IFdlYkluc3BlY3Rv
ci5uZXR3b3JrUmVzb3VyY2VCeUlkKHBheWxvYWQubmV0d29ya1JlcXVlc3RJZCkgOiB1bmRlZmlu
ZWQpOwogICAgICAgICAgICAgICAgIGNvbnNvbGUuYWRkTWVzc2FnZShjb25zb2xlTWVzc2FnZSk7
CiAgICAgICAgICAgICB9LAogCkBAIC0xNDQsNyArMTQ0LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNv
bGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5faW5jcmVt
ZW50RXJyb3JXYXJuaW5nQ291bnQobXNnKTsKICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LkV2ZW50cy5N
ZXNzYWdlQWRkZWQsIG1zZyk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgdmFyIG1zZ0NvcHkgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKG1z
Zy5zb3VyY2UsIG1zZy50eXBlLCBtc2cubGV2ZWwsIG1zZy5saW5lLCBtc2cudXJsLCBjb3VudCAt
IHByZXZSZXBlYXRDb3VudCwgbXNnLl9tZXNzYWdlVGV4dCwgbXNnLl9wYXJhbWV0ZXJzLCBtc2cu
X3N0YWNrVHJhY2UsIG1zZy5fcmVxdWVzdElkKTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIG1z
Z0NvcHkgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlKG1zZy5zb3VyY2UsIG1zZy50
eXBlLCBtc2cubGV2ZWwsIG1zZy5saW5lLCBtc2cudXJsLCBjb3VudCAtIHByZXZSZXBlYXRDb3Vu
dCwgbXNnLl9tZXNzYWdlVGV4dCwgbXNnLl9wYXJhbWV0ZXJzLCBtc2cuX3N0YWNrVHJhY2UsIG1z
Zy5fcmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgICAgIG1zZ0NvcHkudG90YWxSZXBlYXRDb3Vu
dCA9IGNvdW50OwogICAgICAgICAgICAgICAgICAgICBtc2dDb3B5Ll9mb3JtYXRNZXNzYWdlKCk7
CiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuYWRkTWVzc2FnZShtc2dDb3B5KTsKQEAgLTc5
OCw0NjEgKzc5OCw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAK
IFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLlZpZXcucHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UgPSBmdW5j
dGlvbihzb3VyY2UsIHR5cGUsIGxldmVsLCBsaW5lLCB1cmwsIHJlcGVhdENvdW50LCBtZXNzYWdl
LCBwYXJhbWV0ZXJzLCBzdGFja1RyYWNlLCByZXF1ZXN0SWQpCi17Ci0gICAgdGhpcy5zb3VyY2Ug
PSBzb3VyY2U7Ci0gICAgdGhpcy50eXBlID0gdHlwZTsKLSAgICB0aGlzLmxldmVsID0gbGV2ZWw7
Ci0gICAgdGhpcy5saW5lID0gbGluZTsKLSAgICB0aGlzLnVybCA9IHVybDsKLSAgICB0aGlzLnJl
cGVhdENvdW50ID0gcmVwZWF0Q291bnQ7Ci0gICAgdGhpcy5yZXBlYXREZWx0YSA9IHJlcGVhdENv
dW50OwotICAgIHRoaXMudG90YWxSZXBlYXRDb3VudCA9IHJlcGVhdENvdW50OwotICAgIHRoaXMu
X21lc3NhZ2VUZXh0ID0gbWVzc2FnZTsKLSAgICB0aGlzLl9wYXJhbWV0ZXJzID0gcGFyYW1ldGVy
czsKLSAgICB0aGlzLl9zdGFja1RyYWNlID0gc3RhY2tUcmFjZTsKLSAgICB0aGlzLl9yZXF1ZXN0
SWQgPSByZXF1ZXN0SWQ7Ci0KLSAgICBpZiAoc3RhY2tUcmFjZSAmJiBzdGFja1RyYWNlLmxlbmd0
aCkgewotICAgICAgICB2YXIgdG9wQ2FsbEZyYW1lID0gc3RhY2tUcmFjZVswXTsKLSAgICAgICAg
aWYgKCF0aGlzLnVybCkKLSAgICAgICAgICAgIHRoaXMudXJsID0gdG9wQ2FsbEZyYW1lLnVybDsK
LSAgICAgICAgaWYgKCF0aGlzLmxpbmUpCi0gICAgICAgICAgICB0aGlzLmxpbmUgPSB0b3BDYWxs
RnJhbWUubGluZU51bWJlcjsKLSAgICB9Ci0KLSAgICB0aGlzLl9mb3JtYXRNZXNzYWdlKCk7Ci19
Ci0KLVdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5jcmVhdGVUZXh0TWVzc2FnZSA9IGZ1bmN0
aW9uKHRleHQsIGxldmVsKQotewotICAgIGxldmVsID0gbGV2ZWwgfHwgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2c7Ci0gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3Vy
Y2UuSlMsIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Mb2csIGxldmVs
LCAwLCBudWxsLCAxLCBudWxsLCBbdGV4dF0sIG51bGwpOwotfQotCi1XZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UucHJvdG90eXBlID0gewotICAgIF9mb3JtYXRNZXNzYWdlOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB2YXIgc3RhY2tUcmFjZSA9IHRoaXMuX3N0YWNrVHJhY2U7Ci0gICAg
ICAgIHZhciBtZXNzYWdlVGV4dDsKLSAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHsKLSAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlRyYWNl
OgotICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
ImNvbnNvbGUudHJhY2UoKSIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVW5jYXVnaHRFeGNl
cHRpb246Ci0gICAgICAgICAgICAgICAgbWVzc2FnZVRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSh0aGlzLl9tZXNzYWdlVGV4dCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5OZXR3b3Jr
RXJyb3I6Ci0gICAgICAgICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVxdWVzdElkICYm
IFdlYkluc3BlY3Rvci5uZXR3b3JrUmVzb3VyY2VCeUlkKHRoaXMuX3JlcXVlc3RJZCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKHJlc291cmNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0YWNrVHJh
Y2UgPSByZXNvdXJjZS5zdGFja1RyYWNlOwotCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VU
ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlVGV4dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShyZXNvdXJj
ZS5yZXF1ZXN0TWV0aG9kICsgIiAiKSk7Ci0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0
LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHJlc291cmNlLnVybCkp
OwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2UuZmFpbGVkKQotICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZVRleHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIiAiICsgcmVzb3VyY2UubG9jYWxpemVkRmFpbERlc2NyaXB0aW9uKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIiArIHJlc291cmNlLnN0YXR1c0NvZGUg
KyAiICgiICsgcmVzb3VyY2Uuc3RhdHVzVGV4dCArICIpIikpOwotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVGV4dCA9IHRoaXMuX2Zvcm1hdChbdGhp
cy5fbWVzc2FnZVRleHRdKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkFzc2VydDoKLSAgICAg
ICAgICAgICAgICB2YXIgYXJncyA9IFtXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFzc2VydGlvbiBm
YWlsZWQ6IildOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLl9wYXJhbWV0ZXJzKQotICAgICAg
ICAgICAgICAgICAgICBhcmdzID0gYXJncy5jb25jYXQodGhpcy5fcGFyYW1ldGVycyk7Ci0gICAg
ICAgICAgICAgICAgbWVzc2FnZVRleHQgPSB0aGlzLl9mb3JtYXQoYXJncyk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5PYmplY3Q6Ci0gICAgICAgICAgICAgICAgdmFyIG9iaiA9IHRoaXMuX3Bh
cmFtZXRlcnMgPyB0aGlzLl9wYXJhbWV0ZXJzWzBdIDogdW5kZWZpbmVkOwotICAgICAgICAgICAg
ICAgIHZhciBhcmdzID0gWyIlTyIsIG9ial07Ci0gICAgICAgICAgICAgICAgbWVzc2FnZVRleHQg
PSB0aGlzLl9mb3JtYXQoYXJncyk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHZhciBhcmdzID0gdGhpcy5fcGFyYW1ldGVycyB8
fCBbdGhpcy5fbWVzc2FnZVRleHRdOwotICAgICAgICAgICAgICAgIG1lc3NhZ2VUZXh0ID0gdGhp
cy5fZm9ybWF0KGFyZ3MpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAg
ICAgICAgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKLSAgICAgICAgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZS5jbGFzc05hbWUgPSAiY29uc29s
ZS1tZXNzYWdlLXRleHQgc291cmNlLWNvZGUiOwotCi0gICAgICAgIGlmICh0aGlzLl9zdGFja1Ry
YWNlICYmIHRoaXMuX3N0YWNrVHJhY2UubGVuZ3RoICYmIHRoaXMuX3N0YWNrVHJhY2VbMF0udXJs
KSB7Ci0gICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IHRoaXMuX2xpbmtpZnlDYWxsRnJhbWUo
dGhpcy5fc3RhY2tUcmFjZVswXSk7Ci0gICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdl
LmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXJsICYm
IHRoaXMudXJsICE9PSAidW5kZWZpbmVkIikgewotICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQg
PSB0aGlzLl9saW5raWZ5TG9jYXRpb24odGhpcy51cmwsIHRoaXMubGluZSwgMCk7Ci0gICAgICAg
ICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZS5hcHBlbmRDaGlsZChtZXNz
YWdlVGV4dCk7Ci0KLSAgICAgICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UpIHsKLSAgICAgICAgICAg
IHN3aXRjaCAodGhpcy50eXBlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVHJhY2U6Ci0gICAgICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVW5jYXVnaHRFeGNlcHRpb246
Ci0gICAgICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVR5cGUuTmV0d29ya0Vycm9yOgotICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkFzc2VydDogewotICAgICAgICAgICAgICAgICAgICB2
YXIgb2wgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvbCIpOwotICAgICAgICAgICAgICAgICAg
ICBvbC5jbGFzc05hbWUgPSAib3V0bGluZS1kaXNjbG9zdXJlIjsKLSAgICAgICAgICAgICAgICAg
ICAgdmFyIHRyZWVPdXRsaW5lID0gbmV3IFRyZWVPdXRsaW5lKG9sKTsKLQotICAgICAgICAgICAg
ICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2U7Ci0gICAgICAgICAg
ICAgICAgICAgIHZhciByb290ID0gbmV3IFRyZWVFbGVtZW50KGNvbnRlbnQsIG51bGwsIHRydWUp
OwotICAgICAgICAgICAgICAgICAgICBjb250ZW50LnRyZWVFbGVtZW50Rm9yVGVzdCA9IHJvb3Q7
Ci0gICAgICAgICAgICAgICAgICAgIHRyZWVPdXRsaW5lLmFwcGVuZENoaWxkKHJvb3QpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1l
c3NhZ2UuTWVzc2FnZVR5cGUuVHJhY2UpCi0gICAgICAgICAgICAgICAgICAgICAgICByb290LmV4
cGFuZCgpOwotCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlU3RhY2tUcmFjZVRy
ZWVFbGVtZW50KHJvb3QpOwotICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNz
YWdlID0gb2w7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0K
LSAgICAgICAgLy8gVGhpcyBpcyB1c2VkIGZvciBpbmxpbmUgbWVzc2FnZSBidWJibGVzIGluIFNv
dXJjZUZyYW1lcywgb3Igb3RoZXIgcGxhaW4tdGV4dCByZXByZXNlbnRhdGlvbnMuCi0gICAgICAg
IHRoaXMubWVzc2FnZSA9ICh1cmxFbGVtZW50ID8gdXJsRWxlbWVudC50ZXh0Q29udGVudCArICIg
IiA6ICIiKSArIG1lc3NhZ2VUZXh0LnRleHRDb250ZW50OwotICAgIH0sCi0KLSAgICBfbGlua2lm
eUxvY2F0aW9uOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKLSAgICB7
Ci0gICAgICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVtYmVy
cyBhcmUgb25lLWJhc2VkLgotICAgICAgICBsaW5lTnVtYmVyID0gbGluZU51bWJlciA/IGxpbmVO
dW1iZXIgLSAxIDogdW5kZWZpbmVkOwotICAgICAgICBjb2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1i
ZXIgPyBjb2x1bW5OdW1iZXIgLSAxIDogMDsKLSAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmxpbmtpZnlMb2NhdGlvbih1cmwsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgImNvbnNvbGUtbWVzc2FnZS11cmwiKTsKLSAgICB9LAotCi0gICAgX2xp
bmtpZnlDYWxsRnJhbWU6IGZ1bmN0aW9uKGNhbGxGcmFtZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLl9saW5raWZ5TG9jYXRpb24oY2FsbEZyYW1lLnVybCwgY2FsbEZyYW1lLmxpbmVOdW1i
ZXIsIGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIpOwotICAgIH0sCi0KLSAgICBpc0Vycm9yT3JXYXJu
aW5nOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gKHRoaXMubGV2ZWwgPT09IFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZyB8fCB0aGlzLmxl
dmVsID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKTsK
LSAgICB9LAotCi0gICAgX2Zvcm1hdDogZnVuY3Rpb24ocGFyYW1ldGVycykKLSAgICB7Ci0gICAg
ICAgIC8vIFRoaXMgbm9kZSBpcyB1c2VkIGxpa2UgYSBCdWlsZGVyLiBWYWx1ZXMgYXJlIGNvbnRp
bnVhbGx5IGFwcGVuZGVkIG9udG8gaXQuCi0gICAgICAgIHZhciBmb3JtYXR0ZWRSZXN1bHQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgIGlmICghcGFyYW1ldGVycy5s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkUmVzdWx0OwotCi0gICAgICAgIC8v
IEZvcm1hdHRpbmcgY29kZSBiZWxvdyBhc3N1bWVzIHRoYXQgcGFyYW1ldGVycyBhcmUgYWxsIHdy
YXBwZXJzIHdoZXJlYXMgZnJvbnRlbmQgY29uc29sZQotICAgICAgICAvLyBBUEkgYWxsb3dzIHBh
c3NpbmcgYXJiaXRyYXJ5IHZhbHVlcyBhcyBtZXNzYWdlcyAoc3RyaW5ncywgbnVtYmVycywgZXRj
LikuIFdyYXAgdGhlbSBoZXJlLgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtZXRl
cnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBPbmx5IHBhc3MgcnVudGlt
ZSB3cmFwcGVycyBoZXJlLgotICAgICAgICAgICAgaWYgKHBhcmFtZXRlcnNbaV0gaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
Ci0gICAgICAgICAgICBpZiAodHlwZW9mIHBhcmFtZXRlcnNbaV0gPT09ICJvYmplY3QiKQotICAg
ICAgICAgICAgICAgIHBhcmFtZXRlcnNbaV0gPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21QYXlsb2FkKHBhcmFtZXRlcnNbaV0pOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHBhcmFtZXRlcnNbaV0gPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QcmltaXRp
dmVWYWx1ZShwYXJhbWV0ZXJzW2ldKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFRoZXJlIGNh
biBiZSBzdHJpbmcgbG9nIGFuZCBzdHJpbmcgZXZhbCByZXN1bHQuIFdlIGRpc3Rpbmd1aXNoIGJl
dHdlZW4gdGhlbSBiYXNlZCBvbiBtZXNzYWdlIHR5cGUuCi0gICAgICAgIHZhciBzaG91bGRGb3Jt
YXRNZXNzYWdlID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC50eXBlKHBhcmFtZXRlcnNbMF0p
ID09PSAic3RyaW5nIiAmJiB0aGlzLnR5cGUgIT09IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZS5NZXNzYWdlVHlwZS5SZXN1bHQ7Ci0KLSAgICAgICAgLy8gTXVsdGlwbGUgcGFyYW1ldGVycyB3
aXRoIHRoZSBmaXJzdCBiZWluZyBhIGZvcm1hdCBzdHJpbmcuIFNhdmUgdW51c2VkIHN1YnN0aXR1
dGlvbnMuCi0gICAgICAgIGlmIChzaG91bGRGb3JtYXRNZXNzYWdlKSB7Ci0gICAgICAgICAgICAv
LyBNdWx0aXBsZSBwYXJhbWV0ZXJzIHdpdGggdGhlIGZpcnN0IGJlaW5nIGEgZm9ybWF0IHN0cmlu
Zy4gU2F2ZSB1bnVzZWQgc3Vic3RpdHV0aW9ucy4KLSAgICAgICAgICAgIHZhciByZXN1bHQgPSB0
aGlzLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nKHBhcmFtZXRlcnMsIGZvcm1hdHRlZFJl
c3VsdCk7Ci0gICAgICAgICAgICBwYXJhbWV0ZXJzID0gcmVzdWx0LnVudXNlZFN1YnN0aXR1dGlv
bnM7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICAgICAg
Zm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikp
OwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gU2luZ2xlIHBhcmFtZXRlciwgb3IgdW51c2VkIHN1
YnN0aXR1dGlvbnMgZnJvbSBhYm92ZS4KLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJh
bWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAvLyBJbmxpbmUgc3RyaW5ncyB3aGVu
IGZvcm1hdHRpbmcuCi0gICAgICAgICAgICBpZiAoc2hvdWxkRm9ybWF0TWVzc2FnZSAmJiBwYXJh
bWV0ZXJzW2ldLnR5cGUgPT09ICJzdHJpbmciKQotICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJl
c3VsdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShwYXJhbWV0ZXJzW2ldLmRl
c2NyaXB0aW9uKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZm9ybWF0dGVk
UmVzdWx0LmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5jb25zb2xlLl9mb3JtYXQocGFyYW1ldGVy
c1tpXSkpOwotICAgICAgICAgICAgaWYgKGkgPCBwYXJhbWV0ZXJzLmxlbmd0aCAtIDEpCi0gICAg
ICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCIgIikpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXN1bHQ7
Ci0gICAgfSwKLQotICAgIF9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nOiBmdW5jdGlvbihw
YXJhbWV0ZXJzLCBmb3JtYXR0ZWRSZXN1bHQpCi0gICAgewotICAgICAgICB2YXIgZm9ybWF0dGVy
cyA9IHt9Ci0KLSAgICAgICAgZnVuY3Rpb24gY29uc29sZUZvcm1hdFdyYXBwZXIoZm9yY2UpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihvYmopIHsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmNvbnNvbGUuX2Zvcm1hdChvYmosIGZvcmNlKTsKLSAg
ICAgICAgICAgIH07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiB2YWx1ZUZvcm1hdHRl
cihvYmopCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBvYmouZGVzY3JpcHRpb247Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBGaXJlYnVnIHVzZXMgJW8gZm9yIGZvcm1hdHRpbmcgb2Jq
ZWN0cy4KLSAgICAgICAgZm9ybWF0dGVycy5vID0gY29uc29sZUZvcm1hdFdyYXBwZXIoKTsKLSAg
ICAgICAgZm9ybWF0dGVycy5zID0gdmFsdWVGb3JtYXR0ZXI7Ci0gICAgICAgIGZvcm1hdHRlcnMu
ZiA9IHZhbHVlRm9ybWF0dGVyOwotICAgICAgICAvLyBGaXJlYnVnIGFsbG93cyBib3RoICVpIGFu
ZCAlZCBmb3IgZm9ybWF0dGluZyBpbnRlZ2Vycy4KLSAgICAgICAgZm9ybWF0dGVycy5pID0gdmFs
dWVGb3JtYXR0ZXI7Ci0gICAgICAgIGZvcm1hdHRlcnMuZCA9IHZhbHVlRm9ybWF0dGVyOwotCi0g
ICAgICAgIC8vIFN1cHBvcnQgJU8gdG8gZm9yY2Ugb2JqZWN0IGZvcm1hdHRpbmcsIGluc3RlYWQg
b2YgdGhlIHR5cGUtYmFzZWQgJW8gZm9ybWF0dGluZy4KLSAgICAgICAgZm9ybWF0dGVycy5PID0g
Y29uc29sZUZvcm1hdFdyYXBwZXIodHJ1ZSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gYXBwZW5kKGEs
IGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghKGIgaW5zdGFuY2VvZiBOb2RlKSkKLSAg
ICAgICAgICAgICAgICBhLmFwcGVuZENoaWxkKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNG
cmFnbWVudChiLnRvU3RyaW5nKCkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICBhLmFwcGVuZENoaWxkKGIpOwotICAgICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0KLQot
ICAgICAgICAvLyBTdHJpbmcuZm9ybWF0IGRvZXMgdHJlYXQgZm9ybWF0dGVkUmVzdWx0IGxpa2Ug
YSBCdWlsZGVyLCByZXN1bHQgaXMgYW4gb2JqZWN0LgotICAgICAgICByZXR1cm4gU3RyaW5nLmZv
cm1hdChwYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uLCBwYXJhbWV0ZXJzLnNsaWNlKDEpLCBmb3Jt
YXR0ZXJzLCBmb3JtYXR0ZWRSZXN1bHQsIGFwcGVuZCk7Ci0gICAgfSwKLQotICAgIGNsZWFySGln
aGxpZ2h0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgaGlnaGxpZ2h0ZWRNZXNzYWdl
ID0gdGhpcy5fZm9ybWF0dGVkTWVzc2FnZTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2Zvcm1hdHRl
ZE1lc3NhZ2U7Ci0gICAgICAgIHRoaXMuX2Zvcm1hdE1lc3NhZ2UoKTsKLSAgICAgICAgdGhpcy5f
ZWxlbWVudC5yZXBsYWNlQ2hpbGQodGhpcy5fZm9ybWF0dGVkTWVzc2FnZSwgaGlnaGxpZ2h0ZWRN
ZXNzYWdlKTsKLSAgICB9LAotCi0gICAgaGlnaGxpZ2h0U2VhcmNoUmVzdWx0czogZnVuY3Rpb24o
cmVnZXhPYmplY3QpCi0gICAgewotICAgICAgICByZWdleE9iamVjdC5sYXN0SW5kZXggPSAwOwot
ICAgICAgICB2YXIgdGV4dCA9IHRoaXMubWVzc2FnZTsKLSAgICAgICAgdmFyIG1hdGNoID0gcmVn
ZXhPYmplY3QuZXhlYyh0ZXh0KTsKLSAgICAgICAgdmFyIG9mZnNldCA9IDA7Ci0gICAgICAgIHZh
ciBtYXRjaFJhbmdlcyA9IFtdOwotICAgICAgICB3aGlsZSAobWF0Y2gpIHsKLSAgICAgICAgICAg
IG1hdGNoUmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6IG1hdGNoWzBd
Lmxlbmd0aCB9KTsKLSAgICAgICAgICAgIG1hdGNoID0gcmVnZXhPYmplY3QuZXhlYyh0ZXh0KTsK
LSAgICAgICAgfQotICAgICAgICBoaWdobGlnaHRTZWFyY2hSZXN1bHRzKHRoaXMuX2Zvcm1hdHRl
ZE1lc3NhZ2UsIG1hdGNoUmFuZ2VzKTsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5zY3JvbGxJbnRv
Vmlld0lmTmVlZGVkKCk7Ci0gICAgfSwKLQotICAgIG1hdGNoZXNSZWdleDogZnVuY3Rpb24ocmVn
ZXhPYmplY3QpCi0gICAgewotICAgICAgICByZXR1cm4gcmVnZXhPYmplY3QudGVzdCh0aGlzLm1l
c3NhZ2UpOwotICAgIH0sCi0KLSAgICB0b01lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5fZWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9l
bGVtZW50OwotCi0gICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Ci0gICAgICAgIGVsZW1lbnQubWVzc2FnZSA9IHRoaXM7Ci0gICAgICAgIGVsZW1lbnQu
Y2xhc3NOYW1lID0gImNvbnNvbGUtbWVzc2FnZSI7Ci0KLSAgICAgICAgdGhpcy5fZWxlbWVudCA9
IGVsZW1lbnQ7Ci0KLSAgICAgICAgc3dpdGNoICh0aGlzLmxldmVsKSB7Ci0gICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuVGlwOgotICAgICAg
ICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS10aXAtbGV2ZWwiKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5Mb2c6Ci0gICAgICAgICAgICAgICAgZWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJjb25zb2xlLWxvZy1sZXZlbCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVs
LkRlYnVnOgotICAgICAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygiY29uc29sZS1k
ZWJ1Zy1sZXZlbCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLldhcm5pbmc6Ci0gICAgICAg
ICAgICAgICAgZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb25zb2xlLXdhcm5pbmctbGV2ZWwiKTsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbC5FcnJvcjoKLSAgICAgICAgICAgICAgICBlbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZXJyb3ItbGV2ZWwiKTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwIHx8IHRoaXMudHlwZSA9PT0g
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xsYXBz
ZWQpCi0gICAgICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZ3JvdXAtdGl0
bGUiKTsKLQotICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Zvcm1hdHRlZE1lc3Nh
Z2UpOwotCi0gICAgICAgIGlmICh0aGlzLnJlcGVhdENvdW50ID4gMSkKLSAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZVJlcGVhdENvdW50KCk7Ci0KLSAgICAgICAgcmV0dXJuIGVsZW1lbnQ7Ci0gICAg
fSwKLQotICAgIF9wb3B1bGF0ZVN0YWNrVHJhY2VUcmVlRWxlbWVudDogZnVuY3Rpb24ocGFyZW50
VHJlZUVsZW1lbnQpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3N0
YWNrVHJhY2UubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciBmcmFtZSA9IHRoaXMuX3N0
YWNrVHJhY2VbaV07Ci0KLSAgICAgICAgICAgIHZhciBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZVRleHRFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgbWVzc2FnZVRleHRFbGVt
ZW50LmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2UtY29kZSI7Ci0gICAg
ICAgICAgICB2YXIgZnVuY3Rpb25OYW1lID0gZnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiKGFub255bW91cyBmdW5jdGlvbikiKTsKLSAgICAgICAgICAgIG1lc3Nh
Z2VUZXh0RWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShmdW5jdGlv
bk5hbWUpKTsKLSAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQobWVzc2FnZVRleHRFbGVt
ZW50KTsKLQotICAgICAgICAgICAgaWYgKGZyYW1lLnVybCkgewotICAgICAgICAgICAgICAgIHZh
ciB1cmxFbGVtZW50ID0gdGhpcy5fbGlua2lmeUNhbGxGcmFtZShmcmFtZSk7Ci0gICAgICAgICAg
ICAgICAgY29udGVudC5hcHBlbmRDaGlsZCh1cmxFbGVtZW50KTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gbmV3IFRyZWVFbGVtZW50KGNvbnRlbnQpOwot
ICAgICAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodHJlZUVsZW1lbnQpOwot
ICAgICAgICB9Ci0gICAgfSwKLQotICAgIF91cGRhdGVSZXBlYXRDb3VudDogZnVuY3Rpb24oKSB7
Ci0gICAgICAgIGlmICghdGhpcy5yZXBlYXRDb3VudEVsZW1lbnQpIHsKLSAgICAgICAgICAgIHRo
aXMucmVwZWF0Q291bnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwot
ICAgICAgICAgICAgdGhpcy5yZXBlYXRDb3VudEVsZW1lbnQuY2xhc3NOYW1lID0gImJ1YmJsZSI7
Ci0KLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuaW5zZXJ0QmVmb3JlKHRoaXMucmVwZWF0Q291
bnRFbGVtZW50LCB0aGlzLl9lbGVtZW50LmZpcnN0Q2hpbGQpOwotICAgICAgICAgICAgdGhpcy5f
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJyZXBlYXRlZC1tZXNzYWdlIik7Ci0gICAgICAgIH0KLSAg
ICAgICAgdGhpcy5yZXBlYXRDb3VudEVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnJlcGVhdENv
dW50OwotICAgIH0sCi0KLSAgICB0b1N0cmluZzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAg
dmFyIHNvdXJjZVN0cmluZzsKLSAgICAgICAgc3dpdGNoICh0aGlzLnNvdXJjZSkgewotICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5IVE1M
OgotICAgICAgICAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJIVE1MIjsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VTb3VyY2UuWE1MOgotICAgICAgICAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJYTUwiOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5KUzoKLSAgICAgICAgICAgICAgICBzb3VyY2VTdHJp
bmcgPSAiSlMiOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVNvdXJjZS5DU1M6Ci0gICAgICAgICAgICAg
ICAgc291cmNlU3RyaW5nID0gIkNTUyI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVy
OgotICAgICAgICAgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPdGhlciI7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgdHlwZVN0cmluZzsKLSAgICAgICAg
c3dpdGNoICh0aGlzLnR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkxvZzoKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlVuY2F1Z2h0RXhjZXB0aW9uOgotICAgICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuTmV0d29ya0Vy
cm9yOgotICAgICAgICAgICAgICAgIHR5cGVTdHJpbmcgPSAiTG9nIjsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VUeXBlLk9iamVjdDoKLSAgICAgICAgICAgICAgICB0eXBlU3RyaW5nID0gIk9iamVjdCI7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5UcmFjZToKLSAgICAgICAgICAgICAgICB0eXBlU3Ry
aW5nID0gIlRyYWNlIjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xsYXBz
ZWQ6Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdl
VHlwZS5TdGFydEdyb3VwOgotICAgICAgICAgICAgICAgIHR5cGVTdHJpbmcgPSAiU3RhcnQgR3Jv
dXAiOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuRW5kR3JvdXA6Ci0gICAgICAgICAgICAgICAg
dHlwZVN0cmluZyA9ICJFbmQgR3JvdXAiOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuQXNzZXJ0
OgotICAgICAgICAgICAgICAgIHR5cGVTdHJpbmcgPSAiQXNzZXJ0IjsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1l
c3NhZ2VUeXBlLlJlc3VsdDoKLSAgICAgICAgICAgICAgICB0eXBlU3RyaW5nID0gIlJlc3VsdCI7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgbGV2ZWxT
dHJpbmc7Ci0gICAgICAgIHN3aXRjaCAodGhpcy5sZXZlbCkgewotICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLlRpcDoKLSAgICAgICAgICAg
ICAgICBsZXZlbFN0cmluZyA9ICJUaXAiOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkxvZzoK
LSAgICAgICAgICAgICAgICBsZXZlbFN0cmluZyA9ICJMb2ciOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZUxldmVsLldhcm5pbmc6Ci0gICAgICAgICAgICAgICAgbGV2ZWxTdHJpbmcgPSAiV2FybmluZyI7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuRGVidWc6Ci0gICAgICAgICAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiRGVidWciOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yOgotICAgICAg
ICAgICAgICAgIGxldmVsU3RyaW5nID0gIkVycm9yIjsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzb3VyY2VTdHJpbmcgKyAiICIgKyB0eXBlU3Ry
aW5nICsgIiAiICsgbGV2ZWxTdHJpbmcgKyAiOiAiICsgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZS50
ZXh0Q29udGVudCArICJcbiIgKyB0aGlzLnVybCArICIgbGluZSAiICsgdGhpcy5saW5lOwotICAg
IH0sCi0KLSAgICBpc0VxdWFsOiBmdW5jdGlvbihtc2cpCi0gICAgewotICAgICAgICBpZiAoIW1z
ZykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAodGhpcy5fc3RhY2tU
cmFjZSkgewotICAgICAgICAgICAgaWYgKCFtc2cuX3N0YWNrVHJhY2UpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgdmFyIGwgPSB0aGlzLl9zdGFja1RyYWNlOwot
ICAgICAgICAgICAgdmFyIHIgPSBtc2cuX3N0YWNrVHJhY2U7Ci0gICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGwubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpZiAobFtpXS51
cmwgIT09IHJbaV0udXJsIHx8Ci0gICAgICAgICAgICAgICAgICAgIGxbaV0uZnVuY3Rpb25OYW1l
ICE9PSByW2ldLmZ1bmN0aW9uTmFtZSB8fAotICAgICAgICAgICAgICAgICAgICBsW2ldLmxpbmVO
dW1iZXIgIT09IHJbaV0ubGluZU51bWJlciB8fAotICAgICAgICAgICAgICAgICAgICBsW2ldLmNv
bHVtbk51bWJlciAhPT0gcltpXS5jb2x1bW5OdW1iZXIpCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiAo
dGhpcy5zb3VyY2UgPT09IG1zZy5zb3VyY2UpCi0gICAgICAgICAgICAmJiAodGhpcy50eXBlID09
PSBtc2cudHlwZSkKLSAgICAgICAgICAgICYmICh0aGlzLmxldmVsID09PSBtc2cubGV2ZWwpCi0g
ICAgICAgICAgICAmJiAodGhpcy5saW5lID09PSBtc2cubGluZSkKLSAgICAgICAgICAgICYmICh0
aGlzLnVybCA9PT0gbXNnLnVybCkKLSAgICAgICAgICAgICYmICh0aGlzLm1lc3NhZ2UgPT09IG1z
Zy5tZXNzYWdlKQotICAgICAgICAgICAgJiYgKHRoaXMuX3JlcXVlc3RJZCA9PT0gbXNnLl9yZXF1
ZXN0SWQpOwotICAgIH0sCi0KLSAgICBnZXQgc3RhY2tUcmFjZSgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fc3RhY2tUcmFjZTsKLSAgICB9Ci19Ci0KLS8vIE5vdGU6IEtlZXAgdGhlc2Ug
Y29uc3RhbnRzIGluIHN5bmMgd2l0aCB0aGUgb25lcyBpbiBDb25zb2xlLmgKLVdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlID0gewotICAgIEhUTUw6ICJodG1sIiwKLSAg
ICBYTUw6ICJ4bWwiLAotICAgIEpTOiAiamF2YXNjcmlwdCIsCi0gICAgQ1NTOiAiY3NzIiwKLSAg
ICBPdGhlcjogIm90aGVyIgotfQotCi1XZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVR5cGUgPSB7Ci0gICAgTG9nOiAibG9nIiwKLSAgICBPYmplY3Q6ICJvdGhlciIsCi0gICAgVHJh
Y2U6ICJ0cmFjZSIsCi0gICAgU3RhcnRHcm91cDogInN0YXJ0R3JvdXAiLAotICAgIFN0YXJ0R3Jv
dXBDb2xsYXBzZWQ6ICJzdGFydEdyb3VwQ29sbGFwc2VkIiwKLSAgICBFbmRHcm91cDogImVuZEdy
b3VwIiwKLSAgICBBc3NlcnQ6ICJhc3NlcnQiLAotICAgIFVuY2F1Z2h0RXhjZXB0aW9uOiAidW5j
YXVnaHRFeGNlcHRpb24iLAotICAgIE5ldHdvcmtFcnJvcjogIm5ldHdvcmtFcnJvciIsCi0gICAg
UmVzdWx0OiAicmVzdWx0IgotfQotCi1XZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZUxldmVsID0gewotICAgIFRpcDogInRpcCIsCi0gICAgTG9nOiAibG9nIiwKLSAgICBXYXJuaW5n
OiAid2FybmluZyIsCi0gICAgRXJyb3I6ICJlcnJvciIsCi0gICAgRGVidWc6ICJkZWJ1ZyIKLX0K
LQogV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kID0gZnVuY3Rpb24oY29tbWFuZCkKIHsKICAg
ICB0aGlzLmNvbW1hbmQgPSBjb21tYW5kOwpAQCAtMTM4Miw0ICs5MjcsMyBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZSA9IHsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKICAgICB9CiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29va2llUGFyc2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db29raWVQYXJzZXIuanMKaW5kZXggZjk2YmUwYjMxZjJjM2FjZDJhNTk1ZDY5MjhlMGY4
NjM5OWJlZmFhOC4uZjQyODU0NzliZTg0Y2IzZjk5MTQ3YjExNzVlMGQ0MWU2MzYyMmZjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db29raWVQYXJzZXIu
anMKQEAgLTM1LDYgKzM1LDkgQEAKIC8vIHdoaWNoIGlzIGluIGEgZm9ybWF0IHNsaWdodGx5IGRp
ZmZlcmVudCBmcm9tIFNldC1Db29raWUgYW5kIGlzIG5vcm1hbGx5IAogLy8gb25seSByZXF1aXJl
ZCBvbiB0aGUgc2VydmVyIHNpZGUuCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYklu
c3BlY3Rvci5Db29raWVQYXJzZXIgPSBmdW5jdGlvbigpCiB7CiB9CkBAIC0xNTEsNiArMTU0LDkg
QEAgV2ViSW5zcGVjdG9yLkNvb2tpZVBhcnNlci5wYXJzZVNldENvb2tpZSA9IGZ1bmN0aW9uKGhl
YWRlcikKICAgICByZXR1cm4gKG5ldyBXZWJJbnNwZWN0b3IuQ29va2llUGFyc2VyKCkpLnBhcnNl
U2V0Q29va2llKGhlYWRlcik7CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYklu
c3BlY3Rvci5Db29raWUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgdHlwZSkKIHsKICAgICB0aGlz
Lm5hbWUgPSBuYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9N
QWdlbnQuanMKaW5kZXggMGZiZmU5NTI4MzU2ZjJhMGVhNTQzN2UyNDE1ZDg1ODcyNzY4MDZhZC4u
ODFkMzBhZDMxYWUxZmVkMzNlMTUwZmEzNDRmYjA5ZTgwMjczNTMxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC02ODcsMyArNjg3LDgg
QEAgV2ViSW5zcGVjdG9yLkRPTURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dGhpcy5fZG9tQWdlbnQuX3NlYXJjaFJlc3VsdENvbGxlY3Rvcihub2RlSWRzKTsKICAgICB9CiB9
CisKKy8qKgorICogQHR5cGUgez9XZWJJbnNwZWN0b3IuRE9NQWdlbnR9CisgKi8KK1dlYkluc3Bl
Y3Rvci5kb21BZ2VudCA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTVN0b3JhZ2UuanMKaW5kZXggYTRkNTdkODllNzhmZDc5NmMzMTgxMDY4YTQ0YTU3
YjczNjZiNDk0OS4uYjgyMzQ1ZGEyOTE3NmY3OWY1MDY4MmVhOWRiZjQ5MDQ0NDYyMzcyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwpA
QCAtMjYsNiArMjYsOSBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBjb25zdHJ1Y3Rv
cgorICovCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZSA9IGZ1bmN0aW9uKGlkLCBkb21haW4sIGlz
TG9jYWxTdG9yYWdlKQogewogICAgIHRoaXMuX2lkID0gaWQ7CkBAIC02NSw3ICs2OCwxMCBAQCBX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi0KKy8qKgor
ICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7RE9NU3RvcmFnZUFnZW50LkRpc3BhdGNo
ZXJ9IAorICovCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIgPSBmdW5jdGlvbigp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rh
dGFiYXNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZS5q
cwppbmRleCBiNWIxNGI2NmRkY2VmNTM1YzQ1NzNlMmQ2NGVkZjA2ZTA0N2ZkMDhmLi5lY2NhOTdj
Zjc1NDQ0OWE2MjIxMDBhOGFhMjIyYTBiMDFjY2MzY2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2UuanMKQEAgLTI2LDYgKzI2LDkgQEAKICAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLkRh
dGFiYXNlID0gZnVuY3Rpb24oaWQsIGRvbWFpbiwgbmFtZSwgdmVyc2lvbikKIHsKICAgICB0aGlz
Ll9pZCA9IGlkOwpAQCAtMTAzLDYgKzEwNiwxMCBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2UucHJv
dG90eXBlID0gewogICAgIH0KIH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBpbXBsZW1l
bnRzIHtEYXRhYmFzZUFnZW50LkRpc3BhdGNoZXJ9IAorICovCiBXZWJJbnNwZWN0b3IuRGF0YWJh
c2VEaXNwYXRjaGVyID0gZnVuY3Rpb24oKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IDA4Y2MwOGY4NjczMzZi
YjBmNWVjOGZiZjY4MGM1YjViYzE1MTYxYzUuLjA3NGYwNWI3MGVlNDdjMmZjNTM0MTMzNTVhY2Jk
ZDhkNDQ5NWY3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTI2OCwzICsyNjgsOCBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZGVidWdnZXJNb2Rl
bC5fYnJlYWtwb2ludFJlc29sdmVkKGJyZWFrcG9pbnRJZCwgc2NyaXB0SWQsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlcik7CiAgICAgfQogfQorCisvKioKKyAqIEB0eXBlIHs/V2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWx9CisgKi8KK1dlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsID0gbnVsbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCA4OTVmNDljM2Y4OTI4M2E4OTk2M2Iy
N2UxMzhmMTE4YmI3M2E2Mzk3Li5jY2ExNGU1Yjk2OGE5ZGFhMDJkYmVmZGViZmZmODE2YjQzMDI3
ZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC0yOCw2ICsyOCw5IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsID0gZnVuY3Rpb24oKQogewogICAgIC8vIEZJ
WE1FOiBhcHBseSBmb3JtYXR0ZXIgZnJvbSBvdXRzaWRlIGFzIGEgZ2VuZXJpYyBtYXBwaW5nLgpA
QCAtNDcwLDYgKzQ3Myw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogCisv
KioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtw
b2ludCA9IGZ1bmN0aW9uKHNvdXJjZUZpbGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxl
ZCkKIHsKICAgICB0aGlzLnNvdXJjZUZpbGUgPSBzb3VyY2VGaWxlOwpAQCAtNTA4LDYgKzUxNCw5
IEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAg
ICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5QcmVzZW5h
dGlvbkNhbGxGcmFtZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZSwgaW5kZXgsIG1vZGVsLCBzb3VyY2VG
aWxlKQogewogICAgIHRoaXMuX2NhbGxGcmFtZSA9IGNhbGxGcmFtZTsKQEAgLTU4OCw2ICs1OTcs
MTAgQEAgV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsKICAg
ICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LlJlc291cmNlRG9tYWluTW9kZWxCaW5kaW5nfQorICovCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbFJlc291cmNlQmluZGluZyA9IGZ1bmN0aW9uKG1vZGVsKQogewogICAg
IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsID0gbW9kZWw7CkBAIC02MzMsMyArNjQ2LDggQEAgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90
eXBlID0gewogfQogCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbFJlc291
cmNlQmluZGluZy5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlJlc291cmNlRG9t
YWluTW9kZWxCaW5kaW5nLnByb3RvdHlwZTsKKworLyoqCisgKiBAdHlwZSB7P1dlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsfQorICovCitXZWJJbnNwZWN0b3IuZGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbCA9IG51bGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMKaW5k
ZXggMzNiOGM0ODEzODRiOTZiZTEzZDJjODMyOTI2MTYyZTE5MThkNWY3Zi4uZmYzMjhkOTQ2NjJi
Y2M3OThmNDVlZjhkYjQwMmE5ZjA2ODE4MzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1
Yi5qcwpAQCAtMzUsNiArMzUsMTQgQEAgV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yID0gewog
ICAgIE1hY1Nub3dMZW9wYXJkOiAibWFjLXNub3dsZW9wYXJkIgogfQogCitXZWJJbnNwZWN0b3Iu
aXNNYWMgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKHR5cGVvZiBXZWJJbnNwZWN0b3IuX2lzTWFj
ID09PSAidW5kZWZpbmVkIikKKyAgICAgICAgV2ViSW5zcGVjdG9yLl9pc01hYyA9IFdlYkluc3Bl
Y3Rvci5wbGF0Zm9ybSA9PT0gIm1hYyI7CisKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLl9pc01h
YzsKK30KKwogaWYgKCF3aW5kb3cuSW5zcGVjdG9yRnJvbnRlbmRIb3N0KSB7CiAKIC8qKgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdl
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIu
anMKaW5kZXggMWZjNWUwMzA3ZjJlOWEwMTA5OGQ3MzFlMzUyNjA0ZWM3ZDUxMDJlNS4uN2RlYjAw
MDQyZGZjMzVkODlhZDFiZDFhY2I1ZmI2Mjg0N2E5MWM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0yOCw2ICsy
OCw5IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8K
IFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlciA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNw
ZWN0b3IuT2JqZWN0LmNhbGwodGhpcyk7CkBAIC03Niw2ICs3OSwxMCBAQCBXZWJJbnNwZWN0b3Iu
TmV0d29ya01hbmFnZXIucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFn
ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwog
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge05ldHdvcmtBZ2VudC5EaXNw
YXRjaGVyfQorICovCiBXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIgPSBmdW5jdGlvbiht
YW5hZ2VyKQogewogICAgIHRoaXMuX21hbmFnZXIgPSBtYW5hZ2VyOwpAQCAtMzE3LDYgKzMyNCw5
IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfQog
fQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZyA9
IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLl9yZXNvdXJjZXMgPSBbXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKaW5kZXggNzIwMTgx
ODk4MTkyNmNjMWQ1MDIzOTJhYjgzMmNjNzk5NjQ2NDJjYi4uNTg1ODBjMGFjMTM4Y2ZlN2JhYTRi
YjMzYzMyZDUyODVlYWFmNzU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTI4LDYgKzI4LDE0IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0gez9zdHJpbmd9IG9i
amVjdElkCisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICogQHBhcmFtIHs/c3RyaW5nfSBzdWJ0
eXBlCisgKiBAcGFyYW0geyp9IHZhbHVlCisgKiBAcGFyYW0ge3N0cmluZz19IGRlc2NyaXB0aW9u
CisgKi8KIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlw
ZSwgc3VidHlwZSwgdmFsdWUsIGRlc2NyaXB0aW9uKQogewogICAgIHRoaXMuX3R5cGUgPSB0eXBl
OwpAQCAtMTc2LDcgKzE4NCw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBkZWxldGUgcmVzdWx0LmRlc2NyaXB0
aW9uOyAvLyBPcHRpbWl6ZSBvbiB0cmFmZmljLgotICAgICAgICAgICAgUnVudGltZUFnZW50LmNh
bGxGdW5jdGlvbk9uKHRoaXMuX29iamVjdElkLCBzZXRQcm9wZXJ0eVZhbHVlLnRvU3RyaW5nKCks
IFt7IHZhbHVlOm5hbWUgfSwgcmVzdWx0XSwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMp
KTsKKyAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5jYWxsRnVuY3Rpb25Pbih0aGlzLl9vYmplY3RJ
ZCwgc2V0UHJvcGVydHlWYWx1ZS50b1N0cmluZygpLCBbeyB2YWx1ZTpuYW1lIH0sIHJlc3VsdF0s
IHVuZGVmaW5lZCwgcHJvcGVydHlTZXRDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICAgICAgICAg
IGlmIChyZXN1bHQuX29iamVjdElkKQogICAgICAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxl
YXNlT2JqZWN0KHJlc3VsdC5fb2JqZWN0SWQpOwogICAgICAgICB9CkBAIC0yMjQsNiArMjMyLDEw
IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgIH0KIH0KIAor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7T2JqZWN0PX0gZGVzY3JpcHRvcgorICov
CiBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVydHkgPSBmdW5jdGlvbihuYW1lLCB2YWx1
ZSwgZGVzY3JpcHRvcikKIHsKICAgICB0aGlzLm5hbWUgPSBuYW1lOwpAQCAtMjQ1LDYgKzI1Nyw5
IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZlVmFsdWUg
PSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkKIC8vIGZvciB0cmF2ZXJzaW5nIHByb3RvdHlwZXMsIGV4
dHJhY3RpbmcgY2xhc3MgbmFtZXMgdmlhIGNvbnN0dWN0b3IsIGhhbmRsaW5nIHByb3BlcnRpZXMK
IC8vIG9yIGZ1bmN0aW9ucy4KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVj
dG9yLkxvY2FsSlNPTk9iamVjdCA9IGZ1bmN0aW9uKHZhbHVlKQogewogICAgIHRoaXMuX3ZhbHVl
ID0gdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZS5qcwppbmRleCAyMjIxMjBkNTg4ZDY5YWMzMjE1NWVhMzU5NTNkOWJjZWIxMTkzMTk4Li5jMjRl
NmQxODM3MDU0NjhmNGUwYjU4ZmUxYTM2ZGE5MThhM2M0Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKQEAgLTI1LDYgKzI1LDUwIEBACiAg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KKworLy8gVGhpcyB0YWJsZSBtYXBz
IE1JTUUgdHlwZXMgdG8gdGhlIFJlc291cmNlLlR5cGVzIHdoaWNoIGFyZSB2YWxpZCBmb3IgdGhl
bS4KKy8vIFRoZSBmb2xsb3dpbmcgbGluZToKKy8vICAgICJ0ZXh0L2h0bWwiOiAgICAgICAgICAg
ICAgICB7MDogMX0sCisvLyBtZWFucyB0aGF0IHRleHQvaHRtbCBpcyBhIHZhbGlkIE1JTUUgdHlw
ZSBmb3IgcmVzb3VyY2VzIHRoYXQgaGF2ZSB0eXBlCisvLyBXZWJJbnNwZWN0b3IuUmVzb3VyY2Uu
VHlwZS5Eb2N1bWVudCAod2hpY2ggaGFzIGEgdmFsdWUgb2YgMCkuCitXZWJJbnNwZWN0b3IuTUlN
RVR5cGVzID0geworICAgICJ0ZXh0L2h0bWwiOiAgICAgICAgICAgICAgICAgICB7MDogdHJ1ZX0s
CisgICAgInRleHQveG1sIjogICAgICAgICAgICAgICAgICAgIHswOiB0cnVlfSwKKyAgICAidGV4
dC9wbGFpbiI6ICAgICAgICAgICAgICAgICAgezA6IHRydWV9LAorICAgICJhcHBsaWNhdGlvbi94
aHRtbCt4bWwiOiAgICAgICB7MDogdHJ1ZX0sCisgICAgInRleHQvY3NzIjogICAgICAgICAgICAg
ICAgICAgIHsxOiB0cnVlfSwKKyAgICAidGV4dC94c2wiOiAgICAgICAgICAgICAgICAgICAgezE6
IHRydWV9LAorICAgICJpbWFnZS9qcGVnIjogICAgICAgICAgICAgICAgICB7MjogdHJ1ZX0sCisg
ICAgImltYWdlL3BuZyI6ICAgICAgICAgICAgICAgICAgIHsyOiB0cnVlfSwKKyAgICAiaW1hZ2Uv
Z2lmIjogICAgICAgICAgICAgICAgICAgezI6IHRydWV9LAorICAgICJpbWFnZS9ibXAiOiAgICAg
ICAgICAgICAgICAgICB7MjogdHJ1ZX0sCisgICAgImltYWdlL3N2Zyt4bWwiOiAgICAgICAgICAg
ICAgIHsyOiB0cnVlfSwKKyAgICAiaW1hZ2Uvdm5kLm1pY3Jvc29mdC5pY29uIjogICAgezI6IHRy
dWV9LAorICAgICJpbWFnZS94LWljb24iOiAgICAgICAgICAgICAgICB7MjogdHJ1ZX0sCisgICAg
ImltYWdlL3gteGJpdG1hcCI6ICAgICAgICAgICAgIHsyOiB0cnVlfSwKKyAgICAiZm9udC90dGYi
OiAgICAgICAgICAgICAgICAgICAgezM6IHRydWV9LAorICAgICJmb250L29wZW50eXBlIjogICAg
ICAgICAgICAgICB7MzogdHJ1ZX0sCisgICAgImFwcGxpY2F0aW9uL3gtZm9udC10eXBlMSI6ICAg
IHszOiB0cnVlfSwKKyAgICAiYXBwbGljYXRpb24veC1mb250LXR0ZiI6ICAgICAgezM6IHRydWV9
LAorICAgICJhcHBsaWNhdGlvbi94LWZvbnQtd29mZiI6ICAgICB7MzogdHJ1ZX0sCisgICAgImFw
cGxpY2F0aW9uL3gtdHJ1ZXR5cGUtZm9udCI6IHszOiB0cnVlfSwKKyAgICAidGV4dC9qYXZhc2Ny
aXB0IjogICAgICAgICAgICAgezQ6IHRydWV9LAorICAgICJ0ZXh0L2VjbWFzY3JpcHQiOiAgICAg
ICAgICAgICB7NDogdHJ1ZX0sCisgICAgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiOiAgICAgIHs0
OiB0cnVlfSwKKyAgICAiYXBwbGljYXRpb24vZWNtYXNjcmlwdCI6ICAgICAgezQ6IHRydWV9LAor
ICAgICJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiOiAgICB7NDogdHJ1ZX0sCisgICAgImFwcGxp
Y2F0aW9uL2pzb24iOiAgICAgICAgICAgIHs0OiB0cnVlfSwKKyAgICAidGV4dC9qYXZhc2NyaXB0
MS4xIjogICAgICAgICAgezQ6IHRydWV9LAorICAgICJ0ZXh0L2phdmFzY3JpcHQxLjIiOiAgICAg
ICAgICB7NDogdHJ1ZX0sCisgICAgInRleHQvamF2YXNjcmlwdDEuMyI6ICAgICAgICAgIHs0OiB0
cnVlfSwKKyAgICAidGV4dC9qc2NyaXB0IjogICAgICAgICAgICAgICAgezQ6IHRydWV9LAorICAg
ICJ0ZXh0L2xpdmVzY3JpcHQiOiAgICAgICAgICAgICB7NDogdHJ1ZX0sCit9CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KKyAqLwogV2Vi
SW5zcGVjdG9yLlJlc291cmNlID0gZnVuY3Rpb24ocmVxdWVzdElkLCB1cmwsIGxvYWRlcklkKQog
ewogICAgIHRoaXMucmVxdWVzdElkID0gcmVxdWVzdElkOwpAQCAtMzUsNiArNzksMTEgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlID0gZnVuY3Rpb24ocmVxdWVzdElkLCB1cmwsIGxvYWRlcklkKQog
ICAgIHRoaXMuX2NhdGVnb3J5ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy5vdGhl
cjsKICAgICB0aGlzLl9wZW5kaW5nQ29udGVudENhbGxiYWNrcyA9IFtdOwogICAgIHRoaXMuaGlz
dG9yeSA9IFtdOworICAgIC8qKiBAdHlwZSB7bnVtYmVyfSAqLworICAgIHRoaXMuc3RhdHVzQ29k
ZSA9IDA7CisgICAgdGhpcy5yZXF1ZXN0TWV0aG9kID0gIiI7CisgICAgdGhpcy5yZXF1ZXN0VGlt
ZSA9IDA7CisgICAgdGhpcy5yZWNlaXZlSGVhZGVyc0VuZCA9IDA7CiB9CiAKIC8vIEtlZXAgdGhl
c2UgaW4gc3luYyB3aXRoIFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlOjpUeXBlCkBAIC01MCwy
NyArOTksMjcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUgPSB7CiAKICAgICBpc1RleHRU
eXBlOiBmdW5jdGlvbih0eXBlKQogICAgIHsKLSAgICAgICAgcmV0dXJuICh0eXBlID09PSB0aGlz
LkRvY3VtZW50KSB8fCAodHlwZSA9PT0gdGhpcy5TdHlsZXNoZWV0KSB8fCAodHlwZSA9PT0gdGhp
cy5TY3JpcHQpIHx8ICh0eXBlID09PSB0aGlzLlhIUik7CisgICAgICAgIHJldHVybiAodHlwZSA9
PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuRG9jdW1lbnQpIHx8ICh0eXBlID09PSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TdHlsZXNoZWV0KSB8fCAodHlwZSA9PT0gV2ViSW5zcGVj
dG9yLlJlc291cmNlLlR5cGUuU2NyaXB0KSB8fCAodHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291
cmNlLlR5cGUuWEhSKTsKICAgICB9LAogCiAgICAgdG9VSVN0cmluZzogZnVuY3Rpb24odHlwZSkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewotICAgICAgICAgICAgY2FzZSB0aGlzLkRv
Y3VtZW50OgorICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5Eb2N1
bWVudDoKICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb2N1
bWVudCIpOwotICAgICAgICAgICAgY2FzZSB0aGlzLlN0eWxlc2hlZXQ6CisgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlN0eWxlc2hlZXQ6CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3R5bGVzaGVldCIpOwotICAgICAgICAg
ICAgY2FzZSB0aGlzLkltYWdlOgorICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2UuVHlwZS5JbWFnZToKICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJJbWFnZSIpOwotICAgICAgICAgICAgY2FzZSB0aGlzLkZvbnQ6CisgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLkZvbnQ6CiAgICAgICAgICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRm9udCIpOwotICAgICAgICAgICAgY2FzZSB0aGlz
LlNjcmlwdDoKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuU2Ny
aXB0OgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNjcmlw
dCIpOwotICAgICAgICAgICAgY2FzZSB0aGlzLlhIUjoKKyAgICAgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLlJlc291cmNlLlR5cGUuWEhSOgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlhIUiIpOwotICAgICAgICAgICAgY2FzZSB0aGlzLldlYlNvY2tldDoK
KyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuV2ViU29ja2V0Ogog
ICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIldlYlNvY2tldCIp
OwotICAgICAgICAgICAgY2FzZSB0aGlzLk90aGVyOgorICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UuVHlwZS5PdGhlcjoKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3RoZXIiKTsKICAgICAgICAg
fQpAQCAtODEsMjEgKzEzMCwyMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZSA9IHsKICAg
ICB0b1N0cmluZzogZnVuY3Rpb24odHlwZSkKICAgICB7CiAgICAgICAgIHN3aXRjaCAodHlwZSkg
ewotICAgICAgICAgICAgY2FzZSB0aGlzLkRvY3VtZW50OgorICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5Eb2N1bWVudDoKICAgICAgICAgICAgICAgICByZXR1cm4g
ImRvY3VtZW50IjsKLSAgICAgICAgICAgIGNhc2UgdGhpcy5TdHlsZXNoZWV0OgorICAgICAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TdHlsZXNoZWV0OgogICAgICAgICAg
ICAgICAgIHJldHVybiAic3R5bGVzaGVldCI7Ci0gICAgICAgICAgICBjYXNlIHRoaXMuSW1hZ2U6
CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLkltYWdlOgogICAg
ICAgICAgICAgICAgIHJldHVybiAiaW1hZ2UiOwotICAgICAgICAgICAgY2FzZSB0aGlzLkZvbnQ6
CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLkZvbnQ6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuICJmb250IjsKLSAgICAgICAgICAgIGNhc2UgdGhpcy5TY3JpcHQ6
CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlNjcmlwdDoKICAg
ICAgICAgICAgICAgICByZXR1cm4gInNjcmlwdCI7Ci0gICAgICAgICAgICBjYXNlIHRoaXMuWEhS
OgorICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5YSFI6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuICJ4aHIiOwotICAgICAgICAgICAgY2FzZSB0aGlzLldlYlNvY2tl
dDoKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuV2ViU29ja2V0
OgogICAgICAgICAgICAgICAgIHJldHVybiAid2Vic29ja2V0IjsKLSAgICAgICAgICAgIGNhc2Ug
dGhpcy5PdGhlcjoKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUu
T3RoZXI6CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJldHVybiAib3Ro
ZXIiOwogICAgICAgICB9CkBAIC03NjEsMzAgKzgxMCwxOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2UucHJvdG90eXBlID0gewogCiAgICAgX2NoZWNrV2FybmluZ3M6IGZ1bmN0aW9uKCkKICAgICB7
Ci0gICAgICAgIGZvciAodmFyIHdhcm5pbmcgaW4gV2ViSW5zcGVjdG9yLldhcm5pbmdzKQotICAg
ICAgICAgICAgdGhpcy5fY2hlY2tXYXJuaW5nKFdlYkluc3BlY3Rvci5XYXJuaW5nc1t3YXJuaW5n
XSk7Ci0gICAgfSwKLQotICAgIF9jaGVja1dhcm5pbmc6IGZ1bmN0aW9uKHdhcm5pbmcpCi0gICAg
ewotICAgICAgICB2YXIgbXNnOwotICAgICAgICBzd2l0Y2ggKHdhcm5pbmcuaWQpIHsKLSAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLldhcm5pbmdzLkluY29ycmVjdE1JTUVUeXBlLmlkOgot
ICAgICAgICAgICAgICAgIGlmICghdGhpcy5fbWltZVR5cGVJc0NvbnNpc3RlbnRXaXRoVHlwZSgp
KQotICAgICAgICAgICAgICAgICAgICBtc2cgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNz
YWdlKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlU291cmNlLk90aGVyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VU
eXBlLkxvZywKLSAgICAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIC0xLAot
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cmwsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAxLAotICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLnNwcmludGYoV2ViSW5zcGVjdG9y
Lldhcm5pbmdzLkluY29ycmVjdE1JTUVUeXBlLm1lc3NhZ2UsIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5UeXBlLnRvVUlTdHJpbmcodGhpcy50eXBlKSwgdGhpcy5taW1lVHlwZSksCi0gICAgICAgICAg
ICAgICAgICAgICAgICBudWxsLAotICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCk7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuX21pbWVUeXBl
SXNDb25zaXN0ZW50V2l0aFR5cGUoKSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBp
ZiAobXNnKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2FnZShtc2cp
OworICAgICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRNZXNzYWdlKG5ldyBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VTb3Vy
Y2UuT3RoZXIsCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVR5cGUuTG9nLAorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VMZXZlbC5XYXJuaW5nLAorICAgICAgICAgICAgLTEsCisgICAgICAgICAgICB0aGlzLnVybCwK
KyAgICAgICAgICAgIDEsCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc291
cmNlIGludGVycHJldGVkIGFzICVzIGJ1dCB0cmFuc2ZlcnJlZCB3aXRoIE1JTUUgdHlwZSAlcy4i
LCBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS50b1VJU3RyaW5nKHRoaXMudHlwZSksIHRoaXMu
bWltZVR5cGUpLAorICAgICAgICAgICAgbnVsbCwKKyAgICAgICAgICAgIG51bGwpKTsKICAgICB9
LAogCiAgICAgZ2V0IGNvbnRlbnQoKQpAQCAtOTI1LDYgKzk2Miw5IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CiAKKy8qKgorICogQGNv
bnN0cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9uID0gZnVuY3Rpb24o
cmVzb3VyY2UsIGNvbnRlbnQsIHRpbWVzdGFtcCkKIHsKICAgICB0aGlzLl9yZXNvdXJjZSA9IHJl
c291cmNlOwpAQCAtOTgxLDE5ICsxMDIxLDExIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlz
aW9uLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKLVdlYkluc3BlY3Rvci5SZXNvdXJjZURvbWFp
bk1vZGVsQmluZGluZyA9IGZ1bmN0aW9uKCkKLXsKLX0KLQorLyoqCisgKiBAaW50ZXJmYWNlCisg
Ki8KK1dlYkluc3BlY3Rvci5SZXNvdXJjZURvbWFpbk1vZGVsQmluZGluZyA9IGZ1bmN0aW9uKCkg
eyB9CiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VEb21haW5Nb2RlbEJpbmRpbmcucHJvdG90eXBlID0g
ewotICAgIGNhblNldENvbnRlbnQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIEltcGxl
bWVudGVkIGJ5IHRoZSBkb21haW5zLgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0g
ICAgc2V0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGNvbnRlbnQsIG1ham9yQ2hhbmdlLCBj
YWxsYmFjaykKLSAgICB7Ci0gICAgICAgIC8vIEltcGxlbWVudGVkIGJ5IHRoZSBkb21haW5zLgot
ICAgIH0KKyAgICBjYW5TZXRDb250ZW50OiBmdW5jdGlvbigpIHsgcmV0dXJuIHRydWU7IH0sCisg
ICAgc2V0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGNvbnRlbnQsIG1ham9yQ2hhbmdlLCBj
YWxsYmFjaykgeyB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlQ2F0ZWdvcnkuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jlc291cmNlQ2F0ZWdvcnkuanMKaW5kZXggNDNjN2MyYmQ4Y2NhM2MzMDk0NjIzMGZl
OTU0YjM0MGI5NWNhNjVlOS4uYTdiZDQxY2Y1OTY0OTI4Mjk2MmEwN2YxZWI1NzFhNTM4NDRiOTE1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZUNhdGVnb3J5LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VDYXRlZ29yeS5qcwpAQCAtMjYsMTAgKzI2LDEzIEBACiAgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
Ky8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5
ID0gZnVuY3Rpb24obmFtZSwgdGl0bGUsIGNvbG9yKQogewogICAgIHRoaXMubmFtZSA9IG5hbWU7
Ci0gICAgdGhpcy50aXRsZSA9IHRpdGxlOworICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CiAgICAg
dGhpcy5jb2xvciA9IGNvbG9yOwogfQogCkBAIC0zNyw1ICs0MCwyMSBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VDYXRlZ29yeS5wcm90b3R5cGUgPSB7CiAgICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnRpdGxlOworICAgIH0sCisKKyAgICBnZXQgdGl0
bGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZyh0aGlzLl90
aXRsZSk7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IucmVzb3VyY2VDYXRlZ29yaWVzID0gewor
ICAgIGRvY3VtZW50czogbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5KCJkb2N1bWVu
dHMiLCAiRG9jdW1lbnRzIiwgInJnYig0NywxMDIsMjM2KSIpLAorICAgIHN0eWxlc2hlZXRzOiBu
ZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlQ2F0ZWdvcnkoInN0eWxlc2hlZXRzIiwgIlN0eWxlc2hl
ZXRzIiwgInJnYigxNTcsMjMxLDExOSkiKSwKKyAgICBpbWFnZXM6IG5ldyBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VDYXRlZ29yeSgiaW1hZ2VzIiwgIkltYWdlcyIsICJyZ2IoMTY0LDYwLDI1NSkiKSwK
KyAgICBzY3JpcHRzOiBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlQ2F0ZWdvcnkoInNjcmlwdHMi
LCAiU2NyaXB0cyIsICJyZ2IoMjU1LDEyMSwwKSIpLAorICAgIHhocjogbmV3IFdlYkluc3BlY3Rv
ci5SZXNvdXJjZUNhdGVnb3J5KCJ4aHIiLCAiWEhSIiwgInJnYigyMzEsMjMxLDEwKSIpLAorICAg
IGZvbnRzOiBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlQ2F0ZWdvcnkoImZvbnRzIiwgIkZvbnRz
IiwgInJnYigyNTUsODIsNjIpIiksCisgICAgd2Vic29ja2V0czogbmV3IFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUNhdGVnb3J5KCJ3ZWJzb2NrZXRzIiwgIldlYlNvY2tldHMiLCAicmdiKDE4NiwxODYs
MTg2KSIpLCAvLyBGSVhNRTogRGVjaWRlIHRoZSBjb2xvci4KKyAgICBvdGhlcjogbmV3IFdlYklu
c3BlY3Rvci5SZXNvdXJjZUNhdGVnb3J5KCJvdGhlciIsICJPdGhlciIsICJyZ2IoMTg2LDE4Niwx
ODYpIikKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VUcmVlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVHJlZU1vZGVsLmpzCmluZGV4IDBiYzAwZTljZjcwYWUyZmQxOTY2OWMwZWI4MjQ4
NGI2OTkxYTA5MzEuLjI5OGQyNTVmNmU2OWU2MzZjNjA5ZGM4MjA3ZmQwOWY5MjdmMjgzYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVl
TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVRyZWVNb2RlbC5qcwpAQCAtMjgsNyArMjgsMTAgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9
CisgKi8KIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbCA9IGZ1bmN0aW9uKG5ldHdvcmtN
YW5hZ2VyKQogewogICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNlU3RhcnRl
ZCwgdGhpcy5fb25SZXNvdXJjZVN0YXJ0ZWQsIHRoaXMpOwpAQCAtMzkzLDYgKzM5NiwxMCBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5P
YmplY3QucHJvdG90eXBlOwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMg
e1BhZ2VBZ2VudC5EaXNwYXRjaGVyfQorICovCiBXZWJJbnNwZWN0b3IuUGFnZURpc3BhdGNoZXIg
PSBmdW5jdGlvbihyZXNvdXJjZVRyZWVNb2RlbCkKIHsKICAgICB0aGlzLl9yZXNvdXJjZVRyZWVN
b2RlbCA9IHJlc291cmNlVHJlZU1vZGVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcwppbmRleCA3MTZjMzBkOTkwNzlmMmRi
ZTdiMjU1MTlkNDliMTY3Y2ViZTczZGU4Li5lYmY4MTYyZTY1MjNkZTFhY2JiNWM1OGE4ZGY1M2Ux
MzQ3OTU5YzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdEZvcm1hdHRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdEZvcm1hdHRlci5qcwpAQCAtMjgsNiArMjgsOSBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9y
bWF0dGVyID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMuX3Rhc2tzID0gW107CkBAIC02NCw3ICs2
Nyw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlID0gewogICAgICAg
ICB2YXIgdGFzayA9IHRoaXMuX3Rhc2tzLnNoaWZ0KCk7CiAgICAgICAgIHZhciBvcmlnaW5hbENv
bnRlbnQgPSB0YXNrLmRhdGEuY29udGVudDsKICAgICAgICAgdmFyIGZvcm1hdHRlZENvbnRlbnQg
PSBldmVudC5kYXRhLmNvbnRlbnQ7Ci0gICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gbmV3IFdl
Ykluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VNYXBwaW5nKG9yaWdpbmFsQ29udGVudC5saW5lRW5k
aW5ncygpLCBmb3JtYXR0ZWRDb250ZW50LmxpbmVFbmRpbmdzKCksIGV2ZW50LmRhdGEubWFwcGlu
Zyk7CisgICAgICAgIHZhciBtYXBwaW5nID0gZXZlbnQuZGF0YS5tYXBwaW5nOworICAgICAgICB2
YXIgc291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGlu
ZyhvcmlnaW5hbENvbnRlbnQubGluZUVuZGluZ3MoKSwgZm9ybWF0dGVkQ29udGVudC5saW5lRW5k
aW5ncygpLCBtYXBwaW5nKTsKICAgICAgICAgdGFzay5jYWxsYmFjayhmb3JtYXR0ZWRDb250ZW50
LCBzb3VyY2VNYXBwaW5nKTsKICAgICB9LAogCkBAIC03OCw2ICs4MiwxOSBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0Rm9ybWF0dGVyLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNv
bnN0cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5Gb3JtYXR0ZXJNYXBwaW5nUGF5bG9hZCA9IGZ1
bmN0aW9uKCkKK3sKKyAgICB0aGlzLm9yaWdpbmFsID0gW107CisgICAgdGhpcy5mb3JtYXR0ZWQg
PSBbXTsKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LkZvcm1hdHRlck1hcHBpbmdQYXlsb2FkfSBtYXBwaW5nCisgKi8KIFdlYkluc3BlY3Rvci5Gb3Jt
YXR0ZWRTb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24ob3JpZ2luYWxMaW5lRW5kaW5ncywgZm9ybWF0
dGVkTGluZUVuZGluZ3MsIG1hcHBpbmcpCiB7CiAgICAgdGhpcy5fb3JpZ2luYWxMaW5lRW5kaW5n
cyA9IG9yaWdpbmFsTGluZUVuZGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVNYW5hZ2VyLmpzCmluZGV4IDBjYWUwOWIyZDI5ZWUxMGJk
MGZmODgyMjQ5Y2RlYTU5Y2ZkZDIyZTQuLjFkMjllZTg4N2RkMmJhZDU1OGU3OWFmYWMxYzI0Mjlh
NjI4MjI4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVNYW5hZ2VyLmpzCkBAIC0yOCw2ICsyOCwxMCBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5P
YmplY3R9CisgKi8KIFdlYkluc3BlY3Rvci5UaW1lbGluZU1hbmFnZXIgPSBmdW5jdGlvbigpCiB7
CiAgICAgV2ViSW5zcGVjdG9yLk9iamVjdC5jYWxsKHRoaXMpOwpAQCAtNjMsNiArNjcsMTAgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTWFuYWdlci5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1hbmFnZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlOwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1Rp
bWVsaW5lQWdlbnQuRGlzcGF0Y2hlcn0KKyAqLwogV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGlzcGF0
Y2hlciA9IGZ1bmN0aW9uKG1hbmFnZXIpCiB7CiAgICAgdGhpcy5fbWFuYWdlciA9IG1hbmFnZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5x
cmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXgg
NTFjMGI3ZjhiOTQyMThkMGE0OTZjZDU1NDdlZTMxNzk1YzYwY2ZmZC4uMDU3NDE3Y2JjOWIwZTVj
ZTcyOTEwNzg3MmY4ZDQ1ZTczMDVlZWFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtMTUsNiArMTUsNyBAQAogICAgIDxmaWxlPkNhbGxT
dGFja1NpZGViYXJQYW5lLmpzPC9maWxlPgogICAgIDxmaWxlPkNoZWNrYm94LmpzPC9maWxlPgog
ICAgIDxmaWxlPkNvbG9yLmpzPC9maWxlPgorICAgIDxmaWxlPkNvbnNvbGVNZXNzYWdlLmpzPC9m
aWxlPgogICAgIDxmaWxlPkNvbnNvbGVQYW5lbC5qczwvZmlsZT4KICAgICA8ZmlsZT5Db25zb2xl
Vmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5Db250ZXh0TWVudS5qczwvZmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwppbmRleCBmMzQ1MTUxM2Rl
ZDI0Nzk1YmEwOWJkNTY0ODk5ZDQ3N2ZkYzJhYzllLi45MTk4MzgzMTRjZDA1ODg2NmU5NjNmNjcz
MTAxOTE1ZDZlNTVlZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2V4dGVybnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9leHRlcm5zLmpzCkBAIC0zMCw4ICszMCwyMCBAQAogCiB2YXIgY29uc29sZSA9IHt9CiBjb25z
b2xlLndhcm4gPSBmdW5jdGlvbihtZXNzYWdlKSB7fQorLyoqIEBwYXJhbSB7c3RyaW5nPX0gbWVz
c2FnZSAqLworY29uc29sZS5hc3NlcnQgPSBmdW5jdGlvbihleHByLCBtZXNzYWdlKSB7fQogCiB2
YXIgV2ViSW5zcGVjdG9yID0ge30KKy8qKiBAcGFyYW0ge3N0cmluZ30gdXJsICovCitXZWJJbnNw
ZWN0b3IubGlua2lmeVVSTEFzTm9kZSA9IGZ1bmN0aW9uKHVybCkge30KKy8qKiBAcGFyYW0ge3N0
cmluZ30gdXJsICovCitXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBmdW5j
dGlvbih1cmwpIHt9CisKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IHN0cgorICogQHBhcmFtIHsu
Li4qfSB2YXJBcmdzCisgKi8KK1dlYkluc3BlY3Rvci5VSVN0cmluZyA9IGZ1bmN0aW9uKHN0ciwg
dmFyQXJncykge30KIHZhciBJbnNwZWN0b3JCYWNrZW5kID0ge30KIAogdmFyIEpTT04gPSB7fQpA
QCAtNDEsMyArNTMsNSBAQCBKU09OLnBhcnNlID0gZnVuY3Rpb24oc3RyKSB7fQogLyoqIEBwYXJh
bSB7T2JqZWN0fSBvYmogKi8KIC8qKiBAcmV0dXJuIHtzdHJpbmd9ICovCiBKU09OLnN0cmluZ2lm
eSA9IGZ1bmN0aW9uKHN0cikge30KKworRWxlbWVudC5wcm90b3R5cGUuc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCA9IGZ1bmN0aW9uKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4IDk2MTgwMzEzNWU1NzI2M2YzNTA4YWEyOTAy
Nzg1OWUwNDA4ZjM2NGEuLjgyODJmMjBhZTU1YmUxYzkwZDUzY2UyYTE2ZWRkYWRjMjZjYTY5YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
Lmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
aHRtbApAQCAtNjAsNiArNjAsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlRhYmJlZFBhbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IklGcmFtZVZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRyYXdlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29uc29sZU1lc3NhZ2UuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvbnNv
bGVWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iVGltZWxpbmVHcmlkLmpzIj48L3NjcmlwdD4gICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDY2NDgxZTc3NzFkNGEx
YmFkNDlkMTVkZTBiZjUzYmMyZmZkMjI1YjQuLmVkODk2MThlMzUzODAyMmI1YTljODYzMTIwYzEw
ZDNjNDNkZGUxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCkBAIC01MjIsMTcgKzUyMiw2IEBAIFdlYkluc3BlY3Rvci5kb0xvYWRlZERv
bmUgPSBmdW5jdGlvbigpCiAKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVySW5zcGVjdG9y
RGlzcGF0Y2hlcih0aGlzKTsKIAotICAgIHRoaXMucmVzb3VyY2VDYXRlZ29yaWVzID0gewotICAg
ICAgICBkb2N1bWVudHM6IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeSgiZG9jdW1l
bnRzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb2N1bWVudHMiKSwgInJnYig0NywxMDIsMjM2
KSIpLAotICAgICAgICBzdHlsZXNoZWV0czogbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNhdGVn
b3J5KCJzdHlsZXNoZWV0cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3R5bGVzaGVldHMiKSwg
InJnYigxNTcsMjMxLDExOSkiKSwKLSAgICAgICAgaW1hZ2VzOiBuZXcgV2ViSW5zcGVjdG9yLlJl
c291cmNlQ2F0ZWdvcnkoImltYWdlcyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW1hZ2VzIiks
ICJyZ2IoMTY0LDYwLDI1NSkiKSwKLSAgICAgICAgc2NyaXB0czogbmV3IFdlYkluc3BlY3Rvci5S
ZXNvdXJjZUNhdGVnb3J5KCJzY3JpcHRzIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTY3JpcHRz
IiksICJyZ2IoMjU1LDEyMSwwKSIpLAotICAgICAgICB4aHI6IG5ldyBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VDYXRlZ29yeSgieGhyIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYSFIiKSwgInJnYigy
MzEsMjMxLDEwKSIpLAotICAgICAgICBmb250czogbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNh
dGVnb3J5KCJmb250cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRm9udHMiKSwgInJnYigyNTUs
ODIsNjIpIiksCi0gICAgICAgIHdlYnNvY2tldHM6IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VD
YXRlZ29yeSgid2Vic29ja2V0cyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiV2ViU29ja2V0cyIp
LCAicmdiKDE4NiwxODYsMTg2KSIpLCAvLyBGSVhNRTogRGVjaWRlIHRoZSBjb2xvci4KLSAgICAg
ICAgb3RoZXI6IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VDYXRlZ29yeSgib3RoZXIiLCBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIk90aGVyIiksICJyZ2IoMTg2LDE4NiwxODYpIikKLSAgICB9Owot
CiAgICAgdGhpcy5jc3NNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbCgpOwog
ICAgIHRoaXMuZGVidWdnZXJNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbCgp
OwogICAgIHRoaXMuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCgpOwpAQCAtNTU0LDE0ICs1NDMsNiBAQCBXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogICAgIGZvciAodmFyIHBhbmVsTmFtZSBp
biB0aGlzLnBhbmVscykKICAgICAgICAgdGhpcy5hZGRQYW5lbCh0aGlzLnBhbmVsc1twYW5lbE5h
bWVdKTsKIAotICAgIHRoaXMuVGlwcyA9IHsKLSAgICAgICAgUmVzb3VyY2VOb3RDb21wcmVzc2Vk
OiB7aWQ6IDAsIG1lc3NhZ2U6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiWW91IGNvdWxkIHNhdmUg
YmFuZHdpZHRoIGJ5IGhhdmluZyB5b3VyIHdlYiBzZXJ2ZXIgY29tcHJlc3MgdGhpcyB0cmFuc2Zl
ciB3aXRoIGd6aXAgb3IgemxpYi4iKX0KLSAgICB9OwotCi0gICAgdGhpcy5XYXJuaW5ncyA9IHsK
LSAgICAgICAgSW5jb3JyZWN0TUlNRVR5cGU6IHtpZDogMCwgbWVzc2FnZTogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJSZXNvdXJjZSBpbnRlcnByZXRlZCBhcyAlcyBidXQgdHJhbnNmZXJyZWQgd2l0
aCBNSU1FIHR5cGUgJXMuIil9Ci0gICAgfTsKLQogICAgIHRoaXMuYWRkTWFpbkV2ZW50TGlzdGVu
ZXJzKGRvY3VtZW50KTsKIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCB0
aGlzLndpbmRvd1Jlc2l6ZS5iaW5kKHRoaXMpLCB0cnVlKTsKQEAgLTE0NjAsNiArMTQ0MSw3IEBA
IFdlYkluc3BlY3Rvci5mcm9udGVuZFJldXNlZCA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9y
LlVJU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nKQogeworY29uc29sZS50cmFjZSgpOwogICAgIGlm
ICh3aW5kb3cubG9jYWxpemVkU3RyaW5ncyAmJiBzdHJpbmcgaW4gd2luZG93LmxvY2FsaXplZFN0
cmluZ3MpCiAgICAgICAgIHN0cmluZyA9IHdpbmRvdy5sb2NhbGl6ZWRTdHJpbmdzW3N0cmluZ107
CiAgICAgZWxzZSB7CkBAIC0xNDgxLDE0ICsxNDYzLDYgQEAgV2ViSW5zcGVjdG9yLmZvcm1hdExv
Y2FsaXplZCA9IGZ1bmN0aW9uKGZvcm1hdCwgc3Vic3RpdHV0aW9ucywgZm9ybWF0dGVycywgaW5p
dGkKICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdChXZWJJbnNwZWN0b3IuVUlTdHJpbmcoZm9ybWF0
KSwgc3Vic3RpdHV0aW9ucywgZm9ybWF0dGVycywgaW5pdGlhbFZhbHVlLCBhcHBlbmQpOwogfQog
Ci1XZWJJbnNwZWN0b3IuaXNNYWMgPSBmdW5jdGlvbigpCi17Ci0gICAgaWYgKCEoIl9pc01hYyIg
aW4gdGhpcykpCi0gICAgICAgIHRoaXMuX2lzTWFjID0gV2ViSW5zcGVjdG9yLnBsYXRmb3JtID09
PSAibWFjIjsKLQotICAgIHJldHVybiB0aGlzLl9pc01hYzsKLX0KLQogV2ViSW5zcGVjdG9yLnVz
ZUxvd2VyQ2FzZU1lbnVUaXRsZXMgPSBmdW5jdGlvbigpCiB7CiAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5wbGF0Zm9ybSA9PT0gIndpbmRvd3MiICYmIFByZWZlcmVuY2VzLnVzZUxvd2VyQ2FzZU1l
bnVUaXRsZXNPbldpbmRvd3M7CkBAIC0xNjU0LDQ1ICsxNjI4LDYgQEAgV2ViSW5zcGVjdG9yLl90
b29sYmFySXRlbUNsaWNrZWQgPSBmdW5jdGlvbihldmVudCkKICAgICB0aGlzLmN1cnJlbnRQYW5l
bCA9IHRvb2xiYXJJdGVtLnBhbmVsOwogfQogCi0vLyBUaGlzIHRhYmxlIG1hcHMgTUlNRSB0eXBl
cyB0byB0aGUgUmVzb3VyY2UuVHlwZXMgd2hpY2ggYXJlIHZhbGlkIGZvciB0aGVtLgotLy8gVGhl
IGZvbGxvd2luZyBsaW5lOgotLy8gICAgInRleHQvaHRtbCI6ICAgICAgICAgICAgICAgIHswOiAx
fSwKLS8vIG1lYW5zIHRoYXQgdGV4dC9odG1sIGlzIGEgdmFsaWQgTUlNRSB0eXBlIGZvciByZXNv
dXJjZXMgdGhhdCBoYXZlIHR5cGUKLS8vIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLkRvY3Vt
ZW50ICh3aGljaCBoYXMgYSB2YWx1ZSBvZiAwKS4KLVdlYkluc3BlY3Rvci5NSU1FVHlwZXMgPSB7
Ci0gICAgInRleHQvaHRtbCI6ICAgICAgICAgICAgICAgICAgIHswOiB0cnVlfSwKLSAgICAidGV4
dC94bWwiOiAgICAgICAgICAgICAgICAgICAgezA6IHRydWV9LAotICAgICJ0ZXh0L3BsYWluIjog
ICAgICAgICAgICAgICAgICB7MDogdHJ1ZX0sCi0gICAgImFwcGxpY2F0aW9uL3hodG1sK3htbCI6
ICAgICAgIHswOiB0cnVlfSwKLSAgICAidGV4dC9jc3MiOiAgICAgICAgICAgICAgICAgICAgezE6
IHRydWV9LAotICAgICJ0ZXh0L3hzbCI6ICAgICAgICAgICAgICAgICAgICB7MTogdHJ1ZX0sCi0g
ICAgImltYWdlL2pwZWciOiAgICAgICAgICAgICAgICAgIHsyOiB0cnVlfSwKLSAgICAiaW1hZ2Uv
cG5nIjogICAgICAgICAgICAgICAgICAgezI6IHRydWV9LAotICAgICJpbWFnZS9naWYiOiAgICAg
ICAgICAgICAgICAgICB7MjogdHJ1ZX0sCi0gICAgImltYWdlL2JtcCI6ICAgICAgICAgICAgICAg
ICAgIHsyOiB0cnVlfSwKLSAgICAiaW1hZ2Uvc3ZnK3htbCI6ICAgICAgICAgICAgICAgezI6IHRy
dWV9LAotICAgICJpbWFnZS92bmQubWljcm9zb2Z0Lmljb24iOiAgICB7MjogdHJ1ZX0sCi0gICAg
ImltYWdlL3gtaWNvbiI6ICAgICAgICAgICAgICAgIHsyOiB0cnVlfSwKLSAgICAiaW1hZ2UveC14
Yml0bWFwIjogICAgICAgICAgICAgezI6IHRydWV9LAotICAgICJmb250L3R0ZiI6ICAgICAgICAg
ICAgICAgICAgICB7MzogdHJ1ZX0sCi0gICAgImZvbnQvb3BlbnR5cGUiOiAgICAgICAgICAgICAg
IHszOiB0cnVlfSwKLSAgICAiYXBwbGljYXRpb24veC1mb250LXR5cGUxIjogICAgezM6IHRydWV9
LAotICAgICJhcHBsaWNhdGlvbi94LWZvbnQtdHRmIjogICAgICB7MzogdHJ1ZX0sCi0gICAgImFw
cGxpY2F0aW9uL3gtZm9udC13b2ZmIjogICAgIHszOiB0cnVlfSwKLSAgICAiYXBwbGljYXRpb24v
eC10cnVldHlwZS1mb250IjogezM6IHRydWV9LAotICAgICJ0ZXh0L2phdmFzY3JpcHQiOiAgICAg
ICAgICAgICB7NDogdHJ1ZX0sCi0gICAgInRleHQvZWNtYXNjcmlwdCI6ICAgICAgICAgICAgIHs0
OiB0cnVlfSwKLSAgICAiYXBwbGljYXRpb24vamF2YXNjcmlwdCI6ICAgICAgezQ6IHRydWV9LAot
ICAgICJhcHBsaWNhdGlvbi9lY21hc2NyaXB0IjogICAgICB7NDogdHJ1ZX0sCi0gICAgImFwcGxp
Y2F0aW9uL3gtamF2YXNjcmlwdCI6ICAgIHs0OiB0cnVlfSwKLSAgICAiYXBwbGljYXRpb24vanNv
biI6ICAgICAgICAgICAgezQ6IHRydWV9LAotICAgICJ0ZXh0L2phdmFzY3JpcHQxLjEiOiAgICAg
ICAgICB7NDogdHJ1ZX0sCi0gICAgInRleHQvamF2YXNjcmlwdDEuMiI6ICAgICAgICAgIHs0OiB0
cnVlfSwKLSAgICAidGV4dC9qYXZhc2NyaXB0MS4zIjogICAgICAgICAgezQ6IHRydWV9LAotICAg
ICJ0ZXh0L2pzY3JpcHQiOiAgICAgICAgICAgICAgICB7NDogdHJ1ZX0sCi0gICAgInRleHQvbGl2
ZXNjcmlwdCI6ICAgICAgICAgICAgIHs0OiB0cnVlfSwKLX0KLQogV2ViSW5zcGVjdG9yLlBhbmVs
SGlzdG9yeSA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLl9oaXN0b3J5ID0gW107CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qcwppbmRleCBl
MGM0ZWNjZjhkNjBhYzQzZGU5MWI5OGQyMjI2MjUzNTI5ZjY5ZTBiLi4xMTczM2JhMDNkMmU3NTE3
ZDBlNWUwNmIxZTYyMDNlYzM0YjZmYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMKQEAgLTQ0OSw2ICs0NDksOCBAQCBUcmVlT3V0
bGluZS5wcm90b3R5cGUucmV2ZWFsQW5kU2VsZWN0ID0gZnVuY3Rpb24ob21pdEZvY3VzKQogCiAv
KioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtPYmplY3Q9fSByZXByZXNlbnRlZE9iamVj
dAorICogQHBhcmFtIHtib29sZWFuPX0gaGFzQ2hpbGRyZW4KICAqLwogZnVuY3Rpb24gVHJlZUVs
ZW1lbnQodGl0bGUsIHJlcHJlc2VudGVkT2JqZWN0LCBoYXNDaGlsZHJlbikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKaW5kZXggNTJmNWZj
Y2FhM2IwM2Y1ZTQ5MjBhYzk2M2UwMGFjNjJmZjA3NDc0NS4uYjE4ZmMyNDlhODk2YjU1OGM0OTc3
OTFkNjExNWRlYzI1YWZkMTU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC91dGlsaXRpZXMuanMKQEAgLTg0MCw2ICs4NDAsOSBAQCBmdW5jdGlvbiBoaWdobGln
aHRTZWFyY2hSZXN1bHQoZWxlbWVudCwgb2Zmc2V0LCBsZW5ndGgsIGRvbUNoYW5nZXMpCiAgICAg
cmV0dXJuIHJlc3VsdC5sZW5ndGggPyByZXN1bHRbMF0gOiBudWxsOwogfQogCisvKioKKyAqIEBw
YXJhbSB7QXJyYXkuPE9iamVjdD49fSBjaGFuZ2VzCisgKi8KIGZ1bmN0aW9uIGhpZ2hsaWdodFNl
YXJjaFJlc3VsdHMoZWxlbWVudCwgcmVzdWx0UmFuZ2VzLCBjaGFuZ2VzKQogewogICAgIGNoYW5n
ZXMgPSBjaGFuZ2VzIHx8IFtdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2dlbmVyYXRlLXByb3RvY29sLWV4dGVybnMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2Vu
ZXJhdGUtcHJvdG9jb2wtZXh0ZXJucwppbmRleCAzNWZmNzRlZDUzYWQwNGRlZThmYmY5NzBiZjA3
OTRlZmY4MDkxNTk0Li5kNzRlMGY3YmNkN2M1MzYyNjczMjlkNDRlNjU2YTc2MDdmNjU3YTFhIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtcHJvdG9jb2wtZXh0
ZXJucworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtcHJvdG9jb2wtZXh0
ZXJucwpAQCAtMTA4LDYgKzEwOCw4IEBAIGZvciBkb21haW4gaW4ganNvbl9hcGk6CiAgICAgICAg
ICAgICBvdXRwdXRfZmlsZS53cml0ZSgiICovXG4iKQogICAgICAgICAgICAgcGFyYW1zLmFwcGVu
ZCgib3B0X2NhbGxiYWNrIik7CiAgICAgICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgiJXNBZ2Vu
dC4lcyA9IGZ1bmN0aW9uKCVzKSB7fVxuIiAlIChkb21haW5fbmFtZSwgY29tbWFuZFsibmFtZSJd
LCAiLCAiLmpvaW4ocGFyYW1zKSkpCisgICAgICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgiLyoq
IEBwYXJhbSB7ZnVuY3Rpb24oJXMpOnZvaWQ9fSBvcHRfY2FsbGJhY2sgKi9cbiIgJSAiLCAiLmpv
aW4ocmV0dXJucykpCisgICAgICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgiJXNBZ2VudC4lcy5p
bnZva2UgPSBmdW5jdGlvbihvYmosIG9wdF9jYWxsYmFjaykge31cbiIgJSAoZG9tYWluX25hbWUs
IGNvbW1hbmRbIm5hbWUiXSkpCiAKICAgICBvdXRwdXRfZmlsZS53cml0ZSgiLyoqIEBpbnRlcmZh
Y2UgKi9cbiIpCiAgICAgb3V0cHV0X2ZpbGUud3JpdGUoIiVzQWdlbnQuRGlzcGF0Y2hlciA9IGZ1
bmN0aW9uKCkge307XG4iICUgZG9tYWluX25hbWUpCg==
</data>
<flag name="review"
          id="100993"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>