<?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>34165</bug_id>
          
          <creation_ts>2010-01-26 05:24:34 -0800</creation_ts>
          <short_desc>Web Inspector: add support for breakpoints, messages and search into the SourceFrame2.</short_desc>
          <delta_ts>2010-01-26 08:42:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>184572</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-26 05:24:34 -0800</bug_when>
    <thetext>Patch to follow shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184573</commentid>
    <comment_count>1</comment_count>
      <attachid>47406</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-26 05:27:26 -0800</bug_when>
    <thetext>Created attachment 47406
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184598</commentid>
    <comment_count>2</comment_count>
      <attachid>47406</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-01-26 08:25:04 -0800</bug_when>
    <thetext>Comment on attachment 47406
[PATCH] Proposed change.

&gt; +            var column = line.indexOf(query);

This will be more restrictive than our current search. We are currently do a case insensitive search.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184602</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-26 08:41:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 47406 [details])
&gt; &gt; +            var column = line.indexOf(query);
&gt; 
&gt; This will be more restrictive than our current search. We are currently do a
&gt; case insensitive search.

I&apos;ll add toLowerCase or do a regex in the subsequent patch.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/SourceFrame2.js
	M	WebCore/inspector/front-end/TextEditor.js
	M	WebCore/inspector/front-end/TextEditorHighlighter.js
	M	WebCore/inspector/front-end/inspector.css
	M	WebCore/inspector/front-end/textEditor.css
Committed r53856</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47406</attachid>
            <date>2010-01-26 05:27:26 -0800</date>
            <delta_ts>2010-01-26 08:25:03 -0800</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>source_add_bp</filename>
            <type>text/plain</type>
            <size>35793</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2RkYTk1ZC4uOTUwMzg1MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw3NSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBzdXBwb3J0IGZvciBi
