<?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>50908</bug_id>
          
          <creation_ts>2010-12-13 02:58:52 -0800</creation_ts>
          <short_desc>Web Inspector: move scripts storage from ScriptsPanel to DebuggerModel</short_desc>
          <delta_ts>2010-12-15 10:33:22 -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>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>321011</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-13 02:58:52 -0800</bug_when>
    <thetext>Web Inspector: move scripts storage from ScriptsPanel to DebuggerModel</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321012</commentid>
    <comment_count>1</comment_count>
      <attachid>76363</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-13 02:59:37 -0800</bug_when>
    <thetext>Created attachment 76363
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321035</commentid>
    <comment_count>2</comment_count>
      <attachid>76363</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-12-13 04:07:02 -0800</bug_when>
    <thetext>Comment on attachment 76363
Patch.

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

&gt; WebCore/inspector/front-end/DebuggerModel.js:34
&gt; +    this._scripts = {};

Where is it cleared?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321856</commentid>
    <comment_count>3</comment_count>
      <attachid>76521</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-14 03:14:47 -0800</bug_when>
    <thetext>Created attachment 76521
Comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322634</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-12-15 09:36:48 -0800</bug_when>
    <thetext>Committed r74119: &lt;http://trac.webkit.org/changeset/74119&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322677</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-15 10:33:22 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74119 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
inspector/debugger-pause-on-breakpoint.html
inspector/debugger-pause-on-debugger-statement.html
inspector/debugger-pause-on-exception.html
inspector/debugger-proto-property.html
inspector/debugger-step-in.html
inspector/debugger-step-out.html
inspector/debugger-step-over.html
inspector/debugger-suspend-active-dom-objects.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76363</attachid>
            <date>2010-12-13 02:59:37 -0800</date>
            <delta_ts>2010-12-14 03:14:47 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22919</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTUzZDA5Yi4uMzNkYjBhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0xMi0xMyAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIHNjcmlwdHMgc3RvcmFn
