<?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>81766</bug_id>
          
          <creation_ts>2012-03-21 05:22:38 -0700</creation_ts>
          <short_desc>Web Inspector: get rid of isInEditMode, use isBeingEdited on particular element.</short_desc>
          <delta_ts>2012-03-21 09:33:28 -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>584024</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-21 05:22:38 -0700</bug_when>
    <thetext>We should check even target and its ancestors for being edited, not use some global property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584046</commentid>
    <comment_count>1</comment_count>
      <attachid>133026</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-21 05:59:29 -0700</bug_when>
    <thetext>Created attachment 133026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584213</commentid>
    <comment_count>2</comment_count>
      <attachid>133026</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-21 09:24:12 -0700</bug_when>
    <thetext>Comment on attachment 133026
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        We should check even target and its ancestors for being edited, not use some

even -&gt; event

&gt; Source/WebCore/inspector/front-end/UIUtils.js:192
&gt; +    while (element &amp;&amp; element.nodeType === Node.ELEMENT_NODE) {

Instead of element.nodeType === Node.ELEMENT_NODE you can just use element.parentElement below.

&gt; Source/WebCore/inspector/front-end/utilities.js:381
&gt; +    this.stopImmediatePropagation();

It was stopPropagation, are you sure this change won&apos;t break any listener?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584218</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-21 09:28:46 -0700</bug_when>
    <thetext>&gt; even -&gt; event

Done.

&gt; 
&gt; Instead of element.nodeType === Node.ELEMENT_NODE you can just use element.parentElement below.
&gt;

Done.
 
&gt; &gt; Source/WebCore/inspector/front-end/utilities.js:381
&gt; &gt; +    this.stopImmediatePropagation();
&gt; 
&gt; It was stopPropagation, are you sure this change won&apos;t break any listener?

stopImmediatePropagation implies stopPropagation, so it should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584223</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-21 09:33:28 -0700</bug_when>
    <thetext>Committed r111551: &lt;http://trac.webkit.org/changeset/111551&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133026</attachid>
            <date>2012-03-21 05:59:29 -0700</date>
            <delta_ts>2012-03-21 09:24:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81766-20120321165926.patch</filename>
            <type>text/plain</type>
            <size>48845</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlmMWIzYmFmYmUyOGU3
NWY2YzU1MmMzYzIyYmU1NDk2MTUxNjNjMi4uYzkxMTMwOTY0MzQ5YzVlN2NhMmU3ZTkxMzliNjg2
NzVjZWVhNzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0wMy0yMSAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBnZXQgcmlkIG9mIGlzSW5FZGl0TW9kZSwgdXNlIGlzQmVpbmdFZGl0ZWQgb24gcGFydGlj
dWxhciBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODE3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZSBzaG91bGQgY2hlY2sgZXZlbiB0YXJnZXQgYW5kIGl0cyBhbmNlc3RvcnMgZm9yIGJl
aW5nIGVkaXRlZCwgbm90IHVzZSBzb21lCisgICAgICAgIGdsb2JhbCBwcm9wZXJ0eS4gVGhpcyBj
aGFuZ2UgYWxzbyBpbnRyb2R1Y2VzIEV2ZW50LnByb3RvdHlwZS5jb25zdW1lIHNvIHRoYXQgd2UK
KyAgICAgICAgd2VyZSBjb25zaXN0ZW50bHkgY29uc3VtaW5nIGV2ZW50cy4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNlYXJjaFZpZXcucHJvdG90eXBlLl9vbktleURvd24pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5
cGUuX2JyZWFrcG9pbnRDaGVja2JveENsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU2VsZWN0b3JQcm9maWxlVmlldy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0NoZWNrYm94LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNoZWNrYm94LnByb3Rv
dHlwZS5hZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZS5fZW50ZXJLZXlQcmVzc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlR3JvdXAu
cHJvdG90eXBlLl90aXRsZUNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
Q29udGV4dE1lbnUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUucHJvdG90
eXBlLnNob3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLl9rZXlEb3duKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlWaWV3LnByb3RvdHlwZS5fZW50ZXJLZXlQcmVzc2Vk
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RWaWV3LnByb3RvdHlwZS5f
bW91c2VEb3duSW5Db250ZW50c0dyaWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVk
SGVhcHNob3RWaWV3LnByb3RvdHlwZS5fc3RhcnRSZXRhaW5lcnNIZWFkZXJEcmFnZ2luZyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlLl9yZXRh
aW5lcnNIZWFkZXJEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFw
c2hvdFZpZXcucHJvdG90eXBlLl9lbmRSZXRhaW5lcnNIZWFkZXJEcmFnZ2luZyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9EaWFsb2cuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGlhbG9nLnByb3RvdHlwZS5fb25LZXlEb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0RyYXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLl9z
dGFydFN0YXR1c0JhckRyYWdnaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJv
dG90eXBlLl9zdGF0dXNCYXJEcmFnZ2luZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhd2Vy
LnByb3RvdHlwZS5fZW5kU3RhdHVzQmFyRHJhZ2dpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmdldCBpZik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBT
Y3JlZW4ucHJvdG90eXBlLl9vbktleURvd24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvSW5zcGVjdG9yVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbnNwZWN0b3JWaWV3
LnByb3RvdHlwZS5fa2V5RG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRy
aWNzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWV0cmljc1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5faGlnaGxpZ2h0RE9NTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9P
YmplY3QuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnQucHJvdG90eXBlLnByZXZlbnRE
ZWZhdWx0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudC5wcm90b3R5cGUuY29uc3VtZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5PYmplY3RQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fcHJvbXB0S2V5RG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlVmlldy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRyb2xs
ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUu
X29uS2V5RG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZWN0aW9uLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNlY3Rpb24ucHJvdG90eXBlLmhhbmRsZUNsaWNrKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU29mdENvbnRleHRNZW51LmpzOgorICAgICAgICAoLldlYkluc3BlY3Rvci5Tb2Z0Q29udGV4
dE1lbnUucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoLldlYkluc3BlY3Rvci5Tb2Z0Q29udGV4
dE1lbnUucHJvdG90eXBlLl9tZW51SXRlbU1vdXNlRG93bik6CisgICAgICAgICguV2ViSW5zcGVj
dG9yLlNvZnRDb250ZXh0TWVudS5wcm90b3R5cGUuX21lbnVLZXlEb3duKToKKyAgICAgICAgKC5X
ZWJJbnNwZWN0b3IuU29mdENvbnRleHRNZW51LnByb3RvdHlwZS5fZGlzY2FyZE1lbnUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3BlY3RydW0uanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU3BlY3RydW0uZHJhZ2dhYmxlLmNvbnN1bWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNwZWN0cnVtLmRyYWdnYWJsZS5zdGFydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BlY3Ry
dW0uZHJhZ2dhYmxlLnN0b3ApOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNwZWN0cnVtLmRyYWdn
YWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3BlY3RydW0ucHJvdG90eXBlLl9vbktleURv
d24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUubXV0ZUV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuc2V0IF9jcmVhdGVOZXdS
dWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUu
X3RvZ2dsZUVsZW1lbnRTdGF0ZVBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlUHJv
cGVydGllc1NlY3Rpb24ucHJvdG90eXBlLl9oYW5kbGVFbXB0eVNwYWNlQ2xpY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24ucHJvdG90eXBlLl9oYW5kbGVT
ZWxlY3RvckNsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVs
ZW1lbnQucHJvdG90eXBlLnVwZGF0ZVRpdGxlLik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVQcm9wZXJ0eVRyZWVFbGVtZW50LnByb3RvdHlwZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0UHJvbXB0LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRQcm9tcHQu
cHJvdG90eXBlLm9uS2V5RG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFByb21wdFdp
dGhIaXN0b3J5LnByb3RvdHlwZS5kZWZhdWx0S2V5SGFuZGxlcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dFByb21wdC5TdWdnZXN0Qm94LnByb3RvdHlwZS5fb25JdGVtTW91c2VEb3duKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90b3R5cGUuX2hhbmRsZUtleURvd24pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Ub29sYmFyRHJvcGRvd24ucHJvdG90eXBlLl9vbktleURvd24pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvVUlVdGlscy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pc0JlaW5n
RWRpdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcpOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
LnByb3RvdHlwZS5fZG9Mb2FkQ1NTKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dh
dGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRj
aEV4cHJlc3Npb25zU2lkZWJhclBhbmUucHJvdG90eXBlLl9hZGRCdXR0b25DbGlja2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2lkZWJhclBhbmUucHJvdG90eXBl
Ll9yZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRDbGljay5mb2xsb3dM
aW5rKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb2N1bWVudENsaWNrKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5kb2N1bWVudEtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBvc3RE
b2N1bWVudEtleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmFkZE1haW5FdmVudExpc3Rl
bmVycyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC90cmVlb3V0bGluZS5qczoKKyAg
ICAgICAgKFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fdHJlZUtleVByZXNzKToKKyAgICAgICAgKFRy
ZWVPdXRsaW5lLnByb3RvdHlwZS5fdHJlZUtleURvd24pOgorICAgICAgICAoVHJlZU91dGxpbmUu
cHJvdG90eXBlLl9zZWFyY2hJbnB1dEtleURvd24pOgorICAgICAgICAoVHJlZUVsZW1lbnQudHJl
ZUVsZW1lbnRUb2dnbGVkKToKKyAgICAgICAgKFRyZWVFbGVtZW50LnByb3RvdHlwZS5zZWxlY3RP
bk1vdXNlRG93bik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6
CisgICAgICAgIChFdmVudC5wcm90b3R5cGUuY29uc3VtZSk6CisKIDIwMTItMDMtMjEgIEFsbGFu
IFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0
XSBDb29raWUgSmFyIGJsb2NrcyBvbiBmc3luYyBpbiBTUUxJVEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRy
b2xsZXIuanMKaW5kZXggMjUzZjZmZTU5Y2QwNGRkNGQzMjIxMWNkNWE3MjQzNjYyMWE0YjE5OS4u
ZGIxMTY3MjJjNDY1MmYzZDMyNzA1YzU0NjYxYzA2MjZiYmEzMGM4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJj
aENvbnRyb2xsZXIuanMKQEAgLTM3Niw4ICszNzYsNyBAQCBXZWJJbnNwZWN0b3IuU2VhcmNoVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkVzYy5jb2RlOgogICAgICAgICAgICAgdGhpcy5f
Y29udHJvbGxlci5jbG9zZSgpOwotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7
Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgZXZlbnQu
Y29uc3VtZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gICAgICAgIAogICAgIH0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9p
bnRzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Jy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5kZXggYWY0ODllNjRmYWNkMWJmODU1YmNlZDIyNGFk
NzUzMzg1MmNiMWU3My4uM2Q2NDFkMzE2YTQ3MmI2OTBmOTRkNDJlNzRjMGVjN2RkMGIwNDBmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50
c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwpAQCAtMTQwLDcgKzE0MCw3IEBAIFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgX2Jy
ZWFrcG9pbnRDaGVja2JveENsaWNrZWQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnQsIGV2ZW50KQogICAg
IHsKICAgICAgICAgLy8gQnJlYWtwb2ludCBlbGVtZW50IGhhcyBpdCdzIG93biBjbGljayBoYW5k
bGVyLgotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZXZlbnQuY29u
c3VtZSgpOwogCiAgICAgICAgIHRoaXMuX21vZGVsLnNldEJyZWFrcG9pbnRFbmFibGVkKGJyZWFr
cG9pbnQudWlTb3VyY2VDb2RlLCBicmVha3BvaW50LmxpbmVOdW1iZXIsIGV2ZW50LnRhcmdldC5j
aGVja2VkKTsKICAgICB9LApAQCAtMjg2LDcgKzI4Niw3IEBAIFdlYkluc3BlY3Rvci5YSFJCcmVh
a3BvaW50c1NpZGViYXJQYW5lID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLlhIUkJyZWFrcG9p
bnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgIF9hZGRCdXR0b25DbGlja2VkOiBmdW5j
dGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAg
ICAgICBldmVudC5jb25zdW1lKCk7CiAKICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU2VsZWN0
b3JQcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NT
U2VsZWN0b3JQcm9maWxlVmlldy5qcwppbmRleCA0ZTE1YjNkOThjODM0N2Q4NDE2YjJiNjZhMGIz
ZjU4YTc4ZjFhYWUyLi5mNmI5MWExNTA1ZWEwNTliNzA2YjE5N2I5N2M0OGZhYzkwNmMyMWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NTU1NlbGVjdG9y
UHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTZWxlY3RvclByb2ZpbGVWaWV3LmpzCkBAIC0yNTcsOCArMjU3LDcgQEAgV2ViSW5zcGVjdG9y
LkNTU1NlbGVjdG9yUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMucmVm
cmVzaFNob3dBc1BlcmNlbnRzKCk7CiAKLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
LSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUo
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ2hlY2tib3guanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0No
ZWNrYm94LmpzCmluZGV4IGViOTYzMmI4OTc3MjJhNjU1ZmZkNzI1YTRmMGE2YmE0ODU0YTMxYjAu
LmY3MTU5MGY5ODViZWI5OTkyY2U0NDRiOTY1YWUxMjM4ZTZiNGExMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2hlY2tib3guanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DaGVja2JveC5qcwpAQCAtNTcsNyArNTcsNyBA
QCBXZWJJbnNwZWN0b3IuQ2hlY2tib3gucHJvdG90eXBlID0gewogICAgICAgICB7CiAgICAgICAg
ICAgICBpZiAobGlzdGVuZXIpCiAgICAgICAgICAgICAgICAgbGlzdGVuZXIoZXZlbnQpOwotICAg
ICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICBldmVudC5jb25z
dW1lKCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCA3NWJj
OWVhMDliMGJhOTZlOGFiODJlZjhkMmJiMWEyZDZjOWNlMTRhLi41MGEzNDNmODBlY2I5MTE4ZGUy
OWIxNjBlOWMzNDBmNzkwMTFjMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKQEAgLTYyOCw4ICs2MjgsNyBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoZXZlbnQuYWx0S2V5IHx8
IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3Bh
Z2F0aW9uKCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKIAogICAgICAgICB0aGlzLnByb21w
dC5jbGVhckF1dG9Db21wbGV0ZSh0cnVlKTsKIApAQCAtODQ3LDggKzg0Niw3IEBAIFdlYkluc3Bl
Y3Rvci5Db25zb2xlR3JvdXAucHJvdG90eXBlID0gewogICAgICAgICAgICAgZ3JvdXBUaXRsZUVs
ZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCh0cnVlKTsKICAgICAgICAgfQogCi0gICAgICAg
IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRleHRNZW51LmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db250ZXh0TWVudS5qcwppbmRleCA5MGUyMjVjMmNi
MjRhY2JiMjIzYjU2Yjc0MjE3ZmFmNTI1Y2IxOWMyLi44MGRmMDZjMGVlNjYzNDUwNGU0MjRjOWEw
ZTUyN2Q2MzU3ZmZmNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0NvbnRleHRNZW51LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29udGV4dE1lbnUuanMKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnRl
eHRNZW51LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5fY29udGV4dE1l
bnUgPSB0aGlzOwogICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNob3dDb250ZXh0
TWVudShldmVudCwgdGhpcy5faXRlbXMpOwogICAgICAgICB9Ci0gICAgICAgIGV2ZW50LnN0b3BQ
cm9wYWdhdGlvbigpOworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgfSwKIAogICAgIC8q
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3Jp
ZC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5k
ZXggMTAzNzk1MzRkMzI2YmRmNDJmOTlmZTg5ZjUyYWYzY2E0YzU5Y2I2Mi4uMTQ5OWRjZGUwYWIy
MzBhZGZjMDJlNzJlODgxMGQzNmMzYTg4OWY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCkBAIC04OTQsMTAgKzg5NCw4IEBAIFdlYkluc3Bl
Y3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBuZXh0U2VsZWN0ZWROb2Rl
LnNlbGVjdCgpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGhhbmRsZWQpIHsKLSAgICAgICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFn
YXRpb24oKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoaGFuZGxlZCkKKyAgICAgICAgICAgIGV2
ZW50LmNvbnN1bWUoKTsKICAgICB9LAogCiAgICAgZXhwYW5kOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmll
dy5qcwppbmRleCBmOTI4ZWMwY2RhNTE1ZTdkNTBiYjYwYTRhMzQzMjM4N2ZiMjU1OWViLi45OGUy
NmVlNmZmYzAwZGI2YWFkYmM5YTRlZGJhYzIyN2YzZjYwMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMKQEAg
LTExOSw4ICsxMTksNyBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VRdWVyeVZpZXcucHJvdG90eXBl
ID0gewogCiAgICAgX2VudGVyS2V5UHJlc3NlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRp
b24oKTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogCiAgICAgICAgIHRoaXMucHJvbXB0LmNs
ZWFyQXV0b0NvbXBsZXRlKHRydWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5qcwppbmRleCBiMmE0MDZh
MWQ2MTBlZWJhNjUxZjA1MGE4NTUyNTI1NTU4ZmNmMTAzLi5jNmIzZDExMTVhOGQ5ZWI5ZGUxNTMy
NGY0NmVlNWI5ZmY5YmEyYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNob3RWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGV0YWlsZWRIZWFwc2hvdFZpZXcuanMKQEAgLTg3Nyw4ICs4Nzcs
NyBAQCBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICBpZiAoIWNlbGwgfHwgKCFjZWxsLmhhc1N0eWxlQ2xhc3MoImNvdW50LWNvbHVtbiIpICYm
ICFjZWxsLmhhc1N0eWxlQ2xhc3MoInNoYWxsb3dTaXplLWNvbHVtbiIpICYmICFjZWxsLmhhc1N0
eWxlQ2xhc3MoInJldGFpbmVkU2l6ZS1jb2x1bW4iKSkpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3Bh
Z2F0aW9uKCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICB9LAogCiAgICAgX21vdXNl
Q2xpY2tJblJldGFpbm1lbnRHcmlkOiBmdW5jdGlvbihldmVudCkKQEAgLTEwNTEsNyArMTA1MCw3
IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CiAKICAg
ICAgICAgV2ViSW5zcGVjdG9yLmVsZW1lbnREcmFnU3RhcnQodGhpcy5yZXRhaW5tZW50Vmlld0hl
YWRlciwgdGhpcy5fcmV0YWluZXJzSGVhZGVyRHJhZ2dpbmcuYmluZCh0aGlzKSwgdGhpcy5fZW5k
UmV0YWluZXJzSGVhZGVyRHJhZ2dpbmcuYmluZCh0aGlzKSwgZXZlbnQsICJyb3ctcmVzaXplIik7
CiAgICAgICAgIHRoaXMuX3ByZXZpb3VzRHJhZ1Bvc2l0aW9uID0gZXZlbnQucGFnZVk7Ci0gICAg
ICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAg
ICAgfSwKIAogICAgIF9yZXRhaW5lcnNIZWFkZXJEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCkBA
IC0xMDYwLDE1ICsxMDU5LDE0IEBAIFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGhlaWdodCArPSB0aGlzLl9wcmV2aW91c0RyYWdQb3NpdGlv
biAtIGV2ZW50LnBhZ2VZOwogICAgICAgICB0aGlzLl9wcmV2aW91c0RyYWdQb3NpdGlvbiA9IGV2
ZW50LnBhZ2VZOwogICAgICAgICB0aGlzLl91cGRhdGVSZXRhaW5tZW50Vmlld0hlaWdodChoZWln
aHQpOwotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBldmVudC5zdG9w
UHJvcGFnYXRpb24oKTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgIH0sCiAKICAgICBf
ZW5kUmV0YWluZXJzSGVhZGVyRHJhZ2dpbmc6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAg
ICAgV2ViSW5zcGVjdG9yLmVsZW1lbnREcmFnRW5kKGV2ZW50KTsKICAgICAgICAgZGVsZXRlIHRo
aXMuX3ByZXZpb3VzRHJhZ1Bvc2l0aW9uOwotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24o
KTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgIH0sCiAKICAgICBfdXBkYXRlUmV0YWlu
bWVudFZpZXdIZWlnaHQ6IGZ1bmN0aW9uKGhlaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGlhbG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EaWFsb2cuanMKaW5kZXggODUzYWE2ZmE5OTdiNjM0YWJmYzE5Y2I4M2Y4
MGZiNDFkOTBkNGUxYy4uOThmM2E0ZWU4M2JlNTAxODlhNzg2ZjhkNThiMWUwMjdmOTNjYmMzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EaWFsb2cuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EaWFsb2cuanMKQEAgLTEz
Miw4ICsxMzIsNyBAQCBXZWJJbnNwZWN0b3IuRGlhbG9nLnByb3RvdHlwZSA9IHsKIAogICAgICAg
ICBpZiAodGhpcy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPj0gMCkgewogICAg
ICAgICAgICAgdGhpcy5faGlkZSgpOwotICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKLSAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgZXZl
bnQuY29uc3VtZSgpOwogICAgICAgICB9CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKaW5kZXggZmVjOWM5ZWIzNWY2YTgxYzEyZDJhMjE2
ZmIxYTFmMDZlMmUyYTYxYi4uYzU0NzRlZDJhZTI1OGZjNmIxNzdiODJhMmFmNTEyY2I3NDMzOTU4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EcmF3ZXIuanMKQEAg
LTI1MSw3ICsyNTEsNyBAQCBXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICB0aGlzLl9zdGF0dXNCYXJEcmFnT2Zmc2V0ID0gZXZlbnQucGFnZVkgLSB0aGlzLmVsZW1l
bnQudG90YWxPZmZzZXRUb3AoKTsKIAotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsK
KyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgIH0sCiAKICAgICBfc3RhdHVzQmFyRHJhZ2dp
bmc6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMjY1LDggKzI2NSw3IEBAIFdlYkluc3BlY3Rvci5EcmF3
ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZpZXcu
Y3VycmVudFBhbmVsKCkuZG9SZXNpemUoKTsKICAgICAgICAgdGhpcy5fdmlldy5kb1Jlc2l6ZSgp
OwogCi0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIGV2ZW50LnN0b3BQ
cm9wYWdhdGlvbigpOworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgfSwKIAogICAgIF9l
bmRTdGF0dXNCYXJEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCkBAIC0yNzYsNyArMjc1LDcgQEAg
V2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NhdmVkSGVp
Z2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDsKICAgICAgICAgZGVsZXRlIHRoaXMuX3N0
YXR1c0JhckRyYWdPZmZzZXQ7CiAKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Cisg
ICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFy
UGFuZS5qcwppbmRleCA3MTc5NzNiY2RhY2U1MWQxZDA2MDQxMDIyY2ExODYzYjQ3YWM1OTZmLi5j
OTBkNTUzZmRkODgyMWIzODlkMWMwNmM4Yzg1YjQwYTU0NzMzNTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVy
c1NpZGViYXJQYW5lLmpzCkBAIC01Niw3ICs1Niw3IEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3Rl
bmVyc1NpZGViYXJQYW5lID0gZnVuY3Rpb24oKQogICAgICAgICB0aGlzLnNldHRpbmdzU2VsZWN0
RWxlbWVudFswXS5zZWxlY3RlZCA9IHRydWU7CiAgICAgZWxzZSBpZiAoZmlsdGVyID09PSAic2Vs
ZWN0ZWQiKQogICAgICAgICB0aGlzLnNldHRpbmdzU2VsZWN0RWxlbWVudFsxXS5zZWxlY3RlZCA9
IHRydWU7Ci0gICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBmdW5jdGlvbihldmVudCkgeyBldmVudC5zdG9wUHJvcGFnYXRpb24oKSB9LCBmYWxz
ZSk7CisgICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBmdW5jdGlvbihldmVudCkgeyBldmVudC5jb25zdW1lKCkgfSwgZmFsc2UpOwogICAgIHRo
aXMuc2V0dGluZ3NTZWxlY3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIHRoaXMu
X2NoYW5nZVNldHRpbmcuYmluZCh0aGlzKSwgZmFsc2UpOwogCiAgICAgdGhpcy50aXRsZUVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzCmluZGV4IDZiNjBkYTk0
MDIwYmY2YjI5OGIxYWQ4NzQyN2Q3OWU1MTQyMzVhYmMuLmVlZTNhNzc3MjJhZTY1MzQ4ZmVlNTM5
ZTE5ZjYzMjU1YjE4YzUyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVscFNjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0hlbHBTY3JlZW4uanMKQEAgLTkyLDcgKzkyLDcgQEAgV2ViSW5zcGVjdG9yLkhlbHBT
Y3JlZW4ucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2lzU2hvd24gJiYg
dGhpcy5fY2xvc2VLZXlzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPj0gMCkgewogICAgICAgICAg
ICAgdGhpcy5oaWRlKCk7Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAg
ICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgfQogICAgIH0sCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yVmlldy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yVmlldy5qcwppbmRl
eCA1ODc4MTQ0ZTdlZDY2OTY3MzYwZWNiY2Y3Yzc5ZjYxYzBiMDUwYmVkLi4wNmIwNTFiYTRhYzc5
OGY4OGE0ZDA1NmM4MTZiNWQ1ODk5ZDAwMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvclZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JWaWV3LmpzCkBAIC04OSw3ICs4OSw3IEBAIFdl
Ykluc3BlY3Rvci5JbnNwZWN0b3JWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHN3
aXRjaCAoZXZlbnQua2V5SWRlbnRpZmllcikgewogICAgICAgICAgICAgY2FzZSAiTGVmdCI6Ci0g
ICAgICAgICAgICAgICAgdmFyIGlzQmFja0tleSA9ICFldmVudC5zaGlmdEtleSAmJiBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5ldmVudEhhc0N0cmxPck1ldGEoZXZlbnQpICYmICFXZWJJ
bnNwZWN0b3IuaXNJbkVkaXRNb2RlKGV2ZW50KTsKKyAgICAgICAgICAgICAgICB2YXIgaXNCYWNr
S2V5ID0gIWV2ZW50LnNoaWZ0S2V5ICYmIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LmV2
ZW50SGFzQ3RybE9yTWV0YShldmVudCkgJiYgIVdlYkluc3BlY3Rvci5pc0JlaW5nRWRpdGVkKGV2
ZW50LnRhcmdldCk7CiAgICAgICAgICAgICAgICAgaWYgKGlzQmFja0tleSAmJiB0aGlzLl9jYW5H
b0JhY2tJbkhpc3RvcnkoKSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9nb0JhY2tJbkhp
c3RvcnkoKTsKICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKQEAg
LTk3LDcgKzk3LDcgQEAgV2ViSW5zcGVjdG9yLkluc3BlY3RvclZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlICJSaWdodCI6Ci0gICAg
ICAgICAgICAgICAgdmFyIGlzRm9yd2FyZEtleSA9ICFldmVudC5zaGlmdEtleSAmJiBXZWJJbnNw
ZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5ldmVudEhhc0N0cmxPck1ldGEoZXZlbnQpICYmICFXZWJJ
bnNwZWN0b3IuaXNJbkVkaXRNb2RlKGV2ZW50KTsKKyAgICAgICAgICAgICAgICB2YXIgaXNGb3J3
YXJkS2V5ID0gIWV2ZW50LnNoaWZ0S2V5ICYmIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0
LmV2ZW50SGFzQ3RybE9yTWV0YShldmVudCkgJiYgIVdlYkluc3BlY3Rvci5pc0JlaW5nRWRpdGVk
KGV2ZW50LnRhcmdldCk7CiAgICAgICAgICAgICAgICAgaWYgKGlzRm9yd2FyZEtleSAmJiB0aGlz
Ll9jYW5Hb0ZvcndhcmRJbkhpc3RvcnkoKSkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9n
b0ZvcndhcmRJbkhpc3RvcnkoKTsKICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TWV0cmljc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9NZXRyaWNzU2lkZWJhclBhbmUuanMKaW5kZXggNTg1YjU3ZTY4OTRjYjE0ZDQzNjlhZTBjMzBk
ZDhkMDJjZmQ3NDQ5ZS4uODQxNjMzN2FhYWFmODdkZTJiYjUwNDNkMmE4MDhlYjk3ZDY3M2Y2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRyaWNzU2lk
ZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRy
aWNzU2lkZWJhclBhbmUuanMKQEAgLTExMyw3ICsxMTMsNyBAQCBXZWJJbnNwZWN0b3IuTWV0cmlj
c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF9oaWdobGlnaHRET01Ob2RlOiBmdW5j
dGlvbihzaG93SGlnaGxpZ2h0LCBtb2RlLCBldmVudCkKICAgICB7Ci0gICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgICAgIHZhciBu
b2RlSWQgPSBzaG93SGlnaGxpZ2h0ICYmIHRoaXMubm9kZSA/IHRoaXMubm9kZS5pZCA6IDA7CiAg
ICAgICAgIGlmIChub2RlSWQpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9oaWdobGlnaHRNb2Rl
ID09PSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtQYW5lbC5qcwppbmRleCA4OGMyNzBkNGI3NGJiY2JlYTE3NjY1NWFmYTk4NmZjODhiNGRm
OGQ3Li5kZDNhODRkZTRmNWM2Y2E4ZWQyNGVmNGQ3NmQ2NWVkMjE0ZjBhNjBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAt
MjU3LDcgKzI1Nyw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHZhciBoZWFkZXIgPSB0aGlzLl9kYXRhR3JpZC5oZWFkZXJUYWJsZUhlYWRlcigi
dGltZWxpbmUiKTsKICAgICAgICAgaGVhZGVyLnJlcGxhY2VDaGlsZCh0aW1lbGluZVNvcnRpbmcs
IGhlYWRlci5maXJzdENoaWxkKTsKIAotICAgICAgICB0aW1lbGluZVNvcnRpbmcuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihldmVudCkgeyBldmVudC5zdG9wUHJvcGFnYXRpb24o
KSB9LCBmYWxzZSk7CisgICAgICAgIHRpbWVsaW5lU29ydGluZy5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIGZ1bmN0aW9uKGV2ZW50KSB7IGV2ZW50LmNvbnN1bWUoKSB9LCBmYWxzZSk7CiAgICAg
ICAgIHRpbWVsaW5lU29ydGluZy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9zb3J0
QnlUaW1lbGluZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5lU29y
dFNlbGVjdG9yID0gdGltZWxpbmVTb3J0aW5nOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0LmpzCmluZGV4IGUzZGFiOGUxYjlkODY4YjkzOGM3ZThk
OTQ0NmVlOWYwZjVkMTEwYjIuLjljNGNjZjg4Y2JjYmVmZGE2N2JmOTQ1YWEyMWM3ZWUyNWUxYTBk
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0LmpzCkBA
IC0xMzEsNiArMTMxLDEyIEBAIFdlYkluc3BlY3Rvci5FdmVudC5wcm90b3R5cGUgPSB7CiAgICAg
cHJldmVudERlZmF1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuZGVmYXVsdFBy
ZXZlbnRlZCA9IHRydWU7CisgICAgfSwKKworICAgIGNvbnN1bWU6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIHRoaXMucHJldmVudERl
ZmF1bHQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdFByb3BlcnRpZXNTZWN0aW9uLmpzCmluZGV4IDMyZGVi
ZDEyNDVmZGU3ZTI5MGFjMThjZjU2NDgzYzY4MjVhM2NhMmQuLjU1ODIwZjI4ZDUxZDQ3YTQzODA5
MmY5ZDA1ZmQ4Y2M4NDg1Mjg3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvT2JqZWN0UHJvcGVydGllc1NlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcwpAQCAtMzg2
LDEyICszODYsMTEgQEAgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnR5VHJlZUVsZW1lbnQucHJv
dG90eXBlID0gewogICAgIF9wcm9tcHRLZXlEb3duOiBmdW5jdGlvbihjb250ZXh0LCBldmVudCkK
ICAgICB7CiAgICAgICAgIGlmIChpc0VudGVyS2V5KGV2ZW50KSkgewotICAgICAgICAgICAgZXZl
bnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworICAgICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAgICAgICAgcmV0dXJuIHRoaXMu
ZWRpdGluZ0NvbW1pdHRlZChudWxsLCBjb250ZXh0LmVsZW1lbnRUb0VkaXQudGV4dENvbnRlbnQs
IGNvbnRleHQucHJldmlvdXNDb250ZW50LCBjb250ZXh0KTsKICAgICAgICAgfQogICAgICAgICBp
ZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDAxQiIpIHsgLy8gRXNjCi0gICAgICAgICAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsK
ICAgICAgICAgICAgIHJldHVybiB0aGlzLmVkaXRpbmdDYW5jZWxsZWQobnVsbCwgY29udGV4dCk7
CiAgICAgICAgIH0KICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZVZpZXcuanMKaW5kZXggNWViZjM2OGI2YjczYTJmMGQ3MWNhNWFmNzM0MDgx
NDk5ZjM4NzJjOC4uN2ZjNzI0MmQwZjlhNTg1YTc2MTQwNDRiOWY2ZThkYjZjYjhiYjY4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlVmlldy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3Lmpz
CkBAIC01NDAsOCArNTQwLDcgQEAgV2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVWaWV3LnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICB0aGlzLnJlZnJlc2hTaG93QXNQZXJjZW50cygpOwogCi0gICAgICAg
IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigp
OworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgfSwKIAogICAgIF9hc3NpZ25QYXJlbnRz
SW5Qcm9maWxlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMKaW5kZXggNjY2MDhjYzAxNjJiNzEyYmQ2
NjRlNTAyNDA5NWEwZjRjYTQ4ZWRiNS4uZWUyODAzZjU0M2I2NTI3YTQ0ODk5NzE1YWQxOTdmMzZl
OWIyYjBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
ZWFyY2hDb250cm9sbGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2VhcmNoQ29udHJvbGxlci5qcwpAQCAtMjAwLDEwICsyMDAsMTAgQEAgV2ViSW5zcGVjdG9y
LlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgLy8gSWYgZm9jdXMg
YmVsb25ncyBoZXJlIGFuZCB0ZXh0IGlzIGVtcHR5IC0gbm90aGluZyB0byBkbywgcmV0dXJuIHVu
aGFuZGxlZC4KICAgICAgICAgICAgIC8vIFdoZW4gc2VhcmNoIHdhcyBzZWxlY3RlZCBtYW51YWxs
eSBhbmQgaXMgY3VycmVudGx5IGJsYW5rLCB3ZSdkIGxpa2UgRXNjIHN0YXkgdW5oYW5kbGVkCiAg
ICAgICAgICAgICAvLyBhbmQgaGl0IGNvbnNvbGUgZHJhd2VyIGhhbmRsZXIuCi0gICAgICAgICAg
ICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09PSAiIiAmJiBXZWJJbnNwZWN0b3IuY3VycmVudEZv
Y3VzRWxlbWVudCgpID09PSBXZWJJbnNwZWN0b3IucHJldmlvdXNGb2N1c0VsZW1lbnQoKSkKKyAg
ICAgICAgICAgIGlmIChldmVudC50YXJnZXQudmFsdWUgPT09ICIiKQogICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKworICAgICAgICAgICAgZXZlbnQuY29uc3VtZSgp
OwogCiAgICAgICAgICAgICB0aGlzLmNhbmNlbFNlYXJjaCgpOwogICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQoV2ViSW5zcGVjdG9yLnByZXZpb3VzRm9jdXNF
bGVtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZWN0aW9uLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWN0aW9u
LmpzCmluZGV4IDYzNDZjZmEyYmJjZTcwYTY2NjM1YzcwODJlZDA0NTZhN2VmNjllNDguLjAwNzA5
NjQ5MTdhODlkNTQzZDdhNDlhNzA1YjFlYzgxMmU4NWNhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2VjdGlvbi5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NlY3Rpb24uanMKQEAgLTIxMSw5ICsyMTEsOSBAQCBXZWJJ
bnNwZWN0b3IuU2VjdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZXhwYW5kZWQgPSAh
dGhpcy5leHBhbmRlZDsKICAgICB9LAogCi0gICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uKGUpCisg
ICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy50b2dn
bGVFeHBhbmRlZCgpOwotICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICBldmVu
dC5jb25zdW1lKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2V0dGluZ3MuanMKaW5kZXggNjkzYjU3MDMzNjU5M2M1MGNhODAyYjZhMDk1OGUyZjdj
Njg3OWFhYy4uMWQwYmM0NGNlZDUwZWQwZWVjOGNhMmZjZjU1ZGQ4MDQwOTgwMDU3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC0xNzgs
NyArMTc4LDYgQEAgV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3MgPSBmdW5jdGlvbigp
CiAgICAgdGhpcy50aW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcgPSB0aGlzLl9jcmVhdGVFeHBlcmlt
ZW50KCJ0aW1lbGluZVN0YXJ0QXRaZXJvIiwgIkVuYWJsZSB2ZXJ0aWNhbCBvdmVydmlldyBtb2Rl
IGluIHRoZSBUaW1lbGluZSBwYW5lbCIpOwogICAgIC8vIEZJWE1FOiBFbmFibGUgaHR0cC90ZXN0
cy9pbnNwZWN0b3IvaW5kZXhlZGRiL3Jlc291cmNlcy1wYW5lbC5odG1sIHdoZW4gcmVtb3ZlZCBm
cm9tIGV4cGVyaW1lbnRzLgogICAgIHRoaXMuc2hvd0luZGV4ZWREQiA9IHRoaXMuX2NyZWF0ZUV4
cGVyaW1lbnQoInNob3dJbmRleGVkREIiLCAiU2hvdyBJbmRleGVkREIgaW4gUmVzb3VyY2VzIHBh
bmVsIik7Ci0gICAgdGhpcy5kZWJ1Z0NTUyA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoImRlYnVn
Q1NTIiwgIkxvYWQgQ1NTIHZpYSBsaW5rIHRhZ3MgZm9yIGRlYnVnZ2luZyIpOwogICAgIHRoaXMu
c2hvd1NoYWRvd0RPTSA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1lbnQoInNob3dTaGFkb3dET00iLCAi
U2hvdyBzaGFkb3cgRE9NIik7CiAgICAgdGhpcy5zbmlwcGV0c1N1cHBvcnQgPSB0aGlzLl9jcmVh
dGVFeHBlcmltZW50KCJzbmlwcGV0c1N1cHBvcnQiLCAiU25pcHBldHMgc3VwcG9ydCIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvZnRDb250ZXh0
TWVudS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU29mdENvbnRleHRN
ZW51LmpzCmluZGV4IDlhMzlkZTRhZGJmNDEzMzJjNGZmNjc0Zjc5NmJiOGRjOTMzY2I0OTYuLjg0
ZjRjZjBlODQxY2YxNjJkZmQ0ODg0M2Q2MDhiY2Q0MTI5NzBiMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU29mdENvbnRleHRNZW51LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU29mdENvbnRleHRNZW51LmpzCkBAIC04
MSw4ICs4MSw3IEBAIFdlYkluc3BlY3Rvci5Tb2Z0Q29udGV4dE1lbnUucHJvdG90eXBlID0gewog
ICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgPCB0aGlzLl9jb250ZXh0TWVu
dUVsZW1lbnQub2Zmc2V0VG9wICsgdGhpcy5fY29udGV4dE1lbnVFbGVtZW50Lm9mZnNldEhlaWdo
dCkKICAgICAgICAgICAgIHRoaXMuX2NvbnRleHRNZW51RWxlbWVudC5zdHlsZS50b3AgPSAoZG9j
dW1lbnQuYm9keS5vZmZzZXRIZWlnaHQgLSB0aGlzLl9jb250ZXh0TWVudUVsZW1lbnQub2Zmc2V0
SGVpZ2h0KSArICJweCI7CiAKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAg
ICB9LAogCiAgICAgX2NyZWF0ZU1lbnVJdGVtOiBmdW5jdGlvbihpdGVtKQpAQCAtMTI0LDggKzEy
Myw3IEBAIFdlYkluc3BlY3Rvci5Tb2Z0Q29udGV4dE1lbnUucHJvdG90eXBlID0gewogICAgIF9t
ZW51SXRlbU1vdXNlRG93bjogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICAvLyBEbyBu
b3QgbGV0IHNlcGFyYXRvcidzIG1vdXNlIGRvd24gaGl0IG1lbnUncyBoYW5kbGVyIC0gd2UgbmVl
ZCB0byByZWNlaXZlIG1vdXNlIHVwIQotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsK
LSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgp
OwogICAgIH0sCiAKICAgICBfbWVudUl0ZW1Nb3VzZVVwOiBmdW5jdGlvbihldmVudCkKQEAgLTE5
Nyw4ICsxOTUsNyBAQCBXZWJJbnNwZWN0b3IuU29mdENvbnRleHRNZW51LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICB0aGlzLl90cmlnZ2VyQWN0aW9uKHRoaXMuX2hpZ2hsaWdodGVkTWVu
dUl0ZW1FbGVtZW50LCBldmVudCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAg
ICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgIH0sCiAKICAgICBfZ2xhc3NQYW5l
TW91c2VVcDogZnVuY3Rpb24oZXZlbnQpCkBAIC0yMTcsOCArMjE0LDcgQEAgV2ViSW5zcGVjdG9y
LlNvZnRDb250ZXh0TWVudS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAvLyBUaGlzIGNhbiBy
ZS1lbnRlciBkaXNjYXJkTWVudSBkdWUgdG8gYmx1ci4KICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkucmVtb3ZlQ2hpbGQoZ2xhc3NQYW5lKTsKIAotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3Bh
Z2F0aW9uKCk7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAg
ICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TcGVjdHJ1bS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3BlY3RydW0uanMKaW5kZXggNTUwYzhmMDA5MTg0ZjRi
YTc1NTc3OWU1MjVmMDFmNmI3YjMxYzgzZi4uN2U4ZTZkMjVkYzUxOTZkZWNlZGI0Njg5MTZkNmZh
Y2FkNDlmM2MwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TcGVjdHJ1bS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nw
ZWN0cnVtLmpzCkBAIC0zNCw3ICszNCw3IEBAIFdlYkluc3BlY3Rvci5TcGVjdHJ1bSA9IGZ1bmN0
aW9uKCkKIHsKICAgICB0aGlzLl9wb3BvdmVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVyKCk7
CiAgICAgdGhpcy5fcG9wb3Zlci5zZXRDYW5TaHJpbmsoZmFsc2UpOwotICAgIHRoaXMuX3BvcG92
ZXIuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBzdG9wUHJvcGFnYXRpb24s
IGZhbHNlKTsKKyAgICB0aGlzLl9wb3BvdmVyLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2Vkb3duIiwgY29uc3VtZUV2ZW50LCBmYWxzZSk7CiAKICAgICB0aGlzLl9jb250YWluZXJFbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgdGhpcy5fY29udGFpbmVy
RWxlbWVudC5jbGFzc05hbWUgPSAic3BlY3RydW0tY29udGFpbmVyIjsKQEAgLTE4NiwxMyArMTg2
LDkgQEAgV2ViSW5zcGVjdG9yLlNwZWN0cnVtLmRyYWdnYWJsZSA9IGZ1bmN0aW9uKGVsZW1lbnQs
IG9ubW92ZSwgb25zdGFydCwgb25zdG9wKSB7CiAgICAgdmFyIG1heEhlaWdodDsKICAgICB2YXIg
bWF4V2lkdGg7CiAKLSAgICBmdW5jdGlvbiBwcmV2ZW50KGUpCisgICAgZnVuY3Rpb24gY29uc3Vt
ZShlKQogICAgIHsKLSAgICAgICAgaWYgKGUuc3RvcFByb3BhZ2F0aW9uKQotICAgICAgICAgICAg
ZS5zdG9wUHJvcGFnYXRpb24oKTsKLQotICAgICAgICBpZiAoZS5wcmV2ZW50RGVmYXVsdCkKLSAg
ICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZS5jb25zdW1lKCk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gbW92ZShlKQpAQCAtMjIyLDIxICsyMTgsMjEgQEAgV2ViSW5zcGVj
dG9yLlNwZWN0cnVtLmRyYWdnYWJsZSA9IGZ1bmN0aW9uKGVsZW1lbnQsIG9ubW92ZSwgb25zdGFy
dCwgb25zdG9wKSB7CiAgICAgICAgICAgICBzY3JvbGxPZmZzZXQgPSBlbGVtZW50LnNjcm9sbE9m
ZnNldCgpOwogICAgICAgICAgICAgb2Zmc2V0ID0gZWxlbWVudC50b3RhbE9mZnNldCgpOwogCi0g
ICAgICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0c3RhcnQiLCBwcmV2ZW50LCBm
YWxzZSk7Ci0gICAgICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwgcHJl
dmVudCwgZmFsc2UpOworICAgICAgICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoInNlbGVjdHN0
YXJ0IiwgY29uc3VtZSwgZmFsc2UpOworICAgICAgICAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIo
ImRyYWdzdGFydCIsIGNvbnN1bWUsIGZhbHNlKTsKICAgICAgICAgICAgIGRvYy5hZGRFdmVudExp
c3RlbmVyKCJtb3VzZW1vdmUiLCBtb3ZlLCBmYWxzZSk7CiAgICAgICAgICAgICBkb2MuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2V1cCIsIHN0b3AsIGZhbHNlKTsKIAogICAgICAgICAgICAgbW92ZShl
KTsKLSAgICAgICAgICAgIHByZXZlbnQoZSk7CisgICAgICAgICAgICBjb25zdW1lKGUpOwogICAg
ICAgICB9CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RvcChlKQogICAgIHsKICAgICAgICAgaWYg
KGRyYWdnaW5nKSB7Ci0gICAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0
c3RhcnQiLCBwcmV2ZW50LCBmYWxzZSk7Ci0gICAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0
ZW5lcigiZHJhZ3N0YXJ0IiwgcHJldmVudCwgZmFsc2UpOworICAgICAgICAgICAgZG9jLnJlbW92
ZUV2ZW50TGlzdGVuZXIoInNlbGVjdHN0YXJ0IiwgY29uc3VtZSwgZmFsc2UpOworICAgICAgICAg
ICAgZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoImRyYWdzdGFydCIsIGNvbnN1bWUsIGZhbHNlKTsK
ICAgICAgICAgICAgIGRvYy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3ZlLCBm
YWxzZSk7CiAgICAgICAgICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHN0
b3AsIGZhbHNlKTsKIApAQCAtNDEwLDEzICs0MDYsMTEgQEAgV2ViSW5zcGVjdG9yLlNwZWN0cnVt
LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCkK
ICAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50ID0gV2ViSW5zcGVjdG9yLmN1
cnJlbnRGb2N1c0VsZW1lbnQoKTsKICAgICAgICAgdGhpcy5fcG9wb3Zlci5zaG93KHRoaXMuX2Nv
bnRhaW5lckVsZW1lbnQsIGVsZW1lbnQpOwotICAgICAgICBXZWJJbnNwZWN0b3IubWFya0JlaW5n
RWRpdGVkKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQsIHRydWUpOyAgICAKICAgICAgICAgV2ViSW5z
cGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5fY29udGFpbmVyRWxlbWVudCk7CiAg
ICAgfSwKIAogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5tYXJrQmVpbmdFZGl0ZWQodGhpcy5fY29udGFpbmVyRWxlbWVudCwgZmFsc2UpOwogICAgICAg
ICB0aGlzLl9wb3BvdmVyLmhpZGUoKTsKIAogICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExp
c3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9oaWRlUHJveHksIGZhbHNlKTsKQEAgLTQzNCw4ICs0
MjgsNyBAQCBXZWJJbnNwZWN0b3IuU3BlY3RydW0ucHJvdG90eXBlID0gewogICAgIHsKICAgICAg
ICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJFbnRlciIgfHwgZXZlbnQua2V5SWRlbnRp
ZmllciA9PT0gIlUrMDAxQiIpIHsgLy8gRXNjYXBlIGtleQogICAgICAgICAgICAgdGhpcy5oaWRl
KCk7Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCBmNzZlMWQ2M2ZlOWMyN2M4ZmJlZTFj
YWI3N2UzYzQ2ZTBjNTNhNjYzLi5iNGJmOTQzYTBlYzdiYTU5ZGE0ZTU5ZGQxN2ZjZDc5YTJkOWU2
YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxl
c1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U3R5bGVzU2lkZWJhclBhbmUuanMKQEAgLTU5LDcgKzU5LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxl
c1NpZGViYXJQYW5lID0gZnVuY3Rpb24oY29tcHV0ZWRTdHlsZVBhbmUpCiAgICAgdGhpcy5zZXR0
aW5nc1NlbGVjdEVsZW1lbnQuYXBwZW5kQ2hpbGQob3B0aW9uKTsKIAogICAgIC8vIFByZXZlbnQg
c2VjdGlvbiBmcm9tIGNvbGxhcHNpbmcuCi0gICAgdmFyIG11dGVFdmVudExpc3RlbmVyID0gZnVu
Y3Rpb24oZXZlbnQpIHsgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGV2ZW50LnByZXZlbnREZWZh
dWx0KCk7IH07CisgICAgdmFyIG11dGVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQpIHsg
ZXZlbnQuY29uc3VtZSgpOyB9OwogCiAgICAgdGhpcy5zZXR0aW5nc1NlbGVjdEVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBtdXRlRXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CiAgICAgdGhp
cy5zZXR0aW5nc1NlbGVjdEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgdGhpcy5f
Y2hhbmdlU2V0dGluZy5iaW5kKHRoaXMpLCBmYWxzZSk7CkBAIC03MzYsNyArNzM2LDcgQEAgV2Vi
SW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF9jcmVhdGVO
ZXdSdWxlOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdh
dGlvbigpOworICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgICAgIHRoaXMuZXhwYW5kZWQg
PSB0cnVlOwogICAgICAgICB0aGlzLmFkZEJsYW5rU2VjdGlvbigpLnN0YXJ0RWRpdGluZ1NlbGVj
dG9yKCk7CiAgICAgfSwKQEAgLTgwNSw3ICs4MDUsNyBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lk
ZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgX3RvZ2dsZUVsZW1lbnRTdGF0ZVBhbmU6IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Cisg
ICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgaWYgKCF0aGlzLl9lbGVtZW50U3RhdGVC
dXR0b24uaGFzU3R5bGVDbGFzcygidG9nZ2xlZCIpKSB7CiAgICAgICAgICAgICB0aGlzLmV4cGFu
ZCgpOwogICAgICAgICAgICAgdGhpcy5fZWxlbWVudFN0YXRlQnV0dG9uLmFkZFN0eWxlQ2xhc3Mo
InRvZ2dsZWQiKTsKQEAgLTEyNDQsNyArMTI0NCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3Bl
cnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBpZiAoZXZlbnQudGFyZ2V0Lmhhc1N0eWxlQ2xhc3MoImhlYWRlciIpIHx8IHRoaXMuZWxlbWVu
dC5oYXNTdHlsZUNsYXNzKCJyZWFkLW9ubHkiKSB8fCBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9k
ZU9yU2VsZldpdGhDbGFzcygibWVkaWEiKSkgewotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3Bh
Z2F0aW9uKCk7CisgICAgICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5leHBhbmQoKTsKQEAgLTEyNTQsOCArMTI1NCw3
IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAg
ICBfaGFuZGxlU2VsZWN0b3JDbGljazogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB0
aGlzLl9zdGFydEVkaXRpbmdPbk1vdXNlRXZlbnQoKTsKLSAgICAgICAgZXZlbnQuc3RvcFByb3Bh
Z2F0aW9uKCk7Ci0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgIGV2ZW50
LmNvbnN1bWUoKTsKICAgICB9LAogCiAgICAgX3N0YXJ0RWRpdGluZ09uTW91c2VFdmVudDogZnVu
Y3Rpb24oKQpAQCAtMTc0OSw5ICsxNzQ4LDkgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50
LmNsYXNzTmFtZSA9ICJzd2F0Y2giOwogCi0gICAgICAgICAgICAgICAgc3dhdGNoRWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBzdG9wUHJvcGFnYXRpb24sIGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIs
IGNvbnN1bWVFdmVudCwgZmFsc2UpOwogICAgICAgICAgICAgICAgIHN3YXRjaEVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBzd2F0Y2hDbGljaywgZmFsc2UpOwotICAgICAgICAgICAg
ICAgIHN3YXRjaEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCBzdG9wUHJvcGFn
YXRpb24sIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzd2F0Y2hFbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImRibGNsaWNrIiwgY29uc3VtZUV2ZW50LCBmYWxzZSk7CiAKICAgICAgICAgICAgICAg
ICBzd2F0Y2hJbm5lckVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdGV4dDsKIApAQCAt
MTgwMyw4ICsxODAyLDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsZXJFbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHJlcG9zaXRpb25TcGVjdHJ1bSwgZmFsc2UpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgICAgICAgICAgICAgIGUu
cHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICAgICAgZS5jb25zdW1lKCk7CiAgICAg
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZ2V0Rm9ybWF0KCkKQEAg
LTIwMjQsOCArMjAyMiw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnR5VHJlZUVsZW1lbnQu
cHJvdG90eXBlID0gewogCiAgICAgX21vdXNlQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKIAogICAgICAgICBpZiAoZXZlbnQu
dGFyZ2V0ID09PSB0aGlzLmxpc3RJdGVtRWxlbWVudCkgewogICAgICAgICAgICAgaWYgKHRoaXMu
c2VjdGlvbi5fY2hlY2tXaWxsQ2FuY2VsRWRpdGluZygpKQpAQCAtMjIwMyw3ICsyMjAwLDcgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGV4dFByb21wdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dFByb21wdC5qcwppbmRleCAxM2VmYTMzMWNkMzdiOTUxMmUzMWIwNGQzMjY1
MTM1NTE4ZTJjMTg0Li44YmEzZGRhNDcyZTU2OWRmZDJlOWJlZjJjZjdmNGMyNzA0NjYxNmVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0UHJvbXB0Lmpz
CkBAIC0yODAsMTAgKzI4MCw4IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCFoYW5kbGVkICYmIGludm9rZURlZmF1bHQpCiAgICAgICAgICAgICBo
YW5kbGVkID0gdGhpcy5kZWZhdWx0S2V5SGFuZGxlcihldmVudCk7CiAKLSAgICAgICAgaWYgKGhh
bmRsZWQpIHsKLSAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAg
ICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoaGFuZGxl
ZCkKKyAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKIAogICAgICAgICByZXR1cm4gaGFuZGxl
ZDsKICAgICB9LApAQCAtODg1LDggKzg4Myw3IEBAIFdlYkluc3BlY3Rvci5UZXh0UHJvbXB0V2l0
aEhpc3RvcnkucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgaWYgKG5ld1RleHQg
IT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0g
ICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgZXZlbnQuY29u
c3VtZSgpOwogICAgICAgICAgICAgdGhpcy50ZXh0ID0gbmV3VGV4dDsKIAogICAgICAgICAgICAg
aWYgKGlzUHJldmlvdXMpIHsKQEAgLTExMzksOCArMTEzNiw3IEBAIFdlYkluc3BlY3Rvci5UZXh0
UHJvbXB0LlN1Z2dlc3RCb3gucHJvdG90eXBlID0gewogICAgIF9vbkl0ZW1Nb3VzZURvd246IGZ1
bmN0aW9uKHRleHQsIGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5hY2NlcHRTdWdnZXN0aW9u
KHRleHQpOwotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgIH0sCiAKICAg
ICBfY3JlYXRlSXRlbUVsZW1lbnQ6IGZ1bmN0aW9uKHByZWZpeCwgdGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcwppbmRleCBhZGU4NjM3
MjMyMGMwZTZiMWNmYWY3ZTU1ODhiZjliMDczODhmOTFmLi5hOGNjNzM5NDVhYmZiOTZiY2U3ODZm
NTBjNzgyMTA5MTE1YjUxYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0Vmlld2VyLmpzCkBAIC0yOTMsMTAgKzI5Myw4IEBAIFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgc2hvcnRjdXRLZXkgPSBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5RnJvbUV2ZW50KGUpOwogICAgICAgICB2
YXIgaGFuZGxlciA9IHRoaXMuX3Nob3J0Y3V0c1tzaG9ydGN1dEtleV07Ci0gICAgICAgIGlmICho
YW5kbGVyICYmIGhhbmRsZXIoKSkgewotICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwot
ICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKLSAgICAgICAgfQorICAgICAgICBpZiAo
aGFuZGxlciAmJiBoYW5kbGVyKCkpCisgICAgICAgICAgICBlLmNvbnN1bWUoKTsKICAgICB9LAog
CiAgICAgX2NvbnRleHRNZW51OiBmdW5jdGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcwppbmRleCAxYmVhMzBkMWMxMTgwMGJiMjZjYjY4
OWI4MTk2ODI2NDk2NjRiYTYzLi42ZWI0NDcyNWRlYjA1YjExY2RjOTgzM2JhNWJkN2Q4OTRmNzNl
MTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xi
YXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Ub29sYmFyLmpz
CkBAIC0yMjksNyArMjI5LDcgQEAgV2ViSW5zcGVjdG9yLlRvb2xiYXJEcm9wZG93bi5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSAhPT0gV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5cy5Fc2MuY29kZSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsK
ICAgICAgICAgdGhpcy5oaWRlKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9VSVV0aWxzLmpzCmluZGV4IDQ5ZGRlYzUwYmFlZTUyMDEyNTllNTI1M2M0
NDVhNjlhNzVmMDQwZDAuLmY5ZjNkNjEyZDk5YWZmOGZjNWQzYThjZGQyOWQ0NTc1MTA0NTM1YjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlVdGlscy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKQEAg
LTE4Myw3ICsxODMsMTggQEAgV2ViSW5zcGVjdG9yLmFuaW1hdGVTdHlsZSA9IGZ1bmN0aW9uKGFu
aW1hdGlvbnMsIGR1cmF0aW9uLCBjYWxsYmFjaykKIAogV2ViSW5zcGVjdG9yLmlzQmVpbmdFZGl0
ZWQgPSBmdW5jdGlvbihlbGVtZW50KQogewotICAgIHJldHVybiBlbGVtZW50Ll9fZWRpdGluZzsK
KyAgICBpZiAoZWxlbWVudC5oYXNTdHlsZUNsYXNzKCJ0ZXh0LXByb21wdCIpIHx8IGVsZW1lbnQu
bm9kZU5hbWUgPT09ICJJTlBVVCIpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFX
ZWJJbnNwZWN0b3IuX19lZGl0aW5nQ291bnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHdoaWxlIChlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RF
KSB7CisgICAgICAgIGlmIChlbGVtZW50Ll9fZWRpdGluZykKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKIFdlYkluc3BlY3Rvci5tYXJrQmVpbmdFZGl0ZWQgPSBmdW5jdGlv
bihlbGVtZW50LCB2YWx1ZSkKQEAgLTIwMiwxNyArMjEzLDYgQEAgV2ViSW5zcGVjdG9yLm1hcmtC
ZWluZ0VkaXRlZCA9IGZ1bmN0aW9uKGVsZW1lbnQsIHZhbHVlKQogICAgIHJldHVybiB0cnVlOwog
fQogCi1XZWJJbnNwZWN0b3IuaXNJbkVkaXRNb2RlID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0gICAg
aWYgKFdlYkluc3BlY3Rvci5fX2VkaXRpbmdDb3VudCA+IDApCi0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIGlmIChldmVudC50YXJnZXQubm9kZU5hbWUgPT09ICJJTlBVVCIpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIGlmIChldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhD
bGFzcygidGV4dC1wcm9tcHQiKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtmdW5jdGlvbihFbGVt
ZW50LHN0cmluZyxzdHJpbmcsKixzdHJpbmcpfSBjb21taXRIYW5kbGVyCkBAIC0zNTEsMTIgKzM1
MSwxMCBAQCBXZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nID0gZnVuY3Rpb24oZWxlbWVudCwgY29u
ZmlnKQogICAgIHsKICAgICAgICAgaWYgKHJlc3VsdCA9PT0gImNvbW1pdCIpIHsKICAgICAgICAg
ICAgIGVkaXRpbmdDb21taXR0ZWQuY2FsbChlbGVtZW50KTsKLSAgICAgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAg
ICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT09
ICJjYW5jZWwiKSB7CiAgICAgICAgICAgICBlZGl0aW5nQ2FuY2VsbGVkLmNhbGwoZWxlbWVudCk7
Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICAgICAgZXZlbnQu
c3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgICAg
IH0gZWxzZSBpZiAocmVzdWx0ICYmIHJlc3VsdC5pbmRleE9mKCJtb3ZlLSIpID09PSAwKSB7CiAg
ICAgICAgICAgICBtb3ZlRGlyZWN0aW9uID0gcmVzdWx0LnN1YnN0cmluZyg1KTsKICAgICAgICAg
ICAgIGlmIChldmVudC5rZXlJZGVudGlmaWVyICE9PSAiVSswMDA5IikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcwppbmRleCBmNWE2ZGM4NDdkZTAxNzVhMmUyYmFl
NTJmZmYyYzRhZjlhZjBhZDU2Li43MWMxYzJlM2YwMDRiZTIxZDVjODU0MjhhNjY0ZDJlZmRkOTE4
MmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXcu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3LmpzCkBAIC0y
NzgsNyArMjc4LDcgQEAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5leHBlcmlt
ZW50c1NldHRpbmdzLmRlYnVnQ1NTLmlzRW5hYmxlZCgpKSB7CisgICAgICAgIGlmICgwKSB7IC8q
IGRlYnVnZ2luZyBzdXBwb3J0ICovCiAgICAgICAgICAgICBzdHlsZUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJsaW5rIik7CiAgICAgICAgICAgICBzdHlsZUVsZW1lbnQucmVsID0g
InN0eWxlc2hlZXQiOwogICAgICAgICAgICAgc3R5bGVFbGVtZW50LnR5cGUgPSAidGV4dC9jc3Mi
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XYXRjaEV4
cHJlc3Npb25zU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwppbmRleCA4MGQ0NzlhZTVlOGI3Mjli
MzViODliMzc5MWM4MDg1MjE0MzMxMjg1Li5hNzBhYzczZTU4YWZhYTViM2ZlZTUzYmE4MjJiY2Y1
ZDgyNjdiMDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcwpAQCAtMTAxLDE0
ICsxMDEsMTQgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAKICAgICBfYWRkQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAg
ewotICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgZXZlbnQuY29uc3Vt
ZSgpOwogICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTsKICAgICAgICAgdGhpcy5zZWN0aW9u
LmFkZE5ld0V4cHJlc3Npb25BbmRFZGl0KCk7CiAgICAgfSwKIAogICAgIF9yZWZyZXNoQnV0dG9u
Q2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBldmVudC5zdG9wUHJvcGFn
YXRpb24oKTsKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAgICB0aGlzLnJlZnJlc2hF
eHByZXNzaW9ucygpOwogICAgIH0KIH0KQEAgLTE0Niw3ICsxNDYsNyBAQCBXZWJJbnNwZWN0b3Iu
V2F0Y2hFeHByZXNzaW9uc1NlY3Rpb24ucHJvdG90eXBlID0gewogICAgIHVwZGF0ZTogZnVuY3Rp
b24oZSkKICAgICB7CiAgICAgICAgIGlmIChlKQotICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRp
b24oKTsKKyAgICAgICAgICAgIGUuY29uc3VtZSgpOwogCiAgICAgICAgIGZ1bmN0aW9uIGFwcGVu
ZFJlc3VsdChleHByZXNzaW9uLCB3YXRjaEluZGV4LCByZXN1bHQsIHdhc1Rocm93bikKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRl
cm5zLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCmlu
ZGV4IDBkYzQzOGQzNDJiZWRkNjVkYmE4Njc3ZGVmODVmZmQzYzJhMWJiNTUuLjcyZDk5ZWEwZWNk
MjQxYzJlMTNmOWRiNDdlOTg0NzNiMzExNDFkYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKQEAgLTU1LDYgKzU1LDggQEAgRWxlbWVudC5wcm90
b3R5cGUuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA9IGZ1bmN0aW9uKHBhcmFtKSB7fQogRXZlbnQu
cHJvdG90eXBlLmlzTWV0YU9yQ3RybEZvclRlc3QgPSBmYWxzZTsKIC8qKiBAcGFyYW0gey4uLip9
IHZhcmFyZyAqLwogRXZlbnQucHJvdG90eXBlLmluaXRXZWJLaXRXaGVlbEV2ZW50ID0gZnVuY3Rp
b24odmFyYXJnKSB7fQorRXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiA9
IGZ1bmN0aW9uKCkge30KKwogLyoqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudCAqLwogd2luZG93
LmdldENvbXB1dGVkU3R5bGUgPSBmdW5jdGlvbihlbGVtZW50KSB7fQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGQzZDQxZTJmNjIz
ZDBiOWUwNTE3OGZiYWNlYTM3MjgwYTZlMzVhZDAuLjkzNzMwNTk5Mzk2ZWFjNDFiZGM4YWM2OTEy
MDI2ZTg5NDA4NWYyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC0xMjUsMTYgKzEyNSw2IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7
CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX2VzY1ByZXNzZWQ6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIAotICAgICAgICAvLyBJZiBkcmF3ZXIgaXMgb3BlbiB3aXRoIHNvbWUgdmlldyBv
dGhlciB0aGFuIGNvbnNvbGUgdGhlbiBjbG9zZSBpdC4KLSAgICAgICAgaWYgKCF0aGlzLl90b2dn
bGVDb25zb2xlQnV0dG9uLnRvZ2dsZWQgJiYgV2ViSW5zcGVjdG9yLmRyYXdlci52aXNpYmxlKQot
ICAgICAgICAgICAgdGhpcy5jbG9zZURyYXdlclZpZXcoKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQoKTsKLSAgICB9LAotCiAgICAg
Y2xvc2VEcmF3ZXJWaWV3OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICAvLyBPbmNlIGRyYXdl
ciBpcyBjbG9zZWQgY29uc29sZSBzaG91bGQgYmUgc2hvd24gaWYgaXQgd2FzIHNob3duIGJlZm9y
ZSBjdXJyZW50IHZpZXcgcmVwbGFjZWQgaXQgaW4gZHJhd2VyLiAKQEAgLTU5OCwxMiArNTg4LDEx
IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudENsaWNrID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIFByZXZlbnQgdGhlIGxpbmsgZnJvbSBuYXZpZ2F0aW5nLCBzaW5j
ZSB3ZSBkb24ndCBkbyBhbnkgbmF2aWdhdGlvbiBieSBmb2xsb3dpbmcgbGlua3Mgbm9ybWFsbHku
Ci0gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICBldmVudC5zdG9wUHJvcGFnYXRpb24o
KTsKKyAgICBldmVudC5jb25zdW1lKCk7CiAKICAgICBmdW5jdGlvbiBmb2xsb3dMaW5rKCkKICAg
ICB7Ci0gICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNJbkVkaXRNb2RlKGV2ZW50KSB8fCBXZWJJ
bnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbihhbmNob3IpKQorICAgICAgICBpZiAoV2ViSW5z
cGVjdG9yLmlzQmVpbmdFZGl0ZWQoZXZlbnQudGFyZ2V0KSB8fCBXZWJJbnNwZWN0b3IuX3Nob3dB
bmNob3JMb2NhdGlvbihhbmNob3IpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGNv
bnN0IHByb2ZpbGVNYXRjaCA9IFdlYkluc3BlY3Rvci5Qcm9maWxlVHlwZS5VUkxSZWdFeHAuZXhl
YyhhbmNob3IuaHJlZik7CkBAIC02ODcsMTcgKzY3NiwxNiBAQCBXZWJJbnNwZWN0b3IuZG9jdW1l
bnRLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgY29uc3QgaGVscEtleSA9IFdlYkluc3Bl
Y3Rvci5pc01hYygpID8gIlUrMDAzRiIgOiAiVSswMEJGIjsgLy8gIj8iIGZvciBib3RoIHBsYXRm
b3JtcwogCiAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09ICJGMSIgfHwKLSAgICAgICAg
KGV2ZW50LmtleUlkZW50aWZpZXIgPT09IGhlbHBLZXkgJiYgZXZlbnQuc2hpZnRLZXkgJiYgKCFX
ZWJJbnNwZWN0b3IuaXNJbkVkaXRNb2RlKGV2ZW50KSB8fCBldmVudC5tZXRhS2V5KSkpIHsKKyAg
ICAgICAgKGV2ZW50LmtleUlkZW50aWZpZXIgPT09IGhlbHBLZXkgJiYgZXZlbnQuc2hpZnRLZXkg
JiYgKCFXZWJJbnNwZWN0b3IuaXNCZWluZ0VkaXRlZChldmVudC50YXJnZXQpIHx8IGV2ZW50Lm1l
dGFLZXkpKSkgewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRzU2NyZWVuLnNob3coKTsK
LSAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CisgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGlmIChXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCgpICYmIFdlYklu
c3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCkuaGFuZGxlS2V5RXZlbnQpIHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQoKS5oYW5kbGVLZXlFdmVudChldmVudCk7
CiAgICAgICAgIGlmIChldmVudC5oYW5kbGVkKSB7Ci0gICAgICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworICAgICAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtNzA1LDcgKzY5Myw3IEBAIFdlYkluc3BlY3Rvci5k
b2N1bWVudEtleURvd24gPSBmdW5jdGlvbihldmVudCkKICAgICBpZiAoV2ViSW5zcGVjdG9yLmlu
c3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCkpIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmluc3Bl
Y3RvclZpZXcuY3VycmVudFBhbmVsKCkuaGFuZGxlU2hvcnRjdXQoZXZlbnQpOwogICAgICAgICBp
ZiAoZXZlbnQuaGFuZGxlZCkgewotICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTcxMywyOCArNzAxLDIyIEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudEtl
eURvd24gPSBmdW5jdGlvbihldmVudCkKICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxl
ci5oYW5kbGVTaG9ydGN1dChldmVudCk7CiAgICAgV2ViSW5zcGVjdG9yLmFkdmFuY2VkU2VhcmNo
Q29udHJvbGxlci5oYW5kbGVTaG9ydGN1dChldmVudCk7CiAgICAgaWYgKGV2ZW50LmhhbmRsZWQp
IHsKLSAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZXZlbnQuY29uc3Vt
ZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgdmFyIGlzTWFjID0gV2ViSW5zcGVj
dG9yLmlzTWFjKCk7CiAgICAgc3dpdGNoIChldmVudC5rZXlJZGVudGlmaWVyKSB7Ci0gICAgICAg
IGNhc2UgIlUrMDAxQiI6IC8vIEVzY2FwZSBrZXkKLSAgICAgICAgICAgIGlmIChldmVudC50YXJn
ZXQuaGFzU3R5bGVDbGFzcygidGV4dC1wcm9tcHQiKSB8fCAhV2ViSW5zcGVjdG9yLmlzSW5FZGl0
TW9kZShldmVudCkpIHsKLSAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwot
ICAgICAgICAgICAgICAgIHRoaXMuX2VzY1ByZXNzZWQoKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICJVKzAwNTIiOiAvLyBSIGtleQogICAgICAgICAg
ICAgaWYgKChldmVudC5tZXRhS2V5ICYmIGlzTWFjKSB8fCAoZXZlbnQuY3RybEtleSAmJiAhaXNN
YWMpKSB7CiAgICAgICAgICAgICAgICAgUGFnZUFnZW50LnJlbG9hZChldmVudC5zaGlmdEtleSk7
Ci0gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAg
ICBldmVudC5jb25zdW1lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSAiRjUiOgogICAgICAgICAgICAgaWYgKCFpc01hYykgewogICAgICAgICAgICAg
ICAgIFBhZ2VBZ2VudC5yZWxvYWQoZXZlbnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleSk7Ci0g
ICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICBl
dmVudC5jb25zdW1lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICB9
CkBAIC03NDgsMjUgKzczMCwzOSBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duID0gZnVu
Y3Rpb24oZXZlbnQpCiAgICAgICAgIGNhc2UgMTg3OiAvLyArCiAgICAgICAgICAgICBpZiAoaXNW
YWxpZFpvb21TaG9ydGN1dCkgewogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5fem9vbUlu
KCk7Ci0gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAg
ICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSAxMDk6IC8vIC0KICAgICAgICAgY2FzZSAxODk6IC8vIC0KICAgICAgICAg
ICAgIGlmIChpc1ZhbGlkWm9vbVNob3J0Y3V0KSB7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLl96b29tT3V0KCk7Ci0gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgICAgICBldmVudC5jb25zdW1lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSA0ODogLy8gMAogICAgICAgICAgICAgaWYgKGlzVmFs
aWRab29tU2hvcnRjdXQpIHsKICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuX3Jlc2V0Wm9v
bSgpOwotICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAg
ICAgICAgZXZlbnQuY29uc3VtZSgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCitXZWJJbnNwZWN0b3IucG9zdERvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9u
KGV2ZW50KQoreworICAgIGlmIChldmVudC5oYW5kbGVkKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoZXZlbnQua2V5SWRlbnRpZmllciA9PT0gIlUrMDAxQiIpIHsgLy8gRXNjYXBlIGtleQor
ICAgICAgICAvLyBJZiBkcmF3ZXIgaXMgb3BlbiB3aXRoIHNvbWUgdmlldyBvdGhlciB0aGFuIGNv
bnNvbGUgdGhlbiBjbG9zZSBpdC4KKyAgICAgICAgaWYgKCF0aGlzLl90b2dnbGVDb25zb2xlQnV0
dG9uLnRvZ2dsZWQgJiYgV2ViSW5zcGVjdG9yLmRyYXdlci52aXNpYmxlKQorICAgICAgICAgICAg
dGhpcy5jbG9zZURyYXdlclZpZXcoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5f
dG9nZ2xlQ29uc29sZUJ1dHRvbkNsaWNrZWQoKTsKKyAgICB9Cit9CisKIFdlYkluc3BlY3Rvci5k
b2N1bWVudENhbkNvcHkgPSBmdW5jdGlvbihldmVudCkKIHsKICAgICBpZiAoV2ViSW5zcGVjdG9y
Lmluc3BlY3RvclZpZXcuY3VycmVudFBhbmVsKCkgJiYgV2ViSW5zcGVjdG9yLmluc3BlY3RvclZp
ZXcuY3VycmVudFBhbmVsKCkuaGFuZGxlQ29weUV2ZW50KQpAQCAtOTg5LDcgKzk4NSw4IEBAIFdl
Ykluc3BlY3Rvci5ldmFsdWF0ZUluQ29uc29sZSA9IGZ1bmN0aW9uKGV4cHJlc3Npb24sIHNob3dS
ZXN1bHRPbmx5KQogCiBXZWJJbnNwZWN0b3IuYWRkTWFpbkV2ZW50TGlzdGVuZXJzID0gZnVuY3Rp
b24oZG9jKQogewotICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5kb2N1
bWVudEtleURvd24uYmluZCh0aGlzKSwgZmFsc2UpOworICAgIGRvYy5hZGRFdmVudExpc3RlbmVy
KCJrZXlkb3duIiwgdGhpcy5kb2N1bWVudEtleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAg
ZG9jLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLnBvc3REb2N1bWVudEtleURvd24u
YmluZCh0aGlzKSwgZmFsc2UpOwogICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmVjb3B5
IiwgdGhpcy5kb2N1bWVudENhbkNvcHkuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgZG9jLmFkZEV2
ZW50TGlzdGVuZXIoImNvcHkiLCB0aGlzLmRvY3VtZW50Q29weS5iaW5kKHRoaXMpLCB0cnVlKTsK
ICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLmNvbnRleHRNZW51
RXZlbnRGaXJlZC5iaW5kKHRoaXMpLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzCmluZGV4IDdjZDBjNzgzMDI5OTM5YjY3ODFh
N2EwZTc2ODFlZjI3MjA0ZjAxMGQuLmZiODQ1YzBmYzQyMTExYmZhMjAyZTFkZDJlMWJhZmI0OTNh
YTI0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJl
ZW91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90cmVl
b3V0bGluZS5qcwpAQCAtMzQ0LDggKzM0NCw3IEBAIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fdHJl
ZUtleVByZXNzID0gZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHRoaXMu
X3N0YXJ0U2VhcmNoKHNlYXJjaFRleHQpOwotICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0g
ICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZXZlbnQuY29uc3VtZSgpOwogfQogCiBU
cmVlT3V0bGluZS5wcm90b3R5cGUuX3RyZWVLZXlEb3duID0gZnVuY3Rpb24oZXZlbnQpCkBAIC00
MTYsMTAgKzQxNSw4IEBAIFRyZWVPdXRsaW5lLnByb3RvdHlwZS5fdHJlZUtleURvd24gPSBmdW5j
dGlvbihldmVudCkKICAgICAgICAgbmV4dFNlbGVjdGVkRWxlbWVudC5zZWxlY3QoZmFsc2UsIHRy
dWUpOwogICAgIH0KIAotICAgIGlmIChoYW5kbGVkKSB7Ci0gICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7Ci0gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwotICAgIH0KKyAgICBp
ZiAoaGFuZGxlZCkKKyAgICAgICAgZXZlbnQuY29uc3VtZSgpOwogfQogCiBUcmVlT3V0bGluZS5w
cm90b3R5cGUuZXhwYW5kID0gZnVuY3Rpb24oKQpAQCAtNTM5LDEwICs1MzYsOSBAQCBUcmVlT3V0
bGluZS5wcm90b3R5cGUuX3NlYXJjaElucHV0S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50KQogICAg
IGlmIChuZXh0U2VsZWN0ZWRFbGVtZW50KQogICAgICAgICB0aGlzLl9zaG93U2VhcmNoTWF0Y2hF
bGVtZW50KG5leHRTZWxlY3RlZEVsZW1lbnQpOwogICAgICAgICAKLSAgICBpZiAoaGFuZGxlZCkg
ewotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwotICAgICAgICBldmVudC5zdG9wUHJv
cGFnYXRpb24oKTsKLSAgICB9IGVsc2UKKyAgICBpZiAoaGFuZGxlZCkKKyAgICAgICAgZXZlbnQu
Y29uc3VtZSgpOworICAgIGVsc2UKICAgICAgICB3aW5kb3cuc2V0VGltZW91dCh0aGlzLl9ib3Vu
ZFNlYXJjaFRleHRDaGFuZ2VkLCAwKTsgCiB9CiAKQEAgLTg1OSw3ICs4NTUsNyBAQCBUcmVlRWxl
bWVudC50cmVlRWxlbWVudFRvZ2dsZWQgPSBmdW5jdGlvbihldmVudCkKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgZWxlbWVudC50cmVlRWxlbWVudC5leHBhbmQoKTsKICAgICB9Ci0gICAgZXZl
bnQuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZXZlbnQuY29uc3VtZSgpOwogfQogCiBUcmVlRWxl
bWVudC50cmVlRWxlbWVudERvdWJsZUNsaWNrZWQgPSBmdW5jdGlvbihldmVudCkKQEAgLTEwMDgs
MTEgKzEwMDQsOCBAQCBUcmVlRWxlbWVudC5wcm90b3R5cGUucmV2ZWFsZWQgPSBmdW5jdGlvbigp
CiAKIFRyZWVFbGVtZW50LnByb3RvdHlwZS5zZWxlY3RPbk1vdXNlRG93biA9IGZ1bmN0aW9uKGV2
ZW50KQogewotICAgIGlmICh0aGlzLnNlbGVjdChmYWxzZSwgdHJ1ZSkpIHsKLSAgICAgICAgZXZl
bnQuc3RvcFByb3BhZ2F0aW9uKCk7Ci0gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0g
ICAgICAgIGV2ZW50LmhhbmRsZWQgPSB0cnVlOwotICAgIH0KKyAgICBpZiAodGhpcy5zZWxlY3Qo
ZmFsc2UsIHRydWUpKQorICAgICAgICBldmVudC5jb25zdW1lKCk7CiB9CiAKIC8qKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcwppbmRleCAyOGY2
MTA1YjAzOGMwZmY0ODM3ZjEwMTRlMmE4NGJiYzlkYzhhZGNjLi4zNGE2YzI3NzZmYzQ3OTRmMTI3
N2EzYjcwMzNkNTg3NjAzZjRiOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL3V0aWxpdGllcy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL3V0aWxpdGllcy5qcwpAQCAtMzc2LDYgKzM3NiwxMyBAQCBLZXlib2FyZEV2ZW50
LnByb3RvdHlwZS5fX2RlZmluZUdldHRlcl9fKCJkYXRhIiwgZnVuY3Rpb24oKQogICAgIH0KIH0p
OwogCitFdmVudC5wcm90b3R5cGUuY29uc3VtZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0aGlzLnN0
b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOworICAgIHRoaXMucHJldmVudERlZmF1bHQoKTsKKyAg
ICB0aGlzLmhhbmRsZWQgPSB0cnVlOworfQorCiBUZXh0LnByb3RvdHlwZS5zZWxlY3QgPSBmdW5j
dGlvbihzdGFydCwgZW5kKQogewogICAgIHN0YXJ0ID0gc3RhcnQgfHwgMDsKQEAgLTkyMyw5ICs5
MzAsOSBAQCBmdW5jdGlvbiBpc0VudGVyS2V5KGV2ZW50KSB7CiAgICAgcmV0dXJuIGV2ZW50Lmtl
eUNvZGUgIT09IDIyOSAmJiBldmVudC5rZXlJZGVudGlmaWVyID09PSAiRW50ZXIiOwogfQogCi1m
dW5jdGlvbiBzdG9wUHJvcGFnYXRpb24oZSkKK2Z1bmN0aW9uIGNvbnN1bWVFdmVudChlKQogewot
ICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgZS5jb25zdW1lKCk7CiB9CiAKIC8qKgo=
</data>
<flag name="review"
          id="136872"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>