<?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>55464</bug_id>
          
          <creation_ts>2011-03-01 05:57:58 -0800</creation_ts>
          <short_desc>Web Inspector: extract all code that depends on source mapping from SourceFrame</short_desc>
          <delta_ts>2011-03-04 09:17:12 -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>359841</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-01 05:57:58 -0800</bug_when>
    <thetext>Web Inspector: extract all code that depends on source mapping from SourceFrame.

Extract all dependencies on DebuggerModel and ScriptsPanel to a delegate class to encapsulate source mapping aspects from SourceFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359843</commentid>
    <comment_count>1</comment_count>
      <attachid>84221</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-01 05:58:59 -0800</bug_when>
    <thetext>Created attachment 84221
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361667</commentid>
    <comment_count>2</comment_count>
      <attachid>84221</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-03 09:14:06 -0800</bug_when>
    <thetext>Comment on attachment 84221
Patch.

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

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:1072
&gt; +            var delegate = new WebInspector.SourceFrameDelegateForResourcesPanel(this._script.resource);

This looks very odd. The delegate should be called by the SourceFrame. Common functionality of the delegates could either be provided by their superclass or moved into an utility function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362531</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-04 08:41:32 -0800</bug_when>
    <thetext>Committed r80356: &lt;http://trac.webkit.org/changeset/80356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362555</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-04 09:17:12 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/80356 might have broken Qt Linux Release
The following tests are not passing:
http/tests/inspector/console-xhr-logging.html
http/tests/inspector/network-preflight-options.html
http/tests/inspector/resource-parameters.html
inspector/console/command-line-api-inspect.html
inspector/console/command-line-api.html
inspector/console/console-api-on-call-frame.html
inspector/console/console-assert.html
inspector/console/console-command-clear.html
inspector/console/console-eval-global.html
inspector/console/console-eval.html
inspector/console/console-format.html
inspector/console/console-substituted.html
inspector/cpu-profiler-profiling.html
inspector/debugger/debug-inlined-scripts.html
inspector/debugger/debugger-autocontinue-on-syntax-error.html
inspector/debugger/debugger-scripts.html
inspector/debugger/debugger-suspend-active-dom-objects.html
inspector/debugger/scripts-panel.html
inspector/debugger/source-frame.html
inspector/elements/elements-img-tooltip.html
inspector/elements/elements-panel-limited-children.html
inspector/elements/elements-panel-styles.html
inspector/extensions/extensions-resources.html
inspector/storage-panel-dom-storage.html
inspector/styles/styles-computed-trace.html
inspector/styles/styles-disable-inherited.html
inspector/timeline/timeline-event-dispatch.html
inspector/timeline/timeline-mark-timeline.html
inspector/timeline/timeline-script-tag-2.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84221</attachid>
            <date>2011-03-01 05:58:59 -0800</date>
            <delta_ts>2011-03-03 09:14:06 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28194</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMzFmNDc0Li4wOGY1NTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTEtMDMtMDEgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZXh0cmFjdCBhbGwgY29kZSB0aGF0IGRlcGVuZHMgb24gc291cmNlIG1hcHBpbmcg