ZSBmcm9tIFNjcmlwdHNQYW5lbCB0byBEZWJ1Z2dlck1vZGVsLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA5MDgKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludE1hbmFnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5h
Z2VyLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2Fs
bFN0YWNrU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGVi
YXJQYW5lLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3Bv
aW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5fc2V0
QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuc2NyaXB0Rm9yU291cmNlSUQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwucHJvdG90eXBlLnNjcmlwdHNGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlLnF1ZXJ5U2NyaXB0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUucGFyc2VkU2NyaXB0U291cmNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5mYWlsZWRUb1BhcnNlU2NyaXB0U291
cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5icmVh
a3BvaW50UmVzdG9yZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJv
dG90eXBlLmRlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1v
ZGVsLnByb3RvdHlwZS5kZWJ1Z2dlclJlc3VtZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKTogZWxpbWluYXRl
IHNvdXJjZUlETWFwCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2NyZWF0ZVZp
ZXdlcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUuX3NldEJyZWFrcG9pbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5j
cmVhdGVKU0JyZWFrcG9pbnRzU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBh
cnNlZFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZmFpbGVkVG9QYXJzZVNj
cmlwdFNvdXJjZSk6CisKIDIwMTAtMTItMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwppbmRleCAwNGZmY2Qz
Li43MzI4YTA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtw
b2ludE1hbmFnZXIuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9p
bnRNYW5hZ2VyLmpzCkBAIC0zMiw4ICszMiw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFu
YWdlciA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLl9uYXRpdmVCcmVha3BvaW50cyA9IHt9Owog
Ci0gICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigibmF0aXZl
LWJyZWFrcG9pbnQtaGl0IiwgdGhpcy5fbmF0aXZlQnJlYWtwb2ludEhpdCwgdGhpcyk7Ci0gICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiZGVidWdnZXItcmVz
dW1lZCIsIHRoaXMuX2RlYnVnZ2VyUmVzdW1lZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5F
dmVudHMuRGVidWdnZXJQYXVzZWQsIHRoaXMuX2RlYnVnZ2VyUGF1c2VkLCB0aGlzKTsKKyAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclJlc3VtZWQsIHRoaXMuX2RlYnVnZ2VyUmVzdW1l
ZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5OYXRpdmVCcmVh
a3BvaW50VHlwZXMgPSB7CkBAIC0xMjIsOSArMTIyLDEzIEBAIFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5u
YXRpdmVCcmVha3BvaW50cyA9IGJyZWFrcG9pbnRzOwogICAgIH0sCiAKLSAgICBfbmF0aXZlQnJl
YWtwb2ludEhpdDogZnVuY3Rpb24oZXZlbnQpCisgICAgX2RlYnVnZ2VyUGF1c2VkOiBmdW5jdGlv
bihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBldmVudERhdGEgPSBldmVudC5kYXRhOworICAg
ICAgICB2YXIgZXZlbnRUeXBlID0gZXZlbnQuZGF0YS5ldmVudFR5cGU7CisgICAgICAgIHZhciBl
dmVudERhdGEgPSBldmVudC5kYXRhLmV2ZW50RGF0YTsKKworICAgICAgICBpZiAoZXZlbnRUeXBl
ICE9PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJFdmVudFR5cGVzLk5hdGl2ZUJyZWFrcG9pbnQpCisg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIGJyZWFrcG9pbnRJZDsKICAgICAgICAg
aWYgKGV2ZW50RGF0YS5icmVha3BvaW50VHlwZSA9PT0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRN
YW5hZ2VyLk5hdGl2ZUJyZWFrcG9pbnRUeXBlcy5ET00pCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKaW5kZXggOGI3NDEyNi4uYjJl
MDk5NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1Np
ZGViYXJQYW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tT
aWRlYmFyUGFuZS5qcwpAQCAtMjcsMTEgKzI3LDExIEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tT
aWRlYmFyUGFuZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUu
Y2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNhbGwgU3RhY2siKSk7CiAgICAgV2Vi
SW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoIm5hdGl2ZS1icmVh
a3BvaW50LWhpdCIsIHRoaXMuX25hdGl2ZUJyZWFrcG9pbnRIaXQsIHRoaXMpOwotICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoInNjcmlwdC1icmVha3BvaW50
LWhpdCIsIHRoaXMuX3NjcmlwdEJyZWFrcG9pbnRIaXQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwuRXZlbnRzLkJyZWFrcG9pbnRIaXQsIHRoaXMuX3NjcmlwdEJyZWFrcG9pbnRIaXQsIHRoaXMp
OwogfQogCiBXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlID0gewot
ICAgIHVwZGF0ZTogZnVuY3Rpb24oY2FsbEZyYW1lcywgc291cmNlSURNYXApCisgICAgdXBkYXRl
OiBmdW5jdGlvbihjYWxsRnJhbWVzKQogICAgIHsKICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5y
ZW1vdmVDaGlsZHJlbigpOwogCkBAIC00OCw3ICs0OCw3IEBAIFdlYkluc3BlY3Rvci5DYWxsU3Rh
Y2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIHRpdGxlOwogICAgICAg
ICB2YXIgc3VidGl0bGU7Ci0gICAgICAgIHZhciBzY3JpcHRPclJlc291cmNlOworICAgICAgICB2
YXIgc2NyaXB0OwogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbEZyYW1lcy5sZW5n
dGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07CkBA
IC02MSw5ICs2MSw5IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIHNjcmlwdE9yUmVzb3VyY2UgPSBzb3VyY2VJRE1hcFtjYWxsRnJhbWUuc291cmNlSURdOwot
ICAgICAgICAgICAgaWYgKHNjcmlwdE9yUmVzb3VyY2UpCi0gICAgICAgICAgICAgICAgc3VidGl0
bGUgPSBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwoc2NyaXB0T3JSZXNvdXJjZS5zb3Vy
Y2VVUkwgfHwgc2NyaXB0T3JSZXNvdXJjZS51cmwpOworICAgICAgICAgICAgc2NyaXB0ID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLnNvdXJj
ZUlEKTsKKyAgICAgICAgICAgIGlmIChzY3JpcHQpCisgICAgICAgICAgICAgICAgc3VidGl0bGUg
PSBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc3VidGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIihpbnRlcm5hbCBzY3JpcHQpIik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggYTMzN2Y1Yy4uYjY5NmRkOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTMxLDYgKzMxLDE2IEBA
CiBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbCA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLl9i
cmVha3BvaW50cyA9IHt9OworICAgIHRoaXMuX3NjcmlwdHMgPSB7fTsKK30KKworV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzID0geworICAgIERlYnVnZ2VyUGF1c2VkOiAiZGVidWdn
ZXItcGF1c2VkIiwKKyAgICBEZWJ1Z2dlclJlc3VtZWQ6ICJkZWJ1Z2dlci1yZXN1bWVkIiwKKyAg
ICBQYXJzZWRTY3JpcHRTb3VyY2U6ICJwYXJzZWQtc2NyaXB0LXNvdXJjZSIsCisgICAgRmFpbGVk
VG9QYXJzZVNjcmlwdFNvdXJjZTogImZhaWxlZC10by1wYXJzZS1zY3JpcHQtc291cmNlIiwKKyAg
ICBCcmVha3BvaW50QWRkZWQ6ICJicmVha3BvaW50LWFkZGVkIiwKKyAgICBCcmVha3BvaW50SGl0
OiAiYnJlYWtwb2ludC1oaXQiCiB9CiAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3Rv
dHlwZSA9IHsKQEAgLTU0LDE4ICs2NCwxNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgc2V0QnJlYWtwb2ludDogZnVu
Y3Rpb24oc291cmNlSUQsIHVybCwgbGluZSwgZW5hYmxlZCwgY29uZGl0aW9uKQorICAgIHNldEJy
ZWFrcG9pbnQ6IGZ1bmN0aW9uKHNvdXJjZUlELCBsaW5lLCBlbmFibGVkLCBjb25kaXRpb24pCiAg
ICAgeworICAgICAgICB2YXIgdXJsID0gdGhpcy5fc2NyaXB0c1tzb3VyY2VJRF0uc291cmNlVVJM
OwogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX3NldEJyZWFrcG9pbnQoc291cmNlSUQs
IHVybCwgbGluZSwgZW5hYmxlZCwgY29uZGl0aW9uKTsKICAgICAgICAgaWYgKGJyZWFrcG9pbnQp
CiAgICAgICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50T25CYWNrZW5kKGJyZWFrcG9pbnQpOwog
ICAgIH0sCiAKLSAgICBicmVha3BvaW50UmVzdG9yZWQ6IGZ1bmN0aW9uKHNvdXJjZUlELCB1cmws
IGxpbmUsIGVuYWJsZWQsIGNvbmRpdGlvbikKLSAgICB7Ci0gICAgICAgIHRoaXMuX3NldEJyZWFr
cG9pbnQoc291cmNlSUQsIHVybCwgbGluZSwgZW5hYmxlZCwgY29uZGl0aW9uKTsKLSAgICB9LAot
CiAgICAgcXVlcnlCcmVha3BvaW50czogZnVuY3Rpb24oZmlsdGVyKQogICAgIHsKICAgICAgICAg
dmFyIGJyZWFrcG9pbnRzID0gW107CkBAIC05OCw3ICsxMDQsNyBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fb25lVGlt
ZUJyZWFrcG9pbnQ7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnQuaWRdID0g
YnJlYWtwb2ludDsKICAgICAgICAgYnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKCJyZW1vdmVk
IiwgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQsIHRoaXMpOwotICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycygiYnJlYWtwb2ludC1hZGRlZCIsIGJyZWFrcG9pbnQpOworICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuQnJlYWtwb2ludEFkZGVkLCBicmVha3BvaW50KTsKICAgICAgICAgcmV0dXJuIGJy
ZWFrcG9pbnQ7CiAgICAgfSwKIApAQCAtMTI3LDE2ICsxMzMsNTMgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNldEJy
ZWFrcG9pbnQoYnJlYWtwb2ludC5zb3VyY2VJRCwgYnJlYWtwb2ludC5saW5lLCBicmVha3BvaW50
LmVuYWJsZWQsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhp
cykpOwogICAgIH0sCiAKKyAgICBzY3JpcHRGb3JTb3VyY2VJRDogZnVuY3Rpb24oc291cmNlSUQp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1tzb3VyY2VJRF07CisgICAgfSwK
KworICAgIHNjcmlwdHNGb3JVUkw6IGZ1bmN0aW9uKHVybCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLnF1ZXJ5U2NyaXB0cyhmdW5jdGlvbihzKSB7IHJldHVybiBzLnNvdXJjZVVSTCA9PT0g
dXJsOyB9KTsKKyAgICB9LAorCisgICAgcXVlcnlTY3JpcHRzOiBmdW5jdGlvbihmaWx0ZXIpCisg
ICAgeworICAgICAgICB2YXIgc2NyaXB0cyA9IFtdOworICAgICAgICBmb3IgKHZhciBzb3VyY2VJ
RCBpbiB0aGlzLl9zY3JpcHRzKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2Ny
aXB0c1tzb3VyY2VJRF07CisgICAgICAgICAgICBpZiAoZmlsdGVyKHNjcmlwdCkpCisgICAgICAg
ICAgICAgICAgc2NyaXB0cy5wdXNoKHNjcmlwdCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHNjcmlwdHM7CisgICAgfSwKKworICAgIC8vIEFsbCB0aGUgbWV0aG9kcyBiZWxvdyBzaG91bGQg
b25seSBiZSBjYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3Igbm90aWZpY2F0aW9ucy4KKworICAgIHBh
cnNlZFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlSUQsIHNvdXJjZVVSTCwgc291cmNlLCBz
dGFydGluZ0xpbmUsIHNjcmlwdFdvcmxkVHlwZSkKKyAgICB7CisgICAgICAgIHZhciBzY3JpcHQg
PSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdChzb3VyY2VJRCwgc291cmNlVVJMLCBzb3VyY2UsIHN0
YXJ0aW5nTGluZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHNjcmlwdFdvcmxkVHlwZSk7CisgICAg
ICAgIHRoaXMuX3NjcmlwdHNbc291cmNlSURdID0gc2NyaXB0OworICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUGFy
c2VkU2NyaXB0U291cmNlLCBzb3VyY2VJRCk7CisgICAgfSwKKworICAgIGZhaWxlZFRvUGFyc2VT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVy
cm9yTGluZSwgZXJyb3JNZXNzYWdlKQorICAgIHsKKyAgICAgICAgdmFyIHNjcmlwdCA9IG5ldyBX
ZWJJbnNwZWN0b3IuU2NyaXB0KG51bGwsIHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUs
IGVycm9yTGluZSwgZXJyb3JNZXNzYWdlLCB1bmRlZmluZWQpOworICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRmFp
bGVkVG9QYXJzZVNjcmlwdFNvdXJjZSwgc2NyaXB0KTsKKyAgICB9LAorCisgICAgYnJlYWtwb2lu
dFJlc3RvcmVkOiBmdW5jdGlvbihzb3VyY2VJRCwgdXJsLCBsaW5lLCBlbmFibGVkLCBjb25kaXRp
b24pCisgICAgeworICAgICAgICB0aGlzLl9zZXRCcmVha3BvaW50KHNvdXJjZUlELCB1cmwsIGxp
bmUsIGVuYWJsZWQsIGNvbmRpdGlvbik7CisgICAgfSwKKwogICAgIGRlYnVnZ2VyUGF1c2VkOiBm
dW5jdGlvbihkZXRhaWxzKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoImRlYnVnZ2VyLXBhdXNlZCIsIGRldGFpbHMuY2FsbEZyYW1lcyk7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5EZWJ1Z2dlclBhdXNlZCwgZGV0YWlscyk7CiAKLSAgICAgICAgaWYgKGRldGFpbHMuZXZl
bnRUeXBlID09PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJFdmVudFR5cGVzLkphdmFTY3JpcHRQYXVz
ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGRldGFpbHMuZXZlbnRUeXBlID09
PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJFdmVudFR5cGVzLk5hdGl2ZUJyZWFrcG9pbnQpIHsKLSAg
ICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJuYXRpdmUtYnJlYWtwb2lu
dC1oaXQiLCBkZXRhaWxzLmV2ZW50RGF0YSk7CisgICAgICAgIGlmIChkZXRhaWxzLmV2ZW50VHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRXZlbnRUeXBlcy5KYXZhU2NyaXB0UGF1c2UgfHwg
ZGV0YWlscy5ldmVudFR5cGUgPT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckV2ZW50VHlwZXMuTmF0
aXZlQnJlYWtwb2ludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCiAgICAgICAg
IHZhciBicmVha3BvaW50SWQgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5qc0JyZWFrcG9pbnRJ
ZChkZXRhaWxzLmNhbGxGcmFtZXNbMF0uc291cmNlSUQsIGRldGFpbHMuY2FsbEZyYW1lc1swXS5s
aW5lKTsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50c1ticmVha3Bv
aW50SWRdOwpAQCAtMTQ0LDEyICsxODcsMTIgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBicmVha3BvaW50Lmhp
dCA9IHRydWU7CiAgICAgICAgIHRoaXMuX2xhc3RIaXRCcmVha3BvaW50ID0gYnJlYWtwb2ludDsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInNjcmlwdC1icmVha3BvaW50
LWhpdCIsIGJyZWFrcG9pbnQpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuQnJlYWtwb2ludEhpdCwgYnJlYWtw
b2ludCk7CiAgICAgfSwKIAogICAgIGRlYnVnZ2VyUmVzdW1lZDogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImRlYnVnZ2VyLXJlc3VtZWQi
KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUmVzdW1lZCk7CiAKICAgICAgICAgaWYgKCF0aGlz
Ll9sYXN0SGl0QnJlYWtwb2ludCkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9SZXNvdXJjZS5qcwppbmRleCBkMDNhNjg0Li5kYTIxMDkyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCkBAIC00OTcsNDggKzQ5Nyw2IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAg
Z2V0IHNjcmlwdHMoKQotICAgIHsKLSAgICAgICAgaWYgKCEoIl9zY3JpcHRzIiBpbiB0aGlzKSkK
LSAgICAgICAgICAgIHRoaXMuX3NjcmlwdHMgPSBbXTsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Nj
cmlwdHM7Ci0gICAgfSwKLQotICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQotICAgIHsK
LSAgICAgICAgaWYgKCFzY3JpcHQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMu
c2NyaXB0cy51bnNoaWZ0KHNjcmlwdCk7Ci0gICAgICAgIHNjcmlwdC5yZXNvdXJjZSA9IHRoaXM7
Ci0gICAgfSwKLQotICAgIHJlbW92ZUFsbFNjcmlwdHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIGlmICghdGhpcy5fc2NyaXB0cykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NjcmlwdHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
ICAgIGlmICh0aGlzLl9zY3JpcHRzW2ldLnJlc291cmNlID09PSB0aGlzKQotICAgICAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9zY3JpcHRzW2ldLnJlc291cmNlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZGVsZXRlIHRoaXMuX3NjcmlwdHM7Ci0gICAgfSwKLQotICAgIHJlbW92ZVNjcmlwdDogZnVu
Y3Rpb24oc2NyaXB0KQotICAgIHsKLSAgICAgICAgaWYgKCFzY3JpcHQpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgaWYgKHNjcmlwdC5yZXNvdXJjZSA9PT0gdGhpcykKLSAgICAgICAg
ICAgIGRlbGV0ZSBzY3JpcHQucmVzb3VyY2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLl9zY3JpcHRz
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3NjcmlwdHMucmVtb3ZlKHNj
cmlwdCk7Ci0gICAgfSwKLQogICAgIGdldCBlcnJvcnMoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX2Vycm9ycyB8fCAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMKaW5kZXggNWFhNDc4MC4uMzAxMGFjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xNzcsOCArMTc3LDEwIEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLnJlc2V0KCk7CiAKLSAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKCJkZWJ1Z2dlci1wYXVz
ZWQiLCB0aGlzLl9kZWJ1Z2dlclBhdXNlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiZGVidWdnZXItcmVzdW1lZCIsIHRoaXMuX2RlYnVn
Z2VyUmVzdW1lZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUGFyc2VkU2NyaXB0
U291cmNlLCB0aGlzLl9wYXJzZWRTY3JpcHRTb3VyY2UsIHRoaXMpOworICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwuRXZlbnRzLkZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UsIHRoaXMuX2ZhaWxlZFRvUGFyc2VT
Y3JpcHRTb3VyY2UsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUGF1
c2VkLCB0aGlzLl9kZWJ1Z2dlclBhdXNlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVu
dHMuRGVidWdnZXJSZXN1bWVkLCB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQsIHRoaXMpOwogfQogCiAv
LyBLZWVwIHRoZXNlIGluIHN5bmMgd2l0aCBXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcgpAQCAt
MjM1LDE3ICsyMzcsMjUgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQ7CiAg
ICAgfSwKIAotICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc291cmNlSUQsIHNvdXJjZVVSTCwgc291
cmNlLCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlLCBzY3JpcHRXb3JsZFR5
cGUpCisgICAgX3BhcnNlZFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAg
ICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoc291cmNlSUQsIHNvdXJj
ZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlLCBzY3Jp
cHRXb3JsZFR5cGUpOwotICAgICAgICB0aGlzLl9zb3VyY2VJRE1hcFtzb3VyY2VJRF0gPSBzY3Jp
cHQ7CisgICAgICAgIHZhciBzb3VyY2VJRCA9IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBzY3Jp
cHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChzb3VyY2VJ
RCk7CisgICAgICAgIHRoaXMuX2FkZFNjcmlwdChzY3JpcHQpOworICAgIH0sCisKKyAgICBfZmFp
bGVkVG9QYXJzZVNjcmlwdFNvdXJjZTogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0
aGlzLl9hZGRTY3JpcHQoZXZlbnQuZGF0YSk7CisgICAgfSwKIAotICAgICAgICB2YXIgcmVzb3Vy
Y2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoc291cmNlVVJMKTsKKyAgICBfYWRkU2Ny
aXB0OiBmdW5jdGlvbihzY3JpcHQpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CiAgICAgICAgIGlmIChy
ZXNvdXJjZSkgewogICAgICAgICAgICAgaWYgKHJlc291cmNlLmZpbmlzaGVkKSB7CiAgICAgICAg
ICAgICAgICAgLy8gUmVzb3VyY2UgaXMgZmluaXNoZWQsIGJpbmQgdGhlIHNjcmlwdCByaWdodCBh
d2F5LgotICAgICAgICAgICAgICAgIHJlc291cmNlLmFkZFNjcmlwdChzY3JpcHQpOwotICAgICAg
ICAgICAgICAgIHRoaXMuX3NvdXJjZUlETWFwW3NvdXJjZUlEXSA9IHJlc291cmNlOworICAgICAg
ICAgICAgICAgIHNjcmlwdC5yZXNvdXJjZSA9IHJlc291cmNlOwogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAvLyBSZXNvdXJjZSBpcyBub3QgZmluaXNoZWQsIGJpbmQgdGhl
IHNjcmlwdCBsYXRlci4KICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlLl9zY3JpcHRzUGVu
ZGluZ1Jlc291cmNlTG9hZCkgewpAQCAtMjcxLDggKzI4MSw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc291
cmNlLl9zY3JpcHRzUGVuZGluZ1Jlc291cmNlTG9hZC5sZW5ndGg7ICsraSkgewogICAgICAgICAg
ICAgLy8gQmluZCBzY3JpcHQgdG8gcmVzb3VyY2UuCiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0g
cmVzb3VyY2UuX3NjcmlwdHNQZW5kaW5nUmVzb3VyY2VMb2FkW2ldOwotICAgICAgICAgICAgcmVz
b3VyY2UuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgICAgICB0aGlzLl9zb3VyY2VJRE1hcFtz
Y3JpcHQuc291cmNlSURdID0gcmVzb3VyY2U7CisgICAgICAgICAgICBzY3JpcHQucmVzb3VyY2Ug
PSByZXNvdXJjZTsKIAogICAgICAgICAgICAgLy8gUmVtb3ZlIHNjcmlwdCBmcm9tIHRoZSBmaWxl
cyBsaXN0LgogICAgICAgICAgICAgc2NyaXB0LmZpbGVzU2VsZWN0T3B0aW9uLnBhcmVudEVsZW1l
bnQucmVtb3ZlQ2hpbGQoc2NyaXB0LmZpbGVzU2VsZWN0T3B0aW9uKTsKQEAgLTMwMiw3ICszMTEs
NyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IGlmIChzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgY29tbWl0RWRpdGluZ0NhbGxiYWNrKG5l
d0JvZHlPckVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICAgICAgaWYgKGNhbGxGcmFtZXMgJiYg
Y2FsbEZyYW1lcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1
c2VkKHsgZGF0YTogY2FsbEZyYW1lcyB9KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGVi
dWdnZXJQYXVzZWQoeyBkYXRhOiB7IGNhbGxGcmFtZXM6IGNhbGxGcmFtZXMgfSB9KTsKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKGNhbmNlbEVkaXRpbmdDYWxsYmFj
aykKICAgICAgICAgICAgICAgICAgICAgY2FuY2VsRWRpdGluZ0NhbGxiYWNrKCk7CkBAIC0zMTMs
NyArMzIyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAgICAgdmFyIG5ld0xpbmUgPSBicmVha3BvaW50LmxpbmU7CiAgICAgICAgICAgICAg
ICAgaWYgKHN1Y2Nlc3MgJiYgYnJlYWtwb2ludC5saW5lID49IGVkaXREYXRhLmxpbmUpCiAgICAg
ICAgICAgICAgICAgICAgIG5ld0xpbmUgKz0gZWRpdERhdGEubGluZXNDb3VudFRvU2hpZnQ7Ci0g
ICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludChl
ZGl0RGF0YS5zb3VyY2VJRCwgYnJlYWtwb2ludC51cmwsIG5ld0xpbmUsIGJyZWFrcG9pbnQuZW5h
YmxlZCwgYnJlYWtwb2ludC5jb25kaXRpb24pOworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoZWRpdERhdGEuc291cmNlSUQsIG5ld0xpbmUs
IGJyZWFrcG9pbnQuZW5hYmxlZCwgYnJlYWtwb2ludC5jb25kaXRpb24pOwogICAgICAgICAgICAg
fQogICAgICAgICB9OwogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmVkaXRTY3JpcHRTb3VyY2Uo
ZWRpdERhdGEuc291cmNlSUQsIGVkaXREYXRhLmNvbnRlbnQsIG15Y2FsbGJhY2suYmluZCh0aGlz
KSk7CkBAIC0zNTgsNyArMzY3LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAKICAgICBfZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgdmFyIGNhbGxGcmFtZXMgPSBldmVudC5kYXRhOworICAgICAgICB2YXIgY2FsbEZyYW1l
cyA9IGV2ZW50LmRhdGEuY2FsbEZyYW1lczsKIAogICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5yZW1vdmVPbmVUaW1lQnJlYWtwb2ludCgpOwogICAgICAgICB0aGlzLl9wYXVzZWQg
PSB0cnVlOwpAQCAtMzY5LDcgKzM3OCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlID0gewogCiAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwgPSB0aGlzOwog
Ci0gICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay51cGRhdGUoY2FsbEZyYW1lcywg
dGhpcy5fc291cmNlSURNYXApOworICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2su
dXBkYXRlKGNhbGxGcmFtZXMpOwogICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2su
c2VsZWN0ZWRDYWxsRnJhbWUgPSBjYWxsRnJhbWVzWzBdOwogCiAgICAgICAgIHdpbmRvdy5mb2N1
cygpOwpAQCAtNDMwLDE3ICs0MzksOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5mdW5jdGlvbnNTZWxlY3RFbGVtZW50LnJlbW92ZUNoaWxk
cmVuKCk7CiAgICAgICAgIHRoaXMudmlld3NDb250YWluZXJFbGVtZW50LnJlbW92ZUNoaWxkcmVu
KCk7CiAKLSAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUlETWFwKSB7Ci0gICAgICAgICAgICBmb3Ig
KHZhciBzb3VyY2VJRCBpbiB0aGlzLl9zb3VyY2VJRE1hcCkgewotICAgICAgICAgICAgICAgIHZh
ciBvYmplY3QgPSB0aGlzLl9zb3VyY2VJRE1hcFtzb3VyY2VJRF07Ci0gICAgICAgICAgICAgICAg
aWYgKG9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZSkgewotICAgICAgICAg
ICAgICAgICAgICBvYmplY3QucmVtb3ZlQWxsU2NyaXB0cygpOwotICAgICAgICAgICAgICAgICAg
ICBkZWxldGUgb2JqZWN0Ll9yZXNvdXJjZXNWaWV3OwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3NvdXJjZUlETWFwID0ge307Cisg
ICAgICAgIHZhciBzY3JpcHRzID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucXVlcnlTY3Jp
cHRzKGZ1bmN0aW9uKHMpIHsgcmV0dXJuICEhcy5yZXNvdXJjZTsgfSk7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRlbGV0ZSBz
Y3JpcHRzW2ldLnJlc291cmNlLl9yZXNvdXJjZXNWaWV3OwogCiAgICAgICAgIHRoaXMuc2lkZWJh
clBhbmVzLndhdGNoRXhwcmVzc2lvbnMucmVmcmVzaEV4cHJlc3Npb25zKCk7CiAgICAgICAgIGlm
ICghcHJlc2VydmVJdGVtcykgewpAQCAtNDk0LDIyICs0OTUsMTUgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBfc2NyaXB0T3JSZXNvdXJjZUZvclVSTEFu
ZExpbmU6IGZ1bmN0aW9uKHVybCwgbGluZSkKICAgICB7Ci0gICAgICAgIHZhciBzY3JpcHRXaXRo
TWF0Y2hpbmdVcmwgPSBudWxsOwotICAgICAgICBmb3IgKHZhciBzb3VyY2VJRCBpbiB0aGlzLl9z
b3VyY2VJRE1hcCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdE9yUmVzb3VyY2UgPSB0aGlzLl9z
b3VyY2VJRE1hcFtzb3VyY2VJRF07Ci0gICAgICAgICAgICBpZiAoc2NyaXB0T3JSZXNvdXJjZSBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHQpIHsKLSAgICAgICAgICAgICAgICBpZiAoc2Ny
aXB0T3JSZXNvdXJjZS5zb3VyY2VVUkwgIT09IHVybCkKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICAgICAgc2NyaXB0V2l0aE1hdGNoaW5nVXJsID0gc2NyaXB0T3JS
ZXNvdXJjZTsKLSAgICAgICAgICAgICAgICBpZiAoc2NyaXB0V2l0aE1hdGNoaW5nVXJsLnN0YXJ0
aW5nTGluZSA8PSBsaW5lICYmIHNjcmlwdFdpdGhNYXRjaGluZ1VybC5zdGFydGluZ0xpbmUgKyBz
Y3JpcHRXaXRoTWF0Y2hpbmdVcmwubGluZXNDb3VudCA+IGxpbmUpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzY3JpcHRXaXRoTWF0Y2hpbmdVcmw7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IHNjcmlwdE9yUmVzb3VyY2U7Ci0gICAgICAg
ICAgICAgICAgaWYgKHJlc291cmNlLnVybCA9PT0gdXJsKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzb3VyY2U7Ci0gICAgICAgICAgICB9CisgICAgICAgIHZhciBzY3JpcHRzID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0c0ZvclVSTCh1cmwpOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBz
Y3JpcHQgPSBzY3JpcHRzW2ldOworICAgICAgICAgICAgaWYgKHNjcmlwdC5yZXNvdXJjZSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gc2NyaXB0LnJlc291cmNlOworICAgICAgICAgICAgaWYgKHNj
cmlwdC5zdGFydGluZ0xpbmUgPD0gbGluZSAmJiBzY3JpcHQuc3RhcnRpbmdMaW5lICsgc2NyaXB0
LmxpbmVzQ291bnQgPiBsaW5lKQorICAgICAgICAgICAgICAgIHJldHVybiBzY3JpcHQ7CiAgICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIHNjcmlwdFdpdGhNYXRjaGluZ1VybDsKKyAgICAgICAgcmV0
dXJuIG51bGw7CiAgICAgfSwKIAogICAgIHNob3dWaWV3OiBmdW5jdGlvbih2aWV3KQpAQCAtNzI4
LDcgKzcyMiw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLnNpZGViYXJQYW5lcy5zY29wZWNoYWluLnVwZGF0ZShjdXJyZW50RnJhbWUpOwog
ICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnJlZnJlc2hFeHByZXNz
aW9ucygpOwogCi0gICAgICAgIHZhciBzY3JpcHRPclJlc291cmNlID0gdGhpcy5fc291cmNlSURN
YXBbY3VycmVudEZyYW1lLnNvdXJjZUlEXTsKKyAgICAgICAgdmFyIHNjcmlwdCA9IFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKGN1cnJlbnRGcmFtZS5zb3VyY2VJ
RCk7CisgICAgICAgIHZhciBzY3JpcHRPclJlc291cmNlID0gc2NyaXB0LnJlc291cmNlIHx8IHNj
cmlwdDsKICAgICAgICAgdGhpcy5fc2hvd1NjcmlwdE9yUmVzb3VyY2Uoc2NyaXB0T3JSZXNvdXJj
ZSwge2xpbmU6IGN1cnJlbnRGcmFtZS5saW5lfSk7CiAKICAgICAgICAgdGhpcy5fZXhlY3V0aW9u
U291cmNlRnJhbWUgPSB0aGlzLl9zb3VyY2VGcmFtZUZvclNjcmlwdE9yUmVzb3VyY2Uoc2NyaXB0
T3JSZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMK
aW5kZXggNTU3ODM3ZC4uNjZiM2FiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VGcmFtZS5qcwpAQCAtMjIwLDcgKzIyMCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9p
bnRzKCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyAr
K2kpCiAgICAgICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50KGJyZWFrcG9pbnRzW2ldKTsKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiYnJlYWtw
b2ludC1hZGRlZCIsIHRoaXMuX2JyZWFrcG9pbnRBZGRlZCwgdGhpcyk7CisgICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgdGhpcy5fYnJlYWtwb2ludEFkZGVkLCB0
aGlzKTsKIAogICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmVuZFVwZGF0ZXMoKTsKIApAQCAtODE1
LDcgKzgxNSw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAg
X3NldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIg
c291cmNlSUQgPSB0aGlzLl9zb3VyY2VJREZvckxpbmUobGluZU51bWJlcik7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoc291cmNlSUQsIHRoaXMuX3Vy
bCwgbGluZU51bWJlciwgdHJ1ZSwgIiIpOworICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5zZXRCcmVha3BvaW50KHNvdXJjZUlELCBsaW5lTnVtYmVyLCB0cnVlLCAiIik7CiAgICAg
ICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmJyZWFrcG9pbnRzQWN0aXZhdGVk
KQogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnRvZ2dsZUJyZWFrcG9p
bnRzQ2xpY2tlZCgpOwogICAgIH0sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VW
aWV3LmpzCmluZGV4IGZlOWE3ZTMuLjdhOTdkYjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VWaWV3LmpzCkBAIC0zMiw4ICszMiw5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VW
aWV3ID0gZnVuY3Rpb24ocmVzb3VyY2UpCiAKICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFz
cygic291cmNlIik7CiAKKyAgICB2YXIgc2NyaXB0cyA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLnNjcmlwdHNGb3JVUkwocmVzb3VyY2UudXJsKTsKICAgICB2YXIgY2FuRWRpdFNjcmlwdHMg
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuY2FuRWRpdFNjcmlwdHMoKSAmJiByZXNvdXJj
ZS50eXBlID09PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZS5TY3JpcHQ7Ci0gICAgdGhpcy5z
b3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUodGhpcy5lbGVtZW50LCBy
ZXNvdXJjZS5zY3JpcHRzLCBjYW5FZGl0U2NyaXB0cyk7CisgICAgdGhpcy5zb3VyY2VGcmFtZSA9
IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUodGhpcy5lbGVtZW50LCBzY3JpcHRzLCBjYW5F
ZGl0U2NyaXB0cyk7CiAgICAgcmVzb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcigiZmluaXNoZWQiLCB0
aGlzLl9yZXNvdXJjZUxvYWRpbmdGaW5pc2hlZCwgdGhpcyk7CiAgICAgdGhpcy5fZnJhbWVOZWVk
c1NldHVwID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CmluZGV4IDhlMTY1ZGMuLmZmYjNlZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qcwpAQCAtMTkyLDcgKzE5Miw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAg
ICAgIHsKICAgICAgICAgICAgIHBhbmUuYWRkQnJlYWtwb2ludEl0ZW0obmV3IFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50SXRlbShldmVudC5kYXRhKSk7CiAgICAgICAgIH0KLSAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiYnJlYWtwb2ludC1hZGRlZCIs
IGJyZWFrcG9pbnRBZGRlZCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9p
bnRBZGRlZCwgYnJlYWtwb2ludEFkZGVkKTsKICAgICAgICAgcmV0dXJuIHBhbmU7CiAgICAgfSwK
IApAQCAtMTI5OCw3ICsxMjk4LDcgQEAgV2ViSW5zcGVjdG9yLnByb2ZpbGVyV2FzRGlzYWJsZWQg
PSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5wYXJzZWRTY3JpcHRTb3VyY2UgPSBmdW5jdGlv
bihzb3VyY2VJRCwgc291cmNlVVJMLCBzb3VyY2UsIHN0YXJ0aW5nTGluZSwgc2NyaXB0V29ybGRU
eXBlKQogewotICAgIHRoaXMucGFuZWxzLnNjcmlwdHMuYWRkU2NyaXB0KHNvdXJjZUlELCBzb3Vy
Y2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgc2NyaXB0
V29ybGRUeXBlKTsKKyAgICB0aGlzLmRlYnVnZ2VyTW9kZWwucGFyc2VkU2NyaXB0U291cmNlKHNv
dXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBzY3JpcHRXb3JsZFR5cGUp
OwogfQogCiBXZWJJbnNwZWN0b3IucmVzdG9yZWRCcmVha3BvaW50ID0gZnVuY3Rpb24oc291cmNl
SUQsIHNvdXJjZVVSTCwgbGluZSwgZW5hYmxlZCwgY29uZGl0aW9uKQpAQCAtMTMwOCw3ICsxMzA4
LDcgQEAgV2ViSW5zcGVjdG9yLnJlc3RvcmVkQnJlYWtwb2ludCA9IGZ1bmN0aW9uKHNvdXJjZUlE
LCBzb3VyY2VVUkwsIGxpbmUsIGVuYWJsZWQsIGMKIAogV2ViSW5zcGVjdG9yLmZhaWxlZFRvUGFy
c2VTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5l
LCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSkKIHsKLSAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmFk
ZFNjcmlwdChudWxsLCBzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUs
IGVycm9yTWVzc2FnZSk7CisgICAgdGhpcy5kZWJ1Z2dlck1vZGVsLmZhaWxlZFRvUGFyc2VTY3Jp
cHRTb3VyY2Uoc291cmNlVVJMLCBzb3VyY2UsIHN0YXJ0aW5nTGluZSwgZXJyb3JMaW5lLCBlcnJv
ck1lc3NhZ2UpCiB9CiAKIFdlYkluc3BlY3Rvci5wYXVzZWRTY3JpcHQgPSBmdW5jdGlvbihkZXRh
aWxzKQo=
</data>
<flag name="review"
          id="67312"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76521</attachid>
            <date>2010-12-14 03:14:47 -0800</date>
            <delta_ts>2010-12-15 04:37:44 -0800</delta_ts>
            <desc>Comments addressed.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22620</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWYxMzMwNi4uMGZlYTkxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0xMi0xMyAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIHNjcmlwdHMgc3RvcmFn
