<?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>71288</bug_id>
          
          <creation_ts>2011-11-01 08:34:41 -0700</creation_ts>
          <short_desc>Web Inspector: Introduce SuggestBox for TextPrompt</short_desc>
          <delta_ts>2011-11-03 03:08:50 -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>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</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>493916</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-01 08:34:41 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494542</commentid>
    <comment_count>1</comment_count>
      <attachid>113301</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-02 03:57:45 -0700</bug_when>
    <thetext>Created attachment 113301
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495308</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-11-03 03:08:50 -0700</bug_when>
    <thetext>Committed r99159: &lt;http://trac.webkit.org/changeset/99159&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113301</attachid>
            <date>2011-11-02 03:57:45 -0700</date>
            <delta_ts>2011-11-02 05:28:55 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>suggestboxonly.patch</filename>
            <type>text/plain</type>
            <size>49735</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IGEwMDM1MWZkM2RlYWI1YmIyNjA2ZDljZTk2YjZlN2VhM2M4Y2RmZGQKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBUdWUgTm92IDEg
MTk6MzY6NDMgMjAxMSArMDQwMAoKICAgIEZpeAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MGE5ODM2Li4xOTI2
MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMTEtMDIgIEFsZXhhbmRlciBQ
YXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJ
bnRyb2R1Y2UgU3VnZ2VzdEJveCBmb3IgVGV4dFByb21wdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUuY29tcGxldGlvbnMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fY29tcGxldGlvbnMu
cmVjZWl2ZWRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUuX2NvbXBsZXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUuX3JlcG9ydENvbXBsZXRpb25zKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qb3BvdmVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlBvcG92ZXIucHJvdG90eXBlLl9wb3NpdGlvbkVsZW1lbnQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU3R5bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSk6CisgICAgICAg
ICgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dFByb21wdC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LnByb3RvdHlwZS5zZXRTdWdnZXN0Rm9yY2VhYmxlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5fYXR0YWNoSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLl9yZW1vdmVGcm9tRWxlbWVudCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLm9uS2V5RG93bik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUuYWNjZXB0QXV0b0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS5hdXRv
Q29tcGxldGVTb29uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlw
ZS5jb21wbGV0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUu
X2NvbXBsZXRpb25zUmVhZHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJv
dG90eXBlLmFwcGx5U3VnZ2VzdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21w
dC5wcm90b3R5cGUuYWNjZXB0U3VnZ2VzdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFByb21wdC5wcm90b3R5cGUuaXNTdWdnZXN0Qm94VmlzaWJsZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUubW92ZUNhcmV0VG9FbmRPZlByb21wdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUudGFiS2V5UHJlc3NlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUuZW50ZXJLZXlQcmVzc2Vk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZS51cEtleVByZXNz
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlLmRvd25LZXlQ
cmVzc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3hDb25m
aWcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHRXaXRoSGlzdG9yeSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdpdGhIaXN0b3J5LnByb3RvdHlwZS5kZWZhdWx0
S2V5SGFuZGxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3gucHJvdG90eXBl
LmdldCB2aXNpYmxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RC
b3gucHJvdG90eXBlLmdldCBoYXNTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRQcm9tcHQuU3VnZ2VzdEJveC5wcm90b3R5cGUuX29uc2Nyb2xscmVzaXplKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3gucHJvdG90eXBlLl91cGRhdGVCb3hQ
b3NpdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnBy
b3RvdHlwZS5fb25ib3htb3VzZWRvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9t
cHQuU3VnZ2VzdEJveC5wcm90b3R5cGUuaGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFByb21wdC5TdWdnZXN0Qm94LnByb3RvdHlwZS5yZW1vdmVGcm9tRWxlbWVudCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnByb3RvdHlwZS5fYXBwbHlTdWdn
ZXN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3gucHJv
dG90eXBlLmFjY2VwdFN1Z2dlc3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9t
cHQuU3VnZ2VzdEJveC5wcm90b3R5cGUuX29uTmV4dEl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRQcm9tcHQuU3VnZ2VzdEJveC5wcm90b3R5cGUuX29uUHJldmlvdXNJdGVtKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3gucHJvdG90eXBlLnVwZGF0
ZVN1Z2dlc3Rpb25zU29vbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdn
ZXN0Qm94LnByb3RvdHlwZS51cGRhdGVTdWdnZXN0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnByb3RvdHlwZS5fb25JdGVtTW91c2VEb3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3gucHJvdG90eXBlLl9jcmVh
dGVJdGVtRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0
Qm94LnByb3RvdHlwZS5fdXBkYXRlSXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQ
cm9tcHQuU3VnZ2VzdEJveC5wcm90b3R5cGUuX3VwZGF0ZVNlbGVjdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnByb3RvdHlwZS5fY29tcGxldGlvbnNS
ZWFkeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnByb3Rv
dHlwZS51cEtleVByZXNzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuU3Vn
Z2VzdEJveC5wcm90b3R5cGUuZG93bktleVByZXNzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRQcm9tcHQuU3VnZ2VzdEJveC5wcm90b3R5cGUuZW50ZXJLZXlQcmVzc2VkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3gucHJvdG90eXBlLnRhYktleVBy
ZXNzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuU3VnZ2VzdEJveC5wcm90
b3R5cGUuc3BhY2VLZXlQcmVzc2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dl
YktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvcG9wb3Zlci5jc3M6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC90ZXh0UHJvbXB0LmNzczogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6CisgICAgICAgIChzZXR1cFByb3RvdHlwZVV0aWxp
dGllcy5FbGVtZW50LnByb3RvdHlwZS5ib3hJbldpbmRvdyk6CisKIDIwMTEtMTEtMDEgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5ODg0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwNmE2NzViLi5iOWI0
ODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02NDE2LDYgKzY0MTYsNyBAQAogICAgICAgICAgICAg
J2luc3BlY3Rvci9mcm9udC1lbmQvcmVzb3VyY2VWaWV3LmNzcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9yZXNvdXJjZXNQYW5lbC5jc3MnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvc2NyaXB0c1BhbmVsLmNzcycsCisgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC90ZXh0UHJvbXB0LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250
LWVuZC90ZXh0Vmlld2VyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC90
aW1lbGluZVBhbmVsLmNzcycsCiAgICAgICAgIF0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDNiYTdiNTIuLjkwMWFhYTEgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02OTA5Myw2ICs2OTA5
MywxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFx0ZXh0UHJvbXB0LmNzcyIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1l
bmRcVGV4dFByb21wdC5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDg0ODQ4ZmIuLmU1
OWM4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlVmlldy5qcwpAQCAtMTAwLDYgKzEwMCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldyA9
IGZ1bmN0aW9uKGhpZGVDb250ZXh0U2VsZWN0b3IpCiAKICAgICB0aGlzLmZpbHRlcih0aGlzLmFs
bEVsZW1lbnQsIGZhbHNlKTsKICAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOworICAgIHRo
aXMucmVnaXN0ZXJSZXF1aXJlZENTUygidGV4dFByb21wdC5jc3MiKTsKIAogICAgIHRoaXMubWVz
c2FnZXNFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFuZGxl
Q29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKQEAgLTMzMiwxNiArMzMzLDE2
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X2xpbmtpZmllci5yZXNldCgpOwogICAgIH0sCiAKLSAgICBjb21wbGV0aW9uczogZnVuY3Rpb24o
d29yZFJhbmdlLCBiZXN0TWF0Y2hPbmx5LCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spCisgICAg
Y29tcGxldGlvbnM6IGZ1bmN0aW9uKHdvcmRSYW5nZSwgZm9yY2UsIGNvbXBsZXRpb25zUmVhZHlD
YWxsYmFjaykKICAgICB7CiAgICAgICAgIC8vIFBhc3MgbGVzcyBzdG9wIGNoYXJhY3RlcnMgdG8g
cmFuZ2VPZldvcmQgc28gdGhlIHJhbmdlIHdpbGwgYmUgYSBtb3JlIGNvbXBsZXRlIGV4cHJlc3Np
b24uCiAgICAgICAgIHZhciBleHByZXNzaW9uUmFuZ2UgPSB3b3JkUmFuZ2Uuc3RhcnRDb250YWlu
ZXIucmFuZ2VPZldvcmQod29yZFJhbmdlLnN0YXJ0T2Zmc2V0LCBFeHByZXNzaW9uU3RvcENoYXJh
Y3RlcnMsIHRoaXMucHJvbXB0RWxlbWVudCwgImJhY2t3YXJkIik7CiAgICAgICAgIHZhciBleHBy
ZXNzaW9uU3RyaW5nID0gZXhwcmVzc2lvblJhbmdlLnRvU3RyaW5nKCk7CiAgICAgICAgIHZhciBw
cmVmaXggPSB3b3JkUmFuZ2UudG9TdHJpbmcoKTsKLSAgICAgICAgdGhpcy5fY29tcGxldGlvbnMo
ZXhwcmVzc2lvblN0cmluZywgcHJlZml4LCBiZXN0TWF0Y2hPbmx5LCBjb21wbGV0aW9uc1JlYWR5
Q2FsbGJhY2spOworICAgICAgICB0aGlzLl9jb21wbGV0aW9ucyhleHByZXNzaW9uU3RyaW5nLCBw
cmVmaXgsIGZvcmNlLCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2spOwogICAgIH0sCiAKLSAgICBf
Y29tcGxldGlvbnM6IGZ1bmN0aW9uKGV4cHJlc3Npb25TdHJpbmcsIHByZWZpeCwgYmVzdE1hdGNo
T25seSwgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKQorICAgIF9jb21wbGV0aW9uczogZnVuY3Rp
b24oZXhwcmVzc2lvblN0cmluZywgcHJlZml4LCBmb3JjZSwgY29tcGxldGlvbnNSZWFkeUNhbGxi
YWNrKQogICAgIHsKICAgICAgICAgdmFyIGxhc3RJbmRleCA9IGV4cHJlc3Npb25TdHJpbmcubGVu
Z3RoIC0gMTsKIApAQCAtMzYxLDcgKzM2Miw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2soW10pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmICgh
ZXhwcmVzc2lvblN0cmluZyAmJiBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wYXVzZWQpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5nZXRTZWxlY3RlZENhbGxGcmFtZVZhcmlhYmxlcyhyZWNlaXZlZFByb3BlcnR5TmFtZXMu
YmluZCh0aGlzKSk7CiAgICAgICAgIGVsc2UKQEAgLTQyNSwxMSArNDI2LDExIEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBjb21tYW5kTGluZUFQSS5sZW5ndGg7ICsraSkKICAgICAgICAgICAgICAgICAg
ICAgcHJvcGVydHlOYW1lc1tjb21tYW5kTGluZUFQSVtpXV0gPSB0cnVlOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgdGhpcy5fcmVwb3J0Q29tcGxldGlvbnMoYmVzdE1hdGNoT25seSwgY29t
cGxldGlvbnNSZWFkeUNhbGxiYWNrLCBkb3ROb3RhdGlvbiwgYnJhY2tldE5vdGF0aW9uLCBwcmVm
aXgsIE9iamVjdC5rZXlzKHByb3BlcnR5TmFtZXMpKTsKKyAgICAgICAgICAgIHRoaXMuX3JlcG9y
dENvbXBsZXRpb25zKGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaywgZG90Tm90YXRpb24sIGJyYWNr
ZXROb3RhdGlvbiwgcHJlZml4LCBPYmplY3Qua2V5cyhwcm9wZXJ0eU5hbWVzKSk7CiAgICAgICAg
IH0KICAgICB9LAogCi0gICAgX3JlcG9ydENvbXBsZXRpb25zOiBmdW5jdGlvbihiZXN0TWF0Y2hP
bmx5LCBjb21wbGV0aW9uc1JlYWR5Q2FsbGJhY2ssIGRvdE5vdGF0aW9uLCBicmFja2V0Tm90YXRp
b24sIHByZWZpeCwgcHJvcGVydGllcykgeworICAgIF9yZXBvcnRDb21wbGV0aW9uczogZnVuY3Rp
b24oY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrLCBkb3ROb3RhdGlvbiwgYnJhY2tldE5vdGF0aW9u
LCBwcmVmaXgsIHByb3BlcnRpZXMpIHsKICAgICAgICAgaWYgKGJyYWNrZXROb3RhdGlvbikgewog
ICAgICAgICAgICAgaWYgKHByZWZpeC5sZW5ndGggJiYgcHJlZml4WzBdID09PSAiJyIpCiAgICAg
ICAgICAgICAgICAgdmFyIHF1b3RlVXNlZCA9ICInIjsKQEAgLTQ1NCwxMiArNDU1LDEwIEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGlmIChw
cm9wZXJ0eS5sZW5ndGggPCBwcmVmaXgubGVuZ3RoKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgaWYgKHByb3BlcnR5LmluZGV4T2YocHJlZml4KSAhPT0gMCkKKyAgICAg
ICAgICAgIGlmIChwcmVmaXgubGVuZ3RoICYmIHByb3BlcnR5LmluZGV4T2YocHJlZml4KSAhPT0g
MCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgcmVzdWx0cy5wdXNo
KHByb3BlcnR5KTsKLSAgICAgICAgICAgIGlmIChiZXN0TWF0Y2hPbmx5KQotICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjayhy
ZXN1bHRzKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDE3NGYwMDAuLjQyYzkxYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTM2LDYgKzM2LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwgPSBmdW5jdGlvbigpCiB7
CiAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgImVsZW1lbnRzIik7CiAgICAgdGhp
cy5yZWdpc3RlclJlcXVpcmVkQ1NTKCJlbGVtZW50c1BhbmVsLmNzcyIpOworICAgIHRoaXMucmVn
aXN0ZXJSZXF1aXJlZENTUygidGV4dFByb21wdC5jc3MiKTsKICAgICB0aGlzLnNldEhpZGVPbkRl
dGFjaCgpOwogCiAgICAgdGhpcy5jb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qb3BvdmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVy
LmpzCmluZGV4IDY0YTlmNzIyLi40YmZkNmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCkBAIC0zNSw3ICszNSw3IEBACiBXZWJJbnNwZWN0b3Iu
UG9wb3ZlciA9IGZ1bmN0aW9uKHBvcG92ZXJIZWxwZXIpCiB7CiAgICAgdGhpcy5lbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgdGhpcy5lbGVtZW50LmNsYXNzTmFt
ZSA9ICJwb3BvdmVyIjsKKyAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInBvcG92ZXIgY3Vz
dG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9sbCBjdXN0b20tcG9wdXAtaG9yaXpvbnRhbC1zY3JvbGwi
OwogCiAgICAgdGhpcy5fcG9wdXBBcnJvd0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKICAgICB0aGlzLl9wb3B1cEFycm93RWxlbWVudC5jbGFzc05hbWUgPSAiYXJyb3ci
OwpAQCAtMTEzLDE3ICsxMTMsNyBAQCBXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGNvbnN0IHRvdGFsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgICAg
Y29uc3QgdG90YWxIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CiAKLSAgICAgICAgdmFyIGFu
Y2hvckJveCA9IGFuY2hvckVsZW1lbnQub2Zmc2V0UmVsYXRpdmVUb1dpbmRvdyh3aW5kb3cpOwot
ICAgICAgICBhbmNob3JCb3gud2lkdGggPSBhbmNob3JFbGVtZW50Lm9mZnNldFdpZHRoOwotICAg
ICAgICBhbmNob3JCb3guaGVpZ2h0ID0gYW5jaG9yRWxlbWVudC5vZmZzZXRIZWlnaHQ7Ci0gICAg
ICAgIHdoaWxlIChhbmNob3JFbGVtZW50ICYmIGFuY2hvckVsZW1lbnQgIT09IGFuY2hvckVsZW1l
bnQub3duZXJEb2N1bWVudC5ib2R5KSB7Ci0gICAgICAgICAgICBpZiAoYW5jaG9yRWxlbWVudC5z
Y3JvbGxMZWZ0KQotICAgICAgICAgICAgICAgIGFuY2hvckJveC54IC09IGFuY2hvckVsZW1lbnQu
c2Nyb2xsTGVmdDsKLSAgICAgICAgICAgIGlmIChhbmNob3JFbGVtZW50LnNjcm9sbFRvcCkKLSAg
ICAgICAgICAgICAgICBhbmNob3JCb3gueSAtPSBhbmNob3JFbGVtZW50LnNjcm9sbFRvcDsKLSAg
ICAgICAgICAgIGFuY2hvckVsZW1lbnQgPSBhbmNob3JFbGVtZW50LnBhcmVudEVsZW1lbnQ7Ci0g
ICAgICAgIH0KLQorICAgICAgICB2YXIgYW5jaG9yQm94ID0gYW5jaG9yRWxlbWVudC5ib3hJbldp
bmRvdyh3aW5kb3cpOwogICAgICAgICB2YXIgbmV3RWxlbWVudFBvc2l0aW9uID0geyB4OiAwLCB5
OiAwLCB3aWR0aDogcHJlZmVycmVkV2lkdGggKyBzY3JvbGxlcldpZHRoLCBoZWlnaHQ6IHByZWZl
cnJlZEhlaWdodCB9OwogCiAgICAgICAgIHZhciB2ZXJ0aWNhbEFsaWdubWVudDsKQEAgLTE3MSw3
ICsxNjEsNyBAQCBXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB0aGlzLl9wb3B1cEFycm93RWxlbWVudC5zdHlsZS5sZWZ0ICs9IGFuY2hvckJveC53aWR0aCAv
IDI7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInBvcG92
ZXIgIiArIHZlcnRpY2FsQWxpZ25tZW50ICsgIi0iICsgaG9yaXpvbnRhbEFsaWdubWVudCArICIt
YXJyb3ciOworICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gInBvcG92ZXIgY3VzdG9t
LXBvcHVwLXZlcnRpY2FsLXNjcm9sbCBjdXN0b20tcG9wdXAtaG9yaXpvbnRhbC1zY3JvbGwgIiAr
IHZlcnRpY2FsQWxpZ25tZW50ICsgIi0iICsgaG9yaXpvbnRhbEFsaWdubWVudCArICItYXJyb3ci
OwogICAgICAgICB0aGlzLmVsZW1lbnQucG9zaXRpb25BdChuZXdFbGVtZW50UG9zaXRpb24ueCAt
IGJvcmRlcldpZHRoLCBuZXdFbGVtZW50UG9zaXRpb24ueSAtIGJvcmRlcldpZHRoKTsKICAgICAg
ICAgdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoID0gbmV3RWxlbWVudFBvc2l0aW9uLndpZHRoICsg
Ym9yZGVyV2lkdGggKiAyICsgInB4IjsKICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmhlaWdo
dCA9IG5ld0VsZW1lbnRQb3NpdGlvbi5oZWlnaHQgKyBib3JkZXJXaWR0aCAqIDIgKyAicHgiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRl
YmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lk
ZWJhclBhbmUuanMKaW5kZXggZmI5N2M4Zi4uMzQ4Njk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC0x
OTM4LDcgKzE5MzgsMTEgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9w
YWdhdGlvbigpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgaWYg
KCFpc0VkaXRpbmdOYW1lKQorICAgICAgICAgICAgdGhpcy5fYXBwbHlGcmVlRmxvd1N0eWxlVGV4
dEVkaXQoZmFsc2UpOwogICAgIH0sCiAKICAgICBfYXBwbHlGcmVlRmxvd1N0eWxlVGV4dEVkaXQ6
IGZ1bmN0aW9uKG5vdykKQEAgLTIzMjQsMjQgKzIzMjgsMTQgQEAgV2ViSW5zcGVjdG9yLlN0eWxl
c1NpZGViYXJQYW5lLkNTU1Byb3BlcnR5UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgc2Vs
ZWN0aW9uLmFkZFJhbmdlKHdvcmRTdWZmaXhSYW5nZSk7CiAgICAgfSwKIAotICAgIF9idWlsZFBy
b3BlcnR5Q29tcGxldGlvbnM6IGZ1bmN0aW9uKHdvcmRSYW5nZSwgYmVzdE1hdGNoT25seSwgY29t
cGxldGlvbnNSZWFkeUNhbGxiYWNrKQorICAgIF9idWlsZFByb3BlcnR5Q29tcGxldGlvbnM6IGZ1
bmN0aW9uKHdvcmRSYW5nZSwgZm9yY2UsIGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjaykKICAgICB7
CiAgICAgICAgIHZhciBwcmVmaXggPSB3b3JkUmFuZ2UudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgp
OwotICAgICAgICBpZiAoIXByZWZpeCAmJiBiZXN0TWF0Y2hPbmx5KQorICAgICAgICBpZiAoIXBy
ZWZpeCAmJiAhZm9yY2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHJlc3Vs
dHM7Ci0gICAgICAgIGlmIChiZXN0TWF0Y2hPbmx5KSB7Ci0gICAgICAgICAgICByZXN1bHRzID0g
W107Ci0gICAgICAgICAgICB2YXIgZmlyc3RNYXRjaCA9IHRoaXMuX2Nzc0NvbXBsZXRpb25zLmZp
cnN0U3RhcnRzV2l0aChwcmVmaXgpOwotICAgICAgICAgICAgaWYgKGZpcnN0TWF0Y2gpCi0gICAg
ICAgICAgICAgICAgcmVzdWx0cy5wdXNoKGZpcnN0TWF0Y2gpOwotICAgICAgICAgICAgcmV0dXJu
IGNvbXBsZXRpb25zUmVhZHlDYWxsYmFjayhyZXN1bHRzKTsKLSAgICAgICAgfQotCi0gICAgICAg
IHJlc3VsdHMgPSB0aGlzLl9jc3NDb21wbGV0aW9ucy5zdGFydHNXaXRoKHByZWZpeCk7Ci0gICAg
ICAgIGlmIChyZXN1bHRzKQotICAgICAgICAgICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKHJl
c3VsdHMpOworICAgICAgICB2YXIgcmVzdWx0cyA9IHRoaXMuX2Nzc0NvbXBsZXRpb25zLnN0YXJ0
c1dpdGgocHJlZml4KTsKKyAgICAgICAgY29tcGxldGlvbnNSZWFkeUNhbGxiYWNrKHJlc3VsdHMp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0UHJvbXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
ZXh0UHJvbXB0LmpzCmluZGV4IDM1YWZkZTguLjJjY2U0NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFByb21wdC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQuanMKQEAgLTMxLDggKzMxLDkgQEAK
ICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtmdW5jdGlvbihSYW5nZSwgYm9vbGVhbiwgZnVu
Y3Rpb24oKikpfSBjb21wbGV0aW9ucwogICogQHBhcmFtIHtzdHJpbmd9IHN0b3BDaGFyYWN0ZXJz
CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0UHJvbXB0LlN1Z2dlc3RCb3hDb25maWc9fSBz
dWdnZXN0Qm94Q29uZmlnCiAgKi8KLVdlYkluc3BlY3Rvci5UZXh0UHJvbXB0ID0gZnVuY3Rpb24o
Y29tcGxldGlvbnMsIHN0b3BDaGFyYWN0ZXJzKQorV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQgPSBm
dW5jdGlvbihjb21wbGV0aW9ucywgc3RvcENoYXJhY3RlcnMsIHN1Z2dlc3RCb3hDb25maWcpCiB7
CiAgICAgLyoqCiAgICAgICogQHR5cGUge0VsZW1lbnR8dW5kZWZpbmVkfQpAQCAtNDAsNiArNDEs
OCBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdCA9IGZ1bmN0aW9uKGNvbXBsZXRpb25zLCBzdG9w
Q2hhcmFjdGVycykKICAgICB0aGlzLl9wcm94eUVsZW1lbnQ7CiAgICAgdGhpcy5fbG9hZENvbXBs
ZXRpb25zID0gY29tcGxldGlvbnM7CiAgICAgdGhpcy5fY29tcGxldGlvblN0b3BDaGFyYWN0ZXJz
ID0gc3RvcENoYXJhY3RlcnM7CisgICAgdGhpcy5fc3VnZ2VzdEJveENvbmZpZyA9IHN1Z2dlc3RC
b3hDb25maWc7CisgICAgdGhpcy5fc3VnZ2VzdEZvcmNlYWJsZSA9IHRydWU7CiB9CiAKIFdlYklu
c3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsKQEAgLTQ4LDYgKzUxLDExIEBAIFdlYklu
c3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3By
b3h5RWxlbWVudDsKICAgICB9LAogCisgICAgc2V0U3VnZ2VzdEZvcmNlYWJsZTogZnVuY3Rpb24o
eCkKKyAgICB7CisgICAgICAgIHRoaXMuX3N1Z2dlc3RGb3JjZWFibGUgPSB4OworICAgIH0sCisK
ICAgICAvKioKICAgICAgKiBDbGllbnRzIHNob3VsZCBuZXZlciBhdHRhY2ggYW55IGV2ZW50IGxp
c3RlbmVycyB0byB0aGUgfGVsZW1lbnR8LiBJbnN0ZWFkLAogICAgICAqIHRoZXkgc2hvdWxkIHVz
ZSB0aGUgcmVzdWx0IG9mIHRoaXMgbWV0aG9kIHRvIGF0dGFjaCBsaXN0ZW5lcnMgZm9yIGJ1YmJs
aW5nIGV2ZW50cy4KQEAgLTkwLDYgKzk4LDEyIEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0ZXh0LXBy
b21wdCIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24i
LCB0aGlzLl9ib3VuZE9uS2V5RG93biwgdHJ1ZSk7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigic2VsZWN0c3RhcnQiLCB0aGlzLl9zZWxlY3RTdGFydC5iaW5kKHRoaXMp
LCBmYWxzZSk7CisKKyAgICAgICAgaWYgKHRoaXMuX3N1Z2dlc3RCb3hDb25maWcpIHsKKyAgICAg
ICAgICAgIHRoaXMuX3N1Z2dlc3RCb3ggPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuU3Vn
Z2VzdEJveCh0aGlzLCB0aGlzLl9lbGVtZW50LCB0aGlzLl9zdWdnZXN0Qm94Q29uZmlnLnN0eWxl
Q2xhc3MpOworICAgICAgICAgICAgdGhpcy5fYXBwbHlDYWxsYmFjayA9IHRoaXMuX3N1Z2dlc3RC
b3hDb25maWcuYXBwbHlJdGVtQ2FsbGJhY2s7CisgICAgICAgICAgICB0aGlzLl9hY2NlcHRDYWxs
YmFjayA9IHRoaXMuX3N1Z2dlc3RCb3hDb25maWcuYWNjZXB0SXRlbUNhbGxiYWNrOworICAgICAg
ICB9CiAgICAgICAgIHJldHVybiB0aGlzLnByb3h5RWxlbWVudDsKICAgICB9LAogCkBAIC0xMjks
NiArMTQzLDggQEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0IiwgdGhpcy5f
Ym91bmRTZWxlY3RTdGFydCwgZmFsc2UpOwogICAgICAgICBpZiAodGhpcy5faXNFZGl0aW5nKQog
ICAgICAgICAgICAgdGhpcy5fc3RvcEVkaXRpbmcoKTsKKyAgICAgICAgaWYgKHRoaXMuX3N1Z2dl
c3RCb3gpCisgICAgICAgICAgICB0aGlzLl9zdWdnZXN0Qm94LnJlbW92ZUZyb21FbGVtZW50KCk7
CiAgICAgfSwKIAogICAgIF9zdGFydEVkaXRpbmc6IGZ1bmN0aW9uKGJsdXJMaXN0ZW5lcikKQEAg
LTE3NSw0MSArMTkxLDcxIEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fc2VsZWN0aW9uVGltZW91dCA9IHNldFRpbWVvdXQobW92ZUJhY2tJZk91
dHNpZGUuYmluZCh0aGlzKSwgMTAwKTsKICAgICB9LAogCi0gICAgZGVmYXVsdEtleUhhbmRsZXI6
IGZ1bmN0aW9uKGV2ZW50KQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGZvcmNl
CisgICAgICovCisgICAgZGVmYXVsdEtleUhhbmRsZXI6IGZ1bmN0aW9uKGV2ZW50LCBmb3JjZSkK
ICAgICB7CiAgICAgICAgIHRoaXMuY2xlYXJBdXRvQ29tcGxldGUoKTsKLSAgICAgICAgdGhpcy5h
dXRvQ29tcGxldGVTb29uKCk7CisgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlU29vbihmb3JjZSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCiAgICAgb25LZXlEb3duOiBmdW5jdGlv
bihldmVudCkKICAgICB7CiAgICAgICAgIHZhciBoYW5kbGVkID0gZmFsc2U7CisgICAgICAgIHZh
ciBpbnZva2VEZWZhdWx0ID0gdHJ1ZTsKIAogICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUlkZW50
aWZpZXIpIHsKLSAgICAgICAgICAgIGNhc2UgIlUrMDAwOSI6IC8vIFRhYgotICAgICAgICAgICAg
ICAgIHRoaXMuY29tcGxldGUoZmFsc2UsIGV2ZW50LnNoaWZ0S2V5KTsKKyAgICAgICAgY2FzZSAi
VXAiOgorICAgICAgICAgICAgaGFuZGxlZCA9IHRoaXMudXBLZXlQcmVzc2VkKGV2ZW50KTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJEb3duIjoKKyAgICAgICAgICAgIGhhbmRs
ZWQgPSB0aGlzLmRvd25LZXlQcmVzc2VkKGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlICJVKzAwMDkiOiAvLyBUYWIKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0aGlzLnRh
YktleVByZXNzZWQoZXZlbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIkVu
dGVyIjoKKyAgICAgICAgICAgIGhhbmRsZWQgPSB0aGlzLmVudGVyS2V5UHJlc3NlZChldmVudCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiUmlnaHQiOgorICAgICAgICBjYXNl
ICJFbmQiOgorICAgICAgICAgICAgaWYgKCF0aGlzLmFjY2VwdEF1dG9Db21wbGV0ZSgpKQorICAg
ICAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlU29vbigpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgIlUrMDAxQiI6IC8vIEVzYworICAgICAgICAgICAgaWYgKHRoaXMuaXNT
dWdnZXN0Qm94VmlzaWJsZSgpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdEJveC5o
aWRlKCk7CiAgICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlICJSaWdodCI6Ci0gICAgICAgICAgICBjYXNlICJFbmQi
OgotICAgICAgICAgICAgICAgIGlmICghdGhpcy5hY2NlcHRBdXRvQ29tcGxldGUoKSkKLSAgICAg
ICAgICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGVTb29uKCk7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlICJBbHQiOgotICAgICAgICAgICAgY2FzZSAiTWV0YSI6
Ci0gICAgICAgICAgICBjYXNlICJTaGlmdCI6Ci0gICAgICAgICAgICBjYXNlICJDb250cm9sIjoK
KyAgICAgICAgICAgIH0KKyAgICAgICAgY2FzZSAiVSswMDIwIjogLy8gU3BhY2UKKyAgICAgICAg
ICAgIGlmICh0aGlzLl9zdWdnZXN0Rm9yY2VhYmxlICYmIGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50
Lm1ldGFLZXkgJiYgIWV2ZW50LmFsdEtleSAmJiAhZXZlbnQuc2hpZnRLZXkpIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLmRlZmF1bHRLZXlIYW5kbGVyKGV2ZW50LCB0cnVlKTsKKyAgICAgICAgICAg
ICAgICBoYW5kbGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRoaXMuZGVmYXVsdEtleUhhbmRs
ZXIoZXZlbnQpCisgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTdWdnZXN0Qm94VmlzaWJs
ZSgpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRoaXMuX3N1Z2dlc3RCb3guc3BhY2VL
ZXlQcmVzc2VkKGV2ZW50KTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgY2FzZSAiQWx0IjoKKyAgICAgICAgY2FzZSAiTWV0YSI6CisgICAgICAgIGNhc2Ug
IlNoaWZ0IjoKKyAgICAgICAgY2FzZSAiQ29udHJvbCI6CisgICAgICAgICAgICBpbnZva2VEZWZh
dWx0ID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIGlm
ICghaGFuZGxlZCAmJiBpbnZva2VEZWZhdWx0KQorICAgICAgICAgICAgaGFuZGxlZCA9IHRoaXMu
ZGVmYXVsdEtleUhhbmRsZXIoZXZlbnQpOworCiAgICAgICAgIGlmIChoYW5kbGVkKSB7CiAgICAg
ICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgZXZlbnQuc3RvcFBy
b3BhZ2F0aW9uKCk7CiAgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFuZGxlZDsKICAgICB9
LAogCiAgICAgYWNjZXB0QXV0b0NvbXBsZXRlOiBmdW5jdGlvbigpCkBAIC0yMTcsNiArMjYzLDkg
QEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXRo
aXMuYXV0b0NvbXBsZXRlRWxlbWVudCB8fCAhdGhpcy5hdXRvQ29tcGxldGVFbGVtZW50LnBhcmVu
dE5vZGUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgaWYgKHRoaXMuaXNT
dWdnZXN0Qm94VmlzaWJsZSgpKQorICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdEJveC5hY2NlcHRT
dWdnZXN0aW9uKCk7CisKICAgICAgICAgdmFyIHRleHQgPSB0aGlzLmF1dG9Db21wbGV0ZUVsZW1l
bnQudGV4dENvbnRlbnQ7CiAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHRleHQpOwogICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZUVsZW1lbnQucGFyZW50Tm9k
ZS5yZXBsYWNlQ2hpbGQodGV4dE5vZGUsIHRoaXMuYXV0b0NvbXBsZXRlRWxlbWVudCk7CkBAIC0y
NzEsMTMgKzMyMCwxOSBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGRlbGV0ZSB0aGlzLl91c2VyRW50ZXJlZFRleHQ7CiAgICAgfSwKIAotICAgIGF1dG9D
b21wbGV0ZVNvb246IGZ1bmN0aW9uKCkKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49
fSBmb3JjZQorICAgICAqLworICAgIGF1dG9Db21wbGV0ZVNvb246IGZ1bmN0aW9uKGZvcmNlKQog
ICAgIHsKICAgICAgICAgaWYgKCEoIl9jb21wbGV0ZVRpbWVvdXQiIGluIHRoaXMpKQotICAgICAg
ICAgICAgdGhpcy5fY29tcGxldGVUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLmNvbXBsZXRlLmJp
bmQodGhpcywgdHJ1ZSksIDI1MCk7CisgICAgICAgICAgICB0aGlzLl9jb21wbGV0ZVRpbWVvdXQg
PSBzZXRUaW1lb3V0KHRoaXMuY29tcGxldGUuYmluZCh0aGlzLCB0cnVlLCBmb3JjZSksIHRoaXMu
aXNTdWdnZXN0Qm94VmlzaWJsZSgpID8gMCA6IDI1MCk7CiAgICAgfSwKIAotICAgIGNvbXBsZXRl
OiBmdW5jdGlvbihhdXRvLCByZXZlcnNlKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVh
bj19IHJldmVyc2UKKyAgICAgKi8KKyAgICBjb21wbGV0ZTogZnVuY3Rpb24oYXV0bywgZm9yY2Us
IHJldmVyc2UpCiAgICAgewogICAgICAgICB0aGlzLmNsZWFyQXV0b0NvbXBsZXRlKHRydWUpOwog
ICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpOwpAQCAtMjg3LDIx
ICszNDIsMzUgQEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlID0gewogICAgICAg
ICB2YXIgc2VsZWN0aW9uUmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTsKICAgICAgICAg
dmFyIGlzRW1wdHlJbnB1dCA9IHNlbGVjdGlvblJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVy
ID09PSB0aGlzLl9lbGVtZW50OyAvLyB0aGlzLl9lbGVtZW50IGhhcyBubyBjaGlsZCBUZXh0IG5v
ZGVzLgogCisgICAgICAgIHZhciBzaG91bGRFeGl0OworCiAgICAgICAgIC8vIERvIG5vdCBhdHRl
bXB0IHRvIGF1dG8tY29tcGxldGUgYW4gZW1wdHkgaW5wdXQgaW4gdGhlIGF1dG8gbW9kZSAob25s
eSBvbiBkZW1hbmQpLgotICAgICAgICBpZiAoYXV0byAmJiBpc0VtcHR5SW5wdXQpCi0gICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIGlmIChhdXRvICYmIGlzRW1wdHlJbnB1dCAmJiAhZm9yY2Up
CisgICAgICAgICAgICBzaG91bGRFeGl0ID0gdHJ1ZTsKICAgICAgICAgaWYgKCFhdXRvICYmICFp
c0VtcHR5SW5wdXQgJiYgIXNlbGVjdGlvblJhbmdlLmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyLmlz
RGVzY2VuZGFudCh0aGlzLl9lbGVtZW50KSkKKyAgICAgICAgICAgIHNob3VsZEV4aXQgPSB0cnVl
OworICAgICAgICBpZiAoYXV0byAmJiAhdGhpcy5pc0NhcmV0QXRFbmRPZlByb21wdCgpICYmICFm
b3JjZSkKKyAgICAgICAgICAgIHNob3VsZEV4aXQgPSB0cnVlOworICAgICAgICBpZiAoc2hvdWxk
RXhpdCkgeworICAgICAgICAgICAgaWYgKHRoaXMuaXNTdWdnZXN0Qm94VmlzaWJsZSgpKQorICAg
ICAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3RCb3guaGlkZSgpOwogICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBpZiAoYXV0byAmJiAhdGhpcy5pc0NhcmV0QXRFbmRPZlByb21wdCgpKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgdmFyIHdvcmRQcmVmaXhSYW5n
ZSA9IHNlbGVjdGlvblJhbmdlLnN0YXJ0Q29udGFpbmVyLnJhbmdlT2ZXb3JkKHNlbGVjdGlvblJh
bmdlLnN0YXJ0T2Zmc2V0LCB0aGlzLl9jb21wbGV0aW9uU3RvcENoYXJhY3RlcnMsIHRoaXMuX2Vs
ZW1lbnQsICJiYWNrd2FyZCIpOwogICAgICAgICB0aGlzLl9sb2FkQ29tcGxldGlvbnMod29yZFBy
ZWZpeFJhbmdlLCBhdXRvLCB0aGlzLl9jb21wbGV0aW9uc1JlYWR5LmJpbmQodGhpcywgc2VsZWN0
aW9uLCBhdXRvLCB3b3JkUHJlZml4UmFuZ2UsIHJldmVyc2UpKTsKICAgICB9LAogCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtBcnJheS48c3RyaW5nPj19IGNvbXBsZXRpb25zCisgICAgICovCiAg
ICAgX2NvbXBsZXRpb25zUmVhZHk6IGZ1bmN0aW9uKHNlbGVjdGlvbiwgYXV0bywgb3JpZ2luYWxX
b3JkUHJlZml4UmFuZ2UsIHJldmVyc2UsIGNvbXBsZXRpb25zKQogICAgIHsKLSAgICAgICAgaWYg
KCFjb21wbGV0aW9ucyB8fCAhY29tcGxldGlvbnMubGVuZ3RoKQorICAgICAgICBpZiAoIWNvbXBs
ZXRpb25zIHx8ICFjb21wbGV0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmlz
U3VnZ2VzdEJveFZpc2libGUoKSkKKyAgICAgICAgICAgICAgICB0aGlzLl9zdWdnZXN0Qm94Lmhp
ZGUoKTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIHZhciBzZWxl
Y3Rpb25SYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApOwogCkBAIC0zMTIsNiArMzgxLDE0
IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKG9y
aWdpbmFsV29yZFByZWZpeFJhbmdlLnRvU3RyaW5nKCkgKyBzZWxlY3Rpb25SYW5nZS50b1N0cmlu
ZygpICE9IGZ1bGxXb3JkUmFuZ2UudG9TdHJpbmcoKSkKICAgICAgICAgICAgIHJldHVybjsKIAor
ICAgICAgICB0aGlzLl91c2VyRW50ZXJlZFJhbmdlID0gZnVsbFdvcmRSYW5nZTsKKyAgICAgICAg
dGhpcy5fdXNlckVudGVyZWRUZXh0ID0gZnVsbFdvcmRSYW5nZS50b1N0cmluZygpOworCisgICAg
ICAgIGlmICh0aGlzLl9zdWdnZXN0Qm94KSB7CisgICAgICAgICAgICB0aGlzLl9zdWdnZXN0Qm94
LnVwZGF0ZVN1Z2dlc3Rpb25zKGNvbXBsZXRpb25zKTsKKyAgICAgICAgICAgIHJldHVybjsgLy8g
RG8gbm90aGluZywgdGhlIHN1Z2dlc3QgYm94IGlzIGRyaXZpbmcgdXMuCisgICAgICAgIH0KKwog
ICAgICAgICB2YXIgd29yZFByZWZpeExlbmd0aCA9IG9yaWdpbmFsV29yZFByZWZpeFJhbmdlLnRv
U3RyaW5nKCkubGVuZ3RoOwogCiAgICAgICAgIGlmIChhdXRvKQpAQCAtMzU2LDE1ICs0MzMsMTAg
QEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fdXNlckVudGVyZWRSYW5nZSA9IGZ1bGxXb3JkUmFu
Z2U7Ci0gICAgICAgIHRoaXMuX3VzZXJFbnRlcmVkVGV4dCA9IGZ1bGxXb3JkUmFuZ2UudG9TdHJp
bmcoKTsKLQotICAgICAgICBmdWxsV29yZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7Ci0gICAgICAg
IHRoaXMuX2VsZW1lbnQucHJ1bmVFbXB0eVRleHROb2RlcygpOwotCi0gICAgICAgIHZhciBmaW5h
bFNlbGVjdGlvblJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKLQogICAgICAgICBpZiAo
YXV0bykgeworICAgICAgICAgICAgdGhpcy5fdXNlckVudGVyZWRSYW5nZS5kZWxldGVDb250ZW50
cygpOworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5wcnVuZUVtcHR5VGV4dE5vZGVzKCk7Cisg
ICAgICAgICAgICB2YXIgZmluYWxTZWxlY3Rpb25SYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdl
KCk7CiAgICAgICAgICAgICB2YXIgcHJlZml4VGV4dCA9IGNvbXBsZXRpb25UZXh0LnN1YnN0cmlu
ZygwLCB3b3JkUHJlZml4TGVuZ3RoKTsKICAgICAgICAgICAgIHZhciBzdWZmaXhUZXh0ID0gY29t
cGxldGlvblRleHQuc3Vic3RyaW5nKHdvcmRQcmVmaXhMZW5ndGgpOwogCkBAIC0zNzksMjAgKzQ1
MSw1NSBAQCBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
ICAgIGZpbmFsU2VsZWN0aW9uUmFuZ2Uuc2V0U3RhcnQocHJlZml4VGV4dE5vZGUsIHdvcmRQcmVm
aXhMZW5ndGgpOwogICAgICAgICAgICAgZmluYWxTZWxlY3Rpb25SYW5nZS5zZXRFbmQocHJlZml4
VGV4dE5vZGUsIHdvcmRQcmVmaXhMZW5ndGgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgdmFyIGNvbXBsZXRpb25UZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbXBs
ZXRpb25UZXh0KTsKLSAgICAgICAgICAgIGZ1bGxXb3JkUmFuZ2UuaW5zZXJ0Tm9kZShjb21wbGV0
aW9uVGV4dE5vZGUpOworICAgICAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpOwor
ICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKGZpbmFsU2VsZWN0aW9uUmFuZ2UpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuYXBwbHlTdWdnZXN0aW9uKGNvbXBsZXRpb25U
ZXh0LCB0cnVlLCBvcmlnaW5hbFdvcmRQcmVmaXhSYW5nZSk7CisgICAgfSwKIAotICAgICAgICAg
ICAgaWYgKGNvbXBsZXRpb25zLmxlbmd0aCA+IDEpCi0gICAgICAgICAgICAgICAgZmluYWxTZWxl
Y3Rpb25SYW5nZS5zZXRTdGFydChjb21wbGV0aW9uVGV4dE5vZGUsIHdvcmRQcmVmaXhMZW5ndGgp
OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGZpbmFsU2VsZWN0aW9uUmFuZ2Uu
c2V0U3RhcnQoY29tcGxldGlvblRleHROb2RlLCBjb21wbGV0aW9uVGV4dC5sZW5ndGgpOworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7UmFuZ2U9fSBvcmlnaW5hbFByZWZpeFJhbmdlCisgICAgICov
CisgICAgYXBwbHlTdWdnZXN0aW9uOiBmdW5jdGlvbihjb21wbGV0aW9uVGV4dCwgaXNJbnRlcm1l
ZGlhdGVTdWdnZXN0aW9uLCBvcmlnaW5hbFByZWZpeFJhbmdlKQorICAgIHsKKyAgICAgICAgdmFy
IHdvcmRQcmVmaXhMZW5ndGg7CisgICAgICAgIGlmIChvcmlnaW5hbFByZWZpeFJhbmdlKQorICAg
ICAgICAgICAgd29yZFByZWZpeExlbmd0aCA9IG9yaWdpbmFsUHJlZml4UmFuZ2UudG9TdHJpbmco
KS5sZW5ndGg7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHdvcmRQcmVmaXhMZW5ndGggPSB0
aGlzLl91c2VyRW50ZXJlZFRleHQgPyB0aGlzLl91c2VyRW50ZXJlZFRleHQubGVuZ3RoIDogMDsK
IAotICAgICAgICAgICAgZmluYWxTZWxlY3Rpb25SYW5nZS5zZXRFbmQoY29tcGxldGlvblRleHRO
b2RlLCBjb21wbGV0aW9uVGV4dC5sZW5ndGgpOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX3Vz
ZXJFbnRlcmVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5w
cnVuZUVtcHR5VGV4dE5vZGVzKCk7CisgICAgICAgIHZhciBmaW5hbFNlbGVjdGlvblJhbmdlID0g
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICAgICAgdmFyIGNvbXBsZXRpb25UZXh0Tm9kZSA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNvbXBsZXRpb25UZXh0KTsKKyAgICAgICAgdGhpcy5f
dXNlckVudGVyZWRSYW5nZS5pbnNlcnROb2RlKGNvbXBsZXRpb25UZXh0Tm9kZSk7CisKKyAgICAg
ICAgaWYgKGlzSW50ZXJtZWRpYXRlU3VnZ2VzdGlvbikKKyAgICAgICAgICAgIGZpbmFsU2VsZWN0
aW9uUmFuZ2Uuc2V0U3RhcnQoY29tcGxldGlvblRleHROb2RlLCB3b3JkUHJlZml4TGVuZ3RoKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmluYWxTZWxlY3Rpb25SYW5nZS5zZXRTdGFydChj
b21wbGV0aW9uVGV4dE5vZGUsIGNvbXBsZXRpb25UZXh0Lmxlbmd0aCk7CiAKKyAgICAgICAgZmlu
YWxTZWxlY3Rpb25SYW5nZS5zZXRFbmQoY29tcGxldGlvblRleHROb2RlLCBjb21wbGV0aW9uVGV4
dC5sZW5ndGgpOworCisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7CiAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKICAgICAgICAgc2VsZWN0
aW9uLmFkZFJhbmdlKGZpbmFsU2VsZWN0aW9uUmFuZ2UpOworICAgICAgICBpZiAoaXNJbnRlcm1l
ZGlhdGVTdWdnZXN0aW9uICYmIHRoaXMuX2FwcGx5Q2FsbGJhY2spCisgICAgICAgICAgICB0aGlz
Ll9hcHBseUNhbGxiYWNrKCk7CisgICAgfSwKKworICAgIGFjY2VwdFN1Z2dlc3Rpb246IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuYWNjZXB0QXV0b0NvbXBsZXRlKCk7CisgICAgICAg
IGlmICh0aGlzLl9zdWdnZXN0Qm94KQorICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdEJveC5oaWRl
KCk7CisgICAgICAgIGlmICh0aGlzLl9hY2NlcHRDYWxsYmFjaykKKyAgICAgICAgICAgIHRoaXMu
X2FjY2VwdENhbGxiYWNrKCk7CisgICAgfSwKKworICAgIGlzU3VnZ2VzdEJveFZpc2libGU6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zdWdnZXN0Qm94ICYmIHRoaXMu
X3N1Z2dlc3RCb3gudmlzaWJsZTsKICAgICB9LAogCiAgICAgaXNDYXJldEluc2lkZVByb21wdDog
ZnVuY3Rpb24oKQpAQCAtNDgzLDE4ICs1OTAsNjUgQEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQu
cHJvdG90eXBlID0gewogCiAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKICAg
ICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHNlbGVjdGlvblJhbmdlKTsKKyAgICB9LAorCisgICAg
dGFiS2V5UHJlc3NlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBpZiAodGhpcy5p
c1N1Z2dlc3RCb3hWaXNpYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdEJv
eC50YWJLZXlQcmVzc2VkKGV2ZW50KTsKKworICAgICAgICB0aGlzLmNvbXBsZXRlKGZhbHNlLCBm
YWxzZSwgZXZlbnQuc2hpZnRLZXkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisg
ICAgZW50ZXJLZXlQcmVzc2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmICh0
aGlzLmlzU3VnZ2VzdEJveFZpc2libGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdWdn
ZXN0Qm94LmVudGVyS2V5UHJlc3NlZChldmVudCk7CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0sCisKKyAgICB1cEtleVByZXNzZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuaXNTdWdnZXN0Qm94VmlzaWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3N1Z2dlc3RCb3gudXBLZXlQcmVzc2VkKGV2ZW50KTsKKworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfSwKKworICAgIGRvd25LZXlQcmVzc2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIGlmICh0aGlzLmlzU3VnZ2VzdEJveFZpc2libGUoKSkKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9zdWdnZXN0Qm94LmRvd25LZXlQcmVzc2VkKGV2ZW50KTsKKworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogfQogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFt
IHtzdHJpbmc9fSBzdHlsZUNsYXNzCisgKiBAcGFyYW0ge2Z1bmN0aW9uKCopPX0gYXBwbHlJdGVt
Q2FsbGJhY2sKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKik9fSBhY2NlcHRJdGVtQ2FsbGJhY2sKKyAq
LworV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuU3VnZ2VzdEJveENvbmZpZyA9IGZ1bmN0aW9uKHN0
eWxlQ2xhc3MsIGFwcGx5SXRlbUNhbGxiYWNrLCBhY2NlcHRJdGVtQ2FsbGJhY2spCit7CisgICAg
dGhpcy5zdHlsZUNsYXNzID0gc3R5bGVDbGFzczsKKyAgICB0aGlzLmFwcGx5SXRlbUNhbGxiYWNr
ID0gYXBwbHlJdGVtQ2FsbGJhY2s7CisgICAgdGhpcy5hY2NlcHRJdGVtQ2FsbGJhY2sgPSBhY2Nl
cHRJdGVtQ2FsbGJhY2s7Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlRleHRQcm9tcHR9CiAgKiBAcGFyYW0ge2Z1bmN0aW9uKFJhbmdlLCBib29s
ZWFuLCBmdW5jdGlvbigqKSl9IGNvbXBsZXRpb25zCiAgKiBAcGFyYW0ge3N0cmluZ30gc3RvcENo
YXJhY3RlcnMKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuU3VnZ2VzdEJveENv
bmZpZz19IHN1Z2dlc3RCb3hDb25maWcKICAqLwotV2ViSW5zcGVjdG9yLlRleHRQcm9tcHRXaXRo
SGlzdG9yeSA9IGZ1bmN0aW9uKGNvbXBsZXRpb25zLCBzdG9wQ2hhcmFjdGVycykKK1dlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0V2l0aEhpc3RvcnkgPSBmdW5jdGlvbihjb21wbGV0aW9ucywgc3RvcENo
YXJhY3RlcnMsIHN1Z2dlc3RCb3hDb25maWcpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLlRleHRQcm9t
cHQuY2FsbCh0aGlzLCBjb21wbGV0aW9ucywgc3RvcENoYXJhY3RlcnMpOworICAgIFdlYkluc3Bl
Y3Rvci5UZXh0UHJvbXB0LmNhbGwodGhpcywgY29tcGxldGlvbnMsIHN0b3BDaGFyYWN0ZXJzLCBz
dWdnZXN0Qm94Q29uZmlnKTsKIAogICAgIC8qKgogICAgICAqIEB0eXBlIHtBcnJheS48c3RyaW5n
Pn0KQEAgLTU5Myw3ICs3NDcsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHRXaXRoSGlzdG9y
eS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW3RoaXMuX2RhdGEubGVu
Z3RoIC0gdGhpcy5faGlzdG9yeU9mZnNldF07CiAgICAgfSwKIAotICAgIGRlZmF1bHRLZXlIYW5k
bGVyOiBmdW5jdGlvbihldmVudCkKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUKKyAgICAgKi8K
KyAgICBkZWZhdWx0S2V5SGFuZGxlcjogZnVuY3Rpb24oZXZlbnQsIGZvcmNlKQogICAgIHsKICAg
ICAgICAgdmFyIG5ld1RleHQ7CiAgICAgICAgIHZhciBpc1ByZXZpb3VzOwpAQCAtNjQ2LDggKzgw
MywyOTUgQEAgV2ViSW5zcGVjdG9yLlRleHRQcm9tcHRXaXRoSGlzdG9yeS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBX
ZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIuY2FsbCh0
aGlzLCBldmVudCk7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5wcm90
b3R5cGUuZGVmYXVsdEtleUhhbmRsZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICB9CiB9
CiAKIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0V2l0aEhpc3RvcnkucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3Ry
dWN0b3IKKyAqLworV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQuU3VnZ2VzdEJveCA9IGZ1bmN0aW9u
KHRleHRQcm9tcHQsIGlucHV0RWxlbWVudCwgY2xhc3NOYW1lKQoreworICAgIHRoaXMuX3RleHRQ
cm9tcHQgPSB0ZXh0UHJvbXB0OworICAgIHRoaXMuX3BhcmVudEVsZW1lbnQgPSBpbnB1dEVsZW1l
bnQub3duZXJEb2N1bWVudC5ib2R5OworICAgIHRoaXMuX2lucHV0RWxlbWVudCA9IGlucHV0RWxl
bWVudDsKKyAgICB0aGlzLl9zZWxlY3RlZEVsZW1lbnQgPSBudWxsOworICAgIHRoaXMuX2JvdW5k
T25TY3JvbGwgPSB0aGlzLl9vbnNjcm9sbHJlc2l6ZS5iaW5kKHRoaXMsIHRydWUpOworICAgIHRo
aXMuX2JvdW5kT25SZXNpemUgPSB0aGlzLl9vbnNjcm9sbHJlc2l6ZS5iaW5kKHRoaXMsIGZhbHNl
KTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fYm91bmRPblNj
cm9sbCwgdHJ1ZSk7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHRoaXMu
X2JvdW5kT25SZXNpemUsIHRydWUpOworCisgICAgdGhpcy5fZWxlbWVudCA9IHRoaXMuX3BhcmVu
dEVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIsICJzdWdnZXN0LWJveCBjdXN0b20tcG9wdXAtdmVy
dGljYWwtc2Nyb2xsIGN1c3RvbS1wb3B1cC1ob3Jpem9udGFsLXNjcm9sbCAiICsgKGNsYXNzTmFt
ZSB8fCAiIikpOworICAgIHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
IiwgdGhpcy5fb25ib3htb3VzZWRvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5jb250
YWluZXJFbGVtZW50ID0gdGhpcy5fZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2IiwgImNvbnRhaW5l
ciIpOworICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lckVsZW1lbnQuY3Jl
YXRlQ2hpbGQoImRpdiIsICJjb250ZW50Iik7CisKKyAgICB0aGlzLl91cGRhdGVCb3hQb3NpdGlv
bigpOworfQorCitXZWJJbnNwZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnByb3RvdHlwZSA9
IHsKKyAgICBnZXQgdmlzaWJsZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVu
dC5oYXNTdHlsZUNsYXNzKCJ2aXNpYmxlIik7CisgICAgfSwKKworICAgIGdldCBoYXNTZWxlY3Rp
b24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuICEhdGhpcy5fc2VsZWN0ZWRFbGVtZW50OworICAg
IH0sCisKKyAgICBfb25zY3JvbGxyZXNpemU6IGZ1bmN0aW9uKGlzU2Nyb2xsLCBldmVudCkKKyAg
ICB7CisgICAgICAgIGlmIChpc1Njcm9sbCAmJiB0aGlzLl9lbGVtZW50LmlzQW5jZXN0b3IoZXZl
bnQudGFyZ2V0KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fdXBkYXRlQm94
UG9zaXRpb24oKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZUJveFBvc2l0aW9uOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICAvLyBNZWFzdXJlIHRoZSBjb250ZW50IGVsZW1lbnQgYm94LgorICAg
ICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAiaW5saW5lLWJsb2NrIjsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRFbGVtZW50KTsK
KyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5wb3NpdGlvbkF0KDAsIDApOworICAgICAgICB2
YXIgY29udGVudFdpZHRoID0gdGhpcy5jb250ZW50RWxlbWVudC5vZmZzZXRXaWR0aDsKKyAgICAg
ICAgdmFyIGNvbnRlbnRIZWlnaHQgPSB0aGlzLmNvbnRlbnRFbGVtZW50Lm9mZnNldEhlaWdodDsK
KyAgICAgICAgdGhpcy5jb250ZW50RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAg
ICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY29udGVudEVsZW1l
bnQpOworCisgICAgICAgIC8vIExheSBvdXQgdGhlIHN1Z2dlc3QtYm94IHJlbGF0aXZlIHRvIHRo
ZSBhbmNob3JCb3guCisgICAgICAgIGNvbnN0IGFuY2hvckJveCA9IHRoaXMuX2lucHV0RWxlbWVu
dC5ib3hJbldpbmRvdyh3aW5kb3csIHRoaXMuX3BhcmVudEVsZW1lbnQpOworICAgICAgICBjb25z
dCBzdWdnZXN0Qm94UGFkZGluZ1ggPSAyMTsKKyAgICAgICAgY29uc3Qgc3VnZ2VzdEJveFBhZGRp
bmdZID0gMTI7CisgICAgICAgIGNvbnN0IHNwYWNlciA9IDY7CisgICAgICAgIGNvbnN0IG1pbkhl
aWdodCA9IDUwOworICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGRvY3VtZW50LmJvZHkub2Zmc2V0
V2lkdGggLSBhbmNob3JCb3gueCAtIHNwYWNlcjsKKyAgICAgICAgY29uc3Qgd2lkdGggPSBNYXRo
Lm1pbihjb250ZW50V2lkdGgsIG1heFdpZHRoIC0gc3VnZ2VzdEJveFBhZGRpbmdYKSArIHN1Z2dl
c3RCb3hQYWRkaW5nWDsKKworICAgICAgICB2YXIgbWF4SGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5v
ZmZzZXRIZWlnaHQgLSBhbmNob3JCb3gueSAtIGFuY2hvckJveC5oZWlnaHQgLSBzcGFjZXI7Cisg
ICAgICAgIHZhciBwYWRkZWRIZWlnaHQgPSBjb250ZW50SGVpZ2h0ICsgc3VnZ2VzdEJveFBhZGRp
bmdZOworICAgICAgICB2YXIgaGVpZ2h0ID0gTWF0aC5taW4ocGFkZGVkSGVpZ2h0LCBtYXhIZWln
aHQpOworICAgICAgICBpZiAoaGVpZ2h0ID49IG1pbkhlaWdodCB8fCBoZWlnaHQgPT09IHBhZGRl
ZEhlaWdodCkgeworICAgICAgICAgICAgLy8gTG9jYXRlIHRoZSBzdWdnZXN0IGJveCB1bmRlciB0
aGUgYW5jaG9yQm94LgorICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5wb3NpdGlvbkF0KGFuY2hv
ckJveC54LCBhbmNob3JCb3gueSArIGFuY2hvckJveC5oZWlnaHQpOworICAgICAgICAgICAgdGhp
cy5fZWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJhYm92ZS1hbmNob3IiKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIC8vIExvY2F0ZSB0aGUgc3VnZ2VzdCBib3ggYWJvdmUgdGhlIGFu
Y2hvckJveC4KKyAgICAgICAgICAgIG1heEhlaWdodCA9IGFuY2hvckJveC55IC0gc3BhY2VyOwor
ICAgICAgICAgICAgaGVpZ2h0ID0gTWF0aC5taW4oY29udGVudEhlaWdodCwgbWF4SGVpZ2h0IC0g
c3VnZ2VzdEJveFBhZGRpbmdZKSArIHN1Z2dlc3RCb3hQYWRkaW5nWTsKKyAgICAgICAgICAgIHRo
aXMuX2VsZW1lbnQucG9zaXRpb25BdChhbmNob3JCb3gueCwgYW5jaG9yQm94LnkgLSBoZWlnaHQp
OworICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJhYm92ZS1hbmNob3Ii
KTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoID0gd2lkdGgg
KyAicHgiOworICAgICAgICB0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodCA9IGhlaWdodCArICJw
eCI7CisgICAgfSwKKworICAgIF9vbmJveG1vdXNlZG93bjogZnVuY3Rpb24oZXZlbnQpCisgICAg
eworICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBoaWRlOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICB0aGlzLl9lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInZpc2li
bGUiKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkRWxlbWVudDsKKyAgICB9LAorCisg
ICAgcmVtb3ZlRnJvbUVsZW1lbnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHdpbmRvdy5y
ZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9ib3VuZE9uU2Nyb2xsLCB0cnVlKTsK
KyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHRoaXMuX2JvdW5k
T25SZXNpemUsIHRydWUpOworICAgICAgICB0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQucmVt
b3ZlQ2hpbGQodGhpcy5fZWxlbWVudCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nPX0gdGV4dAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGlzSW50ZXJtZWRpYXRl
U3VnZ2VzdGlvbgorICAgICAqLworICAgIF9hcHBseVN1Z2dlc3Rpb246IGZ1bmN0aW9uKHRleHQs
IGlzSW50ZXJtZWRpYXRlU3VnZ2VzdGlvbikKKyAgICB7CisgICAgICAgIGlmICghdGhpcy52aXNp
YmxlIHx8ICEodGV4dCB8fCB0aGlzLl9zZWxlY3RlZEVsZW1lbnQpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIHZhciBzdWdnZXN0aW9uID0gdGV4dCB8fCB0aGlzLl9zZWxl
Y3RlZEVsZW1lbnQudGV4dENvbnRlbnQ7CisgICAgICAgIGlmICghc3VnZ2VzdGlvbikKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICB0aGlzLl90ZXh0UHJvbXB0LmFwcGx5U3Vn
Z2VzdGlvbihzdWdnZXN0aW9uLCBpc0ludGVybWVkaWF0ZVN1Z2dlc3Rpb24pOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSB0
ZXh0CisgICAgICovCisgICAgYWNjZXB0U3VnZ2VzdGlvbjogZnVuY3Rpb24odGV4dCkKKyAgICB7
CisgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9hcHBseVN1Z2dlc3Rpb24odGV4dCwgZmFsc2Up
OworICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgdGhpcy5fdGV4dFByb21wdC5hY2NlcHRTdWdnZXN0
aW9uKCk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIF9vbk5leHRJdGVt
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY29u
dGVudEVsZW1lbnQuY2hpbGROb2RlczsKKyAgICAgICAgaWYgKCFjaGlsZHJlbi5sZW5ndGgpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRWxl
bWVudCkKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IHRoaXMuX3NlbGVjdGVk
RWxlbWVudC5uZXh0U2libGluZyB8fCB0aGlzLmNvbnRlbnRFbGVtZW50LmZpcnN0Q2hpbGQ7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IHRoaXMuY29u
dGVudEVsZW1lbnQuZmlyc3RDaGlsZDsKKyAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uKCk7
CisgICAgICAgIHRoaXMuX2FwcGx5U3VnZ2VzdGlvbih1bmRlZmluZWQsIHRydWUpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgX29uUHJldmlvdXNJdGVtOiBmdW5jdGlvbihl
dmVudCkKKyAgICB7CisgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY29udGVudEVsZW1lbnQu
Y2hpbGROb2RlczsKKyAgICAgICAgaWYgKCFjaGlsZHJlbi5sZW5ndGgpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRWxlbWVudCkKKyAgICAg
ICAgICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IHRoaXMuX3NlbGVjdGVkRWxlbWVudC5wcmV2
aW91c1NpYmxpbmcgfHwgdGhpcy5jb250ZW50RWxlbWVudC5sYXN0Q2hpbGQ7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IHRoaXMuY29udGVudEVsZW1l
bnQubGFzdENoaWxkOworICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb24oKTsKKyAgICAgICAg
dGhpcy5fYXBwbHlTdWdnZXN0aW9uKHVuZGVmaW5lZCwgdHJ1ZSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0g
Y29tcGxldGlvbnMKKyAgICAgKi8KKyAgICB1cGRhdGVTdWdnZXN0aW9uc1Nvb246IGZ1bmN0aW9u
KGNvbXBsZXRpb25zKQorICAgIHsKKyAgICAgICAgaWYgKCEoIl9zdWdnZXN0VGltZW91dCIgaW4g
dGhpcykpCisgICAgICAgICAgICB0aGlzLl9zdWdnZXN0VGltZW91dCA9IHNldFRpbWVvdXQodGhp
cy51cGRhdGVTdWdnZXN0aW9ucy5iaW5kKHRoaXMsIGNvbXBsZXRpb25zKSwgMTApOworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0gY29tcGxldGlvbnMK
KyAgICAgKi8KKyAgICB1cGRhdGVTdWdnZXN0aW9uczogZnVuY3Rpb24oY29tcGxldGlvbnMpCisg
ICAgeworICAgICAgICBpZiAoIl9zdWdnZXN0VGltZW91dCIgaW4gdGhpcykgeworICAgICAgICAg
ICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N1Z2dlc3RUaW1lb3V0KTsKKyAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9zdWdnZXN0VGltZW91dDsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9jb21wbGV0
aW9uc1JlYWR5KGNvbXBsZXRpb25zKTsKKyAgICB9LAorCisgICAgX29uSXRlbU1vdXNlRG93bjog
ZnVuY3Rpb24odGV4dCwgZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLmFjY2VwdFN1Z2dlc3Rp
b24odGV4dCk7CisgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBfY3JlYXRlSXRlbUVsZW1lbnQ6IGZ1
bmN0aW9uKHByZWZpeCwgdGV4dCkKKyAgICB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGVsZW1lbnQuY2xhc3NOYW1lID0gInN1
Z2dlc3QtYm94LWNvbnRlbnQtaXRlbSBzb3VyY2UtY29kZSI7CisgICAgICAgIGVsZW1lbnQudGFi
SW5kZXggPSAtMTsKKyAgICAgICAgaWYgKHByZWZpeCAmJiBwcmVmaXgubGVuZ3RoICYmICF0ZXh0
LmluZGV4T2YocHJlZml4KSkgeworICAgICAgICAgICAgdmFyIHByZWZpeEVsZW1lbnQgPSBlbGVt
ZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgInByZWZpeCIpOworICAgICAgICAgICAgcHJlZml4RWxl
bWVudC50ZXh0Q29udGVudCA9IHByZWZpeDsKKyAgICAgICAgICAgIHZhciBzdWZmaXhFbGVtZW50
ID0gZWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJzdWZmaXgiKTsKKyAgICAgICAgICAgIHN1
ZmZpeEVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBzdWZmaXhFbGVtZW50ID0gZWxlbWVu
dC5jcmVhdGVDaGlsZCgic3BhbiIsICJzdWZmaXgiKTsKKyAgICAgICAgICAgIHN1ZmZpeEVsZW1l
bnQudGV4dENvbnRlbnQgPSB0ZXh0OworICAgICAgICB9CisgICAgICAgIGVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fb25JdGVtTW91c2VEb3duLmJpbmQodGhpcywg
dGV4dCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgfSwKKworICAgIF91
cGRhdGVJdGVtczogZnVuY3Rpb24oaXRlbXMpCisgICAgeworICAgICAgICB2YXIgY2hpbGRyZW4g
PSB0aGlzLmNvbnRlbnRFbGVtZW50LmNoaWxkcmVuOworICAgICAgICB0aGlzLl9zZWxlY3RlZElu
ZGV4ID0gTWF0aC5taW4oY2hpbGRyZW4ubGVuZ3RoIC0gMSwgdGhpcy5fc2VsZWN0ZWRJbmRleCk7
CisgICAgICAgIHZhciBzZWxlY3RlZEl0ZW1UZXh0ID0gdGhpcy5fc2VsZWN0ZWRJbmRleCA+PSAw
ID8gY2hpbGRyZW5bdGhpcy5fc2VsZWN0ZWRJbmRleF0udGV4dENvbnRlbnQgOiBudWxsOworICAg
ICAgICB2YXIgaXRlbUluZGV4ID0gMDsKKyAgICAgICAgdmFyIGNoaWxkID0gdGhpcy5jb250ZW50
RWxlbWVudC5maXJzdENoaWxkOworICAgICAgICB2YXIgY2hpbGRUZXh0ID0gY2hpbGQgPyBjaGls
ZC50ZXh0Q29udGVudCA6IG51bGw7CisgICAgICAgIHRoaXMuY29udGVudEVsZW1lbnQucmVtb3Zl
Q2hpbGRyZW4oKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkRWxlbWVudDsKKworICAg
ICAgICB2YXIgdXNlckVudGVyZWRUZXh0ID0gdGhpcy5fdGV4dFByb21wdC5fdXNlckVudGVyZWRU
ZXh0OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgaXRlbSA9IGl0ZW1zW2ldOworICAgICAgICAgICAgdmFyIGN1cnJlbnRJ
dGVtRWxlbWVudCA9IHRoaXMuX2NyZWF0ZUl0ZW1FbGVtZW50KHVzZXJFbnRlcmVkVGV4dCwgaXRl
bSk7CisgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbGVtZW50LmFwcGVuZENoaWxkKGN1cnJlbnRJ
dGVtRWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb24o
KTsKKyAgICB9LAorCisgICAgX3VwZGF0ZVNlbGVjdGlvbjogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgLy8gRklYTUU6IG1pZ2h0IHdhbnQgc29tZSBvcHRpbWl6YXRpb24gaWYgYmVjb21lcyBh
IGJvdHRsZW5lY2suCisgICAgICAgIGZvciAodmFyIGNoaWxkID0gdGhpcy5jb250ZW50RWxlbWVu
dC5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykgeworICAgICAg
ICAgICAgaWYgKGNoaWxkICE9PSB0aGlzLl9zZWxlY3RlZEVsZW1lbnQpCisgICAgICAgICAgICAg
ICAgY2hpbGQucmVtb3ZlU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAodGhpcy5fc2VsZWN0ZWRFbGVtZW50KSB7CisgICAgICAgICAgICB0aGlzLl9zZWxlY3Rl
ZEVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKKyAgICAgICAgICAgIHRoaXMuX3Nl
bGVjdGVkRWxlbWVudC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKGZhbHNlKTsKKyAgICAgICAgfQor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0gY29tcGxl
dGlvbnMKKyAgICAgKi8KKyAgICBfY29tcGxldGlvbnNSZWFkeTogZnVuY3Rpb24oY29tcGxldGlv
bnMpCisgICAgeworICAgICAgICBpZiAoIWNvbXBsZXRpb25zIHx8ICFjb21wbGV0aW9ucy5sZW5n
dGgpIHsKKyAgICAgICAgICAgIHRoaXMuaGlkZSgpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICB0aGlzLl91cGRhdGVJdGVtcyhjb21wbGV0aW9ucyk7CisgICAgICAg
IHRoaXMuX3VwZGF0ZUJveFBvc2l0aW9uKCk7CisgICAgICAgIGlmICh0aGlzLmNvbnRlbnRFbGVt
ZW50LmNoaWxkcmVuLmxlbmd0aCAmJiAodGhpcy5jb250ZW50RWxlbWVudC5jaGlsZHJlbi5sZW5n
dGggPiAxIHx8IHRoaXMuY29udGVudEVsZW1lbnQuY2hpbGRyZW5bMF0udGV4dENvbnRlbnQubGVu
Z3RoICE9PSB0aGlzLl90ZXh0UHJvbXB0Ll91c2VyRW50ZXJlZFRleHQubGVuZ3RoKSkgeworICAg
ICAgICAgICAgLy8gV2lsbCBub3QgYmUgc2hvd24gaWYgYSBzb2xlIHN1Z2dlc3Rpb24gaXMgZXF1
YWwgdG8gdGhlIHVzZXIgaW5wdXQuCisgICAgICAgICAgICB0aGlzLl9lbGVtZW50LmFkZFN0eWxl
Q2xhc3MoInZpc2libGUiKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLmhpZGUo
KTsKKyAgICB9LAorCisgICAgdXBLZXlQcmVzc2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9vblByZXZpb3VzSXRlbShldmVudCk7CisgICAgfSwKKworICAg
IGRvd25LZXlQcmVzc2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9vbk5leHRJdGVtKGV2ZW50KTsKKyAgICB9LAorCisgICAgZW50ZXJLZXlQcmVzc2VkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmFjY2VwdFN1Z2dlc3Rp
b24oKTsKKyAgICB9LAorCisgICAgdGFiS2V5UHJlc3NlZDogZnVuY3Rpb24oZXZlbnQpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5lbnRlcktleVByZXNzZWQoZXZlbnQpOworICAgIH0sCisK
KyAgICBzcGFjZUtleVByZXNzZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhp
cy5hY2NlcHRTdWdnZXN0aW9uKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gRG8gbm90IGlu
aGliaXQgYSB3aGl0ZXNwYWNlIGVudHJ5IGFmdGVyIHRoZSBzdWdnZXN0aW9uLgorICAgIH0KK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFy
YyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCA4
OGEyMmFjLi5hODBiZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XZWJLaXQucXJjCkBAIC0xNjgsNiArMTY4LDcgQEAKICAgICA8ZmlsZT5yZXNvdXJjZVZpZXcu
Y3NzPC9maWxlPgogICAgIDxmaWxlPnJlc291cmNlc1BhbmVsLmNzczwvZmlsZT4KICAgICA8Zmls
ZT5zY3JpcHRzUGFuZWwuY3NzPC9maWxlPgorICAgIDxmaWxlPnRleHRQcm9tcHQuY3NzPC9maWxl
PgogICAgIDxmaWxlPnRleHRWaWV3ZXIuY3NzPC9maWxlPgogICAgIDxmaWxlPnRpbWVsaW5lUGFu
ZWwuY3NzPC9maWxlPgogICAgIDxmaWxlPkltYWdlcy9hcHBsaWNhdGlvbkNhY2hlLnBuZzwvZmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNz
cwppbmRleCBhZmYzYjBlLi42MjYyZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0yMzMyLDcgKzIzMzIsNyBAQCBhLndvcmtl
ci1pdGVtOmhvdmVyIHsKICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICAgYmFja2dyb3VuZC1j
b2xvcjogI0VCRUJFQjsKICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0JCQjsKLSAgICAK
KwogICAgIGZvbnQtc2l6ZTogMTFweDsKIH0KIApAQCAtMjQ4Nyw3ICsyNDg3LDcgQEAgYm9keS5w
bGF0Zm9ybS1tYWMgI2RyYXdlci1zdGF0dXMtYmFyIC5zZWFyY2gtc3RhdHVzLWJhci1wcm9ncmVz
cyB7CiAKICNzZWFyY2gtcmVzdWx0cy1wYW5lLWZpbGUtYmFzZWQgLnNlYXJjaC1tYXRjaCAuc2Vh
cmNoLW1hdGNoLWNvbnRlbnQgewogICAgIGNvbG9yOiAjMDAwOwotICAgIHdoaXRlLXNwYWNlOiBw
cmU7ICAgIAorICAgIHdoaXRlLXNwYWNlOiBwcmU7CiB9CiAKIC5yZWNvcmQtcHJvZmlsZS1zdGF0
dXMtYmFyLWl0ZW0gLmdseXBoIHsKQEAgLTI1MTYsMyArMjUxNiwxMTIgQEAgYm9keS5wbGF0Zm9y
bS1tYWMgI2RyYXdlci1zdGF0dXMtYmFyIC5zZWFyY2gtc3RhdHVzLWJhci1wcm9ncmVzcyB7CiAg
ICAgcGFkZGluZzogMTBweDsKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiB9CisKKy8qIEN1
c3RvbSBwb3B1cCBzY3JvbGxlcnMgKi8KKworLmN1c3RvbS1wb3B1cC1ob3Jpem9udGFsLXNjcm9s
bCA6Oi13ZWJraXQtc2Nyb2xsYmFyLCAuY3VzdG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13
ZWJraXQtc2Nyb2xsYmFyIHsKKyAgICB3aWR0aDogMTFweDsKKyAgICBoZWlnaHQ6IDExcHg7Cit9
CisKKy5jdXN0b20tcG9wdXAtaG9yaXpvbnRhbC1zY3JvbGwgOjotd2Via2l0LXNjcm9sbGJhci1j
b3JuZXIsIC5jdXN0b20tcG9wdXAtdmVydGljYWwtc2Nyb2xsIDo6LXdlYmtpdC1zY3JvbGxiYXIt
Y29ybmVyIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCisuY3VzdG9tLXBvcHVwLWhvcml6b250
YWwtc2Nyb2xsIDo6LXdlYmtpdC1yZXNpemVyLCAuY3VzdG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9s
bCA6Oi13ZWJraXQtcmVzaXplciB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKworLmN1c3RvbS1w
b3B1cC1ob3Jpem9udGFsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiwgLmN1c3Rv
bS1wb3B1cC12ZXJ0aWNhbC1zY3JvbGwgOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24geworICAg
IGRpc3BsYXk6IG5vbmU7Cit9CisKKy8qIEN1c3RvbSBIb3Jpem9udGFsIFNjcm9sbGJhciBTdHls
ZXMgKi8KKworLmN1c3RvbS1wb3B1cC1ob3Jpem9udGFsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xs
YmFyOmhvcml6b250YWw6Y29ybmVyLXByZXNlbnQgeworICAgIGJvcmRlci1yaWdodC13aWR0aDog
MDsKK30KKworLmN1c3RvbS1wb3B1cC1ob3Jpem9udGFsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xs
YmFyLXRodW1iOmhvcml6b250YWwgeworICAgIC13ZWJraXQtYm9yZGVyLWltYWdlOiB1cmwoSW1h
Z2VzL3RodW1iSG9yaXoucG5nKSAwIDExIDAgMTE7CisgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3Bh
cmVudDsKKyAgICBib3JkZXItd2lkdGg6IDAgMTFweDsKKyAgICBtaW4td2lkdGg6IDIwcHg7Cit9
CisKKy5jdXN0b20tcG9wdXAtaG9yaXpvbnRhbC1zY3JvbGwgOjotd2Via2l0LXNjcm9sbGJhci10
aHVtYjpob3Jpem9udGFsOmhvdmVyIHsKKyAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKElt
YWdlcy90aHVtYkhvdmVySG9yaXoucG5nKSAwIDExIDAgMTE7Cit9CisKKy5jdXN0b20tcG9wdXAt
aG9yaXpvbnRhbC1zY3JvbGwgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3Jpem9udGFsOmFj
dGl2ZSB7CisgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdGh1bWJBY3RpdmVI
b3Jpei5wbmcpIDAgMTEgMCAxMTsKK30KKworLmN1c3RvbS1wb3B1cC1ob3Jpem9udGFsLXNjcm9s
bCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOmhvcml6b250YWw6c3RhcnQgeworICAg
IG1hcmdpbi1sZWZ0OiA1cHg7Cit9CisKKy5jdXN0b20tcG9wdXAtaG9yaXpvbnRhbC1zY3JvbGwg
Ojotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZTpob3Jpem9udGFsOmVuZCB7CisgICAgbWFy
Z2luLXJpZ2h0OiA1cHg7Cit9CisKKy5jdXN0b20tcG9wdXAtaG9yaXpvbnRhbC1zY3JvbGwgOjot
d2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZTpob3Jpem9udGFsOmVuZDpjb3JuZXItcHJlc2Vu
dCB7CisgICAgbWFyZ2luLXJpZ2h0OiA0cHg7Cit9CisKKy5jdXN0b20tcG9wdXAtaG9yaXpvbnRh
bC1zY3JvbGwgOjotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZTpob3Jpem9udGFsOmRlY3Jl
bWVudCB7CisgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdHJhY2tIb3Jpei5w
bmcpIDAgMTEgMCAxMTsKKyAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OworICAgIGJvcmRl
ci13aWR0aDogMCAwIDAgMTFweDsKK30KKworLmN1c3RvbS1wb3B1cC1ob3Jpem9udGFsLXNjcm9s
bCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOmhvcml6b250YWw6aW5jcmVtZW50IHsK
KyAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90cmFja0hvcml6LnBuZykgMCAx
MSAwIDExOworICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7CisgICAgYm9yZGVyLXdpZHRo
OiAwIDExcHggMCAwOworfQorCisvKiBDdXN0b20gVmVydGljYWwgU2Nyb2xsYmFyIFN0eWxlcyAq
LworCisuY3VzdG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyOnZl
cnRpY2FsOmNvcm5lci1wcmVzZW50IHsKKyAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwOworfQor
CisuY3VzdG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1i
OnZlcnRpY2FsIHsKKyAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aHVtYlZl
cnQucG5nKSAxMSAwIDExIDA7CisgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICBi
b3JkZXItd2lkdGg6IDExcHggMDsKKyAgICBtaW4taGVpZ2h0OiAyMHB4OworfQorCisuY3VzdG9t
LXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOnZlcnRpY2Fs
OmhvdmVyIHsKKyAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aHVtYkhvdmVy
VmVydC5wbmcpIDExIDAgMTEgMDsKK30KKworLmN1c3RvbS1wb3B1cC12ZXJ0aWNhbC1zY3JvbGwg
Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjp2ZXJ0aWNhbDphY3RpdmUgeworICAgIC13ZWJraXQt
Ym9yZGVyLWltYWdlOiB1cmwoSW1hZ2VzL3RodW1iQWN0aXZlVmVydC5wbmcpIDExIDAgMTEgMDsK
K30KKworLmN1c3RvbS1wb3B1cC12ZXJ0aWNhbC1zY3JvbGwgOjotd2Via2l0LXNjcm9sbGJhci10
cmFjay1waWVjZTp2ZXJ0aWNhbDpzdGFydCB7CisgICAgbWFyZ2luLXRvcDogNXB4OworfQorCisu
Y3VzdG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBp
ZWNlOnZlcnRpY2FsOmVuZCB7CisgICAgbWFyZ2luLWJvdHRvbTogNXB4OworfQorCisuY3VzdG9t
LXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOnZl
cnRpY2FsOmVuZDpjb3JuZXItcHJlc2VudCB7CisgICAgbWFyZ2luLWJvdHRvbTogNHB4OworfQor
CisuY3VzdG9tLXBvcHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNr
LXBpZWNlOnZlcnRpY2FsOmRlY3JlbWVudCB7CisgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVy
bChJbWFnZXMvdHJhY2tWZXJ0LnBuZykgMTEgMCAxMSAwOworICAgIGJvcmRlci1jb2xvcjogdHJh
bnNwYXJlbnQ7CisgICAgYm9yZGVyLXdpZHRoOiAxMXB4IDAgMCAwOworfQorCisuY3VzdG9tLXBv
cHVwLXZlcnRpY2FsLXNjcm9sbCA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOnZlcnRp
Y2FsOmluY3JlbWVudCB7CisgICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdHJh
Y2tWZXJ0LnBuZykgMTEgMCAxMSAwOworICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7Cisg
ICAgYm9yZGVyLXdpZHRoOiAwIDAgMTFweCAwOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wb3BvdmVyLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvcG9wb3Zlci5jc3MKaW5kZXggNzM5MjFhNy4uY2YxNGVkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9wb3BvdmVyLmNzcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3BvcG92ZXIuY3NzCkBAIC04OCwx
MTQgKzg4LDMgQEAKICAgICBtYXJnaW4tcmlnaHQ6IC0yNXB4OwogICAgIGJhY2tncm91bmQtcG9z
aXRpb246IDAgLTU3cHg7CiB9Ci0KLS5wb3BvdmVyIDo6LXdlYmtpdC1zY3JvbGxiYXIgewotICAg
IHdpZHRoOiAxMXB4OwotICAgIGhlaWdodDogMTFweDsKLX0KLQotLnBvcG92ZXIgOjotd2Via2l0
LXNjcm9sbGJhci1jb3JuZXIgewotICAgIGRpc3BsYXk6IG5vbmU7Ci19Ci0KLS5wb3BvdmVyIDo6
LXdlYmtpdC1yZXNpemVyIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQotCi0vKiBIb3Jpem9udGFs
IFNjcm9sbGJhciBTdHlsZXMgKi8KLQotLnBvcG92ZXIgOjotd2Via2l0LXNjcm9sbGJhcjpob3Jp
em9udGFsOmNvcm5lci1wcmVzZW50IHsKLSAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7Ci19Ci0K
LS5wb3BvdmVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG9yaXpvbnRhbCB7Ci0gICAgLXdl
YmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdGh1bWJIb3Jpei5wbmcpIDAgMTEgMCAxMTsK
LSAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50OwotICAgIGJvcmRlci13aWR0aDogMCAxMXB4
OwotICAgIG1pbi13aWR0aDogMjBweDsKLX0KLQotLnBvcG92ZXIgOjotd2Via2l0LXNjcm9sbGJh
ci10aHVtYjpob3Jpem9udGFsOmhvdmVyIHsKLSAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJs
KEltYWdlcy90aHVtYkhvdmVySG9yaXoucG5nKSAwIDExIDAgMTE7Ci19Ci0KLS5wb3BvdmVyIDo6
LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG9yaXpvbnRhbDphY3RpdmUgewotICAgIC13ZWJraXQt
Ym9yZGVyLWltYWdlOiB1cmwoSW1hZ2VzL3RodW1iQWN0aXZlSG9yaXoucG5nKSAwIDExIDAgMTE7
Ci19Ci0KLS5wb3BvdmVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2U6aG9yaXpvbnRh
bDpzdGFydCB7Ci0gICAgbWFyZ2luLWxlZnQ6IDVweDsKLX0KLQotLnBvcG92ZXIgOjotd2Via2l0
LXNjcm9sbGJhci10cmFjay1waWVjZTpob3Jpem9udGFsOmVuZCB7Ci0gICAgbWFyZ2luLXJpZ2h0
OiA1cHg7Ci19Ci0KLS5wb3BvdmVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2U6aG9y
aXpvbnRhbDplbmQ6Y29ybmVyLXByZXNlbnQgewotICAgIG1hcmdpbi1yaWdodDogNHB4OwotfQot
Ci0ucG9wb3ZlciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOmhvcml6b250YWw6ZGVj
cmVtZW50IHsKLSAgICAtd2Via2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90cmFja0hvcml6
LnBuZykgMCAxMSAwIDExOwotICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgYm9y
ZGVyLXdpZHRoOiAwIDAgMCAxMXB4OwotfQotCi0ucG9wb3ZlciA6Oi13ZWJraXQtc2Nyb2xsYmFy
LXRyYWNrLXBpZWNlOmhvcml6b250YWw6aW5jcmVtZW50IHsKLSAgICAtd2Via2l0LWJvcmRlci1p
bWFnZTogdXJsKEltYWdlcy90cmFja0hvcml6LnBuZykgMCAxMSAwIDExOwotICAgIGJvcmRlci1j
b2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgYm9yZGVyLXdpZHRoOiAwIDExcHggMCAwOwotfQotCi0v
KiBWZXJ0aWNhbCBTY3JvbGxiYXIgU3R5bGVzICovCi0KLQotLnBvcG92ZXIgOjotd2Via2l0LXNj
cm9sbGJhcjp2ZXJ0aWNhbDpjb3JuZXItcHJlc2VudCB7Ci0gICAgYm9yZGVyLWJvdHRvbS13aWR0
aDogMDsKLX0KLQotLnBvcG92ZXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjp2ZXJ0aWNhbCB7
Ci0gICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdGh1bWJWZXJ0LnBuZykgMTEg
MCAxMSAwOwotICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgYm9yZGVyLXdpZHRo
OiAxMXB4IDA7Ci0gICAgbWluLWhlaWdodDogMjBweDsKLX0KLQotLnBvcG92ZXIgOjotd2Via2l0
LXNjcm9sbGJhci10aHVtYjp2ZXJ0aWNhbDpob3ZlciB7Ci0gICAgLXdlYmtpdC1ib3JkZXItaW1h
Z2U6IHVybChJbWFnZXMvdGh1bWJIb3ZlclZlcnQucG5nKSAxMSAwIDExIDA7Ci19Ci0KLS5wb3Bv
dmVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6dmVydGljYWw6YWN0aXZlIHsKLSAgICAtd2Vi
a2l0LWJvcmRlci1pbWFnZTogdXJsKEltYWdlcy90aHVtYkFjdGl2ZVZlcnQucG5nKSAxMSAwIDEx
IDA7Ci19Ci0KLQotLnBvcG92ZXIgOjotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZTp2ZXJ0
aWNhbDpzdGFydCB7Ci0gICAgbWFyZ2luLXRvcDogNXB4OwotfQotCi0ucG9wb3ZlciA6Oi13ZWJr
aXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOnZlcnRpY2FsOmVuZCB7Ci0gICAgbWFyZ2luLWJvdHRv
bTogNXB4OwotfQotCi0ucG9wb3ZlciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOnZl
cnRpY2FsOmVuZDpjb3JuZXItcHJlc2VudCB7Ci0gICAgbWFyZ2luLWJvdHRvbTogNHB4OwotfQot
Ci0ucG9wb3ZlciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlOnZlcnRpY2FsOmRlY3Jl
bWVudCB7Ci0gICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6IHVybChJbWFnZXMvdHJhY2tWZXJ0LnBu
ZykgMTEgMCAxMSAwOwotICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0gICAgYm9yZGVy
LXdpZHRoOiAxMXB4IDAgMCAwOwotfQotCi0ucG9wb3ZlciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRy
YWNrLXBpZWNlOnZlcnRpY2FsOmluY3JlbWVudCB7Ci0gICAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6
IHVybChJbWFnZXMvdHJhY2tWZXJ0LnBuZykgMTEgMCAxMSAwOwotICAgIGJvcmRlci1jb2xvcjog
dHJhbnNwYXJlbnQ7Ci0gICAgYm9yZGVyLXdpZHRoOiAwIDAgMTFweCAwOwotfQotCi0vKiBGb3Jj
ZWQgU2Nyb2xsYmFyIE1vZGUgU3R5bGVzICovCi0KLS5wb3BvdmVyIDo6LXdlYmtpdC1zY3JvbGxi
YXItYnV0dG9uIHsKLSAgICBkaXNwbGF5OiBub25lOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90ZXh0UHJvbXB0LmNzcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvdGV4dFByb21wdC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYmNmNWM1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvdGV4dFByb21wdC5jc3MKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5zdWdn
ZXN0LWJveCB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGJhY2tncm91bmQtY29sb3I6
ICNGRkZGRkY7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKKyAgICBwYWRkaW5nOiAycHg7CisgICAgei1pbmRleDogMTAwOworICAgIC13ZWJraXQtYm94
LXNoYWRvdzogMTBweCAxMHB4IDhweCByZ2JhKDQwLCA0MCwgNDAsIDAuNDApOworfQorCisuc3Vn
Z2VzdC1ib3gudmlzaWJsZSB7CisgICAgZGlzcGxheTogYmxvY2s7Cit9CisKKy5zdWdnZXN0LWJv
eCAuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAg
IGxlZnQ6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90dG9tOiAwOworICAgIG1hcmdpbjogMnB4
IDA7CisgICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgIG92ZXJmbG93LXk6IGF1dG87Cit9CisK
Ky5zdWdnZXN0LWJveC1jb250ZW50LWl0ZW0geworICAgIHBhZGRpbmc6IDFweDsKKyAgICBtYXJn
aW46IDA7CisgICAgZm9udC1zaXplOiAxMXB4OworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAg
dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CisgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJl
bnQ7Cit9CisKKy5zdWdnZXN0LWJveC1jb250ZW50LWl0ZW0gLnByZWZpeCB7CisgICAgZm9udC13
ZWlnaHQ6IGJvbGQ7Cit9CisKKy5zdWdnZXN0LWJveC1jb250ZW50LWl0ZW0uc2VsZWN0ZWQgewor
ICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigwLCAwLCAwKTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2IoMjM4LCAyMzgsIDIzOCk7Cit9CisKKy5zdWdnZXN0LWJveC1jb250ZW50LWl0ZW06aG92
ZXI6bm90KC5zZWxlY3RlZCkgeworICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYigyMDQsIDIwNCwg
MjA0KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
dXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRp
ZXMuanMKaW5kZXggY2VlMDdlNy4uMmJmNmFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTMwMSw2ICszMDEsMzEgQEAgRWxlbWVu
dC5wcm90b3R5cGUub2Zmc2V0UmVsYXRpdmVUb1dpbmRvdyA9IGZ1bmN0aW9uKHRhcmdldFdpbmRv
dykKICAgICByZXR1cm4gZWxlbWVudE9mZnNldDsKIH0KIAorRWxlbWVudC5wcm90b3R5cGUuYm94
SW5XaW5kb3cgPSBmdW5jdGlvbih0YXJnZXRXaW5kb3csIHJlbGF0aXZlUGFyZW50KQoreworICAg
IHRhcmdldFdpbmRvdyA9IHRhcmdldFdpbmRvdyB8fCB0aGlzLm93bmVyRG9jdW1lbnQuZGVmYXVs
dFZpZXc7CisgICAgdmFyIGJvZHlFbGVtZW50ID0gdGhpcy5vd25lckRvY3VtZW50LmJvZHk7Cisg
ICAgcmVsYXRpdmVQYXJlbnQgPSByZWxhdGl2ZVBhcmVudCB8fCBib2R5RWxlbWVudDsKKworICAg
IHZhciBhbmNob3JCb3ggPSB0aGlzLm9mZnNldFJlbGF0aXZlVG9XaW5kb3cod2luZG93KTsKKyAg
ICBhbmNob3JCb3gud2lkdGggPSB0aGlzLm9mZnNldFdpZHRoOworICAgIGFuY2hvckJveC5oZWln
aHQgPSB0aGlzLm9mZnNldEhlaWdodDsKKworICAgIHZhciBhbmNob3JFbGVtZW50ID0gdGhpczsK
KyAgICB3aGlsZSAoYW5jaG9yRWxlbWVudCAmJiBhbmNob3JFbGVtZW50ICE9PSByZWxhdGl2ZVBh
cmVudCAmJiBhbmNob3JFbGVtZW50ICE9PSBib2R5RWxlbWVudCkgeworICAgICAgICBpZiAoYW5j
aG9yRWxlbWVudC5zY3JvbGxMZWZ0KQorICAgICAgICAgICAgYW5jaG9yQm94LnggLT0gYW5jaG9y
RWxlbWVudC5zY3JvbGxMZWZ0OworICAgICAgICBpZiAoYW5jaG9yRWxlbWVudC5zY3JvbGxUb3Ap
CisgICAgICAgICAgICBhbmNob3JCb3gueSAtPSBhbmNob3JFbGVtZW50LnNjcm9sbFRvcDsKKyAg
ICAgICAgYW5jaG9yRWxlbWVudCA9IGFuY2hvckVsZW1lbnQucGFyZW50RWxlbWVudDsKKyAgICB9
CisKKyAgICB2YXIgcGFyZW50T2Zmc2V0ID0gcmVsYXRpdmVQYXJlbnQub2Zmc2V0UmVsYXRpdmVU
b1dpbmRvdyh3aW5kb3cpOworICAgIGFuY2hvckJveC54IC09IHBhcmVudE9mZnNldC54OworICAg
IGFuY2hvckJveC55IC09IHBhcmVudE9mZnNldC55OworICAgIHJldHVybiBhbmNob3JCb3g7Cit9
CisKIEVsZW1lbnQucHJvdG90eXBlLnNldFRleHRBbmRUaXRsZSA9IGZ1bmN0aW9uKHRleHQpCiB7
CiAgICAgdGhpcy50ZXh0Q29udGVudCA9IHRleHQ7Cg==
</data>
<flag name="review"
          id="111621"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>