ZnJvbSBTb3VyY2VGcmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU1NDY0CisKKyAgICAgICAgRXh0cmFjdCBhbGwgZGVwZW5kZW5jaWVzIG9uIERl
YnVnZ2VyTW9kZWwgYW5kIFNjcmlwdHNQYW5lbCB0byBhIGRlbGVnYXRlIGNsYXNzCisgICAgICAg
IHRvIGVuY2Fwc3VsYXRlIHNvdXJjZSBtYXBwaW5nIGFzcGVjdHMgZnJvbSBTb3VyY2VGcmFtZS4K
KworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5jcmVhdGVSZXNvdXJjZVZpZXcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JSZXNvdXJjZXNQYW5lbCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZS5fY3JlYXRlU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zaG93KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2NyZWF0ZVRleHRWaWV3
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fY29udGV4
dE1lbnUuYWRkQ29uZGl0aW9uYWxCcmVha3BvaW50LmRpZEVkaXRCcmVha3BvaW50Q29uZGl0aW9u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2NvbnRleHRN
ZW51LmFkZENvbmRpdGlvbmFsQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlLl9jb250ZXh0TWVudS5lbHNlLmVkaXRCcmVha3BvaW50Q29uZGl0
aW9uLmRpZEVkaXRCcmVha3BvaW50Q29uZGl0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5wcm90b3R5cGUuX2NvbnRleHRNZW51LmVsc2UuZWRpdEJyZWFrcG9pbnRDb25k
aXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fY29u
dGV4dE1lbnUuZWxzZS5zZXRCcmVha3BvaW50RW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9jb250ZXh0TWVudSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9tb3VzZURvd24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fbW91c2VNb3ZlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hpZGVQb3B1cCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9tb3VzZUhvdmVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3Nob3dQb3B1cC5zaG93T2JqZWN0UG9w
dXApOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fc2hvd1Bv
cHVwKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2RvdWJs
ZUNsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2Rp
ZEVkaXRMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZS5yZXF1
ZXN0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5w
cm90b3R5cGUuZGVidWdnaW5nU3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZS5yZW1vdmVCcmVha3BvaW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZS51cGRh
dGVCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRl
LnByb3RvdHlwZS5maW5kQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGUuY29udGludWVUb0xpbmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGUucHJvdG90eXBlLmNhbkVkaXRTY3JpcHRTb3VyY2Up
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGUucHJvdG90eXBlLmVk
aXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdh
dGUucHJvdG90eXBlLmRlYnVnZ2VyUGF1c2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZURlbGVnYXRlLnByb3RvdHlwZS5ldmFsdWF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGUucmVsZWFzZUV2YWx1YXRpb25SZXN1bHQp
OgorCiAyMDExLTAyLTI4ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZpZXcuanMKaW5kZXggNDUzYTYwMi4uNzFiMGI4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVZp
ZXcuanMKQEAgLTUwLDkgKzUwLDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVmlldy5jcmVhdGVS
ZXNvdXJjZVZpZXcgPSBmdW5jdGlvbihyZXNvdXJjZSkKICAgICBjYXNlIFdlYkluc3BlY3Rvci5y
ZXNvdXJjZUNhdGVnb3JpZXMuc3R5bGVzaGVldHM6CiAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVz
b3VyY2VDYXRlZ29yaWVzLnNjcmlwdHM6CiAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VD
YXRlZ29yaWVzLnhocjoKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWVDb250ZW50UHJvdmlkZXJGb3JSZXNvdXJjZShyZXNvdXJjZSk7Ci0g
ICAgICAgIHZhciBpc1NjcmlwdCA9IHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNv
dXJjZS5UeXBlLlNjcmlwdDsKLSAgICAgICAgdmFyIHZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lKGNvbnRlbnRQcm92aWRlciwgcmVzb3VyY2UudXJsLCBpc1NjcmlwdCk7CisgICAg
ICAgIHZhciBkZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZv
clJlc291cmNlc1BhbmVsKHJlc291cmNlKTsKKyAgICAgICAgdmFyIHZpZXcgPSBuZXcgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lKGRlbGVnYXRlLCByZXNvdXJjZS51cmwpOwogICAgICAgICB2aWV3
LnJlc291cmNlID0gcmVzb3VyY2U7CiAgICAgICAgIHJldHVybiB2aWV3OwogICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLnJlc291cmNlQ2F0ZWdvcmllcy5pbWFnZXM6CkBAIC0xMjAsMjYgKzExOSwyNiBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VWaWV3LmV4aXN0aW5nUmVzb3VyY2VWaWV3Rm9yUmVzb3Vy
Y2UgPSBmdW5jdGlvbihyZXNvdXJjZSkKIH0KIAogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWVD
b250ZW50UHJvdmlkZXJGb3JSZXNvdXJjZSA9IGZ1bmN0aW9uKHJlc291cmNlKQorV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JSZXNvdXJjZXNQYW5lbCA9IGZ1bmN0aW9uKHJlc291
cmNlKQogewotICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZUNvbnRlbnRQcm92aWRlci5jYWxs
KHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlLmNhbGwodGhpcyk7
CiAgICAgdGhpcy5fcmVzb3VyY2UgPSByZXNvdXJjZTsKIH0KIAogLy9UaGlzIGlzIGEgbWFwIGZy
b20gcmVzb3VyY2UudHlwZSB0byBtaW1lIHR5cGVzCiAvL2ZvdW5kIGluIFdlYkluc3BlY3Rvci5T
b3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWVDb250ZW50
UHJvdmlkZXJGb3JSZXNvdXJjZS5EZWZhdWx0TUlNRVR5cGVGb3JSZXNvdXJjZVR5cGUgPSB7CitX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclJlc291cmNlc1BhbmVsLkRlZmF1bHRN
SU1FVHlwZUZvclJlc291cmNlVHlwZSA9IHsKICAgICAwOiAidGV4dC9odG1sIiwKICAgICAxOiAi
dGV4dC9jc3MiLAogICAgIDQ6ICJ0ZXh0L2phdmFzY3JpcHQiCiB9CiAKLVdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZUNvbnRlbnRQcm92aWRlckZvclJlc291cmNlLnByb3RvdHlwZSA9IHsKK1dlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAg
IGZ1bmN0aW9uIGNvbnRlbnRMb2FkZWQodGV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFy
IG1pbWVUeXBlID0gV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudFByb3ZpZGVyRm9yUmVz
b3VyY2UuRGVmYXVsdE1JTUVUeXBlRm9yUmVzb3VyY2VUeXBlW3RoaXMuX3Jlc291cmNlLnR5cGVd
IHx8IHRoaXMuX3Jlc291cmNlLm1pbWVUeXBlOworICAgICAgICAgICAgdmFyIG1pbWVUeXBlID0g
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JSZXNvdXJjZXNQYW5lbC5EZWZhdWx0
TUlNRVR5cGVGb3JSZXNvdXJjZVR5cGVbdGhpcy5fcmVzb3VyY2UudHlwZV0gfHwgdGhpcy5fcmVz
b3VyY2UubWltZVR5cGU7CiAgICAgICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UudHlwZSAhPT0g
V2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuU2NyaXB0KSB7CiAgICAgICAgICAgICAgICAgLy8g
V2ViS2l0IGh0bWwgbGV4ZXIgbm9ybWFsaXplcyBsaW5lIGVuZGluZ3MgYW5kIHNjcmlwdHMgYXJl
IHBhc3NlZCB0byBWTSB3aXRoICJcbiIgbGluZSBlbmRpbmdzLgogICAgICAgICAgICAgICAgIC8v
IEhvd2V2ZXIsIHJlc291cmNlIGNvbnRlbnQgaGFzIG9yaWdpbmFsIGxpbmUgZW5kaW5ncywgc28g
d2UgaGF2ZSB0byBub3JtYWxpemUgbGluZSBlbmRpbmdzIGhlcmUuCkBAIC0xNTQsNCArMTUzLDQg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudFByb3ZpZGVyRm9yUmVzb3VyY2UucHJv
dG90eXBlID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudFBy
b3ZpZGVyRm9yUmVzb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZUNvbnRlbnRQcm92aWRlci5wcm90b3R5cGU7CitXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWVEZWxlZ2F0ZUZvclJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGU1NGIzNWUuLmYy
NTY0N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC01OTIsMTYgKzU5Miw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIF9jcmVhdGVTb3VyY2VGcmFtZTogZnVuY3Rpb24oc291cmNl
TmFtZSkKICAgICB7CiAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRGb3JTb3VyY2VO
YW1lKHNvdXJjZU5hbWUpOwotICAgICAgICB2YXIgY29udGVudFByb3ZpZGVyOwotICAgICAgICB2
YXIgaXNTY3JpcHQ7Ci0gICAgICAgIGlmIChzY3JpcHQucmVzb3VyY2UpIHsKLSAgICAgICAgICAg
IGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVDb250ZW50UHJv
dmlkZXJGb3JSZXNvdXJjZShzY3JpcHQucmVzb3VyY2UpOwotICAgICAgICAgICAgaXNTY3JpcHQg
PSBzY3JpcHQucmVzb3VyY2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuU2Ny
aXB0OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29udGVudFByb3ZpZGVyID0gbmV3
IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZUNvbnRlbnRQcm92aWRlckZvclNjcmlwdChzY3JpcHQp
OwotICAgICAgICAgICAgaXNTY3JpcHQgPSAhc2NyaXB0LmxpbmVPZmZzZXQgJiYgIXNjcmlwdC5j
b2x1bW5PZmZzZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgc291cmNlRnJhbWUgPSBuZXcgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lKGNvbnRlbnRQcm92aWRlciwgc2NyaXB0LnNvdXJjZVVSTCwgaXNT
Y3JpcHQpOworICAgICAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwoc2NyaXB0KTsKKyAgICAgICAgc291cmNlRnJhbWUg
PSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKGRlbGVnYXRlLCBzY3JpcHQuc291cmNlVVJM
KTsKICAgICAgICAgc291cmNlRnJhbWUuX3NvdXJjZU5hbWUgPSBzb3VyY2VOYW1lOwogICAgICAg
ICBzb3VyY2VGcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5F
dmVudHMuTG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxvYWRlZCwgdGhpcyk7CiAgICAgICAgIHRo
aXMuX3NvdXJjZU5hbWVUb1NvdXJjZUZyYW1lW3NvdXJjZU5hbWVdID0gc291cmNlRnJhbWU7CkBA
IC0xMDYxLDE1ICsxMDUzLDMwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
ID0gewogV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX19wcm90b19fID0gV2Vi
SW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZTsKIAogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWVD
b250ZW50UHJvdmlkZXJGb3JTY3JpcHQgPSBmdW5jdGlvbihzY3JpcHQpCitXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHNjcmlwdCkKIHsK
LSAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVDb250ZW50UHJvdmlkZXIuY2FsbCh0aGlzKTsK
KyAgICBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5jYWxsKHRoaXMpOwogICAgIHRo
aXMuX3NjcmlwdCA9IHNjcmlwdDsKKyAgICB0aGlzLl9wb3BvdmVyT2JqZWN0R3JvdXAgPSAicG9w
b3ZlciI7CiB9CiAKLVdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZUNvbnRlbnRQcm92aWRlckZvclNj
cmlwdC5wcm90b3R5cGUgPSB7CitXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNh
bGxiYWNrKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NjcmlwdC5yZXNvdXJjZSkgeworICAg
ICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQobWltZVR5cGUsIGNvbnRlbnQpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7Cisg
ICAgICAgICAgICAgICAgY2FsbGJhY2sobWltZVR5cGUsIGNvbnRlbnQpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgdmFyIGRlbGVnYXRlID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZURlbGVnYXRlRm9yUmVzb3VyY2VzUGFuZWwodGhpcy5fc2NyaXB0LnJlc291cmNlKTsKKyAgICAg
ICAgICAgIGRlbGVnYXRlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50LmJpbmQodGhp
cykpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2xvYWRBbmRDb25jYXRlbmF0
ZVNjcmlwdFNvdXJjZXMoY2FsbGJhY2spOworICAgIH0sCisKKyAgICBfbG9hZEFuZENvbmNhdGVu
YXRlU2NyaXB0U291cmNlczogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgewogICAgICAgICB2YXIg
c2NyaXB0cyA9IFt0aGlzLl9zY3JpcHRdOwogICAgICAgICBpZiAodGhpcy5fc2NyaXB0LnNvdXJj
ZVVSTCkKICAgICAgICAgICAgIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5z
Y3JpcHRzRm9yVVJMKHRoaXMuX3NjcmlwdC5zb3VyY2VVUkwpOwpAQCAtMTA4NCw4ICsxMDkxLDgg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudFByb3ZpZGVyRm9yU2NyaXB0LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB2YXIgcmVzdWx0
ID0gdGhpcy5fYnVpbGRTb3VyY2Uoc2NyaXB0cywgc291cmNlcyk7CiAgICAgICAgICAgICB2YXIg
c291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuSWRlbnRpY2FsU291cmNlTWFwcGluZygp
OwotICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0Lm1pbWVUeXBlLCBuZXcgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lQ29udGVudChyZXN1bHQuc291cmNlLCBzb3VyY2VNYXBwaW5nLCByZXN1bHQu
c2NyaXB0UmFuZ2VzKSk7Ci0KKyAgICAgICAgICAgIHRoaXMuX2NvbnRlbnQgPSBuZXcgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudChyZXN1bHQuc291cmNlLCBzb3VyY2VNYXBwaW5nLCBy
ZXN1bHQuc2NyaXB0UmFuZ2VzKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdC5taW1lVHlw
ZSwgdGhpcy5fY29udGVudCk7CiAgICAgICAgIH0KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzY3JpcHRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgc2NyaXB0c1tpXS5yZXF1ZXN0U291
cmNlKGRpZFJlcXVlc3RTb3VyY2UuYmluZCh0aGlzLCBpKSk7CkBAIC0xMTM4LDcgKzExNDUsOTIg
QEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudFByb3ZpZGVyRm9yU2NyaXB0LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICByZXR1cm4geyBtaW1l
VHlwZTogbWltZVR5cGUsIHNvdXJjZTogc291cmNlLCBzY3JpcHRSYW5nZXM6IHNjcmlwdFJhbmdl
cyB9OworICAgIH0sCisKKyAgICBkZWJ1Z2dpbmdTdXBwb3J0ZWQ6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBzZXRCcmVha3BvaW50OiBmdW5j
dGlvbihsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCisgICAgeworICAgICAgICB2YXIg
bG9jYXRpb24gPSB0aGlzLl9jb250ZW50LnNvdXJjZUZyYW1lTGluZU51bWJlclRvQWN0dWFsTG9j
YXRpb24obGluZU51bWJlcik7CisgICAgICAgIGlmICh0aGlzLl9zY3JpcHQuc291cmNlVVJMKQor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludCh0aGlz
Ll9zY3JpcHQuc291cmNlVVJMLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5O
dW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCk7CisgICAgICAgIGVsc2UgaWYgKGxvY2F0aW9uLnNv
dXJjZUlEKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtw
b2ludEJ5U291cmNlSWQobG9jYXRpb24uc291cmNlSUQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxv
Y2F0aW9uLmNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzLmJyZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5zY3JpcHRzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOworICAgIH0sCisKKyAgICBy
ZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50SWQpCisgICAgeworICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnRJZCk7
CisgICAgfSwKKworICAgIHVwZGF0ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnRJZCwg
Y29uZGl0aW9uLCBlbmFibGVkKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwudXBkYXRlQnJlYWtwb2ludChicmVha3BvaW50SWQsIGNvbmRpdGlvbiwgZW5hYmxlZCk7
CisgICAgfSwKKworICAgIGZpbmRCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lTnVtYmVyKQorICAg
IHsKKyAgICAgICAgdmFyIHVybCA9IHRoaXMuX3NjcmlwdC5zb3VyY2VVUkw7CisgICAgICAgIHZh
ciBsb2NhdGlvbiA9IHRoaXMuX2NvbnRlbnQuc291cmNlRnJhbWVMaW5lTnVtYmVyVG9BY3R1YWxM
b2NhdGlvbihsaW5lTnVtYmVyKTsKKyAgICAgICAgZnVuY3Rpb24gZmlsdGVyKGJyZWFrcG9pbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChicmVha3BvaW50LnVybCkgeworICAgICAgICAg
ICAgICAgIGlmIChicmVha3BvaW50LnVybCAhPT0gdXJsKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGlmIChi
cmVha3BvaW50LnNvdXJjZUlEICE9PSBsb2NhdGlvbi5zb3VyY2VJRCkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGxpbmVO
dW1iZXIgPSBicmVha3BvaW50LmxvY2F0aW9ucy5sZW5ndGggPyBicmVha3BvaW50LmxvY2F0aW9u
c1swXS5saW5lTnVtYmVyIDogYnJlYWtwb2ludC5saW5lTnVtYmVyOworICAgICAgICAgICAgcmV0
dXJuIGxpbmVOdW1iZXIgPT09IGxvY2F0aW9uLmxpbmVOdW1iZXI7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnF1ZXJ5QnJlYWtwb2ludHMoZmls
dGVyKVswXTsKKyAgICB9LAorCisgICAgY29udGludWVUb0xpbmU6IGZ1bmN0aW9uKGxpbmVOdW1i
ZXIpCisgICAgeworICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9jb250ZW50LnNvdXJjZUZy
YW1lTGluZU51bWJlclRvQWN0dWFsTG9jYXRpb24obGluZU51bWJlcik7CisgICAgICAgIGlmIChs
b2NhdGlvbi5zb3VyY2VJRCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVs
LmNvbnRpbnVlVG9Mb2NhdGlvbihsb2NhdGlvbi5zb3VyY2VJRCwgbG9jYXRpb24ubGluZU51bWJl
ciwgbG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAgICB9LAorCisgICAgY2FuRWRpdFNjcmlwdFNv
dXJjZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFByZWZlcmVuY2VzLmNhbkVk
aXRTY3JpcHRTb3VyY2UgJiYgIXRoaXMuX3NjcmlwdC5saW5lT2Zmc2V0ICYmICF0aGlzLl9zY3Jp
cHQuY29sdW1uT2Zmc2V0OworICAgIH0sCisKKyAgICBlZGl0U2NyaXB0U291cmNlOiBmdW5jdGlv
bih0ZXh0KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZWRpdFNj
cmlwdFNvdXJjZSh0aGlzLl9zY3JpcHQuc291cmNlSUQsIHRleHQpOworICAgIH0sCisKKyAgICBk
ZWJ1Z2dlclBhdXNlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5wYXVzZWQ7CisgICAgfSwKKworICAgIGV2YWx1YXRlOiBmdW5j
dGlvbihzdHJpbmcsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gZGlkRXZhbHVh
dGVJblNlbGVjdGVkQ2FsbEZyYW1lKHJlc3VsdCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCFyZXN1bHQuaXNFcnJvcigpICYmIHRoaXMuZGVidWdnZXJQYXVzZWQoKSkKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjayhyZXN1bHQpOworICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0cy5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUoc3RyaW5nLCBmYWxzZSwg
dGhpcy5fcG9wb3Zlck9iamVjdEdyb3VwLCBmYWxzZSwgZGlkRXZhbHVhdGVJblNlbGVjdGVkQ2Fs
bEZyYW1lLmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICByZWxlYXNlRXZhbHVhdGlvblJlc3Vs
dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgUnVudGltZUFnZW50LnJlbGVhc2VXcmFwcGVy
T2JqZWN0R3JvdXAoMCwgdGhpcy5fcG9wb3Zlck9iamVjdEdyb3VwKTsKICAgICB9CiB9CiAKLVdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZUNvbnRlbnRQcm92aWRlckZvclNjcmlwdC5wcm90b3R5cGUu
X19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVudFByb3ZpZGVyLnByb3Rv
dHlwZTsKK1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZS5wcm90
b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VG
cmFtZS5qcwppbmRleCBjZDM4ZDk4Li45OTJiMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTI4LDE1ICsyOCwxNCBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWUgPSBmdW5jdGlv
bihjb250ZW50UHJvdmlkZXIsIHVybCwgaXNTY3JpcHQpCitXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdXJsKQogewogICAgIFdlYkluc3BlY3Rvci5WaWV3LmNh
bGwodGhpcyk7CiAKICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2NyaXB0LXZpZXci
KTsKIAotICAgIHRoaXMuX2NvbnRlbnRQcm92aWRlciA9IGNvbnRlbnRQcm92aWRlcjsKKyAgICB0
aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlOwogICAgIHRoaXMuX3VybCA9IHVybDsKLSAgICB0aGlz
Ll9pc1NjcmlwdCA9IGlzU2NyaXB0OwogCiAgICAgdGhpcy5fdGV4dE1vZGVsID0gbmV3IFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwoKTsKICAgICB0aGlzLl90ZXh0TW9kZWwucmVwbGFjZVRh
YnNXaXRoU3BhY2VzID0gdHJ1ZTsKQEAgLTQ3LDggKzQ2LDYgQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lID0gZnVuY3Rpb24oY29udGVudFByb3ZpZGVyLCB1cmwsIGlzU2NyaXB0KQogICAgIHRo
aXMuX21lc3NhZ2VzID0gW107CiAgICAgdGhpcy5fcm93TWVzc2FnZXMgPSB7fTsKICAgICB0aGlz
Ll9tZXNzYWdlQnViYmxlcyA9IHt9OwotCi0gICAgdGhpcy5fcG9wb3Zlck9iamVjdEdyb3VwID0g
InBvcG92ZXIiOwogfQogCiBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzID0gewpAQCAt
NjMsNyArNjAsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAg
ICAgICAgIGlmICghdGhpcy5fY29udGVudFJlcXVlc3RlZCkgewogICAgICAgICAgICAgdGhpcy5f
Y29udGVudFJlcXVlc3RlZCA9IHRydWU7Ci0gICAgICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlk
ZXIucmVxdWVzdENvbnRlbnQodGhpcy5fY3JlYXRlVGV4dFZpZXdlci5iaW5kKHRoaXMpKTsKKyAg
ICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnJlcXVlc3RDb250ZW50KHRoaXMuX2NyZWF0ZVRleHRW
aWV3ZXIuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGhpcy5fdGV4dFZp
ZXdlcikgewpAQCAtMTg3LDExICsxODQsMTMgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl90ZXh0Vmlld2VyID0gbmV3IFdlYkluc3BlY3Rv
ci5UZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwgV2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0aGlz
Ll91cmwpOwogICAgICAgICB2YXIgZWxlbWVudCA9IHRoaXMuX3RleHRWaWV3ZXIuZWxlbWVudDsK
LSAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2Nv
bnRleHRNZW51LmJpbmQodGhpcyksIHRydWUpOwotICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoIm1vdXNlZG93biIsIHRoaXMuX21vdXNlRG93bi5iaW5kKHRoaXMpLCB0cnVlKTsKLSAg
ICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9tb3VzZU1v
dmUuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
c2Nyb2xsIiwgdGhpcy5fc2Nyb2xsLmJpbmQodGhpcyksIHRydWUpOwotICAgICAgICBlbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIiwgdGhpcy5fZG91YmxlQ2xpY2suYmluZCh0aGlz
KSwgdHJ1ZSk7CisgICAgICAgIGlmICh0aGlzLl9kZWxlZ2F0ZS5kZWJ1Z2dpbmdTdXBwb3J0ZWQo
KSkgeworICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIs
IHRoaXMuX2NvbnRleHRNZW51LmJpbmQodGhpcyksIHRydWUpOworICAgICAgICAgICAgZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9tb3VzZURvd24uYmluZCh0aGlz
KSwgdHJ1ZSk7CisgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92
ZSIsIHRoaXMuX21vdXNlTW92ZS5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAgICAgIGVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLCB0aGlzLl9kb3VibGVDbGljay5iaW5kKHRo
aXMpLCB0cnVlKTsKKyAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xs
IiwgdGhpcy5fc2Nyb2xsLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICB9CiAgICAgICAgIHRo
aXMuZWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTsKIAogICAgICAgICB0aGlzLl90ZXh0Vmll
d2VyLmJlZ2luVXBkYXRlcygpOwpAQCAtNDcwLDU1ICs0NjksNDggQEAgV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgIF9jb250ZXh0TWVudTogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewotICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cykKLSAg
ICAgICAgICAgIHJldHVybjsKLQogICAgICAgICB2YXIgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0LmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1saW5lLW51bWJlciIpOwogICAgICAg
ICBpZiAoIXRhcmdldCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIHRleHRWaWV3
ZXJMaW5lTnVtYmVyID0gdGFyZ2V0LmxpbmVOdW1iZXI7CisgICAgICAgIHZhciBsaW5lTnVtYmVy
ID0gdGFyZ2V0LmxpbmVOdW1iZXI7CiAKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdl
Ykluc3BlY3Rvci5Db250ZXh0TWVudSgpOwogCi0gICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0
ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb250aW51ZSB0byBIZXJlIiksIHRoaXMuX2NvbnRp
bnVlVG9MaW5lLmJpbmQodGhpcywgdGV4dFZpZXdlckxpbmVOdW1iZXIpKTsKKyAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbnRpbnVlIHRvIEhl
cmUiKSwgdGhpcy5fZGVsZWdhdGUuY29udGludWVUb0xpbmUuYmluZCh0aGlzLl9kZWxlZ2F0ZSwg
bGluZU51bWJlcikpOwogCi0gICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fZmluZEJyZWFr
cG9pbnQodGV4dFZpZXdlckxpbmVOdW1iZXIpOworICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRo
aXMuX2RlbGVnYXRlLmZpbmRCcmVha3BvaW50KGxpbmVOdW1iZXIpOwogICAgICAgICBpZiAoIWJy
ZWFrcG9pbnQpIHsKICAgICAgICAgICAgIC8vIFRoaXMgcm93IGRvZXNuJ3QgaGF2ZSBhIGJyZWFr
cG9pbnQ6IFdlIHdhbnQgdG8gc2hvdyBBZGQgQnJlYWtwb2ludCBhbmQgQWRkIGFuZCBFZGl0IEJy
ZWFrcG9pbnQuCi0gICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiQWRkIEJyZWFrcG9pbnQiKSwgdGhpcy5fc2V0QnJlYWtwb2ludC5iaW5kKHRo
aXMsIHRleHRWaWV3ZXJMaW5lTnVtYmVyLCAiIiwgdHJ1ZSkpOworICAgICAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFkZCBCcmVha3BvaW50Iiks
IHRoaXMuX2RlbGVnYXRlLnNldEJyZWFrcG9pbnQuYmluZCh0aGlzLl9kZWxlZ2F0ZSwgbGluZU51
bWJlciwgIiIsIHRydWUpKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gYWRkQ29uZGl0aW9uYWxC
cmVha3BvaW50KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLmFkZEJyZWFr
cG9pbnQodGV4dFZpZXdlckxpbmVOdW1iZXIsIHRydWUsIHRydWUsIHRydWUpOworICAgICAgICAg
ICAgICAgIHRoaXMuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyLCB0cnVlLCB0cnVlLCB0cnVlKTsK
ICAgICAgICAgICAgICAgICBmdW5jdGlvbiBkaWRFZGl0QnJlYWtwb2ludENvbmRpdGlvbihjb21t
aXR0ZWQsIGNvbmRpdGlvbikKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IHRoaXMucmVtb3ZlQnJlYWtwb2ludCh0ZXh0Vmlld2VyTGluZU51bWJlcik7CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNvbW1pdHRlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nl
dEJyZWFrcG9pbnQodGV4dFZpZXdlckxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgdHJ1ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS51cGRhdGVCcmVha3BvaW50KGJyZWFr
cG9pbnQuaWQsIGNvbmRpdGlvbiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHRoaXMuX2VkaXRCcmVha3BvaW50Q29uZGl0aW9uKHRleHRWaWV3ZXJMaW5lTnVtYmVy
LCAiIiwgZGlkRWRpdEJyZWFrcG9pbnRDb25kaXRpb24uYmluZCh0aGlzKSk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fZWRpdEJyZWFrcG9pbnRDb25kaXRpb24obGluZU51bWJlciwgIiIsIGRpZEVk
aXRCcmVha3BvaW50Q29uZGl0aW9uLmJpbmQodGhpcykpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFkZCBD
b25kaXRpb25hbCBCcmVha3BvaW504oCmIiksIGFkZENvbmRpdGlvbmFsQnJlYWtwb2ludC5iaW5k
KHRoaXMpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFRoaXMgcm93IGhhcyBh
IGJyZWFrcG9pbnQsIHdlIHdhbnQgdG8gc2hvdyBlZGl0IGFuZCByZW1vdmUgYnJlYWtwb2ludCwg
YW5kIGVpdGhlciBkaXNhYmxlIG9yIGVuYWJsZS4KLSAgICAgICAgICAgIGZ1bmN0aW9uIHJlbW92
ZUJyZWFrcG9pbnQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5pZCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5V
SVN0cmluZygiUmVtb3ZlIEJyZWFrcG9pbnQiKSwgcmVtb3ZlQnJlYWtwb2ludCk7CisgICAgICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVtb3Zl
IEJyZWFrcG9pbnQiKSwgdGhpcy5fZGVsZWdhdGUucmVtb3ZlQnJlYWtwb2ludC5iaW5kKHRoaXMu
X2RlbGVnYXRlLCBicmVha3BvaW50LmlkKSk7CiAgICAgICAgICAgICBmdW5jdGlvbiBlZGl0QnJl
YWtwb2ludENvbmRpdGlvbigpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZnVuY3Rp
b24gZGlkRWRpdEJyZWFrcG9pbnRDb25kaXRpb24oY29tbWl0dGVkLCBjb25kaXRpb24pCiAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWl0dGVkKQotICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwudXBkYXRlQnJlYWtw
b2ludChicmVha3BvaW50LmlkLCBjb25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zZXRCcmVha3BvaW50KGxpbmVOdW1i
ZXIsIGNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVkKTsKICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgdGhpcy5fZWRpdEJyZWFrcG9pbnRDb25kaXRpb24odGV4dFZpZXdlckxp
bmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRFZGl0QnJlYWtwb2ludENvbmRpdGlv
bi5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9lZGl0QnJlYWtwb2ludENvbmRp
dGlvbihsaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgZGlkRWRpdEJyZWFrcG9pbnRD
b25kaXRpb24uYmluZCh0aGlzKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiRWRpdCBCcmVha3BvaW504oCm
IiksIGVkaXRCcmVha3BvaW50Q29uZGl0aW9uLmJpbmQodGhpcykpOwogICAgICAgICAgICAgZnVu
Y3Rpb24gc2V0QnJlYWtwb2ludEVuYWJsZWQoZW5hYmxlZCkKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC51cGRhdGVCcmVha3BvaW50KGJy
ZWFrcG9pbnQuaWQsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9kZWxlZ2F0ZS51cGRhdGVCcmVha3BvaW50KGJyZWFrcG9pbnQuaWQsIGJyZWFr
cG9pbnQuY29uZGl0aW9uLCBlbmFibGVkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlm
IChicmVha3BvaW50LmVuYWJsZWQpCiAgICAgICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRpc2FibGUgQnJlYWtwb2ludCIpLCBzZXRCcmVh
a3BvaW50RW5hYmxlZC5iaW5kKHRoaXMsIGZhbHNlKSk7CkBAIC01NDIsMTYgKzUzNCwxNiBAQCBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgdGFyZ2V0
ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1saW5l
LW51bWJlciIpOwogICAgICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgdmFyIHRleHRWaWV3ZXJMaW5lTnVtYmVyID0gdGFyZ2V0LmxpbmVOdW1iZXI7CisgICAg
ICAgIHZhciBsaW5lTnVtYmVyID0gdGFyZ2V0LmxpbmVOdW1iZXI7CiAKLSAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSB0aGlzLl9maW5kQnJlYWtwb2ludCh0ZXh0Vmlld2VyTGluZU51bWJlcik7Cisg
ICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fZGVsZWdhdGUuZmluZEJyZWFrcG9pbnQobGlu
ZU51bWJlcik7CiAgICAgICAgIGlmIChicmVha3BvaW50KSB7CiAgICAgICAgICAgICBpZiAoZXZl
bnQuc2hpZnRLZXkpCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
dXBkYXRlQnJlYWtwb2ludChicmVha3BvaW50LmlkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgIWJy
ZWFrcG9pbnQuZW5hYmxlZCk7CisgICAgICAgICAgICAgICAgdGhpcy5fZGVsZWdhdGUudXBkYXRl
QnJlYWtwb2ludChicmVha3BvaW50LmlkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgIWJyZWFrcG9p
bnQuZW5hYmxlZCk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50LmlkKTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnQuaWQp
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHRoaXMuX3NldEJyZWFrcG9pbnQodGV4dFZp
ZXdlckxpbmVOdW1iZXIsICIiLCB0cnVlKTsKKyAgICAgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNl
dEJyZWFrcG9pbnQobGluZU51bWJlciwgIiIsIHRydWUpOwogICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOwogICAgIH0sCiAKQEAgLTU3Nyw3ICs1NjksNyBAQCBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9ob3ZlckVsZW1lbnQgPSBldmVu
dC50YXJnZXQ7CiAKICAgICAgICAgLy8gTm93IHRoYXQgY2xlYW51cCByb3V0aW5lcyBhcmUgc2V0
IHVwIGFib3ZlLCBsZWF2ZSB0aGlzIGluIGNhc2Ugd2UgYXJlIG5vdCBvbiBhIGJyZWFrLgotICAg
ICAgICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cyB8fCAhV2ViSW5zcGVjdG9yLnBh
bmVscy5zY3JpcHRzLnBhdXNlZCkKKyAgICAgICAgaWYgKCF0aGlzLl9kZWxlZ2F0ZS5kZWJ1Z2dl
clBhdXNlZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIFdlIGFyZSBpbnRl
cmVzdGVkIGluIGlkZW50aWZpZXJzIGFuZCAidGhpcyIga2V5d29yZC4KQEAgLTYxNiwxNiArNjA4
LDEzIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
dGhpcy5fcG9wdXAuaGlkZSgpOwogICAgICAgICBkZWxldGUgdGhpcy5fcG9wdXA7Ci0gICAgICAg
IFJ1bnRpbWVBZ2VudC5yZWxlYXNlV3JhcHBlck9iamVjdEdyb3VwKDAsIHRoaXMuX3BvcG92ZXJP
YmplY3RHcm91cCk7CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLnJlbGVhc2VFdmFsdWF0aW9uUmVz
dWx0KCk7CiAgICAgfSwKIAogICAgIF9tb3VzZUhvdmVyOiBmdW5jdGlvbihlbGVtZW50KQogICAg
IHsKICAgICAgICAgZGVsZXRlIHRoaXMuX2hvdmVyVGltZXI7CiAKLSAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMgfHwgIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5w
YXVzZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgdmFyIGxpbmVSb3cgPSBlbGVt
ZW50LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1saW5lLWNvbnRlbnQiKTsK
ICAgICAgICAgaWYgKCFsaW5lUm93KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjY1LDkgKzY1
NCw2IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
ZnVuY3Rpb24gc2hvd09iamVjdFBvcHVwKHJlc3VsdCkKICAgICAgICAgewotICAgICAgICAgICAg
aWYgKCFXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMucGF1c2VkKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLQogICAgICAgICAgICAgdmFyIHBvcHVwQ29udGVudEVsZW1lbnQgPSBudWxsOwog
ICAgICAgICAgICAgaWYgKHJlc3VsdC50eXBlICE9PSAib2JqZWN0IiAmJiByZXN1bHQudHlwZSAh
PT0gIm5vZGUiICYmIHJlc3VsdC50eXBlICE9PSAiYXJyYXkiKSB7CiAgICAgICAgICAgICAgICAg
cG9wdXBDb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAg
LTcwMiwxNSArNjg4LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHBvcHVwQ29udGVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vt
b3ZlIiwga2lsbEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyksIHRydWUpOwogICAgICAgICB9CiAK
LSAgICAgICAgZnVuY3Rpb24gZXZhbHVhdGVDYWxsYmFjayhyZXN1bHQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGlmIChyZXN1bHQuaXNFcnJvcigpKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnBhdXNlZCkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBzaG93T2JqZWN0UG9wdXAuY2FsbCh0
aGlzLCByZXN1bHQpOwotICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2Ny
aXB0cy5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUoZWxlbWVudC50ZXh0Q29udGVudCwgZmFs
c2UsIHRoaXMuX3BvcG92ZXJPYmplY3RHcm91cCwgZmFsc2UsIGV2YWx1YXRlQ2FsbGJhY2suYmlu
ZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLmV2YWx1YXRlKGVsZW1lbnQudGV4dENv
bnRlbnQsIHNob3dPYmplY3RQb3B1cC5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX2VkaXRC
cmVha3BvaW50Q29uZGl0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb25kaXRpb24sIGNhbGxi
YWNrKQpAQCAtNzU2LDI0ICs3MzQsNiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gY29uZGl0aW9uRWxlbWVudDsKICAgICB9LAogCi0gICAg
X2V2YWxTZWxlY3Rpb25JbkNhbGxGcmFtZTogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAg
ICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cyB8fCAhV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLnBhdXNlZCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB2YXIgc2Vs
ZWN0aW9uID0gdGhpcy5lbGVtZW50LmNvbnRlbnRXaW5kb3cuZ2V0U2VsZWN0aW9uKCk7Ci0gICAg
ICAgIGlmICghc2VsZWN0aW9uLnJhbmdlQ291bnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgdmFyIGV4cHJlc3Npb24gPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS50b1N0cmluZygp
LnRyaW0oKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmV2YWx1YXRlSW5T
ZWxlY3RlZENhbGxGcmFtZShleHByZXNzaW9uLCBmYWxzZSwgImNvbnNvbGUiLCBmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93Q29uc29sZSgpOwotICAgICAg
ICAgICAgdmFyIGNvbW1hbmRNZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFu
ZChleHByZXNzaW9uKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZE1lc3Nh
Z2UoY29tbWFuZE1lc3NhZ2UpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRk
TWVzc2FnZShuZXcgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kUmVzdWx0KHJlc3VsdCwgY29t
bWFuZE1lc3NhZ2UpKTsKLSAgICAgICAgfSk7Ci0gICAgfSwKLQogICAgIHJlc2l6ZTogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3RleHRWaWV3ZXIpCkBAIC03OTUsMTYgKzc1
NSw5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZv
cm1hdHRlci5mb3JtYXRDb250ZW50KHRoaXMuX2NvbnRlbnQsIGRpZEZvcm1hdC5iaW5kKHRoaXMp
KQogICAgIH0sCiAKLSAgICBfY29udGludWVUb0xpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCi0g
ICAgewotICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9jb250ZW50LnNvdXJjZUZyYW1lTGlu
ZU51bWJlclRvQWN0dWFsTG9jYXRpb24obGluZU51bWJlcik7Ci0gICAgICAgIGlmIChsb2NhdGlv
bi5zb3VyY2VJRCkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNvbnRp
bnVlVG9Mb2NhdGlvbihsb2NhdGlvbi5zb3VyY2VJRCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9j
YXRpb24uY29sdW1uTnVtYmVyKTsKLSAgICB9LAotCiAgICAgX2RvdWJsZUNsaWNrOiBmdW5jdGlv
bihldmVudCkKICAgICB7Ci0gICAgICAgIGlmICghUHJlZmVyZW5jZXMuY2FuRWRpdFNjcmlwdFNv
dXJjZSB8fCAhdGhpcy5faXNTY3JpcHQpCisgICAgICAgIGlmICghdGhpcy5fZGVsZWdhdGUuY2Fu
RWRpdFNjcmlwdFNvdXJjZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHZhciBs
aW5lUm93ID0gZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtp
dC1saW5lLWNvbnRlbnQiKTsKQEAgLTgyNCw1MyArNzc3LDc0IEBAIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
bGluZXMucHVzaChvbGRMaW5lc1tpXSk7CiAgICAgICAgIH0KLSAgICAgICAgdmFyIGxvY2F0aW9u
ID0gdGhpcy5fY29udGVudC5zb3VyY2VGcmFtZUxpbmVOdW1iZXJUb0FjdHVhbExvY2F0aW9uKGxp
bmVOdW1iZXIpOwotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5lZGl0U2NyaXB0
U291cmNlKGxvY2F0aW9uLnNvdXJjZUlELCBsaW5lcy5qb2luKCJcbiIpKTsKKyAgICAgICAgdGhp
cy5fZGVsZWdhdGUuZWRpdFNjcmlwdFNvdXJjZShsaW5lcy5qb2luKCJcbiIpKTsKKyAgICB9Cit9
CisKK1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5z
cGVjdG9yLlZpZXcucHJvdG90eXBlOworCisKK1dlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVn
YXRlID0gZnVuY3Rpb24oKQoreworfQorCitXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0
ZS5wcm90b3R5cGUgPSB7CisgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQor
ICAgIHsKKyAgICAgICAgLy8gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCiAg
ICAgfSwKIAotICAgIF9zZXRCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb25kaXRp
b24sIGVuYWJsZWQpCisgICAgZGVidWdnaW5nU3VwcG9ydGVkOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9jb250ZW50LnNvdXJjZUZyYW1lTGluZU51bWJl
clRvQWN0dWFsTG9jYXRpb24obGluZU51bWJlcik7Ci0gICAgICAgIGlmICh0aGlzLl91cmwpCi0g
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KHRoaXMu
X3VybCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyLCBjb25kaXRp
b24sIGVuYWJsZWQpOwotICAgICAgICBlbHNlIGlmIChsb2NhdGlvbi5zb3VyY2VJRCkKLSAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnRCeVNvdXJjZUlk
KGxvY2F0aW9uLnNvdXJjZUlELCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5O
dW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0sCiAKLSAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuYnJlYWtwb2ludHNBY3RpdmF0ZWQpCi0gICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7
CisgICAgc2V0QnJlYWtwb2ludDogZnVuY3Rpb24obGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFi
bGVkKQorICAgIHsKKyAgICAgICAgLy8gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNz
ZXMuCiAgICAgfSwKIAotICAgIF9maW5kQnJlYWtwb2ludDogZnVuY3Rpb24obGluZU51bWJlcikK
KyAgICByZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50SWQpCiAgICAgewotICAg
ICAgICB2YXIgdXJsID0gdGhpcy5fdXJsOwotICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9j
b250ZW50LnNvdXJjZUZyYW1lTGluZU51bWJlclRvQWN0dWFsTG9jYXRpb24obGluZU51bWJlcik7
Ci0gICAgICAgIGZ1bmN0aW9uIGZpbHRlcihicmVha3BvaW50KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAoYnJlYWtwb2ludC51cmwpIHsKLSAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2lu
dC51cmwgIT09IHVybCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoYnJlYWtwb2ludC5zb3VyY2VJRCAh
PT0gbG9jYXRpb24uc291cmNlSUQpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gYnJlYWtwb2ludC5s
b2NhdGlvbnMubGVuZ3RoID8gYnJlYWtwb2ludC5sb2NhdGlvbnNbMF0ubGluZU51bWJlciA6IGJy
ZWFrcG9pbnQubGluZU51bWJlcjsKLSAgICAgICAgICAgIHJldHVybiBsaW5lTnVtYmVyID09PSBs
b2NhdGlvbi5saW5lTnVtYmVyOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5xdWVyeUJyZWFrcG9pbnRzKGZpbHRlcilbMF07Ci0gICAgfQotfQor
ICAgICAgICAvLyBTaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICB9LAog
Ci1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3Bl
Y3Rvci5WaWV3LnByb3RvdHlwZTsKKyAgICB1cGRhdGVCcmVha3BvaW50OiBmdW5jdGlvbihicmVh
a3BvaW50SWQsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBi
ZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLgorICAgIH0sCiAKKyAgICBmaW5kQnJlYWtwb2lu
dDogZnVuY3Rpb24obGluZU51bWJlcikKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBiZSBpbXBs
ZW1lbnRlZCBieSBzdWJjbGFzc2VzLgorICAgIH0sCiAKLVdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZUNvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKCkKLXsKLX0KKyAgICBjb250aW51ZVRvTGluZTog
ZnVuY3Rpb24obGluZU51bWJlcikKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBiZSBpbXBsZW1l
bnRlZCBieSBzdWJjbGFzc2VzLgorICAgIH0sCiAKLVdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZUNv
bnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7Ci0gICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9u
KGNhbGxiYWNrKQorICAgIGNhbkVkaXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgZWRpdFNjcmlwdFNvdXJjZTogZnVu
Y3Rpb24odGV4dCkKKyAgICB7CisgICAgICAgIC8vIFNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSBz
dWJjbGFzc2VzLgorICAgIH0sCisKKyAgICBkZWJ1Z2dlclBhdXNlZDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgLy8gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCisgICAg
fSwKKworICAgIGV2YWx1YXRlOiBmdW5jdGlvbihzdHJpbmcpCisgICAgeworICAgICAgICAvLyBT
aG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy4KKyAgICB9LAorCisgICAgcmVsZWFz
ZUV2YWx1YXRpb25SZXN1bHQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIFNob3VsZCBi
ZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLgogICAgIH0K
</data>
<flag name="review"
          id="76188"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>