ZSBmcm9tIFNjcmlwdHNQYW5lbCB0byBEZWJ1Z2dlck1vZGVsLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA5MDgKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludE1hbmFnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5h
Z2VyLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2Fs
bFN0YWNrU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGVi
YXJQYW5lLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3Bv
aW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5fc2V0
QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuc2NyaXB0Rm9yU291cmNlSUQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwucHJvdG90eXBlLnNjcmlwdHNGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlLnF1ZXJ5U2NyaXB0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5wcm90b3R5cGUucGFyc2VkU2NyaXB0U291cmNlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5mYWlsZWRUb1BhcnNlU2NyaXB0U291
cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5icmVh
a3BvaW50UmVzdG9yZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJv
dG90eXBlLmRlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1v
ZGVsLnByb3RvdHlwZS5kZWJ1Z2dlclJlc3VtZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKTogZWxpbWluYXRl
IHNvdXJjZUlETWFwCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2NyZWF0ZVZp
ZXdlcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUuX3NldEJyZWFrcG9pbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5j
cmVhdGVKU0JyZWFrcG9pbnRzU2lkZWJhclBhbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBh
cnNlZFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZmFpbGVkVG9QYXJzZVNj
cmlwdFNvdXJjZSk6CisKIDIwMTAtMTItMTMgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21h
aWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmluZGV4IDA0ZmZjZDMu
LjczMjhhMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3Bv
aW50TWFuYWdlci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2lu
dE1hbmFnZXIuanMKQEAgLTMyLDggKzMyLDggQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5h
Z2VyID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMuX25hdGl2ZUJyZWFrcG9pbnRzID0ge307CiAK
LSAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKCJuYXRpdmUt
YnJlYWtwb2ludC1oaXQiLCB0aGlzLl9uYXRpdmVCcmVha3BvaW50SGl0LCB0aGlzKTsKLSAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKCJkZWJ1Z2dlci1yZXN1
bWVkIiwgdGhpcy5fZGVidWdnZXJSZXN1bWVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5EZWJ1Z2dlclBhdXNlZCwgdGhpcy5fZGVidWdnZXJQYXVzZWQsIHRoaXMpOworICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyUmVzdW1lZCwgdGhpcy5fZGVidWdnZXJSZXN1bWVk
LCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLk5hdGl2ZUJyZWFr
cG9pbnRUeXBlcyA9IHsKQEAgLTEyMiw5ICsxMjIsMTMgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLm5h
dGl2ZUJyZWFrcG9pbnRzID0gYnJlYWtwb2ludHM7CiAgICAgfSwKIAotICAgIF9uYXRpdmVCcmVh
a3BvaW50SGl0OiBmdW5jdGlvbihldmVudCkKKyAgICBfZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGV2ZW50RGF0YSA9IGV2ZW50LmRhdGE7CisgICAg
ICAgIHZhciBldmVudFR5cGUgPSBldmVudC5kYXRhLmV2ZW50VHlwZTsKKyAgICAgICAgdmFyIGV2
ZW50RGF0YSA9IGV2ZW50LmRhdGEuZXZlbnREYXRhOworCisgICAgICAgIGlmIChldmVudFR5cGUg
IT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckV2ZW50VHlwZXMuTmF0aXZlQnJlYWtwb2ludCkKKyAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIgYnJlYWtwb2ludElkOwogICAgICAgICBp
ZiAoZXZlbnREYXRhLmJyZWFrcG9pbnRUeXBlID09PSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1h
bmFnZXIuTmF0aXZlQnJlYWtwb2ludFR5cGVzLkRPTSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCA4Yjc0MTI2Li5iMmUw
OTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lk
ZWJhclBhbmUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1Np
ZGViYXJQYW5lLmpzCkBAIC0yNywxMSArMjcsMTEgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1Np
ZGViYXJQYW5lID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5j
YWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbCBTdGFjayIpKTsKICAgICBXZWJJ
bnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigibmF0aXZlLWJyZWFr
cG9pbnQtaGl0IiwgdGhpcy5fbmF0aXZlQnJlYWtwb2ludEhpdCwgdGhpcyk7Ci0gICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigic2NyaXB0LWJyZWFrcG9pbnQt
aGl0IiwgdGhpcy5fc2NyaXB0QnJlYWtwb2ludEhpdCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuQnJlYWtwb2ludEhpdCwgdGhpcy5fc2NyaXB0QnJlYWtwb2ludEhpdCwgdGhpcyk7
CiB9CiAKIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7Ci0g
ICAgdXBkYXRlOiBmdW5jdGlvbihjYWxsRnJhbWVzLCBzb3VyY2VJRE1hcCkKKyAgICB1cGRhdGU6
IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCiAgICAgewogICAgICAgICB0aGlzLmJvZHlFbGVtZW50LnJl
bW92ZUNoaWxkcmVuKCk7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFj
a1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgdGl0bGU7CiAgICAgICAg
IHZhciBzdWJ0aXRsZTsKLSAgICAgICAgdmFyIHNjcmlwdE9yUmVzb3VyY2U7CisgICAgICAgIHZh
ciBzY3JpcHQ7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0
aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gY2FsbEZyYW1lc1tpXTsKQEAg
LTYxLDkgKzYxLDkgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgc2NyaXB0T3JSZXNvdXJjZSA9IHNvdXJjZUlETWFwW2NhbGxGcmFtZS5zb3VyY2VJRF07Ci0g
ICAgICAgICAgICBpZiAoc2NyaXB0T3JSZXNvdXJjZSkKLSAgICAgICAgICAgICAgICBzdWJ0aXRs
ZSA9IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTChzY3JpcHRPclJlc291cmNlLnNvdXJj
ZVVSTCB8fCBzY3JpcHRPclJlc291cmNlLnVybCk7CisgICAgICAgICAgICBzY3JpcHQgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxsRnJhbWUuc291cmNl
SUQpOworICAgICAgICAgICAgaWYgKHNjcmlwdCkKKyAgICAgICAgICAgICAgICBzdWJ0aXRsZSA9
IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTChzY3JpcHQuc291cmNlVVJMKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBzdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiKGludGVybmFsIHNjcmlwdCkiKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJNb2RlbC5qcwppbmRleCBjYTc0MzAxLi5jYzg3NzU1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtMzAsOCArMzAsMTkgQEAK
IAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhpcy5f
YnJlYWtwb2ludHMgPSB7fTsKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlz
cGF0Y2hlcigiRGVidWdnZXIiLCB0aGlzKTsKKworICAgIHRoaXMuX2JyZWFrcG9pbnRzID0ge307
CisgICAgdGhpcy5fc2NyaXB0cyA9IHt9OworfQorCitXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMgPSB7CisgICAgRGVidWdnZXJQYXVzZWQ6ICJkZWJ1Z2dlci1wYXVzZWQiLAorICAg
IERlYnVnZ2VyUmVzdW1lZDogImRlYnVnZ2VyLXJlc3VtZWQiLAorICAgIFBhcnNlZFNjcmlwdFNv
dXJjZTogInBhcnNlZC1zY3JpcHQtc291cmNlIiwKKyAgICBGYWlsZWRUb1BhcnNlU2NyaXB0U291
cmNlOiAiZmFpbGVkLXRvLXBhcnNlLXNjcmlwdC1zb3VyY2UiLAorICAgIEJyZWFrcG9pbnRBZGRl
ZDogImJyZWFrcG9pbnQtYWRkZWQiLAorICAgIEJyZWFrcG9pbnRIaXQ6ICJicmVha3BvaW50LWhp
dCIKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewpAQCAtNTUs
MTggKzY2LDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgfQogICAgIH0sCiAKLSAgICBzZXRCcmVha3BvaW50OiBmdW5jdGlvbihzb3VyY2VJRCwg
dXJsLCBsaW5lLCBlbmFibGVkLCBjb25kaXRpb24pCisgICAgc2V0QnJlYWtwb2ludDogZnVuY3Rp
b24oc291cmNlSUQsIGxpbmUsIGVuYWJsZWQsIGNvbmRpdGlvbikKICAgICB7CisgICAgICAgIHZh
ciB1cmwgPSB0aGlzLl9zY3JpcHRzW3NvdXJjZUlEXS5zb3VyY2VVUkw7CiAgICAgICAgIHZhciBi
cmVha3BvaW50ID0gdGhpcy5fc2V0QnJlYWtwb2ludChzb3VyY2VJRCwgdXJsLCBsaW5lLCBlbmFi
bGVkLCBjb25kaXRpb24pOwogICAgICAgICBpZiAoYnJlYWtwb2ludCkKICAgICAgICAgICAgIHRo
aXMuX3NldEJyZWFrcG9pbnRPbkJhY2tlbmQoYnJlYWtwb2ludCk7CiAgICAgfSwKIAotICAgIGJy
ZWFrcG9pbnRSZXN0b3JlZDogZnVuY3Rpb24oc291cmNlSUQsIHVybCwgbGluZSwgZW5hYmxlZCwg
Y29uZGl0aW9uKQotICAgIHsKLSAgICAgICAgdGhpcy5fc2V0QnJlYWtwb2ludChzb3VyY2VJRCwg
dXJsLCBsaW5lLCBlbmFibGVkLCBjb25kaXRpb24pOwotICAgIH0sCi0KICAgICBxdWVyeUJyZWFr
cG9pbnRzOiBmdW5jdGlvbihmaWx0ZXIpCiAgICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludHMg
PSBbXTsKQEAgLTg4LDYgKzk1LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90
eXBlID0gewogICAgIHsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHMgPSB7fTsKICAgICAgICAg
ZGVsZXRlIHRoaXMuX29uZVRpbWVCcmVha3BvaW50OworICAgICAgICB0aGlzLl9zY3JpcHRzID0g
e307CiAgICAgfSwKIAogICAgIF9zZXRCcmVha3BvaW50OiBmdW5jdGlvbihzb3VyY2VJRCwgdXJs
LCBsaW5lLCBlbmFibGVkLCBjb25kaXRpb24pCkBAIC05OSw3ICsxMDcsNyBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5f
b25lVGltZUJyZWFrcG9pbnQ7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzW2JyZWFrcG9pbnQu
aWRdID0gYnJlYWtwb2ludDsKICAgICAgICAgYnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKCJy
ZW1vdmVkIiwgdGhpcy5fYnJlYWtwb2ludFJlbW92ZWQsIHRoaXMpOwotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycygiYnJlYWtwb2ludC1hZGRlZCIsIGJyZWFrcG9pbnQpOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNb2RlbC5FdmVudHMuQnJlYWtwb2ludEFkZGVkLCBicmVha3BvaW50KTsKICAgICAgICAgcmV0
dXJuIGJyZWFrcG9pbnQ7CiAgICAgfSwKIApAQCAtMTI4LDE2ICsxMzYsNDAgQEAgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LnNldEJyZWFrcG9pbnQoYnJlYWtwb2ludC5zb3VyY2VJRCwgYnJlYWtwb2ludC5saW5lLCBicmVh
a3BvaW50LmVuYWJsZWQsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVha3BvaW50LmJp
bmQodGhpcykpOwogICAgIH0sCiAKKyAgICBzY3JpcHRGb3JTb3VyY2VJRDogZnVuY3Rpb24oc291
cmNlSUQpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1tzb3VyY2VJRF07Cisg
ICAgfSwKKworICAgIHNjcmlwdHNGb3JVUkw6IGZ1bmN0aW9uKHVybCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLnF1ZXJ5U2NyaXB0cyhmdW5jdGlvbihzKSB7IHJldHVybiBzLnNvdXJjZVVS
TCA9PT0gdXJsOyB9KTsKKyAgICB9LAorCisgICAgcXVlcnlTY3JpcHRzOiBmdW5jdGlvbihmaWx0
ZXIpCisgICAgeworICAgICAgICB2YXIgc2NyaXB0cyA9IFtdOworICAgICAgICBmb3IgKHZhciBz
b3VyY2VJRCBpbiB0aGlzLl9zY3JpcHRzKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gdGhp
cy5fc2NyaXB0c1tzb3VyY2VJRF07CisgICAgICAgICAgICBpZiAoZmlsdGVyKHNjcmlwdCkpCisg
ICAgICAgICAgICAgICAgc2NyaXB0cy5wdXNoKHNjcmlwdCk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIHNjcmlwdHM7CisgICAgfSwKKworICAgIC8vIEFsbCB0aGUgbWV0aG9kcyBiZWxvdyBh
cmUgSW5zcGVjdG9yQmFja2VuZCBub3RpZmljYXRpb24gaGFuZGxlcnMuCisKKyAgICBicmVha3Bv
aW50UmVzdG9yZWQ6IGZ1bmN0aW9uKHNvdXJjZUlELCB1cmwsIGxpbmUsIGVuYWJsZWQsIGNvbmRp
dGlvbikKKyAgICB7CisgICAgICAgIHRoaXMuX3NldEJyZWFrcG9pbnQoc291cmNlSUQsIHVybCwg
bGluZSwgZW5hYmxlZCwgY29uZGl0aW9uKTsKKyAgICB9LAorCiAgICAgcGF1c2VkU2NyaXB0OiBm
dW5jdGlvbihkZXRhaWxzKQogICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoImRlYnVnZ2VyLXBhdXNlZCIsIGRldGFpbHMuY2FsbEZyYW1lcyk7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5EZWJ1Z2dlclBhdXNlZCwgZGV0YWlscyk7CiAKLSAgICAgICAgaWYgKGRldGFpbHMuZXZl
bnRUeXBlID09PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJFdmVudFR5cGVzLkphdmFTY3JpcHRQYXVz
ZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKGRldGFpbHMuZXZlbnRUeXBlID09
PSBXZWJJbnNwZWN0b3IuRGVidWdnZXJFdmVudFR5cGVzLk5hdGl2ZUJyZWFrcG9pbnQpIHsKLSAg
ICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJuYXRpdmUtYnJlYWtwb2lu
dC1oaXQiLCBkZXRhaWxzLmV2ZW50RGF0YSk7CisgICAgICAgIGlmIChkZXRhaWxzLmV2ZW50VHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRXZlbnRUeXBlcy5KYXZhU2NyaXB0UGF1c2UgfHwg
ZGV0YWlscy5ldmVudFR5cGUgPT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dlckV2ZW50VHlwZXMuTmF0
aXZlQnJlYWtwb2ludCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCiAgICAgICAg
IHZhciBicmVha3BvaW50SWQgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5qc0JyZWFrcG9pbnRJ
ZChkZXRhaWxzLmNhbGxGcmFtZXNbMF0uc291cmNlSUQsIGRldGFpbHMuY2FsbEZyYW1lc1swXS5s
aW5lKTsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50c1ticmVha3Bv
aW50SWRdOwpAQCAtMTQ1LDEyICsxNzcsMTIgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBicmVha3BvaW50Lmhp
dCA9IHRydWU7CiAgICAgICAgIHRoaXMuX2xhc3RIaXRCcmVha3BvaW50ID0gYnJlYWtwb2ludDsK
LSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInNjcmlwdC1icmVha3BvaW50
LWhpdCIsIGJyZWFrcG9pbnQpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuQnJlYWtwb2ludEhpdCwgYnJlYWtw
b2ludCk7CiAgICAgfSwKIAogICAgIHJlc3VtZWRTY3JpcHQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJkZWJ1Z2dlci1yZXN1bWVkIik7
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclJlc3VtZWQpOwogCiAgICAgICAgIGlmICghdGhpcy5f
bGFzdEhpdEJyZWFrcG9pbnQpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0xNzUsMTIgKzIwNywx
NSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAKICAgICBwYXJz
ZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3Rh
cnRpbmdMaW5lLCBzY3JpcHRXb3JsZFR5cGUpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnNjcmlwdHMuYWRkU2NyaXB0KHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3Rh
cnRpbmdMaW5lLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgc2NyaXB0V29ybGRUeXBlKTsKKyAgICAg
ICAgdmFyIHNjcmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNvdXJjZUlELCBzb3VyY2VV
UkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgc2NyaXB0V29y
bGRUeXBlKTsKKyAgICAgICAgdGhpcy5fc2NyaXB0c1tzb3VyY2VJRF0gPSBzY3JpcHQ7CisgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1v
ZGVsLkV2ZW50cy5QYXJzZWRTY3JpcHRTb3VyY2UsIHNvdXJjZUlEKTsKICAgICB9LAogCiAgICAg
ZmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2UsIHN0
YXJ0aW5nTGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpCiAgICAgewotICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuYWRkU2NyaXB0KG51bGwsIHNvdXJjZVVSTCwgc291cmNl
LCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlKTsKKyAgICAgICAgdmFyIHNj
cmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KG51bGwsIHNvdXJjZVVSTCwgc291cmNlLCBz
dGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlLCB1bmRlZmluZWQpOworICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2Rl
bC5FdmVudHMuRmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJjZSwgc2NyaXB0KTsKICAgICB9LAogCiAg
ICAgZGlkQ3JlYXRlV29ya2VyOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2UuanMKaW5kZXggZDAzYTY4NC4uZGEyMTA5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZS5qcwpAQCAtNDk3LDQ4ICs0OTcsNiBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2UucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAotICAgIGdldCBzY3JpcHRz
KCkKLSAgICB7Ci0gICAgICAgIGlmICghKCJfc2NyaXB0cyIgaW4gdGhpcykpCi0gICAgICAgICAg
ICB0aGlzLl9zY3JpcHRzID0gW107Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRzOwotICAg
IH0sCi0KLSAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKLSAgICB7Ci0gICAgICAgIGlm
ICghc2NyaXB0KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLnNjcmlwdHMudW5z
aGlmdChzY3JpcHQpOwotICAgICAgICBzY3JpcHQucmVzb3VyY2UgPSB0aGlzOwotICAgIH0sCi0K
LSAgICByZW1vdmVBbGxTY3JpcHRzOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRo
aXMuX3NjcmlwdHMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0aGlzLl9zY3JpcHRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAodGhp
cy5fc2NyaXB0c1tpXS5yZXNvdXJjZSA9PT0gdGhpcykKLSAgICAgICAgICAgICAgICBkZWxldGUg
dGhpcy5fc2NyaXB0c1tpXS5yZXNvdXJjZTsKLSAgICAgICAgfQotCi0gICAgICAgIGRlbGV0ZSB0
aGlzLl9zY3JpcHRzOwotICAgIH0sCi0KLSAgICByZW1vdmVTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlw
dCkKLSAgICB7Ci0gICAgICAgIGlmICghc2NyaXB0KQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGlmIChzY3JpcHQucmVzb3VyY2UgPT09IHRoaXMpCi0gICAgICAgICAgICBkZWxldGUg
c2NyaXB0LnJlc291cmNlOwotCi0gICAgICAgIGlmICghdGhpcy5fc2NyaXB0cykKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9zY3JpcHRzLnJlbW92ZShzY3JpcHQpOwotICAg
IH0sCi0KICAgICBnZXQgZXJyb3JzKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9lcnJv
cnMgfHwgMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmlu
ZGV4IDVhYTQ3ODAuLjMwMTBhY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qcwpAQCAtMTc3LDggKzE3NywxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5yZXNldCgpOwogCi0gICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcigiZGVidWdnZXItcGF1c2VkIiwgdGhpcy5f
ZGVidWdnZXJQYXVzZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoImRlYnVnZ2VyLXJlc3VtZWQiLCB0aGlzLl9kZWJ1Z2dlclJlc3VtZWQs
IHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlBhcnNlZFNjcmlwdFNvdXJjZSwgdGhp
cy5fcGFyc2VkU2NyaXB0U291cmNlLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5G
YWlsZWRUb1BhcnNlU2NyaXB0U291cmNlLCB0aGlzLl9mYWlsZWRUb1BhcnNlU2NyaXB0U291cmNl
LCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclBhdXNlZCwgdGhpcy5f
ZGVidWdnZXJQYXVzZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2Vy
UmVzdW1lZCwgdGhpcy5fZGVidWdnZXJSZXN1bWVkLCB0aGlzKTsKIH0KIAogLy8gS2VlcCB0aGVz
ZSBpbiBzeW5jIHdpdGggV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXIKQEAgLTIzNSwxNyArMjM3
LDI1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBy
ZXR1cm4gdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkOwogICAgIH0sCiAKLSAg
ICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRp
bmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSwgc2NyaXB0V29ybGRUeXBlKQorICAgIF9w
YXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHNj
cmlwdCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJj
ZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSwgc2NyaXB0V29ybGRUeXBl
KTsKLSAgICAgICAgdGhpcy5fc291cmNlSURNYXBbc291cmNlSURdID0gc2NyaXB0OworICAgICAg
ICB2YXIgc291cmNlSUQgPSBldmVudC5kYXRhOworICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoc291cmNlSUQpOworICAgICAg
ICB0aGlzLl9hZGRTY3JpcHQoc2NyaXB0KTsKKyAgICB9LAorCisgICAgX2ZhaWxlZFRvUGFyc2VT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fYWRkU2Ny
aXB0KGV2ZW50LmRhdGEpOworICAgIH0sCiAKLSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5z
cGVjdG9yLnJlc291cmNlRm9yVVJMKHNvdXJjZVVSTCk7CisgICAgX2FkZFNjcmlwdDogZnVuY3Rp
b24oc2NyaXB0KQorICAgIHsKKyAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJl
c291cmNlRm9yVVJMKHNjcmlwdC5zb3VyY2VVUkwpOwogICAgICAgICBpZiAocmVzb3VyY2UpIHsK
ICAgICAgICAgICAgIGlmIChyZXNvdXJjZS5maW5pc2hlZCkgewogICAgICAgICAgICAgICAgIC8v
IFJlc291cmNlIGlzIGZpbmlzaGVkLCBiaW5kIHRoZSBzY3JpcHQgcmlnaHQgYXdheS4KLSAgICAg
ICAgICAgICAgICByZXNvdXJjZS5hZGRTY3JpcHQoc2NyaXB0KTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9zb3VyY2VJRE1hcFtzb3VyY2VJRF0gPSByZXNvdXJjZTsKKyAgICAgICAgICAgICAgICBz
Y3JpcHQucmVzb3VyY2UgPSByZXNvdXJjZTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgLy8gUmVzb3VyY2UgaXMgbm90IGZpbmlzaGVkLCBiaW5kIHRoZSBzY3JpcHQgbGF0
ZXIuCiAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZS5fc2NyaXB0c1BlbmRpbmdSZXNvdXJj
ZUxvYWQpIHsKQEAgLTI3MSw4ICsyODEsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJjZS5fc2NyaXB0
c1BlbmRpbmdSZXNvdXJjZUxvYWQubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIC8vIEJpbmQg
c2NyaXB0IHRvIHJlc291cmNlLgogICAgICAgICAgICAgdmFyIHNjcmlwdCA9IHJlc291cmNlLl9z
Y3JpcHRzUGVuZGluZ1Jlc291cmNlTG9hZFtpXTsKLSAgICAgICAgICAgIHJlc291cmNlLmFkZFNj
cmlwdChzY3JpcHQpOwotICAgICAgICAgICAgdGhpcy5fc291cmNlSURNYXBbc2NyaXB0LnNvdXJj
ZUlEXSA9IHJlc291cmNlOworICAgICAgICAgICAgc2NyaXB0LnJlc291cmNlID0gcmVzb3VyY2U7
CiAKICAgICAgICAgICAgIC8vIFJlbW92ZSBzY3JpcHQgZnJvbSB0aGUgZmlsZXMgbGlzdC4KICAg
ICAgICAgICAgIHNjcmlwdC5maWxlc1NlbGVjdE9wdGlvbi5wYXJlbnRFbGVtZW50LnJlbW92ZUNo
aWxkKHNjcmlwdC5maWxlc1NlbGVjdE9wdGlvbik7CkBAIC0zMDIsNyArMzExLDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAoc3VjY2Vz
cykgewogICAgICAgICAgICAgICAgIGNvbW1pdEVkaXRpbmdDYWxsYmFjayhuZXdCb2R5T3JFcnJv
ck1lc3NhZ2UpOwogICAgICAgICAgICAgICAgIGlmIChjYWxsRnJhbWVzICYmIGNhbGxGcmFtZXMu
bGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWJ1Z2dlclBhdXNlZCh7IGRhdGE6
IGNhbGxGcmFtZXMgfSk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2Vk
KHsgZGF0YTogeyBjYWxsRnJhbWVzOiBjYWxsRnJhbWVzIH0gfSk7CiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIGlmIChjYW5jZWxFZGl0aW5nQ2FsbGJhY2spCiAgICAgICAg
ICAgICAgICAgICAgIGNhbmNlbEVkaXRpbmdDYWxsYmFjaygpOwpAQCAtMzEzLDcgKzMyMiw3IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IHZhciBuZXdMaW5lID0gYnJlYWtwb2ludC5saW5lOwogICAgICAgICAgICAgICAgIGlmIChzdWNj
ZXNzICYmIGJyZWFrcG9pbnQubGluZSA+PSBlZGl0RGF0YS5saW5lKQogICAgICAgICAgICAgICAg
ICAgICBuZXdMaW5lICs9IGVkaXREYXRhLmxpbmVzQ291bnRUb1NoaWZ0OwotICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoZWRpdERhdGEuc291
cmNlSUQsIGJyZWFrcG9pbnQudXJsLCBuZXdMaW5lLCBicmVha3BvaW50LmVuYWJsZWQsIGJyZWFr
cG9pbnQuY29uZGl0aW9uKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5zZXRCcmVha3BvaW50KGVkaXREYXRhLnNvdXJjZUlELCBuZXdMaW5lLCBicmVha3BvaW50
LmVuYWJsZWQsIGJyZWFrcG9pbnQuY29uZGl0aW9uKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fTsKICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5lZGl0U2NyaXB0U291cmNlKGVkaXREYXRhLnNv
dXJjZUlELCBlZGl0RGF0YS5jb250ZW50LCBteWNhbGxiYWNrLmJpbmQodGhpcykpOwpAQCAtMzU4
LDcgKzM2Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAg
ICAgX2RlYnVnZ2VyUGF1c2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBj
YWxsRnJhbWVzID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIGNhbGxGcmFtZXMgPSBldmVudC5k
YXRhLmNhbGxGcmFtZXM7CiAKICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVt
b3ZlT25lVGltZUJyZWFrcG9pbnQoKTsKICAgICAgICAgdGhpcy5fcGF1c2VkID0gdHJ1ZTsKQEAg
LTM2OSw3ICszNzgsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsID0gdGhpczsKIAotICAgICAgICB0
aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2sudXBkYXRlKGNhbGxGcmFtZXMsIHRoaXMuX3NvdXJj
ZUlETWFwKTsKKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnVwZGF0ZShjYWxs
RnJhbWVzKTsKICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNlbGVjdGVkQ2Fs
bEZyYW1lID0gY2FsbEZyYW1lc1swXTsKIAogICAgICAgICB3aW5kb3cuZm9jdXMoKTsKQEAgLTQz
MCwxNyArNDM5LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuZnVuY3Rpb25zU2VsZWN0RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogICAg
ICAgICB0aGlzLnZpZXdzQ29udGFpbmVyRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogCi0gICAg
ICAgIGlmICh0aGlzLl9zb3VyY2VJRE1hcCkgewotICAgICAgICAgICAgZm9yICh2YXIgc291cmNl
SUQgaW4gdGhpcy5fc291cmNlSURNYXApIHsKLSAgICAgICAgICAgICAgICB2YXIgb2JqZWN0ID0g
dGhpcy5fc291cmNlSURNYXBbc291cmNlSURdOwotICAgICAgICAgICAgICAgIGlmIChvYmplY3Qg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUmVzb3VyY2UpIHsKLSAgICAgICAgICAgICAgICAgICAg
b2JqZWN0LnJlbW92ZUFsbFNjcmlwdHMoKTsKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9i
amVjdC5fcmVzb3VyY2VzVmlldzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLQotICAgICAgICB0aGlzLl9zb3VyY2VJRE1hcCA9IHt9OworICAgICAgICB2YXIg
c2NyaXB0cyA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnF1ZXJ5U2NyaXB0cyhmdW5jdGlv
bihzKSB7IHJldHVybiAhIXMucmVzb3VyY2U7IH0pOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBkZWxldGUgc2NyaXB0c1tpXS5y
ZXNvdXJjZS5fcmVzb3VyY2VzVmlldzsKIAogICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy53YXRj
aEV4cHJlc3Npb25zLnJlZnJlc2hFeHByZXNzaW9ucygpOwogICAgICAgICBpZiAoIXByZXNlcnZl
SXRlbXMpIHsKQEAgLTQ5NCwyMiArNDk1LDE1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgX3NjcmlwdE9yUmVzb3VyY2VGb3JVUkxBbmRMaW5lOiBmdW5j
dGlvbih1cmwsIGxpbmUpCiAgICAgewotICAgICAgICB2YXIgc2NyaXB0V2l0aE1hdGNoaW5nVXJs
ID0gbnVsbDsKLSAgICAgICAgZm9yICh2YXIgc291cmNlSUQgaW4gdGhpcy5fc291cmNlSURNYXAp
IHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRPclJlc291cmNlID0gdGhpcy5fc291cmNlSURNYXBb
c291cmNlSURdOwotICAgICAgICAgICAgaWYgKHNjcmlwdE9yUmVzb3VyY2UgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuU2NyaXB0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNjcmlwdE9yUmVzb3Vy
Y2Uuc291cmNlVVJMICE9PSB1cmwpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgICAgIHNjcmlwdFdpdGhNYXRjaGluZ1VybCA9IHNjcmlwdE9yUmVzb3VyY2U7Ci0g
ICAgICAgICAgICAgICAgaWYgKHNjcmlwdFdpdGhNYXRjaGluZ1VybC5zdGFydGluZ0xpbmUgPD0g
bGluZSAmJiBzY3JpcHRXaXRoTWF0Y2hpbmdVcmwuc3RhcnRpbmdMaW5lICsgc2NyaXB0V2l0aE1h
dGNoaW5nVXJsLmxpbmVzQ291bnQgPiBsaW5lKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
c2NyaXB0V2l0aE1hdGNoaW5nVXJsOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICB2YXIgcmVzb3VyY2UgPSBzY3JpcHRPclJlc291cmNlOwotICAgICAgICAgICAgICAgIGlm
IChyZXNvdXJjZS51cmwgPT09IHVybCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc291
cmNlOwotICAgICAgICAgICAgfQorICAgICAgICB2YXIgc2NyaXB0cyA9IFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLnNjcmlwdHNGb3JVUkwodXJsKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gc2Ny
aXB0c1tpXTsKKyAgICAgICAgICAgIGlmIChzY3JpcHQucmVzb3VyY2UpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNjcmlwdC5yZXNvdXJjZTsKKyAgICAgICAgICAgIGlmIChzY3JpcHQuc3RhcnRp
bmdMaW5lIDw9IGxpbmUgJiYgc2NyaXB0LnN0YXJ0aW5nTGluZSArIHNjcmlwdC5saW5lc0NvdW50
ID4gbGluZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2NyaXB0OwogICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBzY3JpcHRXaXRoTWF0Y2hpbmdVcmw7CisgICAgICAgIHJldHVybiBudWxsOwog
ICAgIH0sCiAKICAgICBzaG93VmlldzogZnVuY3Rpb24odmlldykKQEAgLTcyOCw3ICs3MjIsOCBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5z
aWRlYmFyUGFuZXMuc2NvcGVjaGFpbi51cGRhdGUoY3VycmVudEZyYW1lKTsKICAgICAgICAgdGhp
cy5zaWRlYmFyUGFuZXMud2F0Y2hFeHByZXNzaW9ucy5yZWZyZXNoRXhwcmVzc2lvbnMoKTsKIAot
ICAgICAgICB2YXIgc2NyaXB0T3JSZXNvdXJjZSA9IHRoaXMuX3NvdXJjZUlETWFwW2N1cnJlbnRG
cmFtZS5zb3VyY2VJRF07CisgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjdXJyZW50RnJhbWUuc291cmNlSUQpOworICAgICAg
ICB2YXIgc2NyaXB0T3JSZXNvdXJjZSA9IHNjcmlwdC5yZXNvdXJjZSB8fCBzY3JpcHQ7CiAgICAg
ICAgIHRoaXMuX3Nob3dTY3JpcHRPclJlc291cmNlKHNjcmlwdE9yUmVzb3VyY2UsIHtsaW5lOiBj
dXJyZW50RnJhbWUubGluZX0pOwogCiAgICAgICAgIHRoaXMuX2V4ZWN1dGlvblNvdXJjZUZyYW1l
ID0gdGhpcy5fc291cmNlRnJhbWVGb3JTY3JpcHRPclJlc291cmNlKHNjcmlwdE9yUmVzb3VyY2Up
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpz
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCmluZGV4IGFiMDM4
MDcuLjk3ZTBkOWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUu
anMKQEAgLTIyMCw3ICsyMjAsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
ID0gewogICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50cygpOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludChicmVha3BvaW50c1tpXSk7Ci0gICAgICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImJyZWFrcG9pbnQtYWRkZWQi
LCB0aGlzLl9icmVha3BvaW50QWRkZWQsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5CcmVha3BvaW50QWRkZWQsIHRoaXMuX2JyZWFrcG9pbnRBZGRlZCwgdGhpcyk7CiAKICAg
ICAgICAgdGhpcy5fdGV4dFZpZXdlci5lbmRVcGRhdGVzKCk7CiAKQEAgLTgxOSw3ICs4MTksNyBA
QCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgIF9zZXRCcmVha3Bv
aW50OiBmdW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKICAgICAgICAgdmFyIHNvdXJjZUlEID0g
dGhpcy5fc291cmNlSURGb3JMaW5lKGxpbmVOdW1iZXIpOwotICAgICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KHNvdXJjZUlELCB0aGlzLl91cmwsIGxpbmVOdW1i
ZXIsIHRydWUsICIiKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJl
YWtwb2ludChzb3VyY2VJRCwgbGluZU51bWJlciwgdHJ1ZSwgIiIpOwogICAgICAgICBpZiAoIVdl
Ykluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5icmVha3BvaW50c0FjdGl2YXRlZCkKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQo
KTsKICAgICB9LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwppbmRl
eCBmZTlhN2UzLi43YTk3ZGIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Vmlldy5qcwpAQCAtMzIsOCArMzIsOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldyA9IGZ1bmN0
aW9uKHJlc291cmNlKQogCiAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInNvdXJjZSIp
OwogCisgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRz
Rm9yVVJMKHJlc291cmNlLnVybCk7CiAgICAgdmFyIGNhbkVkaXRTY3JpcHRzID0gV2ViSW5zcGVj
dG9yLnBhbmVscy5zY3JpcHRzLmNhbkVkaXRTY3JpcHRzKCkgJiYgcmVzb3VyY2UudHlwZSA9PT0g
V2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuU2NyaXB0OwotICAgIHRoaXMuc291cmNlRnJhbWUg
PSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVudCwgcmVzb3VyY2Uuc2Ny
aXB0cywgY2FuRWRpdFNjcmlwdHMpOworICAgIHRoaXMuc291cmNlRnJhbWUgPSBuZXcgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lKHRoaXMuZWxlbWVudCwgc2NyaXB0cywgY2FuRWRpdFNjcmlwdHMp
OwogICAgIHJlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaGVkIiwgdGhpcy5fcmVzb3Vy
Y2VMb2FkaW5nRmluaXNoZWQsIHRoaXMpOwogICAgIHRoaXMuX2ZyYW1lTmVlZHNTZXR1cCA9IHRy
dWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA5MDA5
MjQyLi4yYzFiMzE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
QEAgLTE5Miw3ICsxOTIsNyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICB7CiAgICAg
ICAgICAgICBwYW5lLmFkZEJyZWFrcG9pbnRJdGVtKG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dEl0ZW0oZXZlbnQuZGF0YSkpOwogICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoImJyZWFrcG9pbnQtYWRkZWQiLCBicmVha3BvaW50
QWRkZWQpOworICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIGJy
ZWFrcG9pbnRBZGRlZCk7CiAgICAgICAgIHJldHVybiBwYW5lOwogICAgIH0sCiAK
</data>
<flag name="review"
          id="67485"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>