<?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>48680</bug_id>
          
          <creation_ts>2010-10-29 14:32:20 -0700</creation_ts>
          <short_desc>Web Inspector: new resources and network panel usability improvements.</short_desc>
          <delta_ts>2010-10-30 23:43:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302065</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-29 14:32:20 -0700</bug_when>
    <thetext>Summarizing the discussion on IRC:

Network
- By default, navigation should clear network log
- There should be a &apos;preserve log&apos; button, probably a &apos;record&apos; shape that prevents log from being cleared. This toggle is not sticky, but survives navigation. The end-user scenario is that one can toggle it, do several actions and export the log into HAR.

Resources
- Should remember expanded state of all group items
- Should select last selected item
- Should fall back to main frame&apos;s main resource by default
- Should not list XHRs and redirects
- Should have a link to the item in the network log (&quot;Show in Network Panel&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302329</commentid>
    <comment_count>1</comment_count>
      <attachid>72441</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-30 11:17:44 -0700</bug_when>
    <thetext>Created attachment 72441
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302331</commentid>
    <comment_count>2</comment_count>
      <attachid>72442</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-30 11:29:38 -0700</bug_when>
    <thetext>Created attachment 72442
[PATCH] Same + preserve redirect chain of main resource upon reload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302366</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-10-30 23:43:33 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/front-end/NetworkPanel.js
	M	WebCore/inspector/front-end/ResourceManager.js
	M	WebCore/inspector/front-end/Settings.js
	M	WebCore/inspector/front-end/StoragePanel.js
Committed r70989</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72441</attachid>
            <date>2010-10-30 11:17:44 -0700</date>
            <delta_ts>2010-10-30 11:29:38 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>last_state</filename>
            <type>text/plain</type>
            <size>23987</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzk2ZDM2Yy4uY2QwMWRhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAxMC0xMC0zMCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBuZXcgcmVzb3VyY2VzIGFuZCBuZXR3
b3JrIHBhbmVsIHVzYWJpbGl0eSBpbXByb3ZlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODY4MAorCisgICAgICAgIEJ5IGRlZmF1bHQsIG5h
dmlnYXRpb24gY2xlYXJzIG5ldHdvcmsgbG9nLCBhZGRlZCAncHJlc2VydmUgbG9nJyBidXR0b24s
CisgICAgICAgIHRoYXQgcHJldmVudHMgbG9nIGZyb20gYmVpbmcgY2xlYXJlZC4KKworICAgICAg
ICBTdG9yaW5nIGV4cGFuZGVkIHN0YXRlIG9mIGFsbCBncm91cCBpdGVtcywgcmVzdG9yaW5nIGxh
c3Qgc2VsZWN0ZWQgaXRlbSwKKyAgICAgICAgZmFsbCBiYWNrIHRvIG1haW4gZnJhbWUncyBtYWlu
IHJlc291cmNlIGJ5IGRlZmF1bHQuCisgICAgICAgIERvIG5vdCBsaXN0IFhIUnMgYW5kIHJlZGly
ZWN0cyBpbiByZXNvdXJjZXMuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Omlk
ZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnBy
b3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdv
cmtQYW5lbC5wcm90b3R5cGUuX3Bvc2l0aW9uU3VtbWFyeUJhcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZS5fdXBkYXRlRmlsdGVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTdGF0dXNiYXJCdXR0b25z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLl9vblByZXNl
cnZlTG9nQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3Rv
dHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlw
ZS5yZWZyZXNoUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUuaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5kaWRMb2FkUmVzb3VyY2VGcm9t
TWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUuc2V0T3ZlcnJpZGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZU1hbmFnZXIucHJvdG90eXBlLmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3Rv
cmFnZVBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBl
LnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUuX2lu
aXREZWZhdWx0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwu
cHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJv
dG90eXBlLmFkZFJlc291cmNlVG9GcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFn
ZVBhbmVsLnByb3RvdHlwZS5yZWZyZXNoUmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUuc2hvd0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgaXRlbVVS
TCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQucHJv
dG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlU
cmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0
b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmV4cGFuZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQucHJvdG90eXBlLm9uY29sbGFw
c2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLmdl
dCBpdGVtVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5vbnNlbGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVF
bGVtZW50LnByb3RvdHlwZS5nZXQgaXRlbVVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJh
bWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGF0YWJhc2VUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVHJlZUVsZW1lbnQucHJvdG90
eXBlLmdldCBpdGVtVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBpdGVtVVJMKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db29raWVUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNl
bGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50
LnByb3RvdHlwZS5nZXQgaXRlbVVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRp
b25DYWNoZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisKIDIwMTAtMTAtMjkgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDc0MDNiMjIuLjkyNjYyNWIgMTAwNjQ0CkJpbmFyeSBmaWxlcyBhL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGFuZCBiL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAppbmRleCA5NTZlZjdlLi4zOGUwNDljIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODk0LDYgKzg5NCw4IEBAIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsCiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CisKICNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJ
TkdfRU5BQkxFRAogICAgIC8vIElmIHRoZSByZXNvdXJjZSBVUkwgaXMgYWxyZWFkeSBrbm93biwg
d2UgZG9uJ3QgbmVlZCB0byBhZGQgaXQgYWdhaW4gc2luY2UgdGhpcyBpcyBqdXN0IGEgY2FjaGVk
IGxvYWQuCiAgICAgaWYgKG1fa25vd25SZXNvdXJjZXMuY29udGFpbnMoY2FjaGVkUmVzb3VyY2Ut
PnVybCgpKSkKQEAgLTkwMSw3ICs5MDMsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLAogCiAg
ICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAgICAgYm9vbCBpc01haW5SZXNvdXJjZSA9IGlz
TWFpblJlc291cmNlTG9hZGVyKGxvYWRlciwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIGNhY2hlZFJl
c291cmNlLT51cmwoKSkpOwotICAgIGVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAgICAgaWYgKCFp
c01haW5SZXNvdXJjZSAmJiAhcmVzb3VyY2VUcmFja2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC05MzIsOSArOTMzLDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppZGVu
dGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogICAgIGlm
IChpc01haW5SZXNvdXJjZSkKICAgICAgICAgbV9tYWluUmVzb3VyY2VJZGVudGlmaWVyID0gaWRl
bnRpZmllcjsKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECi0KICAgICBl
bnN1cmVTZXR0aW5nc0xvYWRlZCgpOworCisjaWYgTEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VO
QUJMRUQKICAgICBpZiAoIWlzTWFpblJlc291cmNlICYmICFyZXNvdXJjZVRyYWNraW5nRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya1BhbmVsLmpzCmluZGV4IGM2NjZlNTQuLmUxMDk4NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtODMsNyArODMsNyBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIGdldCBzdGF0dXNCYXJJdGVtcygp
CiAgICAgewotICAgICAgICByZXR1cm4gW3RoaXMuX2xhcmdlclJlc291cmNlc0J1dHRvbi5lbGVt
ZW50LCB0aGlzLl9jbGVhckJ1dHRvbi5lbGVtZW50LCB0aGlzLl9maWx0ZXJCYXJFbGVtZW50XTsK
KyAgICAgICAgcmV0dXJuIFt0aGlzLl9sYXJnZXJSZXNvdXJjZXNCdXR0b24uZWxlbWVudCwgdGhp
cy5fcHJlc2VydmVMb2dUb2dnbGUuZWxlbWVudCwgdGhpcy5fY2xlYXJCdXR0b24uZWxlbWVudCwg
dGhpcy5fZmlsdGVyQmFyRWxlbWVudF07CiAgICAgfSwKIAogICAgIGlzQ2F0ZWdvcnlWaXNpYmxl
OiBmdW5jdGlvbihjYXRlZ29yeU5hbWUpCkBAIC0xMjYsMTMgKzEyNiw5IEBAIFdlYkluc3BlY3Rv
ci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgIF9wb3NpdGlvblN1bW1hcnlCYXI6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSB0b3RhbCBiYXIuCi0gICAg
ICAgIGNvbnN0IHJvd0hlaWdodCA9IDIyOwotICAgICAgICBjb25zdCBzdW1tYXJ5QmFySGVpZ2h0
ID0gMjI7Ci0gICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0SGVp
Z2h0OwogCi0gICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5fc3VtbWFyeUJhckVsZW1l
bnQucGFyZW50RWxlbWVudDsKLQotICAgICAgICBpZiAodGhpcy5fc3VtbWFyeUJhckVsZW1lbnQu
cGFyZW50RWxlbWVudCAhPT0gdGhpcy5lbGVtZW50ICYmIG9mZnNldEhlaWdodCA+ICh0aGlzLl9k
YXRhR3JpZC5jaGlsZHJlbi5sZW5ndGggLSAxKSAqIHJvd0hlaWdodCArIHN1bW1hcnlCYXJIZWln
aHQpIHsKKyAgICAgICAgdmFyIGZpbGxlclJvdyA9IHRoaXMuX2RhdGFHcmlkLmRhdGFUYWJsZUJv
ZHkubGFzdENoaWxkOworICAgICAgICBpZiAodGhpcy5fc3VtbWFyeUJhckVsZW1lbnQucGFyZW50
RWxlbWVudCAhPT0gdGhpcy5lbGVtZW50ICYmIGZpbGxlclJvdy5vZmZzZXRIZWlnaHQgPiAwKSB7
CiAgICAgICAgICAgICAvLyBHbHVlIHN0YXR1cyB0byBib3R0b20uCiAgICAgICAgICAgICBpZiAo
dGhpcy5fc3VtbWFyeUJhclJvd05vZGUpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5yZW1vdmVDaGlsZCh0aGlzLl9zdW1tYXJ5QmFyUm93Tm9kZSk7CkBAIC0xNDQsNyArMTQwLDcg
QEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXRoaXMuX3N1bW1hcnlCYXJSb3dOb2Rl
ICYmIG9mZnNldEhlaWdodCAtIHN1bW1hcnlCYXJIZWlnaHQgPCB0aGlzLl9kYXRhR3JpZC5jaGls
ZHJlbi5sZW5ndGggKiByb3dIZWlnaHQpIHsKKyAgICAgICAgaWYgKCF0aGlzLl9zdW1tYXJ5QmFy
Um93Tm9kZSAmJiAhZmlsbGVyUm93Lm9mZnNldEhlaWdodCkgewogICAgICAgICAgICAgLy8gR2x1
ZSBzdGF0dXMgdG8gdGFibGUuCiAgICAgICAgICAgICB0aGlzLl9zdW1tYXJ5QmFyUm93Tm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1RvdGFsR3JpZE5vZGUodGhpcy5fc3VtbWFyeUJhckVs
ZW1lbnQpOwogICAgICAgICAgICAgdGhpcy5fc3VtbWFyeUJhckVsZW1lbnQucmVtb3ZlU3R5bGVD
bGFzcygibmV0d29yay1zdW1tYXJ5LWJhci1ib3R0b20iKTsKQEAgLTQyNyw5ICs0MjMsNyBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHNlbGVj
dE11bHRpcGxlID0gdHJ1ZTsKIAogICAgICAgICB0aGlzLl9maWx0ZXIoZS50YXJnZXQsIHNlbGVj
dE11bHRpcGxlKTsKLQotICAgICAgICB2YXIgc2VhcmNoRmllbGQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic2VhcmNoIik7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kb1BlcmZvcm1TZWFyY2go
c2VhcmNoRmllbGQudmFsdWUsIFdlYkluc3BlY3Rvci5zaG9ydFNlYXJjaFdhc0ZvcmNlZEJ5S2V5
RXZlbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcG9zaXRpb25TdW1tYXJ5QmFyKCk7
CiAgICAgfSwKIAogICAgIF9maWx0ZXI6IGZ1bmN0aW9uKHRhcmdldCwgc2VsZWN0TXVsdGlwbGUp
CkBAIC02MTEsNiArNjA1LDkgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBfY3JlYXRlU3RhdHVzYmFyQnV0dG9uczogZnVuY3Rpb24oKQogICAgIHsKKyAg
ICAgICAgdGhpcy5fcHJlc2VydmVMb2dUb2dnbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0Jh
ckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByZXNlcnZlIExvZyB1cG9uIE5hdmlnYXRp
b24iKSwgInJlY29yZC1wcm9maWxlLXN0YXR1cy1iYXItaXRlbSIpOworICAgICAgICB0aGlzLl9w
cmVzZXJ2ZUxvZ1RvZ2dsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uUHJlc2Vy
dmVMb2dDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKwogICAgICAgICB0aGlzLl9jbGVhckJ1
dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ2xlYXIiKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOwogICAgICAgICB0aGlzLl9j
bGVhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3Jlc2V0LmJpbmQodGhp
cyksIGZhbHNlKTsKIApAQCAtNzQ3LDYgKzc0NCwxNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlV2lkdGhzKCk7
CiAgICAgfSwKIAorICAgIF9vblByZXNlcnZlTG9nQ2xpY2tlZDogZnVuY3Rpb24oZSkKKyAgICB7
CisgICAgICAgIHRoaXMuX3ByZXNlcnZlTG9nVG9nZ2xlLnRvZ2dsZWQgPSAhdGhpcy5fcHJlc2Vy
dmVMb2dUb2dnbGUudG9nZ2xlZDsKKyAgICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5fcHJlc2VydmVMb2dUb2dnbGUudG9nZ2xlZCkKKyAgICAg
ICAgICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgfSwKKwogICAgIF9yZXNldDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wdXAoKTsKQEAgLTc4MCwx
NyArNzg4LDE2IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzQnlJZDsKICAgICB9LAogCi0gICAgYWRkUmVzb3Vy
Y2U6IGZ1bmN0aW9uKHJlc291cmNlKQorICAgIHJlZnJlc2hSZXNvdXJjZTogZnVuY3Rpb24ocmVz
b3VyY2UpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7CiAg
ICAgICAgIGlmICghcmVzb3VyY2UuaWRlbnRpZmllcikKICAgICAgICAgICAgIHJlc291cmNlLmlk
ZW50aWZpZXIgPSAibmV0d29yazoiICsgdGhpcy5fbGFzdElkZW50aWZpZXIrKzsKLSAgICAgICAg
dGhpcy5fcmVzb3VyY2VzQnlJZFtyZXNvdXJjZS5pZGVudGlmaWVyXSA9IHJlc291cmNlOwotICAg
ICAgICB0aGlzLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgfSwKIAotICAgIHJlZnJl
c2hSZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCi0gICAgeworICAgICAgICBpZiAoIXRoaXMu
X3Jlc291cmNlc0J5SWRbcmVzb3VyY2UuaWRlbnRpZmllcl0pIHsKKyAgICAgICAgICAgIHRoaXMu
X3Jlc291cmNlcy5wdXNoKHJlc291cmNlKTsKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5
SWRbcmVzb3VyY2UuaWRlbnRpZmllcl0gPSByZXNvdXJjZTsKKyAgICAgICAgfQorCiAgICAgICAg
IHRoaXMuX3N0YWxlUmVzb3VyY2VzLnB1c2gocmVzb3VyY2UpOwogICAgICAgICB0aGlzLl9zY2hl
ZHVsZVJlZnJlc2goKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlTWFuYWdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZU1hbmFnZXIuanMKaW5kZXggNjIyNzNlZS4uODVhZTIxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCkBAIC03MSw3ICs3MSw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICAvLyBJdCBpcyBp
bXBvcnRhbnQgdG8gYmluZCByZXNvdXJjZSB1cmwgZWFybHkgKGJlZm9yZSBzY3JpcHRzIGNvbXBp
bGUpLgogICAgICAgICB0aGlzLl9iaW5kUmVzb3VyY2VVUkwocmVzb3VyY2UpOwogCi0gICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5hZGRSZXNvdXJjZShyZXNvdXJjZSk7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2Up
OwogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLmF1ZGl0cy5yZXNvdXJjZVN0YXJ0ZWQocmVz
b3VyY2UpOwogICAgIH0sCiAKQEAgLTEwNCw3ICsxMDQsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmVzb3VyY2Uuc3RhcnRUaW1lID0gdGlt
ZTsKIAogICAgICAgICBpZiAoaXNSZWRpcmVjdCkgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5uZXR3b3JrLmFkZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMubmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5hdWRpdHMucmVzb3VyY2VTdGFydGVkKHJlc291cmNl
KTsKICAgICAgICAgfSBlbHNlIAogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3
b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CkBAIC0yMzAsNyArMjMwLDcgQEAgV2ViSW5z
cGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJlc291cmNlLmNh
Y2hlZCA9IHRydWU7CiAgICAgICAgIHJlc291cmNlLnN0YXJ0VGltZSA9IHJlc291cmNlLnJlc3Bv
bnNlUmVjZWl2ZWRUaW1lID0gcmVzb3VyY2UuZW5kVGltZSA9IHRpbWU7CiAKLSAgICAgICAgV2Vi
SW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmFkZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLnJlc291cmNlU3RhcnRlZChyZXNvdXJj
ZSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuYXVkaXRzLnJlc291cmNlRmluaXNoZWQo
cmVzb3VyY2UpOwogICAgICAgICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbC5hZGRSZXNvdXJjZVRv
RnJhbWUocmVzb3VyY2UubG9hZGVyLmZyYW1lSWQsIHJlc291cmNlKTsKQEAgLTI1MSw2ICsyNTEs
NyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAgICAg
ICByZXNvdXJjZS50eXBlID0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGVbdHlwZV07CiAgICAg
ICAgIHJlc291cmNlLmNvbnRlbnQgPSBzb3VyY2VTdHJpbmc7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5wYW5lbHMuc3RvcmFnZS5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAgICB9
LAogCkBAIC0yNzAsNyArMjcxLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlc0J5SWRbaWRl
bnRpZmllcl07CiAgICAgICAgIHJlc291cmNlLnR5cGUgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2Uu
VHlwZS5XZWJTb2NrZXQ7CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLmFk
ZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3Jr
LnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgfSwKIAogICAgIHdpbGxTZW5kV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdDogZnVuY3Rpb24oaWRlbnRpZmllciwgdGltZSwgcmVxdWVzdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwppbmRleCAzZmI4MWY1Li5iZDNm
MmNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCkBAIC02OSw2ICs2
OSw5IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5ncyA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5T
ZXR0aW5ncy5wcm90b3R5cGUgPSB7CiAgICAgaW5zdGFsbEFwcGxpY2F0aW9uU2V0dGluZzogZnVu
Y3Rpb24oa2V5LCBkZWZhdWx0VmFsdWUpCiAgICAgeworICAgICAgICBpZiAoa2V5IGluIHRoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgdGhpcy5fX2RlZmluZUdldHRlcl9fKGtl
eSwgdGhpcy5fZ2V0LmJpbmQodGhpcywga2V5LCBkZWZhdWx0VmFsdWUpKTsKICAgICAgICAgdGhp
cy5fX2RlZmluZVNldHRlcl9fKGtleSwgdGhpcy5fc2V0LmJpbmQodGhpcywga2V5KSk7CiAgICAg
fSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwu
anMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCmluZGV4IDJm
YTU0YzIuLmJlMzM4NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
dG9yYWdlUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQ
YW5lbC5qcwpAQCAtMzEsMzYgKzMxLDMyIEBAIFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwgPSBm
dW5jdGlvbihkYXRhYmFzZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuUGFuZWwuY2FsbCh0aGlzLCAi
c3RvcmFnZSIpOwogCisgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3MuaW5zdGFs
bEFwcGxpY2F0aW9uU2V0dGluZygicmVzb3VyY2VzTGFzdFNlbGVjdGVkSXRlbSIsIHt9KTsKKwog
ICAgIHRoaXMuY3JlYXRlU2lkZWJhcigpOwogICAgIHRoaXMuc2lkZWJhckVsZW1lbnQuYWRkU3R5
bGVDbGFzcygib3V0bGluZS1kaXNjbG9zdXJlIGZpbHRlci1hbGwgY2hpbGRyZW4gc21hbGwiKTsK
ICAgICB0aGlzLnNpZGViYXJUcmVlRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzaWRlYmFyLXRy
ZWUiKTsKIAogICAgIGlmIChQcmVmZXJlbmNlcy5uZXR3b3JrUGFuZWxFbmFibGVkKSB7Ci0gICAg
ICAgIHRoaXMucmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TdG9y
YWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZyYW1l
cyIpLCAiZnJhbWUtc3RvcmFnZS10cmVlLWl0ZW0iKTsKKyAgICAgICAgdGhpcy5yZXNvdXJjZXNM
aXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVt
ZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWVzIiksICJGcmFtZXMiLCAiZnJh
bWUtc3RvcmFnZS10cmVlLWl0ZW0iKTsKICAgICAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRD
aGlsZCh0aGlzLnJlc291cmNlc0xpc3RUcmVlRWxlbWVudCk7Ci0gICAgICAgIHRoaXMucmVzb3Vy
Y2VzTGlzdFRyZWVFbGVtZW50LmV4cGFuZCgpOwogICAgICAgICB0aGlzLl90cmVlRWxlbWVudEZv
ckZyYW1lSWQgPSB7fTsKICAgICB9CiAKLSAgICB0aGlzLmRhdGFiYXNlc0xpc3RUcmVlRWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQodGhpcywgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJEYXRhYmFzZXMiKSwgImRhdGFiYXNlLXN0b3JhZ2UtdHJlZS1p
dGVtIik7CisgICAgdGhpcy5kYXRhYmFzZXNMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVj
dG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiRGF0YWJhc2VzIiksICJEYXRhYmFzZXMiLCAiZGF0YWJhc2Utc3RvcmFnZS10cmVlLWl0ZW0i
KTsKICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHRoaXMuZGF0YWJhc2VzTGlzdFRy
ZWVFbGVtZW50KTsKLSAgICB0aGlzLmRhdGFiYXNlc0xpc3RUcmVlRWxlbWVudC5leHBhbmQoKTsK
IAotICAgIHRoaXMubG9jYWxTdG9yYWdlTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkxvY2FsIFN0b3JhZ2UiKSwgImRvbXN0b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0gbG9jYWwtc3Rv
cmFnZSIpOworICAgIHRoaXMubG9jYWxTdG9yYWdlTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYklu
c3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkxvY2FsIFN0b3JhZ2UiKSwgIkxvY2FsU3RvcmFnZSIsICJkb21zdG9yYWdlLXN0b3Jh
Z2UtdHJlZS1pdGVtIGxvY2FsLXN0b3JhZ2UiKTsKICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVu
ZENoaWxkKHRoaXMubG9jYWxTdG9yYWdlTGlzdFRyZWVFbGVtZW50KTsKLSAgICB0aGlzLmxvY2Fs
U3RvcmFnZUxpc3RUcmVlRWxlbWVudC5leHBhbmQoKTsKIAotICAgIHRoaXMuc2Vzc2lvblN0b3Jh
Z2VMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVF
bGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vzc2lvbiBTdG9yYWdlIiksICJk
b21zdG9yYWdlLXN0b3JhZ2UtdHJlZS1pdGVtIHNlc3Npb24tc3RvcmFnZSIpOworICAgIHRoaXMu
c2Vzc2lvblN0b3JhZ2VMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VD
YXRlZ29yeVRyZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vzc2lvbiBT
dG9yYWdlIiksICJTZXNzaW9uU3RvcmFnZSIsICJkb21zdG9yYWdlLXN0b3JhZ2UtdHJlZS1pdGVt
IHNlc3Npb24tc3RvcmFnZSIpOwogICAgIHRoaXMuc2lkZWJhclRyZWUuYXBwZW5kQ2hpbGQodGhp
cy5zZXNzaW9uU3RvcmFnZUxpc3RUcmVlRWxlbWVudCk7Ci0gICAgdGhpcy5zZXNzaW9uU3RvcmFn
ZUxpc3RUcmVlRWxlbWVudC5leHBhbmQoKTsKIAotICAgIHRoaXMuY29va2llTGlzdFRyZWVFbGVt
ZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvb2tpZXMiKSwgImNvb2tpZS1zdG9yYWdlLXRyZWUtaXRl
bSIpOworICAgIHRoaXMuY29va2llTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5T
dG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNv
b2tpZXMiKSwgIkNvb2tpZXMiLCAiY29va2llLXN0b3JhZ2UtdHJlZS1pdGVtIik7CiAgICAgdGhp
cy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLmNvb2tpZUxpc3RUcmVlRWxlbWVudCk7Ci0g
ICAgdGhpcy5jb29raWVMaXN0VHJlZUVsZW1lbnQuZXhwYW5kKCk7Ci0gICAgCi0gICAgdGhpcy5h
cHBsaWNhdGlvbkNhY2hlTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TdG9yYWdl
Q2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFwcGxpY2F0
aW9uIENhY2hlIiksICJhcHBsaWNhdGlvbi1jYWNoZS1zdG9yYWdlLXRyZWUtaXRlbSIpOworCisg
ICAgdGhpcy5hcHBsaWNhdGlvbkNhY2hlTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkFwcGxpY2F0aW9uIENhY2hlIiksICJBcHBsaWNhdGlvbkNhY2hlIiwgImFwcGxpY2F0aW9uLWNh
Y2hlLXN0b3JhZ2UtdHJlZS1pdGVtIik7CiAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGls
ZCh0aGlzLmFwcGxpY2F0aW9uQ2FjaGVMaXN0VHJlZUVsZW1lbnQpOwotICAgIHRoaXMuYXBwbGlj
YXRpb25DYWNoZUxpc3RUcmVlRWxlbWVudC5leHBhbmQoKTsKIAogICAgIHRoaXMuc3RvcmFnZVZp
ZXdzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5zdG9yYWdlVmll
d3MuaWQgPSAic3RvcmFnZS12aWV3cyI7CkBAIC03Miw2ICs2OCw3IEBAIFdlYkluc3BlY3Rvci5T
dG9yYWdlUGFuZWwgPSBmdW5jdGlvbihkYXRhYmFzZSkKICAgICB0aGlzLl9kYXRhYmFzZXMgPSBb
XTsKICAgICB0aGlzLl9kb21TdG9yYWdlID0gW107CiAgICAgdGhpcy5fY29va2llVmlld3MgPSB7
fTsKKyAgICB0aGlzLl9kb21haW5zID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5TdG9yYWdlUGFu
ZWwucHJvdG90eXBlID0gewpAQCAtODUsOCArODIsMzUgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBbdGhpcy5zdG9yYWdlVmlld1N0YXR1
c0Jhckl0ZW1zQ29udGFpbmVyXTsKICAgICB9LAogCisgICAgc2hvdzogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZS5zaG93LmNhbGwodGhpcyk7
CisgICAgICAgIGlmICh0aGlzLl9pbml0aWFsaXplZERlZmF1bHRTZWxlY3Rpb24pCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWREZWZhdWx0U2VsZWN0aW9u
ID0gdHJ1ZTsKKyAgICAgICAgdmFyIGl0ZW1VUkwgPSBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25T
ZXR0aW5ncy5yZXNvdXJjZXNMYXN0U2VsZWN0ZWRJdGVtOworICAgICAgICBpZiAoaXRlbVVSTCkg
eworICAgICAgICAgICAgZm9yICh2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnNpZGViYXJUcmVlLmNo
aWxkcmVuWzBdOyB0cmVlRWxlbWVudDsgdHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudC50cmF2ZXJz
ZU5leHRUcmVlRWxlbWVudChmYWxzZSwgdGhpcy5zaWRlYmFyVHJlZSwgdHJ1ZSkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuaXRlbVVSTCA9PT0gaXRlbVVSTCkgeworICAgICAg
ICAgICAgICAgICAgICB0cmVlRWxlbWVudC5zZWxlY3QoKTsKKyAgICAgICAgICAgICAgICAgICAg
dHJlZUVsZW1lbnQucmV2ZWFsKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5faW5p
dERlZmF1bHRTZWxlY3Rpb24oKTsKKyAgICB9LAorCisgICAgX2luaXREZWZhdWx0U2VsZWN0aW9u
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLm1haW5SZXNvdXJj
ZSAmJiB0aGlzLnJlc291cmNlc0xpc3RUcmVlRWxlbWVudC5leHBhbmRlZCkKKyAgICAgICAgICAg
IHRoaXMuc2hvd1Jlc291cmNlKFdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2UpOworICAgIH0sCisK
ICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgdGhpcy5fZG9tYWlucyA9IHt9
OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RhdGFiYXNlcy5sZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgdmFyIGRhdGFiYXNlID0gdGhpcy5fZGF0YWJhc2VzW2ldOwogICAg
ICAgICAgICAgZGVsZXRlIGRhdGFiYXNlLl90YWJsZVZpZXdzOwpAQCAtMTY1LDYgKzE4OSwxNSBA
QCBXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIGFkZFJlc291
cmNlVG9GcmFtZTogZnVuY3Rpb24oZnJhbWVJZCwgcmVzb3VyY2UpCiAgICAgeworICAgICAgICBp
ZiAoIXRoaXMuX2RvbWFpbnNbcmVzb3VyY2UuZG9tYWluXSkgeworICAgICAgICAgICAgdGhpcy5f
ZG9tYWluc1tyZXNvdXJjZS5kb21haW5dID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuYWRkQ29v
a2llRG9tYWluKHJlc291cmNlLmRvbWFpbik7CisgICAgICAgICAgICB0aGlzLmFkZEFwcGxpY2F0
aW9uQ2FjaGUocmVzb3VyY2UuZG9tYWluKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXNv
dXJjZS5zdGF0dXNDb2RlID49IDMwMSAmJiByZXNvdXJjZS5zdGF0dXNDb2RlIDw9IDMwMykKKyAg
ICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB2YXIgZnJhbWVUcmVlRWxlbWVudCA9IHRoaXMu
X3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZUlkXTsKICAgICAgICAgaWYgKCFmcmFtZVRyZWVF
bGVtZW50KSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgZnJhbWUncyBtYWluIHJlc291cmNl
LCBpdCB3aWxsIGJlIHJldGFpbmVkCkBAIC0xOTcsNiArMjMwLDE1IEBAIFdlYkluc3BlY3Rvci5T
dG9yYWdlUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgZnJhbWVUcmVlRWxlbWVudC5y
ZW1vdmVDaGlsZHJlbigpOwogICAgIH0sCiAKKyAgICByZWZyZXNoUmVzb3VyY2U6IGZ1bmN0aW9u
KHJlc291cmNlKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IGRvIG5vdCBhZGQgWEhSIGluIHRo
ZSBmaXJzdCBwbGFjZSBiYXNlZCBvbiB0aGUgbmF0aXZlIGluc3RydW1lbnRhdGlvbi4KKyAgICAg
ICAgaWYgKHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLlhIUikg
eworICAgICAgICAgICAgdmFyIHJlc291cmNlVHJlZUVsZW1lbnQgPSB0aGlzLl9maW5kVHJlZUVs
ZW1lbnRGb3JSZXNvdXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICByZXNvdXJjZVRyZWVFbGVt
ZW50LnBhcmVudC5yZW1vdmVDaGlsZChyZXNvdXJjZVRyZWVFbGVtZW50KTsKKyAgICAgICAgfQor
ICAgIH0sCisKICAgICBhZGREYXRhYmFzZTogZnVuY3Rpb24oZGF0YWJhc2UpCiAgICAgewogICAg
ICAgICB0aGlzLl9kYXRhYmFzZXMucHVzaChkYXRhYmFzZSk7CkBAIC0yOTEsNyArMzMzLDcgQEAg
V2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBp
ZiAoIWRhdGFiYXNlKQogICAgICAgICAgICAgcmV0dXJuOwotCisgICAgICAgICAgICAKICAgICAg
ICAgdmFyIHZpZXc7CiAgICAgICAgIGlmICh0YWJsZU5hbWUpIHsKICAgICAgICAgICAgIGlmICgh
KCJfdGFibGVWaWV3cyIgaW4gZGF0YWJhc2UpKQpAQCAtNjUwLDYgKzY5MiwxMyBAQCBXZWJJbnNw
ZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
bGlzdEl0ZW1FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudGl0bGVFbGVtZW50KTsKICAgICB9LAog
CisgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBpdGVtVVJMID0g
dGhpcy5pdGVtVVJMOworICAgICAgICBpZiAoaXRlbVVSTCkKKyAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLnJlc291cmNlc0xhc3RTZWxlY3RlZEl0ZW0gPSBpdGVt
VVJMOworICAgIH0sCisKICAgICBvbnJldmVhbDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
aWYgKHRoaXMubGlzdEl0ZW1FbGVtZW50KQpAQCAtNjc1LDE2ICs3MjQsNDEgQEAgV2ViSW5zcGVj
dG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3Iu
QmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gVHJlZUVsZW1lbnQu
cHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQgPSBm
dW5jdGlvbihzdG9yYWdlUGFuZWwsIGNhdGVnb3J5TmFtZSwgaWNvbkNsYXNzKQorV2ViSW5zcGVj
dG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBj
YXRlZ29yeU5hbWUsIHNldHRpbmdzS2V5LCBpY29uQ2xhc3MpCiB7CiAgICAgV2ViSW5zcGVjdG9y
LkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIGNh
dGVnb3J5TmFtZSwgaWNvbkNsYXNzLCB0cnVlKTsKKyAgICB0aGlzLl9leHBhbmRlZFNldHRpbmdL
ZXkgPSAicmVzb3VyY2VzIiArIHNldHRpbmdzS2V5ICsgIkV4cGFuZGVkIjsKKyAgICBXZWJJbnNw
ZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5pbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nKHRoaXMu
X2V4cGFuZGVkU2V0dGluZ0tleSwgc2V0dGluZ3NLZXkgPT09ICJGcmFtZXMiKTsKICAgICB0aGlz
Ll9jYXRlZ29yeU5hbWUgPSBjYXRlZ29yeU5hbWU7CiB9CiAKIFdlYkluc3BlY3Rvci5TdG9yYWdl
Q2F0ZWdvcnlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICJjYXRlZ29yeTovLyIgKyB0aGlzLl9jYXRlZ29yeU5hbWU7Cisg
ICAgfSwKKwogICAgIG9uc2VsZWN0OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNw
ZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxlY3QuY2FsbCh0aGlz
KTsKICAgICAgICAgdGhpcy5fc3RvcmFnZVBhbmVsLnNob3dDYXRlZ29yeVZpZXcodGhpcy5fY2F0
ZWdvcnlOYW1lKTsKKyAgICB9LAorCisgICAgb25hdHRhY2g6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0
dGFjaC5jYWxsKHRoaXMpOworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0
dGluZ3NbdGhpcy5fZXhwYW5kZWRTZXR0aW5nS2V5XSkKKyAgICAgICAgICAgIHRoaXMuZXhwYW5k
KCk7CisgICAgfSwKKworICAgIG9uZXhwYW5kOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBX
ZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5nc1t0aGlzLl9leHBhbmRlZFNldHRpbmdLZXld
ID0gdHJ1ZTsKKyAgICB9LAorCisgICAgb25jb2xsYXBzZTogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9uU2V0dGluZ3NbdGhpcy5fZXhwYW5kZWRTZXR0
aW5nS2V5XSA9IGZhbHNlOwogICAgIH0KIH0KIFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlU
cmVlRWxlbWVudC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdl
VHJlZUVsZW1lbnQucHJvdG90eXBlOwpAQCAtNjk3LDggKzc3MSwxNCBAQCBXZWJJbnNwZWN0b3Iu
RnJhbWVUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5lbCwgZnJhbWVJZCwgZGlzcGxh
eU5hbWUpCiB9CiAKIFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
KyAgICBnZXQgaXRlbVVSTCgpCisgICAgeworICAgICAgICByZXR1cm4gImZyYW1lOi8vIiArIGVu
Y29kZVVSSSh0aGlzLl9kaXNwbGF5TmFtZSk7CisgICAgfSwKKwogICAgIG9uc2VsZWN0OiBmdW5j
dGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVu
dC5wcm90b3R5cGUub25zZWxlY3QuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5fc3RvcmFnZVBh
bmVsLnNob3dDYXRlZ29yeVZpZXcodGhpcy5fZGlzcGxheU5hbWUpOwogICAgIH0sCiAKQEAgLTcy
NCw4ICs4MDQsMTQgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVudCA9IGZ1
bmN0aW9uKHN0b3JhZ2VQYW5lbCwgcmVzb3VyY2UpCiB9CiAKIFdlYkluc3BlY3Rvci5GcmFtZVJl
c291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIGdldCBpdGVtVVJMKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZS51cmw7CisgICAgfSwKKwogICAgIG9uc2Vs
ZWN0OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VU
cmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxlY3QuY2FsbCh0aGlzKTsKICAgICAgICAgdGhpcy5f
c3RvcmFnZVBhbmVsLl9zaG93UmVzb3VyY2VWaWV3KHRoaXMuX3Jlc291cmNlKTsKICAgICB9LAog
CkBAIC04MzYsOCArOTIyLDE0IEBAIFdlYkluc3BlY3Rvci5EYXRhYmFzZVRyZWVFbGVtZW50ID0g
ZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBkYXRhYmFzZSkKIH0KIAogV2ViSW5zcGVjdG9yLkRhdGFi
YXNlVHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIGdldCBpdGVtVVJMKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiZGF0YWJhc2U6Ly8iICsgZW5jb2RlVVJJKHRoaXMuX2RhdGFiYXNlLm5h
bWUpOworICAgIH0sCisKICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0LmNh
bGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93RGF0YWJhc2UodGhpcy5f
ZGF0YWJhc2UpOwogICAgIH0sCiAKQEAgLTg3Miw4ICs5NjQsMTQgQEAgV2ViSW5zcGVjdG9yLkRh
dGFiYXNlVGFibGVUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5lbCwgZGF0YWJhc2Us
IHRhYmxlTmEKIH0KIAogV2ViSW5zcGVjdG9yLkRhdGFiYXNlVGFibGVUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJkYXRh
YmFzZTovLyIgKyBlbmNvZGVVUkkodGhpcy5fZGF0YWJhc2UubmFtZSkgKyAiLyIgKyBlbmNvZGVV
UkkodGhpcy5fdGFibGVOYW1lKTsKKyAgICB9LAorCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkK
ICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5vbnNlbGVjdC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuc2hv
d0RhdGFiYXNlKHRoaXMuX2RhdGFiYXNlLCB0aGlzLl90YWJsZU5hbWUpOwogICAgIH0KIH0KQEAg
LTg4Niw4ICs5ODQsMTQgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudCA9IGZ1
bmN0aW9uKHN0b3JhZ2VQYW5lbCwgZG9tU3RvcmFnZSwgY2xhc3NOYW0KIH0KIAogV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuICJzdG9yYWdlOi8vIiArIHRoaXMuX2RvbVN0b3JhZ2Uu
ZG9tYWluICsgIi8iICsgKHRoaXMuX2RvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2UgPyAibG9jYWwi
IDogInNlc3Npb24iKTsKKyAgICB9LAorCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7
CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5v
bnNlbGVjdC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuc2hvd0RPTVN0
b3JhZ2UodGhpcy5fZG9tU3RvcmFnZSk7CiAgICAgfQogfQpAQCAtOTAwLDggKzEwMDQsMTQgQEAg
V2ViSW5zcGVjdG9yLkNvb2tpZVRyZWVFbGVtZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBj
b29raWVEb21haW4pCiB9CiAKIFdlYkluc3BlY3Rvci5Db29raWVUcmVlRWxlbWVudC5wcm90b3R5
cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJjb29raWVz
Oi8vIiArIHRoaXMuX2Nvb2tpZURvbWFpbjsKKyAgICB9LAorCiAgICAgb25zZWxlY3Q6IGZ1bmN0
aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50
LnByb3RvdHlwZS5vbnNlbGVjdC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9zdG9yYWdlUGFu
ZWwuc2hvd0Nvb2tpZXModGhpcywgdGhpcy5fY29va2llRG9tYWluKTsKICAgICB9CiB9CkBAIC05
MTQsOCArMTAyNCwxNCBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50
ID0gZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBhcHBjYWNoZURvbWFpbgogfQogCiBXZWJJbnNwZWN0
b3IuQXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBnZXQgaXRl
bVVSTCgpCisgICAgeworICAgICAgICByZXR1cm4gImFwcGNhY2hlOi8vIiArIHRoaXMuX2FwcGNh
Y2hlRG9tYWluOworICAgIH0sCisKICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2Vs
ZWN0LmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93QXBwbGljYXRp
b25DYWNoZSh0aGlzLCB0aGlzLl9hcHBjYWNoZURvbWFpbik7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72442</attachid>
            <date>2010-10-30 11:29:38 -0700</date>
            <delta_ts>2010-10-30 11:50:49 -0700</delta_ts>
            <desc>[PATCH] Same + preserve redirect chain of main resource upon reload.</desc>
            <filename>last_state</filename>
            <type>text/plain</type>
            <size>24256</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzk2ZDM2Yy4uY2QwMWRhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAxMC0xMC0zMCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBuZXcgcmVzb3VyY2VzIGFuZCBuZXR3
b3JrIHBhbmVsIHVzYWJpbGl0eSBpbXByb3ZlbWVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODY4MAorCisgICAgICAgIEJ5IGRlZmF1bHQsIG5h
dmlnYXRpb24gY2xlYXJzIG5ldHdvcmsgbG9nLCBhZGRlZCAncHJlc2VydmUgbG9nJyBidXR0b24s
CisgICAgICAgIHRoYXQgcHJldmVudHMgbG9nIGZyb20gYmVpbmcgY2xlYXJlZC4KKworICAgICAg
ICBTdG9yaW5nIGV4cGFuZGVkIHN0YXRlIG9mIGFsbCBncm91cCBpdGVtcywgcmVzdG9yaW5nIGxh
c3Qgc2VsZWN0ZWQgaXRlbSwKKyAgICAgICAgZmFsbCBiYWNrIHRvIG1haW4gZnJhbWUncyBtYWlu
IHJlc291cmNlIGJ5IGRlZmF1bHQuCisgICAgICAgIERvIG5vdCBsaXN0IFhIUnMgYW5kIHJlZGly
ZWN0cyBpbiByZXNvdXJjZXMuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkTG9hZFJlc291cmNlRnJv
bU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Omlk
ZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnBy
b3RvdHlwZS5nZXQgc3RhdHVzQmFySXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdv
cmtQYW5lbC5wcm90b3R5cGUuX3Bvc2l0aW9uU3VtbWFyeUJhcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZS5fdXBkYXRlRmlsdGVyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTdGF0dXNiYXJCdXR0b25z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlLl9vblByZXNl
cnZlTG9nQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3Rv
dHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlw
ZS5yZWZyZXNoUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUuaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5kaWRMb2FkUmVzb3VyY2VGcm9t
TWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90
b3R5cGUuc2V0T3ZlcnJpZGVDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZU1hbmFnZXIucHJvdG90eXBlLmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3Rv
cmFnZVBhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJvdG90eXBl
LnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUuX2lu
aXREZWZhdWx0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwu
cHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlUGFuZWwucHJv
dG90eXBlLmFkZFJlc291cmNlVG9GcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFn
ZVBhbmVsLnByb3RvdHlwZS5yZWZyZXNoUmVzb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUuc2hvd0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgaXRlbVVS
TCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQucHJv
dG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlU
cmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0
b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmV4cGFuZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQucHJvdG90eXBlLm9uY29sbGFw
c2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLmdl
dCBpdGVtVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5vbnNlbGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVF
bGVtZW50LnByb3RvdHlwZS5nZXQgaXRlbVVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJh
bWVSZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGF0YWJhc2VUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRhdGFiYXNlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVHJlZUVsZW1lbnQucHJvdG90
eXBlLmdldCBpdGVtVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhYmFzZVRhYmxlVHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBpdGVtVVJMKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db29raWVUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNl
bGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZVRyZWVFbGVtZW50
LnByb3RvdHlwZS5nZXQgaXRlbVVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRp
b25DYWNoZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdCk6CisKIDIwMTAtMTAtMjkgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IDc0MDNiMjIuLjkyNjYyNWIgMTAwNjQ0CkJpbmFyeSBmaWxlcyBhL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGFuZCBiL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDb250cm9sbGVyLmNwcAppbmRleCA5NTZlZjdlLi4zOGUwNDljIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODk0LDYgKzg5NCw4IEBAIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsCiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CisKICNpZiBMRUdBQ1lfUkVTT1VSQ0VfVFJBQ0tJ
TkdfRU5BQkxFRAogICAgIC8vIElmIHRoZSByZXNvdXJjZSBVUkwgaXMgYWxyZWFkeSBrbm93biwg
d2UgZG9uJ3QgbmVlZCB0byBhZGQgaXQgYWdhaW4gc2luY2UgdGhpcyBpcyBqdXN0IGEgY2FjaGVk
IGxvYWQuCiAgICAgaWYgKG1fa25vd25SZXNvdXJjZXMuY29udGFpbnMoY2FjaGVkUmVzb3VyY2Ut
PnVybCgpKSkKQEAgLTkwMSw3ICs5MDMsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciogbG9hZGVyLAogCiAg
ICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAgICAgYm9vbCBpc01haW5SZXNvdXJjZSA9IGlz
TWFpblJlc291cmNlTG9hZGVyKGxvYWRlciwgS1VSTChQYXJzZWRVUkxTdHJpbmcsIGNhY2hlZFJl
c291cmNlLT51cmwoKSkpOwotICAgIGVuc3VyZVNldHRpbmdzTG9hZGVkKCk7CiAgICAgaWYgKCFp
c01haW5SZXNvdXJjZSAmJiAhcmVzb3VyY2VUcmFja2luZ0VuYWJsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC05MzIsOSArOTMzLDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppZGVu
dGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLAogICAgIGlm
IChpc01haW5SZXNvdXJjZSkKICAgICAgICAgbV9tYWluUmVzb3VyY2VJZGVudGlmaWVyID0gaWRl
bnRpZmllcjsKIAotI2lmIExFR0FDWV9SRVNPVVJDRV9UUkFDS0lOR19FTkFCTEVECi0KICAgICBl
bnN1cmVTZXR0aW5nc0xvYWRlZCgpOworCisjaWYgTEVHQUNZX1JFU09VUkNFX1RSQUNLSU5HX0VO
QUJMRUQKICAgICBpZiAoIWlzTWFpblJlc291cmNlICYmICFyZXNvdXJjZVRyYWNraW5nRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya1BhbmVsLmpzCmluZGV4IGM2NjZlNTQuLjhjM2FmNmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtODMsNyArODMsNyBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIGdldCBzdGF0dXNCYXJJdGVtcygp
CiAgICAgewotICAgICAgICByZXR1cm4gW3RoaXMuX2xhcmdlclJlc291cmNlc0J1dHRvbi5lbGVt
ZW50LCB0aGlzLl9jbGVhckJ1dHRvbi5lbGVtZW50LCB0aGlzLl9maWx0ZXJCYXJFbGVtZW50XTsK
KyAgICAgICAgcmV0dXJuIFt0aGlzLl9sYXJnZXJSZXNvdXJjZXNCdXR0b24uZWxlbWVudCwgdGhp
cy5fcHJlc2VydmVMb2dUb2dnbGUuZWxlbWVudCwgdGhpcy5fY2xlYXJCdXR0b24uZWxlbWVudCwg
dGhpcy5fZmlsdGVyQmFyRWxlbWVudF07CiAgICAgfSwKIAogICAgIGlzQ2F0ZWdvcnlWaXNpYmxl
OiBmdW5jdGlvbihjYXRlZ29yeU5hbWUpCkBAIC0xMjYsMTMgKzEyNiw5IEBAIFdlYkluc3BlY3Rv
ci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAgIF9wb3NpdGlvblN1bW1hcnlCYXI6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSB0b3RhbCBiYXIuCi0gICAg
ICAgIGNvbnN0IHJvd0hlaWdodCA9IDIyOwotICAgICAgICBjb25zdCBzdW1tYXJ5QmFySGVpZ2h0
ID0gMjI7Ci0gICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0SGVp
Z2h0OwogCi0gICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5fc3VtbWFyeUJhckVsZW1l
bnQucGFyZW50RWxlbWVudDsKLQotICAgICAgICBpZiAodGhpcy5fc3VtbWFyeUJhckVsZW1lbnQu
cGFyZW50RWxlbWVudCAhPT0gdGhpcy5lbGVtZW50ICYmIG9mZnNldEhlaWdodCA+ICh0aGlzLl9k
YXRhR3JpZC5jaGlsZHJlbi5sZW5ndGggLSAxKSAqIHJvd0hlaWdodCArIHN1bW1hcnlCYXJIZWln
aHQpIHsKKyAgICAgICAgdmFyIGZpbGxlclJvdyA9IHRoaXMuX2RhdGFHcmlkLmRhdGFUYWJsZUJv
ZHkubGFzdENoaWxkOworICAgICAgICBpZiAodGhpcy5fc3VtbWFyeUJhckVsZW1lbnQucGFyZW50
RWxlbWVudCAhPT0gdGhpcy5lbGVtZW50ICYmIGZpbGxlclJvdy5vZmZzZXRIZWlnaHQgPiAwKSB7
CiAgICAgICAgICAgICAvLyBHbHVlIHN0YXR1cyB0byBib3R0b20uCiAgICAgICAgICAgICBpZiAo
dGhpcy5fc3VtbWFyeUJhclJvd05vZGUpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5yZW1vdmVDaGlsZCh0aGlzLl9zdW1tYXJ5QmFyUm93Tm9kZSk7CkBAIC0xNDQsNyArMTQwLDcg
QEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXRoaXMuX3N1bW1hcnlCYXJSb3dOb2Rl
ICYmIG9mZnNldEhlaWdodCAtIHN1bW1hcnlCYXJIZWlnaHQgPCB0aGlzLl9kYXRhR3JpZC5jaGls
ZHJlbi5sZW5ndGggKiByb3dIZWlnaHQpIHsKKyAgICAgICAgaWYgKCF0aGlzLl9zdW1tYXJ5QmFy
Um93Tm9kZSAmJiAhZmlsbGVyUm93Lm9mZnNldEhlaWdodCkgewogICAgICAgICAgICAgLy8gR2x1
ZSBzdGF0dXMgdG8gdGFibGUuCiAgICAgICAgICAgICB0aGlzLl9zdW1tYXJ5QmFyUm93Tm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuTmV0d29ya1RvdGFsR3JpZE5vZGUodGhpcy5fc3VtbWFyeUJhckVs
ZW1lbnQpOwogICAgICAgICAgICAgdGhpcy5fc3VtbWFyeUJhckVsZW1lbnQucmVtb3ZlU3R5bGVD
bGFzcygibmV0d29yay1zdW1tYXJ5LWJhci1ib3R0b20iKTsKQEAgLTQyNyw5ICs0MjMsNyBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHNlbGVj
dE11bHRpcGxlID0gdHJ1ZTsKIAogICAgICAgICB0aGlzLl9maWx0ZXIoZS50YXJnZXQsIHNlbGVj
dE11bHRpcGxlKTsKLQotICAgICAgICB2YXIgc2VhcmNoRmllbGQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic2VhcmNoIik7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5kb1BlcmZvcm1TZWFyY2go
c2VhcmNoRmllbGQudmFsdWUsIFdlYkluc3BlY3Rvci5zaG9ydFNlYXJjaFdhc0ZvcmNlZEJ5S2V5
RXZlbnQsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgdGhpcy5fcG9zaXRpb25TdW1tYXJ5QmFyKCk7
CiAgICAgfSwKIAogICAgIF9maWx0ZXI6IGZ1bmN0aW9uKHRhcmdldCwgc2VsZWN0TXVsdGlwbGUp
CkBAIC02MTEsNiArNjA1LDkgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBfY3JlYXRlU3RhdHVzYmFyQnV0dG9uczogZnVuY3Rpb24oKQogICAgIHsKKyAg
ICAgICAgdGhpcy5fcHJlc2VydmVMb2dUb2dnbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0Jh
ckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByZXNlcnZlIExvZyB1cG9uIE5hdmlnYXRp
b24iKSwgInJlY29yZC1wcm9maWxlLXN0YXR1cy1iYXItaXRlbSIpOworICAgICAgICB0aGlzLl9w
cmVzZXJ2ZUxvZ1RvZ2dsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uUHJlc2Vy
dmVMb2dDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKwogICAgICAgICB0aGlzLl9jbGVhckJ1
dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ2xlYXIiKSwgImNsZWFyLXN0YXR1cy1iYXItaXRlbSIpOwogICAgICAgICB0aGlzLl9j
bGVhckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3Jlc2V0LmJpbmQodGhp
cyksIGZhbHNlKTsKIApAQCAtNzQ3LDYgKzc0NCwxNyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQudXBkYXRlV2lkdGhzKCk7
CiAgICAgfSwKIAorICAgIF9vblByZXNlcnZlTG9nQ2xpY2tlZDogZnVuY3Rpb24oZSkKKyAgICB7
CisgICAgICAgIHRoaXMuX3ByZXNlcnZlTG9nVG9nZ2xlLnRvZ2dsZWQgPSAhdGhpcy5fcHJlc2Vy
dmVMb2dUb2dnbGUudG9nZ2xlZDsKKyAgICB9LAorCisgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5fcHJlc2VydmVMb2dUb2dnbGUudG9nZ2xlZCkKKyAgICAg
ICAgICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgfSwKKwogICAgIF9yZXNldDogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wdXAoKTsKQEAgLTc4MCwx
NyArNzg4LDIyIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VzQnlJZDsKICAgICB9LAogCi0gICAgYWRkUmVzb3Vy
Y2U6IGZ1bmN0aW9uKHJlc291cmNlKQorICAgIHJlZnJlc2hSZXNvdXJjZTogZnVuY3Rpb24ocmVz
b3VyY2UpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7CiAg
ICAgICAgIGlmICghcmVzb3VyY2UuaWRlbnRpZmllcikKICAgICAgICAgICAgIHJlc291cmNlLmlk
ZW50aWZpZXIgPSAibmV0d29yazoiICsgdGhpcy5fbGFzdElkZW50aWZpZXIrKzsKLSAgICAgICAg
dGhpcy5fcmVzb3VyY2VzQnlJZFtyZXNvdXJjZS5pZGVudGlmaWVyXSA9IHJlc291cmNlOwotICAg
ICAgICB0aGlzLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7Ci0gICAgfSwKIAotICAgIHJlZnJl
c2hSZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCi0gICAgeworICAgICAgICBpZiAoIXRoaXMu
X3Jlc291cmNlc0J5SWRbcmVzb3VyY2UuaWRlbnRpZmllcl0pIHsKKyAgICAgICAgICAgIHRoaXMu
X3Jlc291cmNlcy5wdXNoKHJlc291cmNlKTsKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlc0J5
SWRbcmVzb3VyY2UuaWRlbnRpZmllcl0gPSByZXNvdXJjZTsKKworICAgICAgICAgICAgLy8gUHVs
bCBhbGwgdGhlIHJlZGlyZWN0cyBvZiB0aGUgbWFpbiByZXNvdXJjZSB1cG9uIGNvbW1pdCBsb2Fk
LgorICAgICAgICAgICAgaWYgKHJlc291cmNlLnJlZGlyZWN0cykgeworICAgICAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVzb3VyY2UucmVkaXJlY3RzLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZS5yZWRpcmVjdHNb
aV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5fc3RhbGVSZXNv
dXJjZXMucHVzaChyZXNvdXJjZSk7CiAgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaCgpOwog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2Vy
LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcwppbmRl
eCA2MjI3M2VlLi44NWFlMjFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VNYW5hZ2VyLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9S
ZXNvdXJjZU1hbmFnZXIuanMKQEAgLTcxLDcgKzcxLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBiaW5k
IHJlc291cmNlIHVybCBlYXJseSAoYmVmb3JlIHNjcmlwdHMgY29tcGlsZSkuCiAgICAgICAgIHRo
aXMuX2JpbmRSZXNvdXJjZVVSTChyZXNvdXJjZSk7CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5uZXR3b3JrLmFkZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LnBhbmVscy5uZXR3b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMuYXVkaXRzLnJlc291cmNlU3RhcnRlZChyZXNvdXJjZSk7CiAgICAgfSwK
IApAQCAtMTA0LDcgKzEwNCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90
eXBlID0gewogICAgICAgICByZXNvdXJjZS5zdGFydFRpbWUgPSB0aW1lOwogCiAgICAgICAgIGlm
IChpc1JlZGlyZWN0KSB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsu
YWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5u
ZXR3b3JrLnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLmF1ZGl0cy5yZXNvdXJjZVN0YXJ0ZWQocmVzb3VyY2UpOwogICAgICAgICB9IGVs
c2UgCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291
cmNlKHJlc291cmNlKTsKQEAgLTIzMCw3ICsyMzAsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmVzb3VyY2UuY2FjaGVkID0gdHJ1ZTsKICAg
ICAgICAgcmVzb3VyY2Uuc3RhcnRUaW1lID0gcmVzb3VyY2UucmVzcG9uc2VSZWNlaXZlZFRpbWUg
PSByZXNvdXJjZS5lbmRUaW1lID0gdGltZTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
Lm5ldHdvcmsuYWRkUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNlKHJlc291cmNlKTsKICAgICAgICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5hdWRpdHMucmVzb3VyY2VTdGFydGVkKHJlc291cmNlKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnBhbmVscy5hdWRpdHMucmVzb3VyY2VGaW5pc2hlZChyZXNvdXJjZSk7CiAgICAg
ICAgIHRoaXMuX3Jlc291cmNlVHJlZU1vZGVsLmFkZFJlc291cmNlVG9GcmFtZShyZXNvdXJjZS5s
b2FkZXIuZnJhbWVJZCwgcmVzb3VyY2UpOwpAQCAtMjUxLDYgKzI1MSw3IEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIHJlc291cmNlLnR5cGUg
PSBXZWJJbnNwZWN0b3IuUmVzb3VyY2UuVHlwZVt0eXBlXTsKICAgICAgICAgcmVzb3VyY2UuY29u
dGVudCA9IHNvdXJjZVN0cmluZzsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zdG9yYWdl
LnJlZnJlc2hSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
bmV0d29yay5yZWZyZXNoUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKQEAgLTI3MCw3ICsy
NzEsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKICAgICAg
ICAgcmVzb3VyY2UudHlwZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlLldlYlNvY2tldDsK
IAotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsuYWRkUmVzb3VyY2UocmVzb3Vy
Y2UpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsucmVmcmVzaFJlc291cmNl
KHJlc291cmNlKTsKICAgICB9LAogCiAgICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1
ZXN0OiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDNmYjgxZjUuLmJkM2YyY2UgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTY5LDYgKzY5LDkgQEAgV2ViSW5zcGVj
dG9yLlNldHRpbmdzID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLlNldHRpbmdzLnByb3RvdHlw
ZSA9IHsKICAgICBpbnN0YWxsQXBwbGljYXRpb25TZXR0aW5nOiBmdW5jdGlvbihrZXksIGRlZmF1
bHRWYWx1ZSkKICAgICB7CisgICAgICAgIGlmIChrZXkgaW4gdGhpcykKKyAgICAgICAgICAgIHJl
dHVybjsKKwogICAgICAgICB0aGlzLl9fZGVmaW5lR2V0dGVyX18oa2V5LCB0aGlzLl9nZXQuYmlu
ZCh0aGlzLCBrZXksIGRlZmF1bHRWYWx1ZSkpOwogICAgICAgICB0aGlzLl9fZGVmaW5lU2V0dGVy
X18oa2V5LCB0aGlzLl9zZXQuYmluZCh0aGlzLCBrZXkpKTsKICAgICB9LApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TdG9yYWdlUGFuZWwuanMKaW5kZXggMmZhNTRjMi4uYmUzMzg1OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0b3JhZ2VQYW5lbC5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3RvcmFnZVBhbmVsLmpzCkBAIC0zMSwz
NiArMzEsMzIgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbCA9IGZ1bmN0aW9uKGRhdGFiYXNl
KQogewogICAgIFdlYkluc3BlY3Rvci5QYW5lbC5jYWxsKHRoaXMsICJzdG9yYWdlIik7CiAKKyAg
ICBXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5ncy5pbnN0YWxsQXBwbGljYXRpb25TZXR0
aW5nKCJyZXNvdXJjZXNMYXN0U2VsZWN0ZWRJdGVtIiwge30pOworCiAgICAgdGhpcy5jcmVhdGVT
aWRlYmFyKCk7CiAgICAgdGhpcy5zaWRlYmFyRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJvdXRsaW5l
LWRpc2Nsb3N1cmUgZmlsdGVyLWFsbCBjaGlsZHJlbiBzbWFsbCIpOwogICAgIHRoaXMuc2lkZWJh
clRyZWVFbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInNpZGViYXItdHJlZSIpOwogCiAgICAgaWYg
KFByZWZlcmVuY2VzLm5ldHdvcmtQYW5lbEVuYWJsZWQpIHsKLSAgICAgICAgdGhpcy5yZXNvdXJj
ZXNMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVF
bGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWVzIiksICJmcmFtZS1zdG9y
YWdlLXRyZWUtaXRlbSIpOworICAgICAgICB0aGlzLnJlc291cmNlc0xpc3RUcmVlRWxlbWVudCA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQodGhpcywgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJGcmFtZXMiKSwgIkZyYW1lcyIsICJmcmFtZS1zdG9yYWdlLXRyZWUt
aXRlbSIpOwogICAgICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHRoaXMucmVzb3Vy
Y2VzTGlzdFRyZWVFbGVtZW50KTsKLSAgICAgICAgdGhpcy5yZXNvdXJjZXNMaXN0VHJlZUVsZW1l
bnQuZXhwYW5kKCk7CiAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZCA9IHt9Owog
ICAgIH0KIAotICAgIHRoaXMuZGF0YWJhc2VzTGlzdFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3Bl
Y3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCh0aGlzLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIkRhdGFiYXNlcyIpLCAiZGF0YWJhc2Utc3RvcmFnZS10cmVlLWl0ZW0iKTsKKyAgICB0aGlz
LmRhdGFiYXNlc0xpc3RUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVn
b3J5VHJlZUVsZW1lbnQodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEYXRhYmFzZXMiKSwg
IkRhdGFiYXNlcyIsICJkYXRhYmFzZS1zdG9yYWdlLXRyZWUtaXRlbSIpOwogICAgIHRoaXMuc2lk
ZWJhclRyZWUuYXBwZW5kQ2hpbGQodGhpcy5kYXRhYmFzZXNMaXN0VHJlZUVsZW1lbnQpOwotICAg
IHRoaXMuZGF0YWJhc2VzTGlzdFRyZWVFbGVtZW50LmV4cGFuZCgpOwogCi0gICAgdGhpcy5sb2Nh
bFN0b3JhZ2VMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29y
eVRyZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgU3RvcmFnZSIp
LCAiZG9tc3RvcmFnZS1zdG9yYWdlLXRyZWUtaXRlbSBsb2NhbC1zdG9yYWdlIik7CisgICAgdGhp
cy5sb2NhbFN0b3JhZ2VMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VD
YXRlZ29yeVRyZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgU3Rv
cmFnZSIpLCAiTG9jYWxTdG9yYWdlIiwgImRvbXN0b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0gbG9j
YWwtc3RvcmFnZSIpOwogICAgIHRoaXMuc2lkZWJhclRyZWUuYXBwZW5kQ2hpbGQodGhpcy5sb2Nh
bFN0b3JhZ2VMaXN0VHJlZUVsZW1lbnQpOwotICAgIHRoaXMubG9jYWxTdG9yYWdlTGlzdFRyZWVF
bGVtZW50LmV4cGFuZCgpOwogCi0gICAgdGhpcy5zZXNzaW9uU3RvcmFnZUxpc3RUcmVlRWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1lbnQodGhpcywgV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNzaW9uIFN0b3JhZ2UiKSwgImRvbXN0b3JhZ2Utc3RvcmFn
ZS10cmVlLWl0ZW0gc2Vzc2lvbi1zdG9yYWdlIik7CisgICAgdGhpcy5zZXNzaW9uU3RvcmFnZUxp
c3RUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVnb3J5VHJlZUVsZW1l
bnQodGhpcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZXNzaW9uIFN0b3JhZ2UiKSwgIlNlc3Np
b25TdG9yYWdlIiwgImRvbXN0b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0gc2Vzc2lvbi1zdG9yYWdl
Iik7CiAgICAgdGhpcy5zaWRlYmFyVHJlZS5hcHBlbmRDaGlsZCh0aGlzLnNlc3Npb25TdG9yYWdl
TGlzdFRyZWVFbGVtZW50KTsKLSAgICB0aGlzLnNlc3Npb25TdG9yYWdlTGlzdFRyZWVFbGVtZW50
LmV4cGFuZCgpOwogCi0gICAgdGhpcy5jb29raWVMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5z
cGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiQ29va2llcyIpLCAiY29va2llLXN0b3JhZ2UtdHJlZS1pdGVtIik7CisgICAgdGhpcy5j
b29raWVMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRy
ZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29va2llcyIpLCAiQ29va2ll
cyIsICJjb29raWUtc3RvcmFnZS10cmVlLWl0ZW0iKTsKICAgICB0aGlzLnNpZGViYXJUcmVlLmFw
cGVuZENoaWxkKHRoaXMuY29va2llTGlzdFRyZWVFbGVtZW50KTsKLSAgICB0aGlzLmNvb2tpZUxp
c3RUcmVlRWxlbWVudC5leHBhbmQoKTsKLSAgICAKLSAgICB0aGlzLmFwcGxpY2F0aW9uQ2FjaGVM
aXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVt
ZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXBwbGljYXRpb24gQ2FjaGUiKSwgImFw
cGxpY2F0aW9uLWNhY2hlLXN0b3JhZ2UtdHJlZS1pdGVtIik7CisKKyAgICB0aGlzLmFwcGxpY2F0
aW9uQ2FjaGVMaXN0VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29y
eVRyZWVFbGVtZW50KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQXBwbGljYXRpb24gQ2Fj
aGUiKSwgIkFwcGxpY2F0aW9uQ2FjaGUiLCAiYXBwbGljYXRpb24tY2FjaGUtc3RvcmFnZS10cmVl
LWl0ZW0iKTsKICAgICB0aGlzLnNpZGViYXJUcmVlLmFwcGVuZENoaWxkKHRoaXMuYXBwbGljYXRp
b25DYWNoZUxpc3RUcmVlRWxlbWVudCk7Ci0gICAgdGhpcy5hcHBsaWNhdGlvbkNhY2hlTGlzdFRy
ZWVFbGVtZW50LmV4cGFuZCgpOwogCiAgICAgdGhpcy5zdG9yYWdlVmlld3MgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLnN0b3JhZ2VWaWV3cy5pZCA9ICJzdG9yYWdl
LXZpZXdzIjsKQEAgLTcyLDYgKzY4LDcgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbCA9IGZ1
bmN0aW9uKGRhdGFiYXNlKQogICAgIHRoaXMuX2RhdGFiYXNlcyA9IFtdOwogICAgIHRoaXMuX2Rv
bVN0b3JhZ2UgPSBbXTsKICAgICB0aGlzLl9jb29raWVWaWV3cyA9IHt9OworICAgIHRoaXMuX2Rv
bWFpbnMgPSB7fTsKIH0KIAogV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbC5wcm90b3R5cGUgPSB7
CkBAIC04NSw4ICs4MiwzNSBAQCBXZWJJbnNwZWN0b3IuU3RvcmFnZVBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgcmV0dXJuIFt0aGlzLnN0b3JhZ2VWaWV3U3RhdHVzQmFySXRlbXNDb250YWlu
ZXJdOwogICAgIH0sCiAKKyAgICBzaG93OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJ
bnNwZWN0b3IuUGFuZWwucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzKTsKKyAgICAgICAgaWYgKHRo
aXMuX2luaXRpYWxpemVkRGVmYXVsdFNlbGVjdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLl9pbml0aWFsaXplZERlZmF1bHRTZWxlY3Rpb24gPSB0cnVlOworICAgICAg
ICB2YXIgaXRlbVVSTCA9IFdlYkluc3BlY3Rvci5hcHBsaWNhdGlvblNldHRpbmdzLnJlc291cmNl
c0xhc3RTZWxlY3RlZEl0ZW07CisgICAgICAgIGlmIChpdGVtVVJMKSB7CisgICAgICAgICAgICBm
b3IgKHZhciB0cmVlRWxlbWVudCA9IHRoaXMuc2lkZWJhclRyZWUuY2hpbGRyZW5bMF07IHRyZWVF
bGVtZW50OyB0cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LnRyYXZlcnNlTmV4dFRyZWVFbGVtZW50
KGZhbHNlLCB0aGlzLnNpZGViYXJUcmVlLCB0cnVlKSkgeworICAgICAgICAgICAgICAgIGlmICh0
cmVlRWxlbWVudC5pdGVtVVJMID09PSBpdGVtVVJMKSB7CisgICAgICAgICAgICAgICAgICAgIHRy
ZWVFbGVtZW50LnNlbGVjdCgpOworICAgICAgICAgICAgICAgICAgICB0cmVlRWxlbWVudC5yZXZl
YWwoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0aGlzLl9pbml0RGVmYXVsdFNlbGVjdGlv
bigpOworICAgIH0sCisKKyAgICBfaW5pdERlZmF1bHRTZWxlY3Rpb246IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IubWFpblJlc291cmNlICYmIHRoaXMucmVzb3Vy
Y2VzTGlzdFRyZWVFbGVtZW50LmV4cGFuZGVkKQorICAgICAgICAgICAgdGhpcy5zaG93UmVzb3Vy
Y2UoV2ViSW5zcGVjdG9yLm1haW5SZXNvdXJjZSk7CisgICAgfSwKKwogICAgIHJlc2V0OiBmdW5j
dGlvbigpCiAgICAgeworICAgICAgICB0aGlzLl9kb21haW5zID0ge307CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fZGF0YWJhc2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAg
ICB2YXIgZGF0YWJhc2UgPSB0aGlzLl9kYXRhYmFzZXNbaV07CiAgICAgICAgICAgICBkZWxldGUg
ZGF0YWJhc2UuX3RhYmxlVmlld3M7CkBAIC0xNjUsNiArMTg5LDE1IEBAIFdlYkluc3BlY3Rvci5T
dG9yYWdlUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgYWRkUmVzb3VyY2VUb0ZyYW1lOiBmdW5j
dGlvbihmcmFtZUlkLCByZXNvdXJjZSkKICAgICB7CisgICAgICAgIGlmICghdGhpcy5fZG9tYWlu
c1tyZXNvdXJjZS5kb21haW5dKSB7CisgICAgICAgICAgICB0aGlzLl9kb21haW5zW3Jlc291cmNl
LmRvbWFpbl0gPSB0cnVlOworICAgICAgICAgICAgdGhpcy5hZGRDb29raWVEb21haW4ocmVzb3Vy
Y2UuZG9tYWluKTsKKyAgICAgICAgICAgIHRoaXMuYWRkQXBwbGljYXRpb25DYWNoZShyZXNvdXJj
ZS5kb21haW4pOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc291cmNlLnN0YXR1c0NvZGUg
Pj0gMzAxICYmIHJlc291cmNlLnN0YXR1c0NvZGUgPD0gMzAzKQorICAgICAgICAgICAgcmV0dXJu
OworCiAgICAgICAgIHZhciBmcmFtZVRyZWVFbGVtZW50ID0gdGhpcy5fdHJlZUVsZW1lbnRGb3JG
cmFtZUlkW2ZyYW1lSWRdOwogICAgICAgICBpZiAoIWZyYW1lVHJlZUVsZW1lbnQpIHsKICAgICAg
ICAgICAgIC8vIFRoaXMgaXMgYSBmcmFtZSdzIG1haW4gcmVzb3VyY2UsIGl0IHdpbGwgYmUgcmV0
YWluZWQKQEAgLTE5Nyw2ICsyMzAsMTUgQEAgV2ViSW5zcGVjdG9yLlN0b3JhZ2VQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICBmcmFtZVRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7
CiAgICAgfSwKIAorICAgIHJlZnJlc2hSZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCisgICAg
eworICAgICAgICAvLyBGSVhNRTogZG8gbm90IGFkZCBYSFIgaW4gdGhlIGZpcnN0IHBsYWNlIGJh
c2VkIG9uIHRoZSBuYXRpdmUgaW5zdHJ1bWVudGF0aW9uLgorICAgICAgICBpZiAocmVzb3VyY2Uu
dHlwZSA9PT0gV2ViSW5zcGVjdG9yLlJlc291cmNlLlR5cGUuWEhSKSB7CisgICAgICAgICAgICB2
YXIgcmVzb3VyY2VUcmVlRWxlbWVudCA9IHRoaXMuX2ZpbmRUcmVlRWxlbWVudEZvclJlc291cmNl
KHJlc291cmNlKTsKKyAgICAgICAgICAgIHJlc291cmNlVHJlZUVsZW1lbnQucGFyZW50LnJlbW92
ZUNoaWxkKHJlc291cmNlVHJlZUVsZW1lbnQpOworICAgICAgICB9CisgICAgfSwKKwogICAgIGFk
ZERhdGFiYXNlOiBmdW5jdGlvbihkYXRhYmFzZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2RhdGFi
YXNlcy5wdXNoKGRhdGFiYXNlKTsKQEAgLTI5MSw3ICszMzMsNyBAQCBXZWJJbnNwZWN0b3IuU3Rv
cmFnZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghZGF0YWJhc2UpCiAg
ICAgICAgICAgICByZXR1cm47Ci0KKyAgICAgICAgICAgIAogICAgICAgICB2YXIgdmlldzsKICAg
ICAgICAgaWYgKHRhYmxlTmFtZSkgewogICAgICAgICAgICAgaWYgKCEoIl90YWJsZVZpZXdzIiBp
biBkYXRhYmFzZSkpCkBAIC02NTAsNiArNjkyLDEzIEBAIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFn
ZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy50aXRsZUVsZW1lbnQpOwogICAgIH0sCiAKKyAgICBvbnNlbGVjdDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGl0ZW1VUkwgPSB0aGlzLml0ZW1VUkw7Cisg
ICAgICAgIGlmIChpdGVtVVJMKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmFwcGxpY2F0aW9u
U2V0dGluZ3MucmVzb3VyY2VzTGFzdFNlbGVjdGVkSXRlbSA9IGl0ZW1VUkw7CisgICAgfSwKKwog
ICAgIG9ucmV2ZWFsOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5saXN0SXRl
bUVsZW1lbnQpCkBAIC02NzUsMTYgKzcyNCw0MSBAQCBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVF
bGVtZW50LnByb3RvdHlwZS5fX3Byb3RvX18gPSBUcmVlRWxlbWVudC5wcm90b3R5cGU7CiAKLVdl
Ykluc3BlY3Rvci5TdG9yYWdlQ2F0ZWdvcnlUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQ
YW5lbCwgY2F0ZWdvcnlOYW1lLCBpY29uQ2xhc3MpCitXZWJJbnNwZWN0b3IuU3RvcmFnZUNhdGVn
b3J5VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9yYWdlUGFuZWwsIGNhdGVnb3J5TmFtZSwgc2V0
dGluZ3NLZXksIGljb25DbGFzcykKIHsKICAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVl
RWxlbWVudC5jYWxsKHRoaXMsIHN0b3JhZ2VQYW5lbCwgbnVsbCwgY2F0ZWdvcnlOYW1lLCBpY29u
Q2xhc3MsIHRydWUpOworICAgIHRoaXMuX2V4cGFuZGVkU2V0dGluZ0tleSA9ICJyZXNvdXJjZXMi
ICsgc2V0dGluZ3NLZXkgKyAiRXhwYW5kZWQiOworICAgIFdlYkluc3BlY3Rvci5hcHBsaWNhdGlv
blNldHRpbmdzLmluc3RhbGxBcHBsaWNhdGlvblNldHRpbmcodGhpcy5fZXhwYW5kZWRTZXR0aW5n
S2V5LCBzZXR0aW5nc0tleSA9PT0gIkZyYW1lcyIpOwogICAgIHRoaXMuX2NhdGVnb3J5TmFtZSA9
IGNhdGVnb3J5TmFtZTsKIH0KIAogV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVt
ZW50LnByb3RvdHlwZSA9IHsKKyAgICBnZXQgaXRlbVVSTCgpCisgICAgeworICAgICAgICByZXR1
cm4gImNhdGVnb3J5Oi8vIiArIHRoaXMuX2NhdGVnb3J5TmFtZTsKKyAgICB9LAorCiAgICAgb25z
ZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFn
ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNlbGVjdC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlz
Ll9zdG9yYWdlUGFuZWwuc2hvd0NhdGVnb3J5Vmlldyh0aGlzLl9jYXRlZ29yeU5hbWUpOworICAg
IH0sCisKKyAgICBvbmF0dGFjaDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7
CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuYXBwbGljYXRpb25TZXR0aW5nc1t0aGlzLl9leHBh
bmRlZFNldHRpbmdLZXldKQorICAgICAgICAgICAgdGhpcy5leHBhbmQoKTsKKyAgICB9LAorCisg
ICAgb25leHBhbmQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5hcHBs
aWNhdGlvblNldHRpbmdzW3RoaXMuX2V4cGFuZGVkU2V0dGluZ0tleV0gPSB0cnVlOworICAgIH0s
CisKKyAgICBvbmNvbGxhcHNlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0
b3IuYXBwbGljYXRpb25TZXR0aW5nc1t0aGlzLl9leHBhbmRlZFNldHRpbmdLZXldID0gZmFsc2U7
CiAgICAgfQogfQogV2ViSW5zcGVjdG9yLlN0b3JhZ2VDYXRlZ29yeVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90
b3R5cGU7CkBAIC02OTcsOCArNzcxLDE0IEBAIFdlYkluc3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50
ID0gZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBmcmFtZUlkLCBkaXNwbGF5TmFtZSkKIH0KIAogV2Vi
SW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIGdldCBpdGVtVVJM
KCkKKyAgICB7CisgICAgICAgIHJldHVybiAiZnJhbWU6Ly8iICsgZW5jb2RlVVJJKHRoaXMuX2Rp
c3BsYXlOYW1lKTsKKyAgICB9LAorCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbnNl
bGVjdC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuc2hvd0NhdGVnb3J5
Vmlldyh0aGlzLl9kaXNwbGF5TmFtZSk7CiAgICAgfSwKIApAQCAtNzI0LDggKzgwNCwxNCBAQCBX
ZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZVRyZWVFbGVtZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBh
bmVsLCByZXNvdXJjZSkKIH0KIAogV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VUcmVlRWxlbWVu
dC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX3Jlc291cmNlLnVybDsKKyAgICB9LAorCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkK
ICAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5vbnNlbGVjdC5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9zdG9yYWdlUGFuZWwuX3No
b3dSZXNvdXJjZVZpZXcodGhpcy5fcmVzb3VyY2UpOwogICAgIH0sCiAKQEAgLTgzNiw4ICs5MjIs
MTQgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9yYWdl
UGFuZWwsIGRhdGFiYXNlKQogfQogCiBXZWJJbnNwZWN0b3IuRGF0YWJhc2VUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CisgICAgZ2V0IGl0ZW1VUkwoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICJk
YXRhYmFzZTovLyIgKyBlbmNvZGVVUkkodGhpcy5fZGF0YWJhc2UubmFtZSk7CisgICAgfSwKKwog
ICAgIG9uc2VsZWN0OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuQmFz
ZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxlY3QuY2FsbCh0aGlzKTsKICAgICAg
ICAgdGhpcy5fc3RvcmFnZVBhbmVsLnNob3dEYXRhYmFzZSh0aGlzLl9kYXRhYmFzZSk7CiAgICAg
fSwKIApAQCAtODcyLDggKzk2NCwxNCBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZVRyZWVF
bGVtZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBkYXRhYmFzZSwgdGFibGVOYQogfQogCiBX
ZWJJbnNwZWN0b3IuRGF0YWJhc2VUYWJsZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBn
ZXQgaXRlbVVSTCgpCisgICAgeworICAgICAgICByZXR1cm4gImRhdGFiYXNlOi8vIiArIGVuY29k
ZVVSSSh0aGlzLl9kYXRhYmFzZS5uYW1lKSArICIvIiArIGVuY29kZVVSSSh0aGlzLl90YWJsZU5h
bWUpOworICAgIH0sCisKICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0LmNh
bGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93RGF0YWJhc2UodGhpcy5f
ZGF0YWJhc2UsIHRoaXMuX3RhYmxlTmFtZSk7CiAgICAgfQogfQpAQCAtODg2LDggKzk4NCwxNCBA
QCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBh
bmVsLCBkb21TdG9yYWdlLCBjbGFzc05hbQogfQogCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRy
ZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBnZXQgaXRlbVVSTCgpCisgICAgeworICAgICAg
ICByZXR1cm4gInN0b3JhZ2U6Ly8iICsgdGhpcy5fZG9tU3RvcmFnZS5kb21haW4gKyAiLyIgKyAo
dGhpcy5fZG9tU3RvcmFnZS5pc0xvY2FsU3RvcmFnZSA/ICJsb2NhbCIgOiAic2Vzc2lvbiIpOwor
ICAgIH0sCisKICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0LmNhbGwodGhp
cyk7CiAgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93RE9NU3RvcmFnZSh0aGlzLl9kb21T
dG9yYWdlKTsKICAgICB9CiB9CkBAIC05MDAsOCArMTAwNCwxNCBAQCBXZWJJbnNwZWN0b3IuQ29v
a2llVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9yYWdlUGFuZWwsIGNvb2tpZURvbWFpbikKIH0K
IAogV2ViSW5zcGVjdG9yLkNvb2tpZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKKyAgICBnZXQg
aXRlbVVSTCgpCisgICAgeworICAgICAgICByZXR1cm4gImNvb2tpZXM6Ly8iICsgdGhpcy5fY29v
a2llRG9tYWluOworICAgIH0sCisKICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2Vs
ZWN0LmNhbGwodGhpcyk7CiAgICAgICAgIHRoaXMuX3N0b3JhZ2VQYW5lbC5zaG93Q29va2llcyh0
aGlzLCB0aGlzLl9jb29raWVEb21haW4pOwogICAgIH0KIH0KQEAgLTkxNCw4ICsxMDI0LDE0IEBA
IFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9y
YWdlUGFuZWwsIGFwcGNhY2hlRG9tYWluCiB9CiAKIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNh
Y2hlVHJlZUVsZW1lbnQucHJvdG90eXBlID0geworICAgIGdldCBpdGVtVVJMKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAiYXBwY2FjaGU6Ly8iICsgdGhpcy5fYXBwY2FjaGVEb21haW47CisgICAg
fSwKKwogICAgIG9uc2VsZWN0OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0
b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25zZWxlY3QuY2FsbCh0aGlzKTsK
ICAgICAgICAgdGhpcy5fc3RvcmFnZVBhbmVsLnNob3dBcHBsaWNhdGlvbkNhY2hlKHRoaXMsIHRo
aXMuX2FwcGNhY2hlRG9tYWluKTsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="62698"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>