cmVha3BvaW50cywgbWVzc2FnZXMgYW5kIHNlYXJjaCBpbnRvIHRoZSBTb3VyY2VGcmFtZTIuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MTY1CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lMi5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZTIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lMi5wcm90b3R5cGUuZ2V0IGV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lMi5wcm90b3R5cGUuc2V0IGV4ZWN1dGlvbkxpbmUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5wcm90b3R5cGUucmV2ZWFsTGluZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnByb3RvdHlwZS5hZGRCcmVha3BvaW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZTIucHJvdG90eXBlLnJlbW92ZUJyZWFrcG9p
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5wcm90b3R5cGUuc2l6ZVRv
Rml0Q29udGVudEhlaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnBy
b3RvdHlwZS5zZXRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZTIu
cHJvdG90eXBlLmZpbmRTZWFyY2hNYXRjaGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZTIucHJvdG90eXBlLnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUyLnByb3RvdHlwZS5fYWRkTWVzc2FnZVRvU291cmNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZTIucHJvdG90eXBlLl9hZGRFeGlzdGluZ0JyZWFrcG9pbnRz
VG9Tb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5wcm90b3R5cGUu
X2FkZEJyZWFrcG9pbnRUb1NvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUyLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludEZyb21Tb3VyY2UpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5wcm90b3R5cGUuX2NvbnRleHRNZW51LmFkZENvbmRpdGlv
bmFsQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnByb3Rv
dHlwZS5fY29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5w
cm90b3R5cGUuX3RvZ2dsZUJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lMi5wcm90b3R5cGUuX2VkaXRCcmVha3BvaW50Q29uZGl0aW9uLmNvbW1pdHRlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnByb3RvdHlwZS5fZWRpdEJyZWFrcG9p
bnRDb25kaXRpb24uZGlzbWlzc2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZTIucHJvdG90eXBlLl9lZGl0QnJlYWtwb2ludENvbmRpdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUyLnByb3RvdHlwZS5fc2hvd0JyZWFrcG9pbnRDb25kaXRpb25Qb3B1
cCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnByb3RvdHlwZS5fY3JlYXRl
Q29uZGl0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnBy
b3RvdHlwZS5fa2V5RG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnBy
b3RvdHlwZS5fZXZhbFNlbGVjdGlvbkluQ2FsbEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZTIucHJvdG90eXBlLl9icmVha3BvaW50Q2hhbmdlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyLnByb3RvdHlwZS5yZXNpemUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRMaW5lTnVtYmVyRGVjb3JhdG9yLnByb3RvdHlwZS5kZWNvcmF0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludExpbmVOdW1iZXJEZWNvcmF0b3Iu
cHJvdG90eXBlLl9wYWludEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRMaW5lTnVtYmVyRGVjb3JhdG9yLnByb3RvdHlwZS5tb3VzZURvd24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRMaW5lTnVtYmVyRGVjb3JhdG9yLnByb3RvdHlwZS5jb250
ZXh0TWVudSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXhlY3V0aW9uTGluZURlY29yYXRvci5w
cm90b3R5cGUuZGVjb3JhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVk
aXRvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5zZXQgbWltZVR5cGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLnNldCByZWFkT25seSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuc2V0RGl2RGVjb3JhdGlvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUucmV2ZWFsKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5wYWNrQW5kUmVwYWludEFsbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuX3VwZGF0ZVNpemUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLnVwZGF0ZUNhbnZh
c1NpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLnJlcGFp
bnRBbGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9wYWlu
dExpbmVzQ29udGludWF0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnBy
b3RvdHlwZS5fcmVwYWludE9uU2Nyb2xsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yLnByb3RvdHlwZS5fbW91c2VEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yLnByb3RvdHlwZS5fY29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IucHJvdG90eXBlLl9jYXJldEZvck1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9jb2x1bW5Gb3JPZmZzZXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9oYW5kbGVOYXZpZ2F0aW9uS2V5KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcG9zaXRpb25EaXZEZWNv
cmF0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcmVw
bGFjZVNlbGVjdGlvbldpdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJv
dG90eXBlLnNldENvYWxlc2NpbmdVcGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3IucHJvdG90eXBlLl9oYW5kbGVVbmRvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yLnByb3RvdHlwZS5faGFuZGxlUmVkbyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvci5wcm90b3R5cGUuX2NoYW5nZUZvbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dEVkaXRvckhpZ2hsaWdodGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JIaWdobGlnaHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckhp
Z2hsaWdodGVyLnByb3RvdHlwZS5zZXQgbWltZVR5cGUpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3Rl
eHRFZGl0b3IuY3NzOgorCisyMDEwLTAxLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBtZXRob2RzIGZvciBnZXR0aW5nIHJlc291cmNlIGNvbnRl
bnQgZnJvbSB3aXRoaW4gZnJvbnRlbmQuCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0MTYzCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlRnJhbWUyLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lMi5qcwppbmRleCBmOGJiZWYxLi40OWJmOThlIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZTIuanMKQEAgLTI4LDcgKzI4LDcgQEAKICAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMiA9IGZ1bmN0aW9uKCkKK1dl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZTIgPSBmdW5jdGlvbihhZGRCcmVha3BvaW50RGVsZWdhdGUp
CiB7CiAgICAgdGhpcy5fZWRpdG9yID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yKFdlYklu
c3BlY3Rvci5wbGF0Zm9ybSk7CiAgICAgdGhpcy5fdGV4dE1vZGVsID0gdGhpcy5fZWRpdG9yLnRl
eHRNb2RlbDsKQEAgLTM4LDEzICszOCw1NCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUyID0g
ZnVuY3Rpb24oKQogICAgIHRoaXMuX21lc3NhZ2VzID0gW107CiAgICAgdGhpcy5fcm93TWVzc2Fn
ZXMgPSB7fTsKICAgICB0aGlzLl9tZXNzYWdlQnViYmxlcyA9IHt9OworICAgIHRoaXMuYnJlYWtw
b2ludHMgPSBbXTsKKyAgICB0aGlzLl9zaG9ydGN1dHMgPSB7fTsKICAgICB0aGlzLmVsZW1lbnQg
PSB0aGlzLl9lZGl0b3IuZWxlbWVudDsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigia2V5ZG93biIsIHRoaXMuX2tleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5f
bG9hZGVkID0gZmFsc2U7CisKKyAgICB0aGlzLmFkZEJyZWFrcG9pbnREZWxlZ2F0ZSA9IGFkZEJy
ZWFrcG9pbnREZWxlZ2F0ZTsKIH0KIAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5wcm90b3R5
cGUgPSB7Ci0gICAgc2V0IHRleHQodGV4dCkKKworICAgIGdldCBleGVjdXRpb25MaW5lKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9leGVjdXRpb25MaW5lOworICAgIH0sCisKKyAgICBz
ZXQgZXhlY3V0aW9uTGluZSh4KQogICAgIHsKLSAgICAgICAgdGhpcy5fZWRpdG9yLnRleHQgPSB0
ZXh0OworICAgICAgICBpZiAodGhpcy5fZXhlY3V0aW9uTGluZSA9PT0geCkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgdGhpcy5fZXhlY3V0aW9uTGluZSA9IHg7CisgICAgICAgIHRoaXMu
X2VkaXRvci5yZXBhaW50QWxsKCk7CisgICAgfSwKKworICAgIHJldmVhbExpbmU6IGZ1bmN0aW9u
KGxpbmVOdW1iZXIpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2xvYWRlZCkKKyAgICAgICAg
ICAgIHRoaXMuX2xpbmVOdW1iZXJUb1JldmVhbCA9IGxpbmVOdW1iZXI7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRoaXMuX2VkaXRvci5yZXZlYWwobGluZU51bWJlciAtIDEsIDApOworICAg
IH0sCisKKyAgICBhZGRCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5icmVha3BvaW50cy5wdXNoKGJyZWFrcG9pbnQpOworICAgICAgICBicmVha3Bv
aW50LmFkZEV2ZW50TGlzdGVuZXIoImVuYWJsZWQiLCB0aGlzLl9icmVha3BvaW50Q2hhbmdlZCwg
dGhpcyk7CisgICAgICAgIGJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcigiZGlzYWJsZWQiLCB0
aGlzLl9icmVha3BvaW50Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIGJyZWFrcG9pbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY29uZGl0aW9uLWNoYW5nZWQiLCB0aGlzLl9icmVha3BvaW50Q2hhbmdlZCwg
dGhpcyk7CisgICAgICAgIHRoaXMuX2FkZEJyZWFrcG9pbnRUb1NvdXJjZShicmVha3BvaW50KTsK
KyAgICB9LAorCisgICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24oYnJlYWtwb2ludCkKKyAg
ICB7CisgICAgICAgIHRoaXMuYnJlYWtwb2ludHMucmVtb3ZlKGJyZWFrcG9pbnQpOworICAgICAg
ICBicmVha3BvaW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImVuYWJsZWQiLCBudWxsLCB0aGlzKTsK
KyAgICAgICAgYnJlYWtwb2ludC5yZW1vdmVFdmVudExpc3RlbmVyKCJkaXNhYmxlZCIsIG51bGws
IHRoaXMpOworICAgICAgICBicmVha3BvaW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNvbmRpdGlv
bi1jaGFuZ2VkIiwgbnVsbCwgdGhpcyk7CisgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnRG
cm9tU291cmNlKGJyZWFrcG9pbnQpOwogICAgIH0sCiAKICAgICBhZGRNZXNzYWdlOiBmdW5jdGlv
bihtc2cpCkBAIC02OSw2ICsxMTAsNTAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lMi5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2VkaXRvci5wYWNrQW5kUmVwYWludEFsbCgpOwogICAg
IH0sCiAKKyAgICBzaXplVG9GaXRDb250ZW50SGVpZ2h0OiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB0aGlzLl9lZGl0b3IucGFja0FuZFJlcGFpbnRBbGwoKTsKKyAgICB9LAorCisgICAgc2V0
Q29udGVudDogZnVuY3Rpb24obWltZVR5cGUsIGNvbnRlbnQpCisgICAgeworICAgICAgICB0aGlz
Ll9sb2FkZWQgPSB0cnVlOworICAgICAgICB0aGlzLl9lZGl0b3IubWltZVR5cGUgPSBtaW1lVHlw
ZTsKKyAgICAgICAgdGhpcy5fZWRpdG9yLnRleHQgPSBjb250ZW50OworCisgICAgICAgIHRoaXMu
X2FkZEV4aXN0aW5nTWVzc2FnZXNUb1NvdXJjZSgpOworICAgICAgICB0aGlzLl9hZGRFeGlzdGlu
Z0JyZWFrcG9pbnRzVG9Tb3VyY2UoKTsKKyAgICAgICAgaWYgKHRoaXMuX2V4ZWN1dGlvbkxpbmUp
CisgICAgICAgICAgICB0aGlzLnJldmVhbExpbmUodGhpcy5fZXhlY3V0aW9uTGluZSk7CisKKyAg
ICAgICAgaWYgKHRoaXMuX2xpbmVOdW1iZXJUb1JldmVhbCkgeworICAgICAgICAgICAgdGhpcy5y
ZXZlYWxMaW5lKHRoaXMuX2xpbmVOdW1iZXJUb1JldmVhbCk7CisgICAgICAgICAgICBkZWxldGUg
dGhpcy5fbGluZU51bWJlclRvUmV2ZWFsOworICAgICAgICB9CisgICAgICAgIHRoaXMuX2VkaXRv
ci5zZXRDb2FsZXNjaW5nVXBkYXRlKHRydWUpOworICAgICAgICB0aGlzLl9lZGl0b3IudXBkYXRl
Q2FudmFzU2l6ZSgpOworICAgICAgICB0aGlzLl9lZGl0b3IucGFja0FuZFJlcGFpbnRBbGwoKTsK
KyAgICAgICAgdGhpcy5fZWRpdG9yLnNldENvYWxlc2NpbmdVcGRhdGUoZmFsc2UpOworICAgIH0s
CisKKyAgICBmaW5kU2VhcmNoTWF0Y2hlczogZnVuY3Rpb24ocXVlcnkpCisgICAgeworICAgICAg
ICB2YXIgcmFuZ2VzID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdGV4
dE1vZGVsLmxpbmVzQ291bnQ7ICsraSkgeworICAgICAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90
ZXh0TW9kZWwubGluZShpKTsKKyAgICAgICAgICAgIHZhciBjb2x1bW4gPSBsaW5lLmluZGV4T2Yo
cXVlcnkpOworICAgICAgICAgICAgaWYgKGNvbHVtbiA9PT0gLTEpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICByYW5nZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLlRleHRS
YW5nZShpLCBjb2x1bW4sIGksIGNvbHVtbiArIHF1ZXJ5Lmxlbmd0aCkpOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiByYW5nZXM7CisgICAgfSwKKworICAgIHNldFNlbGVjdGlvbjogZnVuY3Rp
b24ocmFuZ2UpCisgICAgeworICAgICAgICB0aGlzLl9lZGl0b3Iuc2V0U2VsZWN0aW9uKHJhbmdl
LnN0YXJ0TGluZSwgcmFuZ2Uuc3RhcnRDb2x1bW4sIHJhbmdlLmVuZExpbmUsIHJhbmdlLmVuZENv
bHVtbik7CisgICAgfSwKKwogICAgIF9pbmNyZW1lbnRNZXNzYWdlUmVwZWF0Q291bnQ6IGZ1bmN0
aW9uKG1zZywgcmVwZWF0RGVsdGEpCiAgICAgewogICAgICAgICBpZiAoIW1zZy5fcmVzb3VyY2VN
ZXNzYWdlTGluZUVsZW1lbnQpCkBAIC0xMDEsNyArMTg2LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lMi5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBtZXNzYWdlQnViYmxlRWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgICAgbWVzc2FnZUJ1YmJs
ZUVsZW1lbnQuY2xhc3NOYW1lID0gIndlYmtpdC1odG1sLW1lc3NhZ2UtYnViYmxlIjsKICAgICAg
ICAgICAgIHRoaXMuX21lc3NhZ2VCdWJibGVzW21zZy5saW5lXSA9IG1lc3NhZ2VCdWJibGVFbGVt
ZW50OwotICAgICAgICAgICAgdGhpcy5fZWRpdG9yLnNldERpdkRlY29yYXRpb24obXNnLmxpbmUs
IG1lc3NhZ2VCdWJibGVFbGVtZW50KTsKKyAgICAgICAgICAgIHRoaXMuX2VkaXRvci5zZXREaXZE
ZWNvcmF0aW9uKG1zZy5saW5lIC0gMSwgbWVzc2FnZUJ1YmJsZUVsZW1lbnQpOwogICAgICAgICB9
CiAKICAgICAgICAgdmFyIHJvd01lc3NhZ2VzID0gdGhpcy5fcm93TWVzc2FnZXNbbXNnLmxpbmVd
OwpAQCAtMTQ4LDMzICsyMzMsMTU5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZTIucHJvdG90
eXBlID0gewogICAgICAgICB0aGlzLl9lZGl0b3IucGFja0FuZFJlcGFpbnRBbGwoKTsKICAgICB9
LAogCi0gICAgZ2V0IGV4ZWN1dGlvbkxpbmUoKQorICAgIF9hZGRFeGlzdGluZ0JyZWFrcG9pbnRz
VG9Tb3VyY2U6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9leGVjdXRp
b25MaW5lOworICAgICAgICB2YXIgbGVuZ3RoID0gdGhpcy5icmVha3BvaW50cy5sZW5ndGg7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlz
Ll9hZGRCcmVha3BvaW50VG9Tb3VyY2UodGhpcy5icmVha3BvaW50c1tpXSk7CiAgICAgfSwKIAot
ICAgIHNldCBleGVjdXRpb25MaW5lKHgpCisgICAgX2FkZEJyZWFrcG9pbnRUb1NvdXJjZTogZnVu
Y3Rpb24oYnJlYWtwb2ludCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2V4ZWN1dGlvbkxpbmUgPSB4
OworICAgICAgICB0aGlzLl90ZXh0TW9kZWwuc2V0QXR0cmlidXRlKGJyZWFrcG9pbnQubGluZSAt
IDEsICJicmVha3BvaW50IiwgYnJlYWtwb2ludCk7CisgICAgICAgIHRoaXMuX2VkaXRvci5wYWlu
dExpbmVOdW1iZXJzKCk7CiAgICAgfSwKIAotICAgIHJldmVhbExpbmU6IGZ1bmN0aW9uKGxpbmVO
dW1iZXIpCisgICAgX3JlbW92ZUJyZWFrcG9pbnRGcm9tU291cmNlOiBmdW5jdGlvbihicmVha3Bv
aW50KQogICAgIHsKLSAgICAgICAgdGhpcy5fZWRpdG9yLnJldmVhbChsaW5lTnVtYmVyLCAwKTsK
KyAgICAgICAgdGhpcy5fdGV4dE1vZGVsLnJlbW92ZUF0dHJpYnV0ZShicmVha3BvaW50LmxpbmUg
LSAxLCAiYnJlYWtwb2ludCIpOworICAgICAgICB0aGlzLl9lZGl0b3IucGFpbnRMaW5lTnVtYmVy
cygpOwogICAgIH0sCiAKLSAgICBfdG9nZ2xlQnJlYWtwb2ludDogZnVuY3Rpb24obGluZU51bWJl
cikKKyAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGV2ZW50KQorICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLmFkZEJyZWFrcG9pbnREZWxlZ2F0ZSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICB2YXIgY29udGV4dE1lbnUgPSBuZXcgV2ViSW5zcGVjdG9yLkNvbnRl
eHRNZW51KCk7CisKKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl90ZXh0TW9kZWwuZ2V0
QXR0cmlidXRlKGxpbmVOdW1iZXIsICJicmVha3BvaW50Iik7CisgICAgICAgIGlmICghYnJlYWtw
b2ludCkgeworICAgICAgICAgICAgLy8gVGhpcyByb3cgZG9lc24ndCBoYXZlIGEgYnJlYWtwb2lu
dDogV2Ugd2FudCB0byBzaG93IEFkZCBCcmVha3BvaW50IGFuZCBBZGQgYW5kIEVkaXQgQnJlYWtw
b2ludC4KKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJBZGQgQnJlYWtwb2ludCIpLCB0aGlzLmFkZEJyZWFrcG9pbnREZWxlZ2F0ZS5iaW5k
KHRoaXMsIGxpbmVOdW1iZXIgKyAxKSk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGFkZENvbmRp
dGlvbmFsQnJlYWtwb2ludCgpIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRoaXMu
YWRkQnJlYWtwb2ludERlbGVnYXRlKGxpbmVOdW1iZXIgKyAxKTsKKyAgICAgICAgICAgICAgICB2
YXIgYnJlYWtwb2ludCA9IHRoaXMuX3RleHRNb2RlbC5nZXRBdHRyaWJ1dGUobGluZU51bWJlciwg
ImJyZWFrcG9pbnQiKTsKKyAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2ludCkKKyAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fZWRpdEJyZWFrcG9pbnRDb25kaXRpb24oYnJlYWtwb2ludCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJBZGQgQ29uZGl0aW9uYWwgQnJlYWtwb2ludC4uLiIpLCBhZGRDb25k
aXRpb25hbEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAvLyBUaGlzIHJvdyBoYXMgYSBicmVha3BvaW50LCB3ZSB3YW50IHRvIHNob3cgZWRpdCBh
bmQgcmVtb3ZlIGJyZWFrcG9pbnQsIGFuZCBlaXRoZXIgZGlzYWJsZSBvciBlbmFibGUuCisgICAg
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVt
b3ZlIEJyZWFrcG9pbnQiKSwgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnJlbW92ZUJyZWFr
cG9pbnQuYmluZChXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMsIGJyZWFrcG9pbnQpKTsKKyAg
ICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJF
ZGl0IEJyZWFrcG9pbnQuLi4iKSwgdGhpcy5fZWRpdEJyZWFrcG9pbnRDb25kaXRpb24uYmluZCh0
aGlzLCBicmVha3BvaW50KSk7CisgICAgICAgICAgICBpZiAoYnJlYWtwb2ludC5lbmFibGVkKQor
ICAgICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJEaXNhYmxlIEJyZWFrcG9pbnQiKSwgZnVuY3Rpb24oKSB7IGJyZWFrcG9pbnQuZW5hYmxl
ZCA9IGZhbHNlOyB9KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRW5hYmxlIEJyZWFrcG9pbnQi
KSwgZnVuY3Rpb24oKSB7IGJyZWFrcG9pbnQuZW5hYmxlZCA9IHRydWU7IH0pOworICAgICAgICB9
CisgICAgICAgIGNvbnRleHRNZW51LnNob3coZXZlbnQpOworICAgIH0sCisKKyAgICBfdG9nZ2xl
QnJlYWtwb2ludDogZnVuY3Rpb24obGluZU51bWJlciwgZXZlbnQpCisgICAgeworICAgICAgICBp
ZiAoZXZlbnQuYnV0dG9uICE9IDAgfHwgZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwg
ZXZlbnQubWV0YUtleSB8fCBldmVudC5zaGlmdEtleSkKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl90ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGxpbmVO
dW1iZXIsICJicmVha3BvaW50Iik7CisgICAgICAgIGlmIChicmVha3BvaW50KQorICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2lu
dCk7CisgICAgICAgIGVsc2UgaWYgKHRoaXMuYWRkQnJlYWtwb2ludERlbGVnYXRlKQorICAgICAg
ICAgICAgdGhpcy5hZGRCcmVha3BvaW50RGVsZWdhdGUobGluZU51bWJlciArIDEpOworICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgIH0sCisKKyAgICBfZWRpdEJyZWFrcG9pbnRD
b25kaXRpb246IGZ1bmN0aW9uKGJyZWFrcG9pbnQpCisgICAgeworICAgICAgICB0aGlzLl9zaG93
QnJlYWtwb2ludENvbmRpdGlvblBvcHVwKGJyZWFrcG9pbnQubGluZSk7CisKKyAgICAgICAgZnVu
Y3Rpb24gY29tbWl0dGVkKGVsZW1lbnQsIG5ld1RleHQpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGJyZWFrcG9pbnQuY29uZGl0aW9uID0gbmV3VGV4dDsKKyAgICAgICAgICAgIHRoaXMuX2VkaXRv
ci5wYWludExpbmVOdW1iZXJzKCk7CisgICAgICAgICAgICBkaXNtaXNzZWQuY2FsbCh0aGlzKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRpc21pc3NlZCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHRoaXMuX2VkaXRvci5zZXREaXZEZWNvcmF0aW9uKGJyZWFrcG9pbnQubGluZSAt
IDEsIG51bGwpOworICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbmRpdGlvbkVkaXRvckVsZW1l
bnQ7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZGlzbWlzc2VkSGFuZGxlciA9IGRpc21pc3Nl
ZC5iaW5kKHRoaXMpOworICAgICAgICB0aGlzLl9jb25kaXRpb25FZGl0b3JFbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImJsdXIiLCBkaXNtaXNzZWRIYW5kbGVyLCBmYWxzZSk7CisKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZyh0aGlzLl9jb25kaXRpb25FZGl0b3JFbGVtZW50LCBj
b21taXR0ZWQuYmluZCh0aGlzKSwgZGlzbWlzc2VkSGFuZGxlcik7CisgICAgICAgIHRoaXMuX2Nv
bmRpdGlvbkVkaXRvckVsZW1lbnQudmFsdWUgPSBicmVha3BvaW50LmNvbmRpdGlvbjsKKyAgICAg
ICAgdGhpcy5fY29uZGl0aW9uRWRpdG9yRWxlbWVudC5zZWxlY3QoKTsKKyAgICB9LAorCisgICAg
X3Nob3dCcmVha3BvaW50Q29uZGl0aW9uUG9wdXA6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCisgICAg
eworICAgICAgICB2YXIgY29uZGl0aW9uRWxlbWVudCA9IHRoaXMuX2NyZWF0ZUNvbmRpdGlvbkVs
ZW1lbnQobGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX2VkaXRvci5zZXREaXZEZWNvcmF0aW9u
KGxpbmVOdW1iZXIgLSAxLCBjb25kaXRpb25FbGVtZW50KTsKKyAgICB9LAorCisgICAgX2NyZWF0
ZUNvbmRpdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCisgICAgeworICAgICAgICB2
YXIgY29uZGl0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAg
ICAgICBjb25kaXRpb25FbGVtZW50LmNsYXNzTmFtZSA9ICJzb3VyY2UtYnJlYWtwb2ludC1jb25k
aXRpb24iOworCisgICAgICAgIHZhciBsYWJlbEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJsYWJlbCIpOworICAgICAgICBsYWJlbEVsZW1lbnQuY2xhc3NOYW1lID0gInNvdXJjZS1i
cmVha3BvaW50LW1lc3NhZ2UiOworICAgICAgICBsYWJlbEVsZW1lbnQuaHRtbEZvciA9ICJzb3Vy
Y2UtYnJlYWtwb2ludC1jb25kaXRpb24iOworICAgICAgICBsYWJlbEVsZW1lbnQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaGUgYnJl
YWtwb2ludCBvbiBsaW5lICVkIHdpbGwgc3RvcCBvbmx5IGlmIHRoaXMgZXhwcmVzc2lvbiBpcyB0
cnVlOiIsIGxpbmVOdW1iZXIpKSk7CisgICAgICAgIGNvbmRpdGlvbkVsZW1lbnQuYXBwZW5kQ2hp
bGQobGFiZWxFbGVtZW50KTsKKworICAgICAgICB2YXIgZWRpdG9yRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgICAgIGVkaXRvckVsZW1lbnQuaWQgPSAic291
cmNlLWJyZWFrcG9pbnQtY29uZGl0aW9uIjsKKyAgICAgICAgZWRpdG9yRWxlbWVudC50eXBlID0g
InRleHQiCisgICAgICAgIGNvbmRpdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZWRpdG9yRWxlbWVu
dCk7CisgICAgICAgIHRoaXMuX2NvbmRpdGlvbkVkaXRvckVsZW1lbnQgPSBlZGl0b3JFbGVtZW50
OworCisgICAgICAgIHJldHVybiBjb25kaXRpb25FbGVtZW50OworICAgIH0sCisKKyAgICBfa2V5
RG93bjogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2hvcnRjdXQgPSBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5tYWtlS2V5RnJvbUV2ZW50KGV2ZW50KTsKKyAgICAg
ICAgdmFyIGhhbmRsZXIgPSB0aGlzLl9zaG9ydGN1dHNbc2hvcnRjdXRdOworICAgICAgICBpZiAo
aGFuZGxlcikgeworICAgICAgICAgICAgaGFuZGxlcihldmVudCk7CisgICAgICAgICAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLmRvY3VtZW50S2V5RG93bihldmVudCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAg
X2V2YWxTZWxlY3Rpb25JbkNhbGxGcmFtZTogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAg
ICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cyB8fCAhV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnBhdXNlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgc2Vs
ZWN0aW9uID0gdGhpcy5lbGVtZW50LmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAg
ICAgIGlmICghc2VsZWN0aW9uLnJhbmdlQ291bnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgdmFyIGV4cHJlc3Npb24gPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygp
LnRyaW1XaGl0ZXNwYWNlKCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5l
dmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUoZXhwcmVzc2lvbiwgZmFsc2UsICJjb25zb2xlIiwg
ZnVuY3Rpb24ocmVzdWx0LCBleGNlcHRpb24pIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5z
aG93Q29uc29sZSgpOworICAgICAgICAgICAgdmFyIGNvbW1hbmRNZXNzYWdlID0gbmV3IFdlYklu
c3BlY3Rvci5Db25zb2xlQ29tbWFuZChleHByZXNzaW9uKTsKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jb25zb2xlLmFkZE1lc3NhZ2UoY29tbWFuZE1lc3NhZ2UpOworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmNvbnNvbGUuYWRkTWVzc2FnZShuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21t
YW5kUmVzdWx0KHJlc3VsdCwgZXhjZXB0aW9uLCBjb21tYW5kTWVzc2FnZSkpOworICAgICAgICB9
KTsKKyAgICB9LAorCisgICAgX2JyZWFrcG9pbnRDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKICAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl90ZXh0TW9kZWwuZ2V0QXR0cmlidXRlKGxpbmVOdW1iZXIs
ICJicmVha3BvaW50IikpCi0gICAgICAgICAgICB0aGlzLl90ZXh0TW9kZWwucmVtb3ZlQXR0cmli
dXRlKGxpbmVOdW1iZXIsICJicmVha3BvaW50Iik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHRoaXMuX3RleHRNb2RlbC5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFrcG9pbnQiLCB7
IGRpc2FibGVkOiBmYWxzZSwgY29uZGl0aW9uYWw6IGZhbHNlIH0pOwogICAgICAgICB0aGlzLl9l
ZGl0b3IucGFpbnRMaW5lTnVtYmVycygpOwogICAgIH0sCiAKICAgICByZXNpemU6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2VkaXRvci5wYWNrQW5kUmVwYWludEFsbCgpOworICAg
ICAgICB0aGlzLl9lZGl0b3IudXBkYXRlQ2FudmFzU2l6ZSgpOwogICAgIH0KIH0KIApAQCAtMTkw
LDcgKzQwMSw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TGluZU51bWJlckRlY29yYXRvci5w
cm90b3R5cGUgPSB7CiAgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGN0eCwgeCwg
eSwgd2lkdGgsIGhlaWdodCwgbGluZUhlaWdodCkKICAgICB7CiAgICAgICAgIHZhciBicmVha3Bv
aW50ID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0ZShsaW5lTnVtYmVyLCAiYnJlYWtwb2lu
dCIpOwotICAgICAgICB2YXIgaXNFeGVjdXRpb25MaW5lID0gbGluZU51bWJlciA9PT0gdGhpcy5f
c291cmNlRnJhbWUuX2V4ZWN1dGlvbkxpbmU7CisgICAgICAgIHZhciBpc0V4ZWN1dGlvbkxpbmUg
PSBsaW5lTnVtYmVyICsgMSA9PT0gdGhpcy5fc291cmNlRnJhbWUuX2V4ZWN1dGlvbkxpbmU7CiAg
ICAgICAgIGlmIChicmVha3BvaW50IHx8IGlzRXhlY3V0aW9uTGluZSkgewogICAgICAgICAgICAg
Y3R4LnNhdmUoKTsKICAgICAgICAgICAgIGN0eC50cmFuc2xhdGUoeCArIDQsIHkgKyAyKTsKQEAg
LTE5OCw3ICs0MDksNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludExpbmVOdW1iZXJEZWNvcmF0
b3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRIZWlnaHQgPSBsaW5l
SGVpZ2h0IC0gNDsKICAgICAKICAgICAgICAgICAgIGlmIChicmVha3BvaW50KQotICAgICAgICAg
ICAgICAgIHRoaXMuX3BhaW50QnJlYWtwb2ludChjdHgsIGJyZWFrcG9pbnRXaWR0aCwgYnJlYWtw
b2ludEhlaWdodCwgYnJlYWtwb2ludC5jb25kaXRpb25hbCwgYnJlYWtwb2ludC5kaXNhYmxlZCk7
CisgICAgICAgICAgICAgICAgdGhpcy5fcGFpbnRCcmVha3BvaW50KGN0eCwgYnJlYWtwb2ludFdp
ZHRoLCBicmVha3BvaW50SGVpZ2h0LCBicmVha3BvaW50KTsKICAgICAKICAgICAgICAgICAgIGlm
IChpc0V4ZWN1dGlvbkxpbmUpCiAgICAgICAgICAgICAgICAgdGhpcy5fcGFpbnRQcm9ncmFtQ291
bnRlcihjdHgsIGJyZWFrcG9pbnRXaWR0aCwgYnJlYWtwb2ludEhlaWdodCwgZmFsc2UpOwpAQCAt
MjE1LDcgKzQyNiw3IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TGluZU51bWJlckRlY29yYXRv
ci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9LAogCi0gICAgX3Bh
aW50QnJlYWtwb2ludDogZnVuY3Rpb24oY3R4LCB3aWR0aCwgaGVpZ2h0LCBjb25kaXRpb25hbCwg
ZGlzYWJsZWQpCisgICAgX3BhaW50QnJlYWtwb2ludDogZnVuY3Rpb24oY3R4LCB3aWR0aCwgaGVp
Z2h0LCBicmVha3BvaW50KQogICAgIHsKICAgICAgICAgY3R4LmJlZ2luUGF0aCgpOwogICAgICAg
ICBjdHgubW92ZVRvKDAsIDIpOwpAQCAtMjI2LDggKzQzNyw4IEBAIFdlYkluc3BlY3Rvci5CcmVh
a3BvaW50TGluZU51bWJlckRlY29yYXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGN0eC5saW5l
VG8oMiwgaGVpZ2h0KTsKICAgICAgICAgY3R4LmxpbmVUbygwLCBoZWlnaHQgLSAyKTsKICAgICAg
ICAgY3R4LmNsb3NlUGF0aCgpOwotICAgICAgICBjdHguZmlsbFN0eWxlID0gY29uZGl0aW9uYWwg
PyAicmdiKDIxNywgMTQyLCAxKSIgOiAicmdiKDEsIDE0MiwgMjE3KSI7Ci0gICAgICAgIGN0eC5z
dHJva2VTdHlsZSA9IGNvbmRpdGlvbmFsID8gInJnYigyMDUsIDEwMywgMCkiIDogInJnYigwLCAx
MDMsIDIwNSkiOworICAgICAgICBjdHguZmlsbFN0eWxlID0gYnJlYWtwb2ludC5jb25kaXRpb24g
PyAicmdiKDIxNywgMTQyLCAxKSIgOiAicmdiKDEsIDE0MiwgMjE3KSI7CisgICAgICAgIGN0eC5z
dHJva2VTdHlsZSA9IGJyZWFrcG9pbnQuY29uZGl0aW9uID8gInJnYigyMDUsIDEwMywgMCkiIDog
InJnYigwLCAxMDMsIDIwNSkiOwogICAgICAgICBjdHgubGluZVdpZHRoID0gMzsKICAgICAgICAg
Y3R4LmZpbGwoKTsKIApAQCAtMjM2LDExICs0NDcsMTEgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRMaW5lTnVtYmVyRGVjb3JhdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgY3R4LnN0cm9rZSgp
OwogICAgICAgICBjdHgucmVzdG9yZSgpOwogCi0gICAgICAgIGlmIChkaXNhYmxlZCkgeworICAg
ICAgICBpZiAoIWJyZWFrcG9pbnQuZW5hYmxlZCkgewogICAgICAgICAgICAgY3R4LnNhdmUoKTsK
ICAgICAgICAgICAgIGN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAiZGVzdGluYXRpb24t
b3V0IjsKICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAicmdiYSgwLCAwLCAwLCAwLjUpIjsK
LSAgICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBicmVha3BvaW50V2lkdGgsIGJyZWFrcG9p
bnRIZWlnaHQpOworICAgICAgICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQp
OwogICAgICAgICAgICAgY3R4LnJlc3RvcmUoKTsKICAgICAgICAgfQogICAgIH0sCkBAIC0yNzUs
NyArNDg2LDEzIEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TGluZU51bWJlckRlY29yYXRvci5w
cm90b3R5cGUgPSB7CiAKICAgICBtb3VzZURvd246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGUpCiAg
ICAgewotICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZS5fdG9nZ2xlQnJlYWtwb2ludChsaW5lTnVt
YmVyKTsKKyAgICAgICAgdGhpcy5fc291cmNlRnJhbWUuX3RvZ2dsZUJyZWFrcG9pbnQobGluZU51
bWJlciwgZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBjb250ZXh0TWVu
dTogZnVuY3Rpb24obGluZU51bWJlciwgZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3NvdXJjZUZy
YW1lLl9jb250ZXh0TWVudShsaW5lTnVtYmVyLCBlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogfQpAQCAtMjg4LDcgKzUwNSw3IEBAIFdlYkluc3BlY3Rvci5FeGVjdXRpb25MaW5lRGVj
b3JhdG9yID0gZnVuY3Rpb24oc291cmNlRnJhbWUpCiBXZWJJbnNwZWN0b3IuRXhlY3V0aW9uTGlu
ZURlY29yYXRvci5wcm90b3R5cGUgPSB7CiAgICAgZGVjb3JhdGU6IGZ1bmN0aW9uKGxpbmVOdW1i
ZXIsIGN0eCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgbGluZUhlaWdodCkKICAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl9zb3VyY2VGcmFtZS5fZXhlY3V0aW9uTGluZSAhPT0gbGluZU51bWJlcikKKyAg
ICAgICAgaWYgKHRoaXMuX3NvdXJjZUZyYW1lLl9leGVjdXRpb25MaW5lICE9PSBsaW5lTnVtYmVy
ICsgMSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY3R4LnNhdmUoKTsKICAgICAgICAg
Y3R4LmZpbGxTdHlsZSA9ICJyZ2IoMTcxLCAxOTEsIDI1NCkiOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dEVkaXRvci5qcwppbmRleCA3ZmEyNzE2Li40NmYwZDU1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcwpAQCAtNjQsNiArNjQsNyBAQCBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvciA9IGZ1bmN0aW9uKHBsYXRmb3JtKQogICAgIHRoaXMuX3NoZWV0
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX21vdXNlTW92ZS5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAgICAgdGhpcy5fc2hlZXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0
aGlzLl9tb3VzZU91dC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5fc2hlZXQuYWRkRXZl
bnRMaXN0ZW5lcigiZGJsY2xpY2siLCB0aGlzLl9kYmxDbGljay5iaW5kKHRoaXMpLCBmYWxzZSk7
CisgICAgdGhpcy5fc2hlZXQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9j
b250ZXh0TWVudS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9rZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKICAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidGV4dElucHV0IiwgdGhpcy5fdGV4dElu
cHV0LmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiYmVmb3JlY29weSIsIHRoaXMuX2JlZm9yZUNvcHkuYmluZCh0aGlzKSwgZmFsc2UpOwpAQCAt
MTEwLDYgKzExMSwxMSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3NldENhcmV0TG9jYXRpb24oMCwgMCk7CiAgICAgfSwKIAorICAgIHNldCBt
aW1lVHlwZShtaW1lVHlwZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVyLm1pbWVU
eXBlID0gbWltZVR5cGU7CisgICAgfSwKKwogICAgIGdldCB0ZXh0TW9kZWwoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHRoaXMuX3RleHRNb2RlbDsKQEAgLTExOCw2ICsxMjQsMTAgQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgIHNldCByZWFkT25seShyZWFkT25s
eSkKICAgICB7CiAgICAgICAgIHRoaXMuX3JlYWRPbmx5ID0gcmVhZE9ubHk7CisgICAgICAgIGlm
IChyZWFkT25seSkKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ0ZXh0
LWVkaXRvci1yZWFkb25seSIpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5yZW1vdmVTdHlsZUNsYXNzKCJ0ZXh0LWVkaXRvci1yZWFkb25seSIpCiAgICAgfSwKIAogICAg
IHNldCBsaW5lTnVtYmVyRGVjb3JhdG9yKGxpbmVOdW1iZXJEZWNvcmF0b3IpCkBAIC0xNDIsMTEg
KzE1MiwxNSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHZhciBkaXZEZWNvcmF0aW9uID0gdGhpcy5fdGV4dE1vZGVsLmdldEF0dHJpYnV0ZShsaW5lTnVt
YmVyLCAiZGl2LWRlY29yYXRpb24iKTsKICAgICAgICAgaWYgKGRpdkRlY29yYXRpb24gJiYgZGl2
RGVjb3JhdGlvbi5lbGVtZW50ICYmIGRpdkRlY29yYXRpb24uZWxlbWVudC5wYXJlbnROb2RlKQog
ICAgICAgICAgICAgZGl2RGVjb3JhdGlvbi5lbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
ZGl2RGVjb3JhdGlvbi5lbGVtZW50KTsKKyAgICAgICAgdGhpcy5fdGV4dE1vZGVsLnJlbW92ZUF0
dHJpYnV0ZShsaW5lTnVtYmVyLCAiZGl2LWRlY29yYXRpb24iKTsKIAotICAgICAgICBkaXZEZWNv
cmF0aW9uID0geyBlbGVtZW50OiBlbGVtZW50IH07Ci0gICAgICAgIHRoaXMuZWxlbWVudC5hcHBl
bmRDaGlsZChlbGVtZW50KTsKKyAgICAgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgICAgIGRp
dkRlY29yYXRpb24gPSB7IGVsZW1lbnQ6IGVsZW1lbnQgfTsKKyAgICAgICAgICAgIHRoaXMuZWxl
bWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICAKKyAgICAgICAgICAgIHRoaXMuX3RleHRN
b2RlbC5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImRpdi1kZWNvcmF0aW9uIiwgZGl2RGVjb3Jh
dGlvbik7CisgICAgICAgIH0KIAotICAgICAgICB0aGlzLl90ZXh0TW9kZWwuc2V0QXR0cmlidXRl
KGxpbmVOdW1iZXIsICJkaXYtZGVjb3JhdGlvbiIsIGRpdkRlY29yYXRpb24pOwogICAgICAgICB0
aGlzLnBhY2tBbmRSZXBhaW50QWxsKCk7CiAgICAgfSwKIApAQCAtMjAyLDkgKzIxNiw5IEBAIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG1heFNjcm9s
bFRvcCA9IHRoaXMuX2xpbmVUb09mZnNldChsaW5lKTsKICAgICAgICAgdmFyIG1pblNjcm9sbFRv
cCA9IG1heFNjcm9sbFRvcCArIHRoaXMuX2xpbmVIZWlnaHQobGluZSkgLSB0aGlzLl9jYW52YXMu
aGVpZ2h0OwogICAgICAgICBpZiAodGhpcy5fc2Nyb2xsVG9wID4gbWF4U2Nyb2xsVG9wKQotICAg
ICAgICAgICAgdGhpcy5fY29udGFpbmVyLnNjcm9sbFRvcCA9IG1heFNjcm9sbFRvcDsKKyAgICAg
ICAgICAgIHRoaXMuX2NvbnRhaW5lci5zY3JvbGxUb3AgPSBtYXhTY3JvbGxUb3AgLSB0aGlzLl90
ZXh0TGluZUhlaWdodCAqIDI7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3Njcm9sbFRvcCA8IG1p
blNjcm9sbFRvcCkKLSAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5zY3JvbGxUb3AgPSBtaW5T
Y3JvbGxUb3A7CisgICAgICAgICAgICB0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wID0gbWluU2Ny
b2xsVG9wICsgdGhpcy5fdGV4dExpbmVIZWlnaHQgKiAyOwogCiAgICAgICAgIHZhciBmaXJzdENv
bHVtbiA9IHRoaXMuX2NvbHVtbkZvck9mZnNldChsaW5lLCB0aGlzLl9zY3JvbGxMZWZ0KTsKICAg
ICAgICAgdmFyIG1heFNjcm9sbExlZnQgPSB0aGlzLl9jb2x1bW5Ub09mZnNldChsaW5lLCBjb2x1
bW4pOwpAQCAtMjY0LDE2ICsyNzgsMTYgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90
eXBlID0gewogCiAgICAgcGFja0FuZFJlcGFpbnRBbGw6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3NldENvYWxlc2NpbmdVcGRhdGUodHJ1ZSk7CisgICAgICAgIHRoaXMuc2V0Q29h
bGVzY2luZ1VwZGF0ZSh0cnVlKTsKICAgICAgICAgdGhpcy5fbGluZU9mZnNldHNDYWNoZSA9IFsw
XTsKICAgICAgICAgdGhpcy5fdXBkYXRlU2l6ZSgwLCB0aGlzLl90ZXh0TW9kZWwubGluZXNDb3Vu
dCk7Ci0gICAgICAgIHRoaXMuX3JlcGFpbnRBbGwoKTsKLSAgICAgICAgdGhpcy5fc2V0Q29hbGVz
Y2luZ1VwZGF0ZShmYWxzZSk7CisgICAgICAgIHRoaXMucmVwYWludEFsbCgpOworICAgICAgICB0
aGlzLnNldENvYWxlc2NpbmdVcGRhdGUoZmFsc2UpOwogICAgIH0sCiAKICAgICBfdXBkYXRlU2l6
ZTogZnVuY3Rpb24oc3RhcnRMaW5lLCBlbmRMaW5lKQogICAgIHsKLSAgICAgICAgdGhpcy5fc2V0
Q29hbGVzY2luZ1VwZGF0ZSh0cnVlKTsKKyAgICAgICAgdGhpcy5zZXRDb2FsZXNjaW5nVXBkYXRl
KHRydWUpOwogICAgICAgICB2YXIgZ3VhcmRlZEVuZExpbmUgPSBNYXRoLm1pbih0aGlzLl90ZXh0
TW9kZWwubGluZXNDb3VudCwgZW5kTGluZSArIDEpOwogICAgICAgICB2YXIgbmV3TWF4aW11bSA9
IGZhbHNlOwogICAgICAgICBmb3IgKHZhciBpID0gc3RhcnRMaW5lOyBpIDwgZ3VhcmRlZEVuZExp
bmU7ICsraSkgewpAQCAtMzA3LDEyICszMjEsMTIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3Iu
cHJvdG90eXBlID0gewogCiAgICAgICAgIGlmIChuZXdMaW5lTnVtYmVyRGlnaXRzICE9PSB0aGlz
Ll9saW5lTnVtYmVyRGlnaXRzKSB7CiAgICAgICAgICAgICB0aGlzLl9saW5lTnVtYmVyRGlnaXRz
ID0gbmV3TGluZU51bWJlckRpZ2l0czsKLSAgICAgICAgICAgIHRoaXMuX3JlcGFpbnRBbGwoKTsK
KyAgICAgICAgICAgIHRoaXMucmVwYWludEFsbCgpOwogICAgICAgICB9CiAKICAgICAgICAgLy8g
Q2hhbmdlcyB0byBzaXplIGNhbiBjaGFuZ2UgdGhlIGNsaWVudCBhcmVhIChzY3JvbGxlcnMgY2Fu
IGFwcGVhci9kaXNhcHBlYXIpCiAgICAgICAgIHRoaXMudXBkYXRlQ2FudmFzU2l6ZSgpOwotICAg
ICAgICB0aGlzLl9zZXRDb2FsZXNjaW5nVXBkYXRlKGZhbHNlKTsKKyAgICAgICAgdGhpcy5zZXRD
b2FsZXNjaW5nVXBkYXRlKGZhbHNlKTsKICAgICB9LAogCiAgICAgdXBkYXRlQ2FudmFzU2l6ZTog
ZnVuY3Rpb24oKQpAQCAtMzIwLDExICszMzQsMTEgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3Iu
cHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5fY2FudmFzLndpZHRoICE9PSB0aGlzLl9j
b250YWluZXIuY2xpZW50V2lkdGggfHwgdGhpcy5fY2FudmFzLmhlaWdodCAhPT0gdGhpcy5fY29u
dGFpbmVyLmNsaWVudEhlaWdodCkgewogICAgICAgICAgICAgdGhpcy5fY2FudmFzLndpZHRoID0g
dGhpcy5fY29udGFpbmVyLmNsaWVudFdpZHRoOwogICAgICAgICAgICAgdGhpcy5fY2FudmFzLmhl
aWdodCA9IHRoaXMuX2NvbnRhaW5lci5jbGllbnRIZWlnaHQ7Ci0gICAgICAgICAgICB0aGlzLl9y
ZXBhaW50QWxsKCk7CisgICAgICAgICAgICB0aGlzLnJlcGFpbnRBbGwoKTsKICAgICAgICAgfQog
ICAgIH0sCiAKLSAgICBfcmVwYWludEFsbDogZnVuY3Rpb24oKQorICAgIHJlcGFpbnRBbGw6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2ludmFsaWRhdGVMaW5lcygwLCB0aGlzLl90
ZXh0TW9kZWwubGluZXNDb3VudCk7CiAgICAgICAgIHRoaXMuX3BhaW50KCk7CkBAIC00MjksMTAg
KzQ0MywyMSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIGlmIChsaW5l
Lmxlbmd0aCA+IDEwMDApIHsKKyAgICAgICAgICAgICAgICAvLyBPcHRpbWl6YXRpb246IG5vIG5l
ZWQgdG8gcGFpbnQgZGVjb3JhdGlvbnMgb3V0c2lkZSB2aXNpYmxlIGFyZWEuCisgICAgICAgICAg
ICAgICAgdmFyIGZpcnN0Q29sdW1uID0gdGhpcy5fY29sdW1uRm9yT2Zmc2V0KGksIHRoaXMuX3Nj
cm9sbExlZnQpOworICAgICAgICAgICAgICAgIHZhciBsYXN0Q29sdW1uID0gdGhpcy5fY29sdW1u
Rm9yT2Zmc2V0KGksIHRoaXMuX3Njcm9sbExlZnQgKyB0aGlzLl9jYW52YXMud2lkdGgpOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgdmFyIGhpZ2hsaWdodGVyU3RhdGUgPSB0aGlzLl90ZXh0
TW9kZWwuZ2V0QXR0cmlidXRlKGksICJoaWdobGlnaHRlci1zdGF0ZSIpOwogICAgICAgICAgICAg
dmFyIHBsYWluVGV4dFN0YXJ0ID0gLTE7CiAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8
IGxpbmUubGVuZ3RoOykgewogICAgICAgICAgICAgICAgIHZhciBhdHRyaWJ1dGUgPSBoaWdobGln
aHRlclN0YXRlICYmIGhpZ2hsaWdodGVyU3RhdGUuYXR0cmlidXRlc1tqXTsKKyAgICAgICAgICAg
ICAgICBpZiAoYXR0cmlidXRlICYmIGZpcnN0Q29sdW1uICYmIGogKyBhdHRyaWJ1dGUubGVuZ3Ro
IDwgZmlyc3RDb2x1bW4pIHsKKyAgICAgICAgICAgICAgICAgICAgaiArPSBhdHRyaWJ1dGUubGVu
Z3RoOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZSAmJiBsYXN0Q29sdW1uICYmIGogPiBsYXN0Q29s
dW1uKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBpZiAoIWF0
dHJpYnV0ZSB8fCAhYXR0cmlidXRlLnN0eWxlKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChw
bGFpblRleHRTdGFydCA9PT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHRT
dGFydCA9IGo7CkBAIC00NTAsNyArNDc1LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJv
dG90eXBlID0gewogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHBsYWluVGV4dFN0YXJ0
ICE9PSAtMSkgewogICAgICAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsU3R5bGUgPSAicmdiKDAs
MCwwKSI7Ci0gICAgICAgICAgICAgICAgdGhpcy5fY3R4LmZpbGxUZXh0KGxpbmUuc3Vic3RyaW5n
KHBsYWluVGV4dFN0YXJ0LCBsaW5lLmxlbmd0aCksIHRoaXMuX2xpbmVOdW1iZXJXaWR0aCAtIHRo
aXMuX3Njcm9sbExlZnQgKyB0aGlzLl9jb2x1bW5Ub09mZnNldChpLCBwbGFpblRleHRTdGFydCks
IGxpbmVPZmZzZXQgKyB0aGlzLl90ZXh0TGluZUhlaWdodCk7CisgICAgICAgICAgICAgICAgdGhp
cy5fY3R4LmZpbGxUZXh0KGxpbmUuc3Vic3RyaW5nKHBsYWluVGV4dFN0YXJ0LCBqKSwgdGhpcy5f
bGluZU51bWJlcldpZHRoIC0gdGhpcy5fc2Nyb2xsTGVmdCArIHRoaXMuX2NvbHVtblRvT2Zmc2V0
KGksIHBsYWluVGV4dFN0YXJ0KSwgbGluZU9mZnNldCArIHRoaXMuX3RleHRMaW5lSGVpZ2h0KTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICB0aGlzLl9jdHgucmVzdG9yZSgpOwpA
QCAtNDk3LDcgKzUyMiw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKHRoaXMuX3Njcm9sbFRvcCAhPT0gdGhpcy5fY29udGFpbmVyLnNjcm9sbFRv
cCB8fCB0aGlzLl9zY3JvbGxMZWZ0ICE9PSB0aGlzLl9jb250YWluZXIuc2Nyb2xsTGVmdCkgewog
ICAgICAgICAgICAgdGhpcy5fc2Nyb2xsVG9wID0gdGhpcy5fY29udGFpbmVyLnNjcm9sbFRvcDsK
ICAgICAgICAgICAgIHRoaXMuX3Njcm9sbExlZnQgPSB0aGlzLl9jb250YWluZXIuc2Nyb2xsTGVm
dDsKLSAgICAgICAgICAgIHRoaXMuX3JlcGFpbnRBbGwoKTsKKyAgICAgICAgICAgIHRoaXMucmVw
YWludEFsbCgpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtNTEwLDcgKzUzNSw3IEBAIFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBsb2Nh
dGlvbiA9IHRoaXMuX2NhcmV0Rm9yTW91c2VFdmVudChlKTsKIAotICAgICAgICBpZiAoZS54IDwg
dGhpcy5fbGluZU51bWJlcldpZHRoICYmIHRoaXMuX2xpbmVOdW1iZXJEZWNvcmF0b3IpIHsKKyAg
ICAgICAgaWYgKGUub2Zmc2V0WCA8IHRoaXMuX2xpbmVOdW1iZXJXaWR0aCAmJiB0aGlzLl9saW5l
TnVtYmVyRGVjb3JhdG9yKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fbGluZU51bWJlckRlY29y
YXRvci5tb3VzZURvd24obG9jYXRpb24ubGluZSwgZSkpICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC01NDIsMjAgKzU2NywzMiBAQCBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uKHJh
bmdlLnN0YXJ0TGluZSwgcmFuZ2Uuc3RhcnRDb2x1bW4sIHJhbmdlLmVuZExpbmUsIHJhbmdlLmVu
ZENvbHVtbik7CiAgICAgfSwKIAorICAgIF9jb250ZXh0TWVudTogZnVuY3Rpb24oZSkKKyAgICB7
CisgICAgICAgIGlmIChlLm9mZnNldFggPCB0aGlzLl9saW5lTnVtYmVyV2lkdGggJiYgdGhpcy5f
bGluZU51bWJlckRlY29yYXRvcikgeworICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5f
Y2FyZXRGb3JNb3VzZUV2ZW50KGUpOworICAgICAgICAgICAgdmFyIGxpbmUgPSBsb2NhdGlvbi5s
aW5lOworICAgICAgICAgICAgaWYgKHRoaXMuX2xpbmVOdW1iZXJEZWNvcmF0b3IuY29udGV4dE1l
bnUobG9jYXRpb24ubGluZSwgZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfSwKKwogICAgIF9jYXJldEZvck1vdXNlRXZlbnQ6IGZ1bmN0aW9uKGUpCiAgICAgewot
ICAgICAgICB2YXIgbGluZU51bWJlciA9IE1hdGgubWF4KDAsIHRoaXMuX29mZnNldFRvTGluZShl
LnkgKyB0aGlzLl9zY3JvbGxUb3ApIC0gMSk7CisgICAgICAgIHZhciBsaW5lTnVtYmVyID0gTWF0
aC5tYXgoMCwgdGhpcy5fb2Zmc2V0VG9MaW5lKGUub2Zmc2V0WSkgLSAxKTsKICAgICAgICAgdmFy
IGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKLSAgICAgICAgdmFyIG9m
ZnNldCA9IGUueCArIHRoaXMuX3Njcm9sbExlZnQgLSB0aGlzLl9saW5lTnVtYmVyV2lkdGggLSB0
aGlzLl9kaWdpdFdpZHRoOworICAgICAgICB2YXIgb2Zmc2V0ID0gZS5vZmZzZXRYICsgdGhpcy5f
c2Nyb2xsTGVmdCAtIHRoaXMuX2xpbmVOdW1iZXJXaWR0aCAtIHRoaXMuX2RpZ2l0V2lkdGg7CiAg
ICAgICAgIHJldHVybiB7IGxpbmU6IGxpbmVOdW1iZXIsIGNvbHVtbjogdGhpcy5fY29sdW1uRm9y
T2Zmc2V0KGxpbmVOdW1iZXIsIG9mZnNldCkgfTsKICAgICB9LAogCiAgICAgX2NvbHVtbkZvck9m
ZnNldDogZnVuY3Rpb24obGluZU51bWJlciwgb2Zmc2V0KQogICAgIHsKKyAgICAgICAgdmFyIGxl
bmd0aCA9IDA7CiAgICAgICAgIHZhciBsaW5lID0gdGhpcy5fdGV4dE1vZGVsLmxpbmUobGluZU51
bWJlcik7CiAgICAgICAgIGZvciAodmFyIGNvbHVtbiA9IDA7IGNvbHVtbiA8IGxpbmUubGVuZ3Ro
OyArK2NvbHVtbikgewotICAgICAgICAgICAgaWYgKHRoaXMuX2N0eC5tZWFzdXJlVGV4dChsaW5l
LnN1YnN0cmluZygwLCBjb2x1bW4pKS53aWR0aCA+IG9mZnNldCkKKyAgICAgICAgICAgIGlmIChs
ZW5ndGggPiBvZmZzZXQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBsZW5n
dGggKz0gdGhpcy5fY3R4Lm1lYXN1cmVUZXh0KGxpbmUuY2hhckF0KGNvbHVtbikpLndpZHRoOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBjb2x1bW47CiAgICAgfSwKQEAgLTY0Niw2ICs2ODMs
MTggQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBrZXlDb2Rlcy5Ib21lOgorICAgICAgICAgICAgICAgIGlmICh0aGlzLl9p
c01ldGFDdHJsKGUpKQorICAgICAgICAgICAgICAgICAgICBhcnJvd0FjdGlvbi5jYWxsKHRoaXMs
IDAsIDAsIHRydWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
YXJyb3dBY3Rpb24uY2FsbCh0aGlzLCB0aGlzLl9zZWxlY3Rpb24uZW5kTGluZSwgMCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGtleUNvZGVzLkVuZDoKKyAgICAg
ICAgICAgICAgICBpZiAodGhpcy5faXNNZXRhQ3RybChlKSkKKyAgICAgICAgICAgICAgICAgICAg
YXJyb3dBY3Rpb24uY2FsbCh0aGlzLCB0aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCAtIDEsIHRo
aXMuX3RleHRNb2RlbC5saW5lTGVuZ3RoKHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50IC0gMSks
IHRydWUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYXJyb3dB
Y3Rpb24uY2FsbCh0aGlzLCB0aGlzLl9zZWxlY3Rpb24uZW5kTGluZSwgdGhpcy5fdGV4dE1vZGVs
LmxpbmVMZW5ndGgodGhpcy5fc2VsZWN0aW9uLmVuZExpbmUpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2Uga2V5Q29kZXMuTGVmdDoKICAgICAgICAgICAgICAgICBp
ZiAoIWUuc2hpZnRLZXkgJiYgIWUubWV0YUtleSAmJiAhdGhpcy5faXNBbHRDdHJsKGUpICYmICF0
aGlzLl9zZWxlY3Rpb24uaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFJlc2V0
IHNlbGVjdGlvbgpAQCAtNzM0LDcgKzc4Myw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZGl2RGVjb3JhdGlvbi5lbGVtZW50LnN0eWxlLnBvc2l0aW9u
ID0gImFic29sdXRlIjsKICAgICAgICAgZGl2RGVjb3JhdGlvbi5lbGVtZW50LnN0eWxlLnRvcCA9
IHRoaXMuX2xpbmVUb09mZnNldChsaW5lTnVtYmVyKSAtIHRoaXMuX3Njcm9sbFRvcCArIHRoaXMu
X3RleHRMaW5lSGVpZ2h0ICsgInB4IjsKICAgICAgICAgZGl2RGVjb3JhdGlvbi5lbGVtZW50LnN0
eWxlLmxlZnQgPSB0aGlzLl9saW5lTnVtYmVyV2lkdGggKyAicHgiOwotICAgICAgICBkaXZEZWNv
cmF0aW9uLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIm1heC13aWR0aCIsICh0aGlzLl9jYW52
YXMud2lkdGggLSAyMDApICsgInB4Iik7CisgICAgICAgIGRpdkRlY29yYXRpb24uZWxlbWVudC5z
dHlsZS5zZXRQcm9wZXJ0eSgibWF4LXdpZHRoIiwgdGhpcy5fY2FudmFzLndpZHRoICsgInB4Iik7
CiAgICAgfSwKIAogICAgIF91cGRhdGVDdXJzb3I6IGZ1bmN0aW9uKGxpbmUsIGNvbHVtbikKQEAg
LTgzOSwxMyArODg4LDEzIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsK
ICAgICBfcmVwbGFjZVNlbGVjdGlvbldpdGg6IGZ1bmN0aW9uKG5ld1RleHQsIG92ZXJyaWRlUmFu
Z2UpCiAgICAgewogICAgICAgICB2YXIgcmFuZ2UgPSBvdmVycmlkZVJhbmdlIHx8IHRoaXMuX3Nl
bGVjdGlvbi5yYW5nZSgpOwotICAgICAgICB0aGlzLl9zZXRDb2FsZXNjaW5nVXBkYXRlKHRydWUp
OworICAgICAgICB0aGlzLnNldENvYWxlc2NpbmdVcGRhdGUodHJ1ZSk7CiAgICAgICAgIHZhciBu
ZXdSYW5nZSA9IHRoaXMuX3RleHRNb2RlbC5zZXRUZXh0KHJhbmdlLCBuZXdUZXh0KTsKICAgICAg
ICAgdGhpcy5fc2V0Q2FyZXRMb2NhdGlvbihuZXdSYW5nZS5lbmRMaW5lLCBuZXdSYW5nZS5lbmRD
b2x1bW4pOwotICAgICAgICB0aGlzLl9zZXRDb2FsZXNjaW5nVXBkYXRlKGZhbHNlKTsKKyAgICAg
ICAgdGhpcy5zZXRDb2FsZXNjaW5nVXBkYXRlKGZhbHNlKTsKICAgICB9LAogCi0gICAgX3NldENv
YWxlc2NpbmdVcGRhdGU6IGZ1bmN0aW9uKGVuYWJsZWQpCisgICAgc2V0Q29hbGVzY2luZ1VwZGF0
ZTogZnVuY3Rpb24oZW5hYmxlZCkKICAgICB7CiAgICAgICAgIGlmIChlbmFibGVkKQogICAgICAg
ICAgICAgdGhpcy5fcGFpbnRDb2FsZXNjaW5nTGV2ZWwrKzsKQEAgLTkwNywyMCArOTU2LDIwIEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKIAogICAgIF9oYW5kbGVVbmRv
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zZXRDb2FsZXNjaW5nVXBkYXRlKHRy
dWUpOworICAgICAgICB0aGlzLnNldENvYWxlc2NpbmdVcGRhdGUodHJ1ZSk7CiAgICAgICAgIHZh
ciByYW5nZSA9IHRoaXMuX3RleHRNb2RlbC51bmRvKCk7CiAgICAgICAgIGlmIChyYW5nZSkKICAg
ICAgICAgICAgIHRoaXMuX3NldENhcmV0TG9jYXRpb24ocmFuZ2UuZW5kTGluZSwgcmFuZ2UuZW5k
Q29sdW1uKTsKLSAgICAgICAgdGhpcy5fc2V0Q29hbGVzY2luZ1VwZGF0ZShmYWxzZSk7CisgICAg
ICAgIHRoaXMuc2V0Q29hbGVzY2luZ1VwZGF0ZShmYWxzZSk7CiAgICAgfSwKIAogICAgIF9oYW5k
bGVSZWRvOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zZXRDb2FsZXNjaW5nVXBk
YXRlKHRydWUpOworICAgICAgICB0aGlzLnNldENvYWxlc2NpbmdVcGRhdGUodHJ1ZSk7CiAgICAg
ICAgIHZhciByYW5nZSA9IHRoaXMuX3RleHRNb2RlbC5yZWRvKCk7CiAgICAgICAgIGlmIChyYW5n
ZSkKICAgICAgICAgICAgIHRoaXMuX3NldENhcmV0TG9jYXRpb24ocmFuZ2UuZW5kTGluZSwgcmFu
Z2UuZW5kQ29sdW1uKTsKLSAgICAgICAgdGhpcy5fc2V0Q29hbGVzY2luZ1VwZGF0ZShmYWxzZSk7
CisgICAgICAgIHRoaXMuc2V0Q29hbGVzY2luZ1VwZGF0ZShmYWxzZSk7CiAgICAgfSwKIAogICAg
IF9oYW5kbGVEZWxldGVLZXk6IGZ1bmN0aW9uKCkKQEAgLTk4NSw3ICsxMDM0LDcgQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgIF9jaGFuZ2VGb250OiBmdW5jdGlv
bihzYW5zU2VyaWYsIGZvbnRTaXplKSB7CiAgICAgICAgIHRoaXMuX2luaXRGb250KHNhbnNTZXJp
ZiwgZm9udFNpemUpOwogICAgICAgICB0aGlzLl91cGRhdGVTaXplKDAsIHRoaXMuX3RleHRNb2Rl
bC5saW5lc0NvdW50KTsKLSAgICAgICAgdGhpcy5fcmVwYWludEFsbCgpOworICAgICAgICB0aGlz
LnJlcGFpbnRBbGwoKTsKICAgICB9LAogCiAgICAgX2hhbmRsZVRvZ2dsZUhpZ2hsaWdodE1vZGU6
IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0
RWRpdG9ySGlnaGxpZ2h0ZXIuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVk
aXRvckhpZ2hsaWdodGVyLmpzCmluZGV4IDYwMmZlNjguLmVhMGVkM2IgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JIaWdobGlnaHRlci5qcwpAQCAt
MzIsNyArMzIsNiBAQAogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JIaWdobGlnaHRlciA9IGZ1bmN0
aW9uKHRleHRNb2RlbCwgZGFtYWdlQ2FsbGJhY2spCiB7CiAgICAgdGhpcy5fdGV4dE1vZGVsID0g
dGV4dE1vZGVsOwotICAgIHRoaXMuX3Rva2VuaXplciA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNl
Q1NTVG9rZW5pemVyKCk7CiAKICAgICB0aGlzLl9zdHlsZXMgPSBbXTsKIApAQCAtNTksMTAgKzU4
LDI5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIgPSBmdW5jdGlvbih0ZXh0
TW9kZWwsIGRhbWFnZUNhbGxiYWNrKQogICAgIHRoaXMuX3N0eWxlc1sianMta2V5d29yZCJdID0g
InJnYigxNzAsIDEzLCAxNDUpIjsKICAgICB0aGlzLl9zdHlsZXNbImpzLW51bWJlciJdID0gInJn
YigyOCwgMCwgMjA3KSI7CiAKKyAgICB0aGlzLl90b2tlbml6ZXJzID0ge307CisgICAgdGhpcy5f
dG9rZW5pemVyQ29uc3RydWN0b3JzID0geworICAgICAgICAidGV4dC9jc3MiOiBXZWJJbnNwZWN0
b3IuU291cmNlQ1NTVG9rZW5pemVyLAorICAgICAgICAidGV4dC9odG1sIjogV2ViSW5zcGVjdG9y
LlNvdXJjZUhUTUxUb2tlbml6ZXIsCisgICAgICAgICJ0ZXh0L2phdmFzY3JpcHQiOiBXZWJJbnNw
ZWN0b3IuU291cmNlSmF2YVNjcmlwdFRva2VuaXplcgorICAgIH07CisKKyAgICB0aGlzLm1pbWVU
eXBlID0gInRleHQvaHRtbCI7CiAgICAgdGhpcy5fZGFtYWdlQ2FsbGJhY2sgPSBkYW1hZ2VDYWxs
YmFjazsgICAgCiB9CiAKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9ySGlnaGxpZ2h0ZXIucHJvdG90
eXBlID0geworICAgIHNldCBtaW1lVHlwZShtaW1lVHlwZSkKKyAgICB7CisgICAgICAgIGlmICgh
dGhpcy5fdG9rZW5pemVyQ29uc3RydWN0b3JzW21pbWVUeXBlXSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgdGhpcy5fdG9rZW5pemVyID0gdGhpcy5fdG9rZW5pemVyc1ttaW1lVHlwZV07
CisgICAgICAgIGlmICghdGhpcy5fdG9rZW5pemVyKSB7CisgICAgICAgICAgICB0aGlzLl90b2tl
bml6ZXIgPSBuZXcgdGhpcy5fdG9rZW5pemVyQ29uc3RydWN0b3JzW21pbWVUeXBlXSgpOworICAg
ICAgICAgICAgdGhpcy5fdG9rZW5pemVyc1ttaW1lVHlwZV0gPSB0aGlzLl90b2tlbml6ZXI7Cisg
ICAgICAgIH0KKyAgICB9LAorCiAgICAgaGlnaGxpZ2h0OiBmdW5jdGlvbihlbmRMaW5lKQogICAg
IHsKICAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgd2UgaGF2ZSB3b3JrIHRvIGRvLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3MgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCBlMGZkMmVlLi5iOWE0MTU1
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtMzgwMCw1
MiArMzgwMCwzNCBAQCBvbC5icmVha3BvaW50LWxpc3QgewogICAgIHdoaXRlLXNwYWNlOiBwcmU7
CiB9CiAKLS50ZXh0LWVkaXRvciB7Cisuc291cmNlLWJyZWFrcG9pbnQtY29uZGl0aW9uIHsKICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOjA7Ci0gICAgbGVmdDowOwotICAgIHJpZ2h0
OjA7Ci0gICAgYm90dG9tOjA7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDsKLSAgICAt
d2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlLXBsYWludGV4dC1vbmx5OwotfQotCi0udGV4
dC1lZGl0b3ItY2FudmFzIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOjA7Ci0g
ICAgbGVmdDowOwotICAgIHJpZ2h0OjA7Ci0gICAgYm90dG9tOjA7Ci0gICAgei1pbmRleDogMTA7
Ci0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Ci19Ci0KLS50ZXh0LWVkaXRvci1jb250YWluZXIg
ewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6MDsKLSAgICBsZWZ0OjA7Ci0gICAg
cmlnaHQ6MDsKLSAgICBib3R0b206MDsKLSAgICBvdmVyZmxvdzogYXV0bzsKKyAgICB6LWluZGV4
OiAzMDsKKyAgICBwYWRkaW5nOiA0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIwMywg
MjI2LCAyNTUpOworICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogN3B4OworICAgIGJvcmRlcjog
MnB4IHNvbGlkIHJnYigxNjksIDE3MiwgMjAzKTsgCisgICAgd2lkdGg6IDkwJTsgCiB9CiAKLS50
ZXh0LWVkaXRvci1jbGlwIHsKLSAgICBvcGFjaXR5OiAwOwotICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICB0b3A6MDsKLSAgICBsZWZ0OjA7Ci0gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cisu
c291cmNlLWJyZWFrcG9pbnQtbWVzc2FnZSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw
YXJlbnQ7CisgICAgZm9udC1mYW1pbHk6IEx1Y2lkYSBHcmFuZGUsIHNhbnMtc2VyaWY7IAorICAg
IGZvbnQtd2VpZ2h0OiBub3JtYWw7CisgICAgZm9udC1zaXplOiAxMXB4OworICAgIHRleHQtYWxp
Z246IGxlZnQ7CisgICAgdGV4dC1zaGFkb3c6IG5vbmU7CisgICAgY29sb3I6IHJnYig4NSwgODUs
IDg1KTsKKyAgICBjdXJzb3I6IGRlZmF1bHQ7CisgICAgbWFyZ2luOiAwIDAgMnB4IDA7IAogfQog
Ci0udGV4dC1lZGl0b3ItY3Vyc29yIHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwot
ICAgIC13ZWJraXQtdXNlci1tb2RpZnk6IG5vbmU7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwot
ICAgIHRvcDowOwotICAgIGxlZnQ6MDsKLSAgICB3aWR0aDoxcHg7Ci0gICAgaGVpZ2h0OiAxNHB4
OwotICAgIHotaW5kZXg6IDIwOwotICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOwotICAgIHBv
aW50ZXItZXZlbnRzOiBub25lOworI3NvdXJjZS1icmVha3BvaW50LWNvbmRpdGlvbiB7CisgICAg
Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgICBtYXJnaW46IDA7CisgICAgYm9yZGVyOiAxcHgg
aW5zZXQgcmdiKDE5MCwgMTkwLCAxOTApICFpbXBvcnRhbnQ7CisgICAgd2lkdGg6IDEwMCU7Cisg
ICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OworICAgIG91dGxpbmU6IG5vbmUgIWltcG9y
dGFudDsKKyAgICAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRlOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RleHRFZGl0b3IuY3NzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL3RleHRFZGl0b3IuY3NzCmluZGV4IGUwNjBhODAuLmRhYTEyYzAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC90ZXh0RWRpdG9yLmNzcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdGV4dEVkaXRvci5jc3MKQEAgLTEsMyAr
MSw1NyBAQAorLnRleHQtZWRpdG9yIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9w
OjA7CisgICAgbGVmdDowOworICAgIHJpZ2h0OjA7CisgICAgYm90dG9tOjA7CisgICAgLXdlYmtp
dC11c2VyLXNlbGVjdDogdGV4dDsKKyAgICAtd2Via2l0LXVzZXItbW9kaWZ5OiByZWFkLXdyaXRl
LXBsYWludGV4dC1vbmx5OworfQorCisudGV4dC1lZGl0b3ItcmVhZG9ubHkgeworICAgIC13ZWJr
aXQtdXNlci1tb2RpZnk6IHJlYWQtb25seTsKK30KKworLnRleHQtZWRpdG9yLWNhbnZhcyB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDowOworICAgIGxlZnQ6MDsKKyAgICByaWdo
dDowOworICAgIGJvdHRvbTowOworICAgIHotaW5kZXg6IDEwOworICAgIHBvaW50ZXItZXZlbnRz
OiBub25lOworfQorCisudGV4dC1lZGl0b3ItY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgdG9wOjA7CisgICAgbGVmdDowOworICAgIHJpZ2h0OjA7CisgICAgYm90dG9t
OjA7CisgICAgb3ZlcmZsb3c6IGF1dG87Cit9CisKKy50ZXh0LWVkaXRvci1jbGlwIHsKKyAgICBv
cGFjaXR5OiAwOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6MDsKKyAgICBsZWZ0
OjA7CisgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cit9CisKKy50ZXh0LWVkaXRvci1jdXJzb3Ig
eworICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CisgICAgLXdlYmtpdC11c2VyLW1vZGlm
eTogbm9uZTsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOjA7CisgICAgbGVmdDow
OworICAgIHdpZHRoOjFweDsKKyAgICBoZWlnaHQ6IDE0cHg7CisgICAgei1pbmRleDogMjA7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cit9
CisKIC53ZWJraXQtaHRtbC1tZXNzYWdlLWJ1YmJsZSB7CiAgICAgLXdlYmtpdC1ib3gtc2hhZG93
OiBibGFjayAwcHggMnB4IDVweDsKICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDlweDsK
</data>
<flag name="review"
          id="29837"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>