<?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>40623</bug_id>
          
          <creation_ts>2010-06-15 08:19:54 -0700</creation_ts>
          <short_desc>[v8] Web Inspector: make ui tests pass when ScriptDebugServer is used</short_desc>
          <delta_ts>2010-06-15 10:51:16 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>238388</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-15 08:19:54 -0700</bug_when>
    <thetext>[v8] Web Inspector: make ui tests pass when ScriptDebugServer is used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238395</commentid>
    <comment_count>1</comment_count>
      <attachid>58780</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-15 08:30:23 -0700</bug_when>
    <thetext>Created attachment 58780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238419</commentid>
    <comment_count>2</comment_count>
      <attachid>58786</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-15 09:36:09 -0700</bug_when>
    <thetext>Created attachment 58786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238460</commentid>
    <comment_count>3</comment_count>
      <attachid>58796</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-15 10:42:36 -0700</bug_when>
    <thetext>Created attachment 58796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238464</commentid>
    <comment_count>4</comment_count>
      <attachid>58796</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-15 10:51:05 -0700</bug_when>
    <thetext>Comment on attachment 58796
Patch

Clearing flags on attachment: 58796

Committed r61198: &lt;http://trac.webkit.org/changeset/61198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238465</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-06-15 10:51:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58780</attachid>
            <date>2010-06-15 08:30:23 -0700</date>
            <delta_ts>2010-06-15 09:36:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40623-20100615193020.patch</filename>
            <type>text/plain</type>
            <size>26300</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDliMDUzZTgyZDBmNDM0OWQ2YjhhNGE5MzU5NGJiNTQyOWE5MGJmNi4uYTg5ZTM1ZjA5NmY0ZWVh
MzAyMDJkMjZkOThiYWFiNzM2YmJiNGU1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wNi0xNSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIFdlYiBJbnNwZWN0b3I6IG1ha2UgdWkg
dGVzdHMgcGFzcyB3aGVuIFNjcmlwdERlYnVnU2VydmVyIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjIzCisKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkphdmFT
Y3JpcHRDYWxsRnJhbWU6OmZ1bmN0aW9uTmFtZSk6IHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIGFu
b255bW91cyBmdW5jdGlvbnMgaW5zdGVhZCBvZiBbYW5vbnltb3VzXS4KKyAgICAgICAgKiBiaW5k
aW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRE
ZWJ1Z1NlcnZlcjo6aGFuZGxlVjhEZWJ1Z0V2ZW50KTogYXV0b2NvbnRpbnVlIG9uIHN5bnRheCBl
cnJvcnMgc2luY2UgdGhlcmUgaXMgbm8gc3RhY2sgdHJhY2UgYW5kCisgICAgICAgIG5vdCBtdWNo
IHRvIGluc3BlY3QuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmFkZFNjcmlwdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fYWRkU2NyaXB0VG9SZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5kaWRBZGRSZXNvdXJj
ZSk6IGFkZCBleGlzdGluZyBzY3JpcHRzIHRvIHRoZSByZXNvdXJjZSBpZiBhbnkuICAgICAgICAK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9yZXNvdXJjZUxv
YWRpbmdGaW5pc2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fc2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3Nob3dTY3JpcHRPclJlc291cmNlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci51cGRhdGVSZXNvdXJjZSk6IGNoZWNrIGZvciBwYXJzZWQgc2NyaXB0cyB0aGF0IHNob3Vs
ZCBiZSBhZGRlZCB0byB0aGUgcmVzb3VyY2UuCisKIDIwMTAtMDYtMTUgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCAwNDkzMjFi
NTZmZWExODViNDRmMDUzOTYxOGU0NDUyMGY2Y2E2ZTM2Li4yMGJmMzc4YTc4N2IyMWM2ZDQ5ODM2
MDBlYmIxYTA0NjU3YmViMmFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFT
Y3JpcHRDYWxsRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENh
bGxGcmFtZS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgU3RyaW5nIEphdmFTY3JpcHRDYWxsRnJhbWU6
OmZ1bmN0aW9uTmFtZSgpIGNvbnN0CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwog
ICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUobV9kZWJ1Z2dlckNvbnRleHQuZ2V0
KCkpOwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBtX2NhbGxGcmFtZS5nZXQo
KS0+R2V0KHY4U3RyaW5nKCJmdW5jdGlvbk5hbWUiKSk7Ci0gICAgcmV0dXJuIHRvV2ViQ29yZVN0
cmluZyhyZXN1bHQpOworICAgIHJldHVybiB0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbE9yVW5kZWZp
bmVkQ2hlY2socmVzdWx0KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEphdmFTY3JpcHRD
YWxsRnJhbWU6OnNjb3BlQ2hhaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERl
YnVnU2VydmVyLmNwcAppbmRleCAzOWU0MDllODA5ODYwYTg5Y2I0ZTY3NWM5ZmZhZWMyYWZhMGJl
Mjc0Li5iOGU1ZWM0MjQ0Mzg3MDVlNWQ4YzU2Njg4MDcxNDE0MTVhZGM0YTBiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMzM1LDYgKzMzNSwxMiBAQCB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpoYW5kbGVWOERlYnVnRXZlbnQoY29uc3Qgdjg6OkRlYnVn
OjpFdmVudERldGFpbHMmIGV2ZW50RAogICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSk7CiAgICAg
ICAgICAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgb2JqZWN0KTsKICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT0gdjg6OkJyZWFrIHx8IGV2ZW50ID09IHY4OjpF
eGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQgPT0gdjg6OkV4Y2VwdGlvbikg
eworICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlN0YWNrVHJhY2U+IHN0YWNrVHJh
Y2UgPSB2ODo6U3RhY2tUcmFjZTo6Q3VycmVudFN0YWNrVHJhY2UoMSk7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFN0YWNrIHRyYWNlIGlzIGVtcHR5IGluIGNhc2Ugb2Ygc3ludGF4IGVycm9yLiBT
aWxlbnRseSBjb250aW51ZSBleGVjdXRpb24gaW4gc3VjaCBjYXNlcy4KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFzdGFja1RyYWNlLT5HZXRGcmFtZUNvdW50KCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fZXhl
Y3V0aW9uU3RhdGUuc2V0KGV2ZW50RGV0YWlscy5HZXRFeGVjdXRpb25TdGF0ZSgpKTsKICAgICAg
ICAgICAgICAgICBtX3BhdXNlZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgICAgICAgICAgICAg
IFNjcmlwdFN0YXRlKiBjdXJyZW50Q2FsbEZyYW1lU3RhdGUgPSBtYWluV29ybGRTY3JpcHRTdGF0
ZShmcmFtZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpp
bmRleCA0NTA0ZDU3NTEyOTBlNTJhOGQ2ZmQzNzY3MzRmMGEwZGIyMzAzYjkwLi4xMmFlMDQyMWRh
MDk4ZmM2MWE0YWQ4N2RjMDY4ZTI1NWRlNTdmNDdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE2NCw3ICsxNjQsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInNjcmlwdHMtcGF1c2Ut
b24tZXhjZXB0aW9ucy1zdGF0dXMtYmFyLWl0ZW0iLCAzKTsKICAgICB0aGlzLl9wYXVzZU9uRXhj
ZXB0aW9uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUGF1c2VP
bkV4Y2VwdGlvbnMuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24uc3RhdGUgPSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRp
b25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zOwotICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbid0IHBhdXNlIG9uIGV4
Y2VwdGlvbnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhjZXB0aW9ucy4iKTsgCisgICAgdGhp
cy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RG9uJ3QgcGF1c2Ugb24gZXhjZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBleGNlcHRp
b25zLiIpOwogCiAgICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKIApAQCAtMjIzLDcgKzIy
Myw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2F0dGFjaERlYnVnZ2VyV2hlblNob3duOwogICAgICAgICB9CiAgICAg
fSwKLSAgICAKKwogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwpAQCAtMjQ3LDIxICsyNDcsNDMg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X3NvdXJjZUlETWFwW3NvdXJjZUlEXSA9IHNjcmlwdDsKIAogICAgICAgICB2YXIgcmVzb3VyY2Ug
PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbc291cmNlVVJMXTsKLSAgICAgICAgaWYgKHJl
c291cmNlKSB7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UuZmluaXNoZWQpIHsKLSAgICAgICAg
ICAgICAgICAvLyBSZXNvdXJjZSBpcyBmaW5pc2hlZCwgYmluZCB0aGUgc2NyaXB0IHJpZ2h0IGF3
YXkuCi0gICAgICAgICAgICAgICAgcmVzb3VyY2UuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fc291cmNlSURNYXBbc291cmNlSURdID0gcmVzb3VyY2U7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc291cmNlIGlzIG5vdCBmaW5pc2hl
ZCwgYmluZCB0aGUgc2NyaXB0IGxhdGVyLgotICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2Uu
X3NjcmlwdHNQZW5kaW5nUmVzb3VyY2VMb2FkKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc291
cmNlLl9zY3JpcHRzUGVuZGluZ1Jlc291cmNlTG9hZCA9IFtdOwotICAgICAgICAgICAgICAgICAg
ICByZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2hlZCIsIHRoaXMuX3Jlc291cmNlTG9h
ZGluZ0ZpbmlzaGVkLCB0aGlzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cmVzb3VyY2UuX3NjcmlwdHNQZW5kaW5nUmVzb3VyY2VMb2FkLnB1c2goc2NyaXB0KTsKKyAgICAg
ICAgaWYgKHJlc291cmNlKQorICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9SZXNvdXJjZShz
Y3JpcHQsIHJlc291cmNlKTsKKyAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9GaWxlc01lbnUoc2Ny
aXB0KTsKKyAgICB9LAorCisgICAgX2FkZFNjcmlwdFRvUmVzb3VyY2U6IGZ1bmN0aW9uKHNjcmlw
dCwgcmVzb3VyY2UpCisgICAgeworICAgICAgICBpZiAocmVzb3VyY2UuZmluaXNoZWQpIHsKKyAg
ICAgICAgICAgIC8vIFJlc291cmNlIGlzIGZpbmlzaGVkLCBiaW5kIHRoZSBzY3JpcHQgcmlnaHQg
YXdheS4KKyAgICAgICAgICAgIHJlc291cmNlLmFkZFNjcmlwdChzY3JpcHQpOworICAgICAgICAg
ICAgdGhpcy5fc291cmNlSURNYXBbc2NyaXB0LnNvdXJjZUlEXSA9IHJlc291cmNlOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgLy8gUmVzb3VyY2UgaXMgbm90IGZpbmlzaGVkLCBiaW5k
IHRoZSBzY3JpcHQgbGF0ZXIuCisgICAgICAgICAgICBpZiAoIXJlc291cmNlLl9zY3JpcHRzUGVu
ZGluZ1Jlc291cmNlTG9hZCkgeworICAgICAgICAgICAgICAgIHJlc291cmNlLl9zY3JpcHRzUGVu
ZGluZ1Jlc291cmNlTG9hZCA9IFtdOworICAgICAgICAgICAgICAgIHJlc291cmNlLmFkZEV2ZW50
TGlzdGVuZXIoImZpbmlzaGVkIiwgdGhpcy5fcmVzb3VyY2VMb2FkaW5nRmluaXNoZWQsIHRoaXMp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzb3VyY2UuX3NjcmlwdHNQZW5kaW5nUmVz
b3VyY2VMb2FkLnB1c2goc2NyaXB0KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBkaWRBZGRS
ZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2VT
Y3JpcHRzID0gW107CisgICAgICAgIGZvciAodmFyIHNvdXJjZUlEIGluIHRoaXMuX3NvdXJjZUlE
TWFwKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc291cmNlSURNYXBbc291cmNl
SURdOworICAgICAgICAgICAgaWYgKCEoc2NyaXB0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNj
cmlwdCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAocmVzb3Vy
Y2UudXJsID09IHNjcmlwdC5zb3VyY2VVUkwpCisgICAgICAgICAgICAgICAgcmVzb3VyY2VTY3Jp
cHRzLnB1c2goc2NyaXB0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVzb3VyY2VTY3JpcHRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0
ID0gcmVzb3VyY2VTY3JpcHRzW2ldOworICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9SZXNv
dXJjZShzY3JpcHQsIHJlc291cmNlKTsKKyAgICAgICAgICAgIHRoaXMuX2FkZFNjcmlwdFRvRmls
ZXNNZW51KHNjcmlwdCk7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9GaWxl
c01lbnUoc2NyaXB0KTsKICAgICB9LAogCiAgICAgY29udGludWVUb0xpbmU6IGZ1bmN0aW9uKHNv
dXJjZUlELCBsaW5lKQpAQCAtMjgyLDcgKzMwNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAvLyBSZW1vdmUgc2NyaXB0IGZyb20gdGhl
IGZpbGVzIGxpc3QuCiAgICAgICAgICAgICBzY3JpcHQuZmlsZXNTZWxlY3RPcHRpb24ucGFyZW50
RWxlbWVudC5yZW1vdmVDaGlsZChzY3JpcHQuZmlsZXNTZWxlY3RPcHRpb24pOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIC8vIE1vdmUgYnJlYWtwb2ludHMgdG8gdGhlIHJlc291cmNlJ3Mg
ZnJhbWUuCiAgICAgICAgICAgICBpZiAoc2NyaXB0Ll9zY3JpcHRWaWV3KSB7CiAgICAgICAgICAg
ICAgICAgdmFyIHNvdXJjZUZyYW1lID0gc2NyaXB0Ll9zY3JpcHRWaWV3LnNvdXJjZUZyYW1lOwpA
QCAtNTQzLDcgKzU2NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9zaG93U2NyaXB0T3JSZXNvdXJjZShzY3JpcHRPclJlc291cmNlLCB7
bGluZTogbGluZSwgc2hvdWxkSGlnaGxpZ2h0TGluZTogdHJ1ZX0pOwogICAgIH0sCiAKLSAgICBf
c2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmU6IGZ1bmN0aW9uKHVybCwgbGluZSkgCisgICAg
X3NjcmlwdE9yUmVzb3VyY2VGb3JVUkxBbmRMaW5lOiBmdW5jdGlvbih1cmwsIGxpbmUpCiAgICAg
ewogICAgICAgICB2YXIgc2NyaXB0V2l0aE1hdGNoaW5nVXJsID0gbnVsbDsKICAgICAgICAgZm9y
ICh2YXIgc291cmNlSUQgaW4gdGhpcy5fc291cmNlSURNYXApIHsKQEAgLTYxNSw3ICs2MzcsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1Njcmlw
dE9yUmVzb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdE9yUmVzb3VyY2UsIG9wdGlvbnMpCiAgICAgewog
ICAgICAgICAvLyBvcHRpb25zID0ge2xpbmU6LCBzaG91bGRIaWdobGlnaHRMaW5lOiwgZnJvbUJh
Y2tGb3J3YXJkQWN0aW9uOiwgaW5pdGlhbExvYWQ6fQotICAgICAgICBpZiAoIW9wdGlvbnMpIAor
ICAgICAgICBpZiAoIW9wdGlvbnMpCiAgICAgICAgICAgICBvcHRpb25zID0ge307CiAKICAgICAg
ICAgaWYgKCFzY3JpcHRPclJlc291cmNlKQpAQCAtNjk4LDcgKzcyMCw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIHRoaXMuX3Jlc291cmNlRm9yVVJMSW5GaWxlc1NlbGVjdFtzY3JpcHQucmVzb3Vy
Y2UudXJsXSA9IHNjcmlwdC5yZXNvdXJjZTsKICAgICAgICAgfQotIAorCiAgICAgICAgIHZhciBk
aXNwbGF5TmFtZSA9IHNjcmlwdC5zb3VyY2VVUkwgPyBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVG
b3JVUkwoc2NyaXB0LnNvdXJjZVVSTCkgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFt
KSIpOwogCiAgICAgICAgIHZhciBzZWxlY3QgPSB0aGlzLmZpbGVzU2VsZWN0RWxlbWVudDsKQEAg
LTgxMyw3ICs4MzUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5yZXNpemUoKTsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
ICAgICB9LAotICAgIAorCiAgICAgdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTogZnVuY3Rp
b24ocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSkKICAgICB7CiAgICAgICAgIGlmIChwYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwppbmRleCBlODEwOGFmZjYzNmUyMTIwYzI4MTMyOTMwOGYwZmYyMzlmYWY5
ODQ3Li45ZjJjZGUwYzU0NWE5Yzk0NzBmMmMxOWYyZDkwMzM0YjM0YzMxZGE1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTExNDEsNiArMTE0MSw4IEBAIFdl
Ykluc3BlY3Rvci51cGRhdGVSZXNvdXJjZSA9IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHBheWxvYWQp
CiAgICAgICAgIHRoaXMucmVzb3VyY2VVUkxNYXBbcmVzb3VyY2UudXJsXSA9IHJlc291cmNlOwog
ICAgICAgICBpZiAodGhpcy5wYW5lbHMucmVzb3VyY2VzKQogICAgICAgICAgICAgdGhpcy5wYW5l
bHMucmVzb3VyY2VzLmFkZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgaWYgKHRoaXMucGFu
ZWxzLnNjcmlwdHMpCisgICAgICAgICAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmRpZEFkZFJlc291
cmNlKHJlc291cmNlKTsKICAgICAgICAgaWYgKHRoaXMucGFuZWxzLmF1ZGl0cykKICAgICAgICAg
ICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5yZXNvdXJjZVN0YXJ0ZWQocmVzb3VyY2UpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGE1OGU5NWQ0OTEwYTgzOGQ0NGMwMTQ0MTZhYjQ4ZWFkYzM1Njg2NWEu
LmUwYTQ3OTI3ZWExNTk0NmEwM2NkNzRhMGEzODI1MDVjYzVjNTZmMGQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEwLTA2LTE1ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFt2OF0gV2ViIEluc3BlY3RvcjogbWFrZSB1aSB0ZXN0cyBwYXNzIHdoZW4gU2NyaXB0RGVi
dWdTZXJ2ZXIgaXMgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDA2MjMKKworICAgICAgICAqIHNyYy9qcy9EZWJ1Z2dlckFnZW50LmpzOgorICAg
ICAgICAoZGV2dG9vbHMuRGVidWdnZXJBZ2VudC5wcm90b3R5cGUuZm9ybWF0Q2FsbEZyYW1lXyk6
IHJldHVybiBlbXB0eSBmdW5jdGlvbiBuYW1lIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zLgorICAg
ICAgICAqIHNyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBzcmMvanMvVGVzdHMu
anM6CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0UHJvZmlsZXJUYWIuZmluZFZp
c2libGVWaWV3KToKKyAgICAgICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RQcm9maWxlclRh
Yik6CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U2NyaXB0c1RhYklzUG9wdWxh
dGVkT25JbnNwZWN0ZWRQYWdlUmVmcmVzaC53YWl0VW50aWxTY3JpcHRJc1BhcnNlZCk6CisgICAg
ICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U2V0QnJlYWtwb2ludC50aGlzKToKKyAgICAg
ICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTZXRCcmVha3BvaW50KToKKyAgICAgICAgKC5U
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFdmFsT25DYWxsRnJhbWUud2FpdEZvckJyZWFrcG9pbnRI
aXQpOgorICAgICAgICAoLlRlc3RTdWl0ZS5wcm90b3R5cGUuX2V4ZWN1dGVDb2RlV2hlblNjcmlw
dHNBcmVQYXJzZWQuZXhlY3V0ZUZ1bmN0aW9uSW5JbnNwZWN0ZWRQYWdlKToKKyAgICAgICAgKC5U
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFeHBhbmRTY29wZS5leGFtaW5lU2NvcGVzKToKKyAgICAg
ICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFeHBhbmRTY29wZSk6CisgICAgICAgICguVGVz
dFN1aXRlLnByb3RvdHlwZS50ZXN0RGVidWdJbnRyaW5zaWNQcm9wZXJ0aWVzKToKKwogMjAxMC0w
Ni0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBDaHJvbWl1bSBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVi
dWdnZXJBZ2VudC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJBZ2VudC5qcwpp
bmRleCA4ZDI0NTdmYmRjZjlmYTVlZmQ5Y2U1ZjQxMzM4NjgzZDY1YWJiNzQ3Li4wMWQ3NjI3ZmMy
YjAxZmIzMDI5MzRiYjQ3ZTAxMTNjMmNkN2NmMTc0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0RlYnVnZ2VyQWdlbnQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9E
ZWJ1Z2dlckFnZW50LmpzCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBkZXZ0b29scy5EZWJ1Z2dlckFn
ZW50LnByb3RvdHlwZS5mb3JtYXRDYWxsRnJhbWVfID0gZnVuY3Rpb24oc3RhY2tGcmFtZSkKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhcnNlZFNjcmlwdFNvdXJjZShzb3VyY2VJZCwgbnVsbCwgbnVs
bCwgMCwgV2ViSW5zcGVjdG9yLlNjcmlwdC5Xb3JsZFR5cGUuTUFJTl9XT1JMRCk7CiAgICAgfQog
Ci0gICAgdmFyIGZ1bmNOYW1lID0gZnVuYy5uYW1lIHx8IGZ1bmMuaW5mZXJyZWROYW1lIHx8ICIo
YW5vbnltb3VzIGZ1bmN0aW9uKSI7CisgICAgdmFyIGZ1bmNOYW1lID0gZnVuYy5uYW1lIHx8IGZ1
bmMuaW5mZXJyZWROYW1lOwogICAgIHZhciBsaW5lID0gZGV2dG9vbHMuRGVidWdnZXJBZ2VudC52
OFRvV3dlYmtpdExpbmVOdW1iZXJfKHN0YWNrRnJhbWUubGluZSk7CiAKICAgICAvLyBBZGQgYmFz
aWMgc2NvcGUgY2hhaW4gaW5mbyB3aXRoIHNjb3BlIHZhcmlhYmxlcy4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCmluZGV4IDNmZjNlYjcwZGI2ZWNmOTBhZGQ0YjliYjA2
MjkxMzVlZDZlMTE4OTQuLmJhZGRiN2RiYzlkOTFiYjQ5ZDkxNWFhODllNDc1ODYwMmVhNzdlNDYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtMjE5LDggKzIx
OSw2IEBAIERlYnVnZ2VyU2NyaXB0Ll9mcmFtZU1pcnJvclRvSlNDYWxsRnJhbWUgPSBmdW5jdGlv
bihmcmFtZU1pcnJvciwgY2FsbGVyRnJhbWUpCiAgICAgdmFyIGZ1bmN0aW9uTmFtZTsKICAgICBp
ZiAoZnVuYykKICAgICAgICAgZnVuY3Rpb25OYW1lID0gZnVuYy5uYW1lKCkgfHwgZnVuYy5pbmZl
cnJlZE5hbWUoKTsKLSAgICBpZiAoIWZ1bmN0aW9uTmFtZSkKLSAgICAgICAgZnVuY3Rpb25OYW1l
ID0gIlthbm9ueW1vdXNdIjsKICAgICAgICAgCiAgICAgLy8gR2V0IHNjcmlwdCBJRC4KICAgICB2
YXIgc2NyaXB0ID0gZnVuYy5zY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvanMvVGVzdHMuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL1Rlc3RzLmpzCmluZGV4IGZh
OTEwYWI2OTMxYmU3YzRhOTYzMTA2OGZiMzllNWI2OTA0MzUyNDUuLjMyNzllYTU1MGE1OTE2ZjVh
OWIyYzQ1Mjc3M2Q5ZDExM2IyOGMwZTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvVGVzdHMuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5qcwpAQCAtNDUz
LDcgKzQ1Myw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFByb2ZpbGVyVGFiID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgc2V0VGltZW91dChmaW5kVmlzaWJsZVZpZXcsIDApOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHNldFRpbWVvdXQoZmluZERpc3BsYXll
ZE5vZGUsIDApOyAgICAgICAgICAgIAorICAgICAgICBzZXRUaW1lb3V0KGZpbmREaXNwbGF5ZWRO
b2RlLCAwKTsKICAgICB9CiAKICAgICBmaW5kVmlzaWJsZVZpZXcoKTsKQEAgLTQ4OCw3ICs0ODgs
NyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTY3JpcHRzVGFiSXNQb3B1bGF0ZWRPbkluc3Bl
Y3RlZFBhZ2VSZWZyZXNoID0gZnVuY3Rpb24oKQogICAgIHZhciB0ZXN0ID0gdGhpczsKICAgICB0
aGlzLmFzc2VydEVxdWFscyhXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLCBXZWJJbnNwZWN0
b3IuY3VycmVudFBhbmVsLCAiRWxlbWVudHMgcGFuZWwgc2hvdWxkIGJlIGN1cnJlbnQgb25lLiIp
OwogCi0gICAgdGhpcy5hZGRTbmlmZmVyKGRldnRvb2xzLkRlYnVnZ2VyQWdlbnQucHJvdG90eXBl
LCAicmVzZXQiLCB3YWl0VW50aWxTY3JpcHRJc1BhcnNlZCk7CisgICAgdGhpcy5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cywgInJlc2V0Iiwgd2FpdFVudGlsU2NyaXB0SXNQ
YXJzZWQpOwogCiAgICAgLy8gUmVsb2FkIGluc3BlY3RlZCBwYWdlLiBJdCB3aWxsIHJlc2V0IHRo
ZSBkZWJ1Z2dlciBhZ2VudC4KICAgICB0ZXN0LmV2YWx1YXRlSW5Db25zb2xlXygKQEAgLTQ5OCwx
NSArNDk4LDE2IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFNjcmlwdHNUYWJJc1BvcHVsYXRl
ZE9uSW5zcGVjdGVkUGFnZVJlZnJlc2ggPSBmdW5jdGlvbigpCiAgICAgICAgIH0pOwogCiAgICAg
ZnVuY3Rpb24gd2FpdFVudGlsU2NyaXB0SXNQYXJzZWQoKSB7Ci0gICAgICAgIHZhciBwYXJzZWQg
PSBkZXZ0b29scy50b29scy5nZXREZWJ1Z2dlckFnZW50KCkucGFyc2VkU2NyaXB0c187CisgICAg
ICAgIHZhciBwYXJzZWQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX3NvdXJjZUlETWFw
OwogICAgICAgICBmb3IgKHZhciBpZCBpbiBwYXJzZWQpIHsKLSAgICAgICAgICAgIHZhciB1cmwg
PSBwYXJzZWRbaWRdLmdldFVybCgpOworICAgICAgICAgICAgdmFyIHNjcmlwdE9yUmVzb3VyY2Ug
PSBwYXJzZWRbaWRdOworICAgICAgICAgICAgdmFyIHVybCA9IHNjcmlwdE9yUmVzb3VyY2UudXJs
IHx8IHNjcmlwdE9yUmVzb3VyY2Uuc291cmNlVVJMOwogICAgICAgICAgICAgaWYgKHVybCAmJiB1
cmwuc2VhcmNoKCJkZWJ1Z2dlcl90ZXN0X3BhZ2UuaHRtbCIpICE9PSAtMSkgewogICAgICAgICAg
ICAgICAgIGNoZWNrU2NyaXB0c1BhbmVsKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHRlc3QuYWRkU25pZmZlcihkZXZ0b29scy5E
ZWJ1Z2dlckFnZW50LnByb3RvdHlwZSwgImFkZFNjcmlwdEluZm9fIiwgd2FpdFVudGlsU2NyaXB0
SXNQYXJzZWQpOworICAgICAgICB0ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAicGFyc2Vk
U2NyaXB0U291cmNlIiwgd2FpdFVudGlsU2NyaXB0SXNQYXJzZWQpOwogICAgIH0KIAogICAgIGZ1
bmN0aW9uIGNoZWNrU2NyaXB0c1BhbmVsKCkgewpAQCAtNjAzLDcgKzYwNCw3IEBAIFRlc3RTdWl0
ZS5wcm90b3R5cGUudGVzdFNldEJyZWFrcG9pbnQgPSBmdW5jdGlvbigpCiAgICAgdmFyIHRlc3Qg
PSB0aGlzOwogICAgIHRoaXMuc2hvd1BhbmVsKCJzY3JpcHRzIik7CiAKLSAgICB2YXIgYnJlYWtw
b2ludExpbmUgPSAxMjsKKyAgICB2YXIgYnJlYWtwb2ludExpbmUgPSAxNgogCiAgICAgdGhpcy5f
d2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZChbImRlYnVnZ2VyX3Rlc3RfcGFnZS5odG1sIl0sCiAg
ICAgICAgIGZ1bmN0aW9uKCkgewpAQCAtNjExLDE1ICs2MTIsMjUgQEAgVGVzdFN1aXRlLnByb3Rv
dHlwZS50ZXN0U2V0QnJlYWtwb2ludCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgImRlYnVn
Z2VyX3Rlc3RfcGFnZS5odG1sIiwKICAgICAgICAgICAgICAgZnVuY3Rpb24odmlldywgdXJsKSB7
CiAgICAgICAgICAgICAgICAgdmlldy5fYWRkQnJlYWtwb2ludChicmVha3BvaW50TGluZSk7Ci0g
ICAgICAgICAgICAgICAgLy8gRm9yY2UgdjggZXhlY3V0aW9uLgotICAgICAgICAgICAgICAgIFJl
bW90ZURlYnVnZ2VyQWdlbnQucHJvY2Vzc0RlYnVnQ29tbWFuZHMoKTsKLSAgICAgICAgICAgICAg
ICB0ZXN0LndhaXRGb3JTZXRCcmVha3BvaW50UmVzcG9uc2VfKHVybCwgYnJlYWtwb2ludExpbmUs
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdC5yZWxlYXNlQ29udHJvbCgpOworCisgICAgICAgICAgICAgICAgdGVzdC5ldmFsdWF0
ZUluQ29uc29sZV8oCisgICAgICAgICAgICAgICAgICAgICdzZXRUaW1lb3V0KCJjYWxjdWxhdGUo
KSIgLCAwKScsCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHJlc3VsdFRleHQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0LmFzc2VydFRydWUoIWlzTmFOKHJlc3VsdFRleHQpLCAi
RmFpbGVkIHRvIGdldCB0aW1lciBpZDogIiArIHJlc3VsdFRleHQpOwogICAgICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCisgICAgdGhpcy5fd2Fp
dEZvclNjcmlwdFBhdXNlKAorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNr
OiBbImNhbGN1bGF0ZSIsICIiXSwKKyAgICAgICAgICAgIGxpbmVOdW1iZXI6IGJyZWFrcG9pbnRM
aW5lLAorICAgICAgICAgICAgbGluZVRleHQ6ICIgIHJlc3VsdCA9IGZpYihsYXN0VmFsKyspOyIK
KyAgICAgICAgfSwKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0LnJlbGVh
c2VDb250cm9sKCk7CisgICAgICAgIH0pOworCiAgICAgdGhpcy50YWtlQ29udHJvbCgpOwogfTsK
IApAQCAtNjMyLDIxICs2NDMsMTMgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0UGF1c2VPbkV4
Y2VwdGlvbiA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNob3dQYW5lbCgic2NyaXB0cyIpOwogICAg
IHZhciB0ZXN0ID0gdGhpczsKIAotICAgIC8vIFRPRE8oeXVyeXMpOiByZW1vdmUgZWxzZSBicmFu
Y2ggb25jZSB0aGUgc3RhdGVzIGFyZSBzdXBwb3J0ZWQuCi0gICAgaWYgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSkgewotICAgICAgICB3aGlsZSAoV2Vi
SW5zcGVjdG9yLmN1cnJlbnRQYW5lbC5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5zdGF0ZSAhPT0g
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLlBhdXNlT25V
bmNhdWdodEV4Y2VwdGlvbnMpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVs
Ll9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLmVsZW1lbnQuY2xpY2soKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBNYWtlIHN1cmUgcGF1c2Ugb24gZXhjZXB0aW9ucyBpcyBvbi4KLSAgICAgICAg
aWYgKCFXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRv
Z2dsZWQpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLl9wYXVzZU9uRXhj
ZXB0aW9uQnV0dG9uLmVsZW1lbnQuY2xpY2soKTsKLSAgICB9CisgICAgSW5zcGVjdG9yQmFja2Vu
ZC5zZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1
c2VPbkV4Y2VwdGlvbnNTdGF0ZS5QYXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKTsKIAogICAgIHRo
aXMuX2V4ZWN1dGVDb2RlV2hlblNjcmlwdHNBcmVQYXJzZWQoImhhbmRsZUNsaWNrKCkiLCBbInBh
dXNlX29uX2V4Y2VwdGlvbi5odG1sIl0pOwogCiAgICAgdGhpcy5fd2FpdEZvclNjcmlwdFBhdXNl
KAogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbInRocm93QW5FeGNl
cHRpb24iLCAiaGFuZGxlQ2xpY2siLCAiKGFub255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAg
ICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsidGhyb3dBbkV4Y2VwdGlvbiIsICJoYW5kbGVDbGljayIs
ICIiXSwKICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDYsCiAgICAgICAgICAgICBsaW5lVGV4dDog
IiAgcmV0dXJuIHVua25vd25fdmFyOyIKICAgICAgICAgfSwKQEAgLTcyOCw3ICs3MzEsNyBAQCBU
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RQYXVzZVdoZW5TY3JpcHRJc1J1bm5pbmcgPSBmdW5jdGlv
bigpCiAKICAgICAgICAgdGVzdC5fd2FpdEZvclNjcmlwdFBhdXNlKAogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiaGFuZGxlQ2xpY2siLCAiKGFub255
bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImhh
bmRsZUNsaWNrIiwgIiJdLAogICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDUsCiAgICAgICAg
ICAgICAgICAgbGluZVRleHQ6ICIgIHdoaWxlKHRydWUpIHsiCiAgICAgICAgICAgICB9LApAQCAt
ODYxLDM2ICs4NjQsMzAgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RXZhbE9uQ2FsbEZyYW1l
ID0gZnVuY3Rpb24oKQogICAgIHZhciBicmVha3BvaW50TGluZSA9IDE2OwogCiAgICAgdmFyIHRl
c3QgPSB0aGlzOwotICAgIHRoaXMuYWRkU25pZmZlcihkZXZ0b29scy5EZWJ1Z2dlckFnZW50LnBy
b3RvdHlwZSwgImhhbmRsZVNjcmlwdHNSZXNwb25zZV8iLAotICAgICAgICBmdW5jdGlvbihtc2cp
IHsKKyAgICB0aGlzLl93YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkKFsiZGVidWdnZXJfdGVzdF9w
YWdlLmh0bWwiXSwKKyAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgdGVzdC5zaG93TWFp
blBhZ2VTY3JpcHRTb3VyY2VfKAogICAgICAgICAgICAgICAiZGVidWdnZXJfdGVzdF9wYWdlLmh0
bWwiLAogICAgICAgICAgICAgICBmdW5jdGlvbih2aWV3LCB1cmwpIHsKICAgICAgICAgICAgICAg
ICAgIHZpZXcuX2FkZEJyZWFrcG9pbnQoYnJlYWtwb2ludExpbmUpOwotICAgICAgICAgICAgICAg
ICAgLy8gRm9yY2UgdjggZXhlY3V0aW9uLgotICAgICAgICAgICAgICAgICAgUmVtb3RlRGVidWdn
ZXJBZ2VudC5wcm9jZXNzRGVidWdDb21tYW5kcygpOwotICAgICAgICAgICAgICAgICAgdGVzdC53
YWl0Rm9yU2V0QnJlYWtwb2ludFJlc3BvbnNlXyh1cmwsIGJyZWFrcG9pbnRMaW5lLCBzZXRCcmVh
a3BvaW50Q2FsbGJhY2spOworCisgICAgICAgICAgICAgICAgICAvLyBTaW5jZSBicmVha3BvaW50
cyBhcmUgaWdub3JlZCBpbiBldmFscycgY2FsY3VsYXRlKCkgZnVuY3Rpb24gaXMKKyAgICAgICAg
ICAgICAgICAgIC8vIGV4ZWN1dGUgYWZ0ZXIgemVyby10aW1lb3V0IHNvIHRoYXQgdGhlIGJyZWFr
cG9pbnQgaXMgaGl0LgorICAgICAgICAgICAgICAgICAgdGVzdC5ldmFsdWF0ZUluQ29uc29sZV8o
CisgICAgICAgICAgICAgICAgICAgICAgJ3NldFRpbWVvdXQoImNhbGN1bGF0ZSgxMjMpIiAsIDAp
JywKKyAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihyZXN1bHRUZXh0KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZSghaXNOYU4ocmVzdWx0VGV4dCksICJG
YWlsZWQgdG8gZ2V0IHRpbWVyIGlkOiAiICsgcmVzdWx0VGV4dCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdhaXRGb3JCcmVha3BvaW50SGl0KCk7CisgICAgICAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAotICAgIGZ1bmN0aW9uIHNldEJy
ZWFrcG9pbnRDYWxsYmFjaygpIHsKLSAgICAgIC8vIFNpbmNlIGJyZWFrcG9pbnRzIGFyZSBpZ25v
cmVkIGluIGV2YWxzJyBjYWxjdWxhdGUoKSBmdW5jdGlvbiBpcwotICAgICAgLy8gZXhlY3V0ZSBh
ZnRlciB6ZXJvLXRpbWVvdXQgc28gdGhhdCB0aGUgYnJlYWtwb2ludCBpcyBoaXQuCi0gICAgICB0
ZXN0LmV2YWx1YXRlSW5Db25zb2xlXygKLSAgICAgICAgICAnc2V0VGltZW91dCgiY2FsY3VsYXRl
KDEyMykiICwgMCknLAotICAgICAgICAgIGZ1bmN0aW9uKHJlc3VsdFRleHQpIHsKLSAgICAgICAg
ICAgICAgdGVzdC5hc3NlcnRUcnVlKCFpc05hTihyZXN1bHRUZXh0KSwgIkZhaWxlZCB0byBnZXQg
dGltZXIgaWQ6ICIgKyByZXN1bHRUZXh0KTsKLSAgICAgICAgICAgICAgd2FpdEZvckJyZWFrcG9p
bnRIaXQoKTsKLSAgICAgICAgICB9KTsKLSAgICB9Ci0KICAgICBmdW5jdGlvbiB3YWl0Rm9yQnJl
YWtwb2ludEhpdCgpIHsKLSAgICAgIHRlc3QuYWRkU25pZmZlcigKLSAgICAgICAgICBkZXZ0b29s
cy5EZWJ1Z2dlckFnZW50LnByb3RvdHlwZSwKLSAgICAgICAgICAiaGFuZGxlQmFja3RyYWNlUmVz
cG9uc2VfIiwKLSAgICAgICAgICBmdW5jdGlvbihtc2cpIHsKLSAgICAgICAgICAgIHRlc3QuYXNz
ZXJ0RXF1YWxzKDIsIHRoaXMuY2FsbEZyYW1lc18ubGVuZ3RoLCAiVW5leHBlY3RlZCBzdGFjayBk
ZXB0aCBvbiB0aGUgYnJlYWtwb2ludC4gIiArIEpTT04uc3RyaW5naWZ5KG1zZykpOwotICAgICAg
ICAgICAgdGVzdC5hc3NlcnRFcXVhbHMoImNhbGN1bGF0ZSIsIHRoaXMuY2FsbEZyYW1lc19bMF0u
ZnVuY3Rpb25OYW1lLCAiVW5leHBlY3RlZCB0b3AgZnJhbWUgZnVuY3Rpb24uIik7CisgICAgICB0
ZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLAorICAgICAgICAgICJwYXVzZWRTY3JpcHQiLAor
ICAgICAgICAgIGZ1bmN0aW9uKGNhbGxGcmFtZXMpIHsKKyAgICAgICAgICAgIHRlc3QuYXNzZXJ0
RXF1YWxzKDIsIGNhbGxGcmFtZXMubGVuZ3RoLCAiVW5leHBlY3RlZCBzdGFjayBkZXB0aCBvbiB0
aGUgYnJlYWtwb2ludC4gIiArIEpTT04uc3RyaW5naWZ5KGNhbGxGcmFtZXMsIG51bGwsIDQpKTsK
KyAgICAgICAgICAgIHRlc3QuYXNzZXJ0RXF1YWxzKCJjYWxjdWxhdGUiLCBjYWxsRnJhbWVzWzBd
LmZ1bmN0aW9uTmFtZSwgIlVuZXhwZWN0ZWQgdG9wIGZyYW1lIGZ1bmN0aW9uLiIpOwogICAgICAg
ICAgICAgLy8gRXZhbHVhdGUgImUrMSIgd2hlcmUgImUiIGlzIGFuIGFyZ3VtZW50IG9mICJjYWxj
dWxhdGUiIGZ1bmN0aW9uLgogICAgICAgICAgICAgdGVzdC5ldmFsdWF0ZUluQ29uc29sZV8oCiAg
ICAgICAgICAgICAgICAgImUrMSIsCkBAIC05MTYsNyArOTEzLDcgQEAgVGVzdFN1aXRlLnByb3Rv
dHlwZS50ZXN0Q29tcGxldGlvbk9uUGF1c2UgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl93YWl0
Rm9yU2NyaXB0UGF1c2UoCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6
IFsiaW5uZXJGdW5jdGlvbiIsICJoYW5kbGVDbGljayIsICIoYW5vbnltb3VzIGZ1bmN0aW9uKSJd
LAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJpbm5lckZ1bmN0aW9uIiwgImhhbmRs
ZUNsaWNrIiwgIiJdLAogICAgICAgICAgICAgbGluZU51bWJlcjogOSwKICAgICAgICAgICAgIGxp
bmVUZXh0OiAiICAgIGRlYnVnZ2VyOyIKICAgICAgICAgfSwKQEAgLTk2Myw2ICs5NjAsOSBAQCBU
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RDb21wbGV0aW9uT25QYXVzZSA9IGZ1bmN0aW9uKCkKICAq
LwogVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0QXV0b0NvbnRpbnVlT25TeW50YXhFcnJvciA9IGZ1
bmN0aW9uKCkKIHsKKyAgICBpZiAod2luZG93LnY4U2NyaXB0RGVidWdTZXJ2ZXJFbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKICAgICB0aGlzLnNob3dQYW5lbCgic2NyaXB0cyIpOwogICAgIHZh
ciB0ZXN0ID0gdGhpczsKIApAQCAtOTc4LDYgKzk3OCw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUu
dGVzdEF1dG9Db250aW51ZU9uU3ludGF4RXJyb3IgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAg
ICB9CiAKKwogICAgIHRoaXMuYWRkU25pZmZlcihkZXZ0b29scy5EZWJ1Z2dlckFnZW50LnByb3Rv
dHlwZSwgImhhbmRsZVNjcmlwdHNSZXNwb25zZV8iLAogICAgICAgICBmdW5jdGlvbihtc2cpIHsK
ICAgICAgICAgICAgIGNoZWNrU2NyaXB0c0xpc3QoKTsKQEAgLTExNDAsNyArMTE0MSw3IEBAIFRl
c3RTdWl0ZS5wcm90b3R5cGUuX2V4ZWN1dGVDb2RlV2hlblNjcmlwdHNBcmVQYXJzZWQgPSBmdW5j
dGlvbihjb2RlLCBleHBlY3RlZFNjCiAgICAgICAgIHRlc3QuZXZhbHVhdGVJbkNvbnNvbGVfKAog
ICAgICAgICAgICAgJ3NldFRpbWVvdXQoIicgKyBjb2RlICsgJyIgLCAwKScsCiAgICAgICAgICAg
ICBmdW5jdGlvbihyZXN1bHRUZXh0KSB7Ci0gICAgICAgICAgICAgICAgdGVzdC5hc3NlcnRUcnVl
KCFpc05hTihyZXN1bHRUZXh0KSwgIkZhaWxlZCB0byBnZXQgdGltZXIgaWQ6ICIgKyByZXN1bHRU
ZXh0KTsKKyAgICAgICAgICAgICAgICB0ZXN0LmFzc2VydFRydWUoIWlzTmFOKHJlc3VsdFRleHQp
LCAiRmFpbGVkIHRvIGdldCB0aW1lciBpZDogIiArIHJlc3VsdFRleHQgKyAiLiBDb2RlOiAiICsg
Y29kZSk7CiAgICAgICAgICAgICB9KTsKICAgICB9CiAKQEAgLTExODgsNyArMTE4OSw3IEBAIFRl
c3RTdWl0ZS5wcm90b3R5cGUudGVzdFN0ZXBPdmVyID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5f
cGVyZm9ybVN0ZXBzKFsKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazog
WyJkIiwiYSIsIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5jdGlvbnNP
blN0YWNrOiBbImQiLCJhIiwiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiAzLAogICAgICAg
ICAgICAgbGluZVRleHQ6ICIgICAgZGVidWdnZXI7IgogICAgICAgICB9LApAQCAtMTE5Niw3ICsx
MTk3LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U3RlcE92ZXIgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1zdGVwLW92ZXIiKS5j
bGljaygpOwogICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0
YWNrOiBbImQiLCJhIiwiKGFub255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uc09uU3RhY2s6IFsiZCIsImEiLCIiXSwKICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDUsCiAg
ICAgICAgICAgICBsaW5lVGV4dDogIiAgdmFyIHkgPSBmYWN0KDEwKTsiCiAgICAgICAgIH0sCkBA
IC0xMjA0LDcgKzEyMDUsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTdGVwT3ZlciA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLXN0
ZXAtb3ZlciIpLmNsaWNrKCk7CiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZ1
bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAgICAg
ICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIsIiJdLAogICAgICAgICAgICAgbGluZU51
bWJlcjogNiwKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICByZXR1cm4geTsiCiAgICAgICAgIH0s
CkBAIC0xMjI5LDcgKzEyMzAsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTdGVwT3V0ID0g
ZnVuY3Rpb24oKQogCiAgICAgdGhpcy5fcGVyZm9ybVN0ZXBzKFsKICAgICAgICAgewotICAgICAg
ICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIsIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0s
CisgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwiIl0sCiAgICAgICAgICAg
ICBsaW5lTnVtYmVyOiAzLAogICAgICAgICAgICAgbGluZVRleHQ6ICIgICAgZGVidWdnZXI7Igog
ICAgICAgICB9LApAQCAtMTIzNyw3ICsxMjM4LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0
U3RlcE91dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzY3JpcHRzLXN0ZXAtb3V0IikuY2xpY2soKTsKICAgICAgICAgfSwKICAgICAgICAgewotICAg
ICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJhIiwiKGFub255bW91cyBmdW5jdGlvbikiXSwK
KyAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiYSIsIiJdLAogICAgICAgICAgICAgbGlu
ZU51bWJlcjogOCwKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICBwcmludFJlc3VsdChyZXN1bHQp
OyIKICAgICAgICAgfSwKQEAgLTEyNjIsNyArMTI2Myw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUu
dGVzdFN0ZXBJbiA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX3BlcmZvcm1TdGVwcyhbCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIoYW5vbnltb3Vz
IGZ1bmN0aW9uKSJdLAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIsIiJd
LAogICAgICAgICAgICAgbGluZU51bWJlcjogMywKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICAg
IGRlYnVnZ2VyOyIKICAgICAgICAgfSwKQEAgLTEyNzAsNyArMTI3MSw3IEBAIFRlc3RTdWl0ZS5w
cm90b3R5cGUudGVzdFN0ZXBJbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzY3JpcHRzLXN0ZXAtb3ZlciIpLmNsaWNrKCk7CiAgICAgICAgIH0sCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIoYW5vbnlt
b3VzIGZ1bmN0aW9uKSJdLAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIs
IiJdLAogICAgICAgICAgICAgbGluZU51bWJlcjogNSwKICAgICAgICAgICAgIGxpbmVUZXh0OiAi
ICB2YXIgeSA9IGZhY3QoMTApOyIKICAgICAgICAgfSwKQEAgLTEyNzgsNyArMTI3OSw3IEBAIFRl
c3RTdWl0ZS5wcm90b3R5cGUudGVzdFN0ZXBJbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLXN0ZXAtaW50byIpLmNsaWNrKCk7CiAgICAg
ICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZmFjdCIs
ImQiLCJhIiwiKGFub255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uc09u
U3RhY2s6IFsiZmFjdCIsImQiLCJhIiwiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiAxMCwK
ICAgICAgICAgICAgIGxpbmVUZXh0OiAiICB2YXIgciA9IDE7IgogICAgICAgICB9LApAQCAtMTQ0
MCw3ICsxNDQxLDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RXhwYW5kU2NvcGUgPSBmdW5j
dGlvbigpCiAKICAgICB0aGlzLl93YWl0Rm9yU2NyaXB0UGF1c2UoCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiaW5uZXJGdW5jdGlvbiIsICJoYW5kbGVDbGljayIs
ICIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazog
WyJpbm5lckZ1bmN0aW9uIiwgImhhbmRsZUNsaWNrIiwgIiJdLAogICAgICAgICAgICAgbGluZU51
bWJlcjogOCwKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICAgIGRlYnVnZ2VyOyIKICAgICAgICAg
fSwKQEAgLTE0NjMsMTQgKzE0NjQsMTQgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RXhwYW5k
U2NvcGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgcHJvcGVydGllczogewogICAgICAg
ICAgICAgICAgICAgICB4OiIyMDA5IiwKICAgICAgICAgICAgICAgICAgICAgaW5uZXJGdW5jdGlv
bkxvY2FsVmFyOiIyMDExIiwKLSAgICAgICAgICAgICAgICAgICAgInRoaXMiOiAiZ2xvYmFsIiwK
KyAgICAgICAgICAgICAgICAgICAgInRoaXMiOiAod2luZG93LnY4U2NyaXB0RGVidWdTZXJ2ZXJF
bmFibGVkID8gIkRPTVdpbmRvdyIgOiAiZ2xvYmFsIiksCiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB0aXRsZTogIkNsb3N1
cmUiLAogICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKLSAgICAgICAgICAgICAgICAgICAg
bjoiVGV4dFBhcmFtIiwKLSAgICAgICAgICAgICAgICAgICAgbWFrZUNsb3N1cmVMb2NhbFZhcjoi
bG9jYWwuVGV4dFBhcmFtIiwKKyAgICAgICAgICAgICAgICAgICAgbjogKHdpbmRvdy52OFNjcmlw
dERlYnVnU2VydmVyRW5hYmxlZCA/ICciVGV4dFBhcmFtIicgOiAiVGV4dFBhcmFtIiksCisgICAg
ICAgICAgICAgICAgICAgIG1ha2VDbG9zdXJlTG9jYWxWYXI6ICh3aW5kb3cudjhTY3JpcHREZWJ1
Z1NlcnZlckVuYWJsZWQgPyAnImxvY2FsLlRleHRQYXJhbSInIDogImxvY2FsLlRleHRQYXJhbSIp
LAogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CkBAIC0x
NTU0LDcgKzE1NTUsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3REZWJ1Z0ludHJpbnNpY1By
b3BlcnRpZXMgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl93YWl0Rm9yU2NyaXB0UGF1c2UoCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiY2FsbERlYnVnZ2VyIiwg
ImhhbmRsZUNsaWNrIiwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5j
dGlvbnNPblN0YWNrOiBbImNhbGxEZWJ1Z2dlciIsICJoYW5kbGVDbGljayIsICIiXSwKICAgICAg
ICAgICAgIGxpbmVOdW1iZXI6IDI5LAogICAgICAgICAgICAgbGluZVRleHQ6ICIgIGRlYnVnZ2Vy
OyIKICAgICAgICAgfSwKQEAgLTE1NzQsNiArMTU3NSwxNSBAQCBUZXN0U3VpdGUucHJvdG90eXBl
LnRlc3REZWJ1Z0ludHJpbnNpY1Byb3BlcnRpZXMgPSBmdW5jdGlvbigpCiAgICAgfQogCiAgICAg
ZnVuY3Rpb24gZXhhbWluZUxvY2FsU2NvcGUoKSB7CisgICAgICBpZiAod2luZG93LnY4U2NyaXB0
RGVidWdTZXJ2ZXJFbmFibGVkKSB7CisgICAgICB2YXIgc2NvcGVFeHBlY3RhdGlvbnMgPSBbCisg
ICAgICAgICAgImEiLCAiQ2hpbGQiLCBbCisgICAgICAgICAgICAiY29uc3RydWN0b3IiLCAiZnVu
Y3Rpb24gQ2hpbGQobikgeyIsIG51bGwsCisgICAgICAgICAgICAicGFyZW50RmllbGQiLCAiMTAi
LCBudWxsLAorICAgICAgICAgICAgImNoaWxkRmllbGQiLCAiMjAiLCBudWxsLAorICAgICAgICAg
IF0KKyAgICAgIF07CisgICAgICB9IGVsc2UgewogICAgICAgdmFyIHNjb3BlRXhwZWN0YXRpb25z
ID0gWwogICAgICAgICAgICJhIiwgIk9iamVjdCIsIFsKICAgICAgICAgICAgICAgImNvbnN0cnVj
dG9yIiwgImZ1bmN0aW9uIENoaWxkKCkiLCBbCkBAIC0xNjA2LDEzICsxNjE2LDE0IEBAIFRlc3RT
dWl0ZS5wcm90b3R5cGUudGVzdERlYnVnSW50cmluc2ljUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgICJjaGlsZEZpZWxkIiwgMjAsIG51bGwsCiAgICAgICAgICAgXQogICAgICAg
XTsKKyAgICAgIH0KIAogICAgICAgY2hlY2tQcm9wZXJ0eShsb2NhbFNjb3BlU2VjdGlvbi5wcm9w
ZXJ0aWVzVHJlZU91dGxpbmUsICI8TG9jYWwgU2NvcGU+Iiwgc2NvcGVFeHBlY3RhdGlvbnMpOwog
ICAgIH0KIAogICAgIHZhciBwcm9wUXVldWUgPSBbXTsKICAgICB2YXIgaW5kZXggPSAwOwotICAg
IHZhciBleHBlY3RlZEZpbmFsSW5kZXggPSA4OworICAgIHZhciBleHBlY3RlZEZpbmFsSW5kZXgg
PSAod2luZG93LnY4U2NyaXB0RGVidWdTZXJ2ZXJFbmFibGVkID8gMSA6IDgpOwogCiAgICAgZnVu
Y3Rpb24gZXhwYW5kQW5kQ2hlY2tOZXh0UHJvcGVydHkoKSB7CiAgICAgICAgIGlmIChpbmRleCA9
PT0gcHJvcFF1ZXVlLmxlbmd0aCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58786</attachid>
            <date>2010-06-15 09:36:09 -0700</date>
            <delta_ts>2010-06-15 10:42:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40623-20100615203606.patch</filename>
            <type>text/plain</type>
            <size>26542</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDliMDUzZTgyZDBmNDM0OWQ2YjhhNGE5MzU5NGJiNTQyOWE5MGJmNi4uYTg5ZTM1ZjA5NmY0ZWVh
MzAyMDJkMjZkOThiYWFiNzM2YmJiNGU1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wNi0xNSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIFdlYiBJbnNwZWN0b3I6IG1ha2UgdWkg
dGVzdHMgcGFzcyB3aGVuIFNjcmlwdERlYnVnU2VydmVyIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjIzCisKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkphdmFT
Y3JpcHRDYWxsRnJhbWU6OmZ1bmN0aW9uTmFtZSk6IHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIGFu
b255bW91cyBmdW5jdGlvbnMgaW5zdGVhZCBvZiBbYW5vbnltb3VzXS4KKyAgICAgICAgKiBiaW5k
aW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRE
ZWJ1Z1NlcnZlcjo6aGFuZGxlVjhEZWJ1Z0V2ZW50KTogYXV0b2NvbnRpbnVlIG9uIHN5bnRheCBl
cnJvcnMgc2luY2UgdGhlcmUgaXMgbm8gc3RhY2sgdHJhY2UgYW5kCisgICAgICAgIG5vdCBtdWNo
IHRvIGluc3BlY3QuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLmFkZFNjcmlwdCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fYWRkU2NyaXB0VG9SZXNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5kaWRBZGRSZXNvdXJj
ZSk6IGFkZCBleGlzdGluZyBzY3JpcHRzIHRvIHRoZSByZXNvdXJjZSBpZiBhbnkuICAgICAgICAK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9yZXNvdXJjZUxv
YWRpbmdGaW5pc2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fc2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3Nob3dTY3JpcHRPclJlc291cmNlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci51cGRhdGVSZXNvdXJjZSk6IGNoZWNrIGZvciBwYXJzZWQgc2NyaXB0cyB0aGF0IHNob3Vs
ZCBiZSBhZGRlZCB0byB0aGUgcmVzb3VyY2UuCisKIDIwMTAtMDYtMTUgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCAwNDkzMjFi
NTZmZWExODViNDRmMDUzOTYxOGU0NDUyMGY2Y2E2ZTM2Li4yMGJmMzc4YTc4N2IyMWM2ZDQ5ODM2
MDBlYmIxYTA0NjU3YmViMmFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFT
Y3JpcHRDYWxsRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENh
bGxGcmFtZS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgU3RyaW5nIEphdmFTY3JpcHRDYWxsRnJhbWU6
OmZ1bmN0aW9uTmFtZSgpIGNvbnN0CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwog
ICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUobV9kZWJ1Z2dlckNvbnRleHQuZ2V0
KCkpOwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBtX2NhbGxGcmFtZS5nZXQo
KS0+R2V0KHY4U3RyaW5nKCJmdW5jdGlvbk5hbWUiKSk7Ci0gICAgcmV0dXJuIHRvV2ViQ29yZVN0
cmluZyhyZXN1bHQpOworICAgIHJldHVybiB0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbE9yVW5kZWZp
bmVkQ2hlY2socmVzdWx0KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEphdmFTY3JpcHRD
YWxsRnJhbWU6OnNjb3BlQ2hhaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERl
YnVnU2VydmVyLmNwcAppbmRleCAzOWU0MDllODA5ODYwYTg5Y2I0ZTY3NWM5ZmZhZWMyYWZhMGJl
Mjc0Li5iOGU1ZWM0MjQ0Mzg3MDVlNWQ4YzU2Njg4MDcxNDE0MTVhZGM0YTBiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMzM1LDYgKzMzNSwxMiBAQCB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpoYW5kbGVWOERlYnVnRXZlbnQoY29uc3Qgdjg6OkRlYnVn
OjpFdmVudERldGFpbHMmIGV2ZW50RAogICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSk7CiAgICAg
ICAgICAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgb2JqZWN0KTsKICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT0gdjg6OkJyZWFrIHx8IGV2ZW50ID09IHY4OjpF
eGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQgPT0gdjg6OkV4Y2VwdGlvbikg
eworICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlN0YWNrVHJhY2U+IHN0YWNrVHJh
Y2UgPSB2ODo6U3RhY2tUcmFjZTo6Q3VycmVudFN0YWNrVHJhY2UoMSk7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFN0YWNrIHRyYWNlIGlzIGVtcHR5IGluIGNhc2Ugb2Ygc3ludGF4IGVycm9yLiBT
aWxlbnRseSBjb250aW51ZSBleGVjdXRpb24gaW4gc3VjaCBjYXNlcy4KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFzdGFja1RyYWNlLT5HZXRGcmFtZUNvdW50KCkpCisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fZXhl
Y3V0aW9uU3RhdGUuc2V0KGV2ZW50RGV0YWlscy5HZXRFeGVjdXRpb25TdGF0ZSgpKTsKICAgICAg
ICAgICAgICAgICBtX3BhdXNlZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgICAgICAgICAgICAg
IFNjcmlwdFN0YXRlKiBjdXJyZW50Q2FsbEZyYW1lU3RhdGUgPSBtYWluV29ybGRTY3JpcHRTdGF0
ZShmcmFtZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpp
bmRleCA0NTA0ZDU3NTEyOTBlNTJhOGQ2ZmQzNzY3MzRmMGEwZGIyMzAzYjkwLi4xMmFlMDQyMWRh
MDk4ZmM2MWE0YWQ4N2RjMDY4ZTI1NWRlNTdmNDdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE2NCw3ICsxNjQsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInNjcmlwdHMtcGF1c2Ut
b24tZXhjZXB0aW9ucy1zdGF0dXMtYmFyLWl0ZW0iLCAzKTsKICAgICB0aGlzLl9wYXVzZU9uRXhj
ZXB0aW9uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUGF1c2VP
bkV4Y2VwdGlvbnMuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24uc3RhdGUgPSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRp
b25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zOwotICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbid0IHBhdXNlIG9uIGV4
Y2VwdGlvbnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhjZXB0aW9ucy4iKTsgCisgICAgdGhp
cy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RG9uJ3QgcGF1c2Ugb24gZXhjZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBleGNlcHRp
b25zLiIpOwogCiAgICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKIApAQCAtMjIzLDcgKzIy
Myw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2F0dGFjaERlYnVnZ2VyV2hlblNob3duOwogICAgICAgICB9CiAgICAg
fSwKLSAgICAKKwogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5QYW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwpAQCAtMjQ3LDIxICsyNDcsNDMg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X3NvdXJjZUlETWFwW3NvdXJjZUlEXSA9IHNjcmlwdDsKIAogICAgICAgICB2YXIgcmVzb3VyY2Ug
PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbc291cmNlVVJMXTsKLSAgICAgICAgaWYgKHJl
c291cmNlKSB7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UuZmluaXNoZWQpIHsKLSAgICAgICAg
ICAgICAgICAvLyBSZXNvdXJjZSBpcyBmaW5pc2hlZCwgYmluZCB0aGUgc2NyaXB0IHJpZ2h0IGF3
YXkuCi0gICAgICAgICAgICAgICAgcmVzb3VyY2UuYWRkU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fc291cmNlSURNYXBbc291cmNlSURdID0gcmVzb3VyY2U7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIC8vIFJlc291cmNlIGlzIG5vdCBmaW5pc2hl
ZCwgYmluZCB0aGUgc2NyaXB0IGxhdGVyLgotICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2Uu
X3NjcmlwdHNQZW5kaW5nUmVzb3VyY2VMb2FkKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc291
cmNlLl9zY3JpcHRzUGVuZGluZ1Jlc291cmNlTG9hZCA9IFtdOwotICAgICAgICAgICAgICAgICAg
ICByZXNvdXJjZS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2hlZCIsIHRoaXMuX3Jlc291cmNlTG9h
ZGluZ0ZpbmlzaGVkLCB0aGlzKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cmVzb3VyY2UuX3NjcmlwdHNQZW5kaW5nUmVzb3VyY2VMb2FkLnB1c2goc2NyaXB0KTsKKyAgICAg
ICAgaWYgKHJlc291cmNlKQorICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9SZXNvdXJjZShz
Y3JpcHQsIHJlc291cmNlKTsKKyAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9GaWxlc01lbnUoc2Ny
aXB0KTsKKyAgICB9LAorCisgICAgX2FkZFNjcmlwdFRvUmVzb3VyY2U6IGZ1bmN0aW9uKHNjcmlw
dCwgcmVzb3VyY2UpCisgICAgeworICAgICAgICBpZiAocmVzb3VyY2UuZmluaXNoZWQpIHsKKyAg
ICAgICAgICAgIC8vIFJlc291cmNlIGlzIGZpbmlzaGVkLCBiaW5kIHRoZSBzY3JpcHQgcmlnaHQg
YXdheS4KKyAgICAgICAgICAgIHJlc291cmNlLmFkZFNjcmlwdChzY3JpcHQpOworICAgICAgICAg
ICAgdGhpcy5fc291cmNlSURNYXBbc2NyaXB0LnNvdXJjZUlEXSA9IHJlc291cmNlOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgLy8gUmVzb3VyY2UgaXMgbm90IGZpbmlzaGVkLCBiaW5k
IHRoZSBzY3JpcHQgbGF0ZXIuCisgICAgICAgICAgICBpZiAoIXJlc291cmNlLl9zY3JpcHRzUGVu
ZGluZ1Jlc291cmNlTG9hZCkgeworICAgICAgICAgICAgICAgIHJlc291cmNlLl9zY3JpcHRzUGVu
ZGluZ1Jlc291cmNlTG9hZCA9IFtdOworICAgICAgICAgICAgICAgIHJlc291cmNlLmFkZEV2ZW50
TGlzdGVuZXIoImZpbmlzaGVkIiwgdGhpcy5fcmVzb3VyY2VMb2FkaW5nRmluaXNoZWQsIHRoaXMp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzb3VyY2UuX3NjcmlwdHNQZW5kaW5nUmVz
b3VyY2VMb2FkLnB1c2goc2NyaXB0KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBkaWRBZGRS
ZXNvdXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCisgICAgeworICAgICAgICB2YXIgcmVzb3VyY2VT
Y3JpcHRzID0gW107CisgICAgICAgIGZvciAodmFyIHNvdXJjZUlEIGluIHRoaXMuX3NvdXJjZUlE
TWFwKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc291cmNlSURNYXBbc291cmNl
SURdOworICAgICAgICAgICAgaWYgKCEoc2NyaXB0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNj
cmlwdCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAocmVzb3Vy
Y2UudXJsID09IHNjcmlwdC5zb3VyY2VVUkwpCisgICAgICAgICAgICAgICAgcmVzb3VyY2VTY3Jp
cHRzLnB1c2goc2NyaXB0KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVzb3VyY2VTY3JpcHRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0
ID0gcmVzb3VyY2VTY3JpcHRzW2ldOworICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9SZXNv
dXJjZShzY3JpcHQsIHJlc291cmNlKTsKKyAgICAgICAgICAgIHRoaXMuX2FkZFNjcmlwdFRvRmls
ZXNNZW51KHNjcmlwdCk7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fYWRkU2NyaXB0VG9GaWxl
c01lbnUoc2NyaXB0KTsKICAgICB9LAogCiAgICAgY29udGludWVUb0xpbmU6IGZ1bmN0aW9uKHNv
dXJjZUlELCBsaW5lKQpAQCAtMjgyLDcgKzMwNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAvLyBSZW1vdmUgc2NyaXB0IGZyb20gdGhl
IGZpbGVzIGxpc3QuCiAgICAgICAgICAgICBzY3JpcHQuZmlsZXNTZWxlY3RPcHRpb24ucGFyZW50
RWxlbWVudC5yZW1vdmVDaGlsZChzY3JpcHQuZmlsZXNTZWxlY3RPcHRpb24pOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIC8vIE1vdmUgYnJlYWtwb2ludHMgdG8gdGhlIHJlc291cmNlJ3Mg
ZnJhbWUuCiAgICAgICAgICAgICBpZiAoc2NyaXB0Ll9zY3JpcHRWaWV3KSB7CiAgICAgICAgICAg
ICAgICAgdmFyIHNvdXJjZUZyYW1lID0gc2NyaXB0Ll9zY3JpcHRWaWV3LnNvdXJjZUZyYW1lOwpA
QCAtNTQzLDcgKzU2NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9zaG93U2NyaXB0T3JSZXNvdXJjZShzY3JpcHRPclJlc291cmNlLCB7
bGluZTogbGluZSwgc2hvdWxkSGlnaGxpZ2h0TGluZTogdHJ1ZX0pOwogICAgIH0sCiAKLSAgICBf
c2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmU6IGZ1bmN0aW9uKHVybCwgbGluZSkgCisgICAg
X3NjcmlwdE9yUmVzb3VyY2VGb3JVUkxBbmRMaW5lOiBmdW5jdGlvbih1cmwsIGxpbmUpCiAgICAg
ewogICAgICAgICB2YXIgc2NyaXB0V2l0aE1hdGNoaW5nVXJsID0gbnVsbDsKICAgICAgICAgZm9y
ICh2YXIgc291cmNlSUQgaW4gdGhpcy5fc291cmNlSURNYXApIHsKQEAgLTYxNSw3ICs2MzcsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1Njcmlw
dE9yUmVzb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdE9yUmVzb3VyY2UsIG9wdGlvbnMpCiAgICAgewog
ICAgICAgICAvLyBvcHRpb25zID0ge2xpbmU6LCBzaG91bGRIaWdobGlnaHRMaW5lOiwgZnJvbUJh
Y2tGb3J3YXJkQWN0aW9uOiwgaW5pdGlhbExvYWQ6fQotICAgICAgICBpZiAoIW9wdGlvbnMpIAor
ICAgICAgICBpZiAoIW9wdGlvbnMpCiAgICAgICAgICAgICBvcHRpb25zID0ge307CiAKICAgICAg
ICAgaWYgKCFzY3JpcHRPclJlc291cmNlKQpAQCAtNjk4LDcgKzcyMCw3IEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIHRoaXMuX3Jlc291cmNlRm9yVVJMSW5GaWxlc1NlbGVjdFtzY3JpcHQucmVzb3Vy
Y2UudXJsXSA9IHNjcmlwdC5yZXNvdXJjZTsKICAgICAgICAgfQotIAorCiAgICAgICAgIHZhciBk
aXNwbGF5TmFtZSA9IHNjcmlwdC5zb3VyY2VVUkwgPyBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVG
b3JVUkwoc2NyaXB0LnNvdXJjZVVSTCkgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFt
KSIpOwogCiAgICAgICAgIHZhciBzZWxlY3QgPSB0aGlzLmZpbGVzU2VsZWN0RWxlbWVudDsKQEAg
LTgxMyw3ICs4MzUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5yZXNpemUoKTsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
ICAgICB9LAotICAgIAorCiAgICAgdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTogZnVuY3Rp
b24ocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSkKICAgICB7CiAgICAgICAgIGlmIChwYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcwppbmRleCBlODEwOGFmZjYzNmUyMTIwYzI4MTMyOTMwOGYwZmYyMzlmYWY5
ODQ3Li45ZjJjZGUwYzU0NWE5Yzk0NzBmMmMxOWYyZDkwMzM0YjM0YzMxZGE1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTExNDEsNiArMTE0MSw4IEBAIFdl
Ykluc3BlY3Rvci51cGRhdGVSZXNvdXJjZSA9IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHBheWxvYWQp
CiAgICAgICAgIHRoaXMucmVzb3VyY2VVUkxNYXBbcmVzb3VyY2UudXJsXSA9IHJlc291cmNlOwog
ICAgICAgICBpZiAodGhpcy5wYW5lbHMucmVzb3VyY2VzKQogICAgICAgICAgICAgdGhpcy5wYW5l
bHMucmVzb3VyY2VzLmFkZFJlc291cmNlKHJlc291cmNlKTsKKyAgICAgICAgaWYgKHRoaXMucGFu
ZWxzLnNjcmlwdHMpCisgICAgICAgICAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmRpZEFkZFJlc291
cmNlKHJlc291cmNlKTsKICAgICAgICAgaWYgKHRoaXMucGFuZWxzLmF1ZGl0cykKICAgICAgICAg
ICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5yZXNvdXJjZVN0YXJ0ZWQocmVzb3VyY2UpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGE1OGU5NWQ0OTEwYTgzOGQ0NGMwMTQ0MTZhYjQ4ZWFkYzM1Njg2NWEu
LmUwYTQ3OTI3ZWExNTk0NmEwM2NkNzRhMGEzODI1MDVjYzVjNTZmMGQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEwLTA2LTE1ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFt2OF0gV2ViIEluc3BlY3RvcjogbWFrZSB1aSB0ZXN0cyBwYXNzIHdoZW4gU2NyaXB0RGVi
dWdTZXJ2ZXIgaXMgdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDA2MjMKKworICAgICAgICAqIHNyYy9qcy9EZWJ1Z2dlckFnZW50LmpzOgorICAg
ICAgICAoZGV2dG9vbHMuRGVidWdnZXJBZ2VudC5wcm90b3R5cGUuZm9ybWF0Q2FsbEZyYW1lXyk6
IHJldHVybiBlbXB0eSBmdW5jdGlvbiBuYW1lIGZvciBhbm9ueW1vdXMgZnVuY3Rpb25zLgorICAg
ICAgICAqIHNyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBzcmMvanMvVGVzdHMu
anM6CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0UHJvZmlsZXJUYWIuZmluZFZp
c2libGVWaWV3KToKKyAgICAgICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RQcm9maWxlclRh
Yik6CisgICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U2NyaXB0c1RhYklzUG9wdWxh
dGVkT25JbnNwZWN0ZWRQYWdlUmVmcmVzaC53YWl0VW50aWxTY3JpcHRJc1BhcnNlZCk6CisgICAg
ICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U2V0QnJlYWtwb2ludC50aGlzKToKKyAgICAg
ICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTZXRCcmVha3BvaW50KToKKyAgICAgICAgKC5U
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFdmFsT25DYWxsRnJhbWUud2FpdEZvckJyZWFrcG9pbnRI
aXQpOgorICAgICAgICAoLlRlc3RTdWl0ZS5wcm90b3R5cGUuX2V4ZWN1dGVDb2RlV2hlblNjcmlw
dHNBcmVQYXJzZWQuZXhlY3V0ZUZ1bmN0aW9uSW5JbnNwZWN0ZWRQYWdlKToKKyAgICAgICAgKC5U
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFeHBhbmRTY29wZS5leGFtaW5lU2NvcGVzKToKKyAgICAg
ICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFeHBhbmRTY29wZSk6CisgICAgICAgICguVGVz
dFN1aXRlLnByb3RvdHlwZS50ZXN0RGVidWdJbnRyaW5zaWNQcm9wZXJ0aWVzKToKKwogMjAxMC0w
Ni0xNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBDaHJvbWl1bSBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVi
dWdnZXJBZ2VudC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJBZ2VudC5qcwpp
bmRleCA4ZDI0NTdmYmRjZjlmYTVlZmQ5Y2U1ZjQxMzM4NjgzZDY1YWJiNzQ3Li4wMWQ3NjI3ZmMy
YjAxZmIzMDI5MzRiYjQ3ZTAxMTNjMmNkN2NmMTc0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0RlYnVnZ2VyQWdlbnQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9E
ZWJ1Z2dlckFnZW50LmpzCkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBkZXZ0b29scy5EZWJ1Z2dlckFn
ZW50LnByb3RvdHlwZS5mb3JtYXRDYWxsRnJhbWVfID0gZnVuY3Rpb24oc3RhY2tGcmFtZSkKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhcnNlZFNjcmlwdFNvdXJjZShzb3VyY2VJZCwgbnVsbCwgbnVs
bCwgMCwgV2ViSW5zcGVjdG9yLlNjcmlwdC5Xb3JsZFR5cGUuTUFJTl9XT1JMRCk7CiAgICAgfQog
Ci0gICAgdmFyIGZ1bmNOYW1lID0gZnVuYy5uYW1lIHx8IGZ1bmMuaW5mZXJyZWROYW1lIHx8ICIo
YW5vbnltb3VzIGZ1bmN0aW9uKSI7CisgICAgdmFyIGZ1bmNOYW1lID0gZnVuYy5uYW1lIHx8IGZ1
bmMuaW5mZXJyZWROYW1lOwogICAgIHZhciBsaW5lID0gZGV2dG9vbHMuRGVidWdnZXJBZ2VudC52
OFRvV3dlYmtpdExpbmVOdW1iZXJfKHN0YWNrRnJhbWUubGluZSk7CiAKICAgICAvLyBBZGQgYmFz
aWMgc2NvcGUgY2hhaW4gaW5mbyB3aXRoIHNjb3BlIHZhcmlhYmxlcy4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCmluZGV4IDNmZjNlYjcwZGI2ZWNmOTBhZGQ0YjliYjA2
MjkxMzVlZDZlMTE4OTQuLmJhZGRiN2RiYzlkOTFiYjQ5ZDkxNWFhODllNDc1ODYwMmVhNzdlNDYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtMjE5LDggKzIx
OSw2IEBAIERlYnVnZ2VyU2NyaXB0Ll9mcmFtZU1pcnJvclRvSlNDYWxsRnJhbWUgPSBmdW5jdGlv
bihmcmFtZU1pcnJvciwgY2FsbGVyRnJhbWUpCiAgICAgdmFyIGZ1bmN0aW9uTmFtZTsKICAgICBp
ZiAoZnVuYykKICAgICAgICAgZnVuY3Rpb25OYW1lID0gZnVuYy5uYW1lKCkgfHwgZnVuYy5pbmZl
cnJlZE5hbWUoKTsKLSAgICBpZiAoIWZ1bmN0aW9uTmFtZSkKLSAgICAgICAgZnVuY3Rpb25OYW1l
ID0gIlthbm9ueW1vdXNdIjsKICAgICAgICAgCiAgICAgLy8gR2V0IHNjcmlwdCBJRC4KICAgICB2
YXIgc2NyaXB0ID0gZnVuYy5zY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvanMvVGVzdHMuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL1Rlc3RzLmpzCmluZGV4IGZh
OTEwYWI2OTMxYmU3YzRhOTYzMTA2OGZiMzllNWI2OTA0MzUyNDUuLjAzNzVmMTA4ZjU2YTE5ODM0
NzMxYTQ3MTJiMmEzNjcxYjU4MGNmNjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvVGVzdHMuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5qcwpAQCAtNDUz
LDcgKzQ1Myw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFByb2ZpbGVyVGFiID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgc2V0VGltZW91dChmaW5kVmlzaWJsZVZpZXcsIDApOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHNldFRpbWVvdXQoZmluZERpc3BsYXll
ZE5vZGUsIDApOyAgICAgICAgICAgIAorICAgICAgICBzZXRUaW1lb3V0KGZpbmREaXNwbGF5ZWRO
b2RlLCAwKTsKICAgICB9CiAKICAgICBmaW5kVmlzaWJsZVZpZXcoKTsKQEAgLTQ4OCwzMSArNDg4
LDE5IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFNjcmlwdHNUYWJJc1BvcHVsYXRlZE9uSW5z
cGVjdGVkUGFnZVJlZnJlc2ggPSBmdW5jdGlvbigpCiAgICAgdmFyIHRlc3QgPSB0aGlzOwogICAg
IHRoaXMuYXNzZXJ0RXF1YWxzKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMsIFdlYkluc3Bl
Y3Rvci5jdXJyZW50UGFuZWwsICJFbGVtZW50cyBwYW5lbCBzaG91bGQgYmUgY3VycmVudCBvbmUu
Iik7CiAKLSAgICB0aGlzLmFkZFNuaWZmZXIoZGV2dG9vbHMuRGVidWdnZXJBZ2VudC5wcm90b3R5
cGUsICJyZXNldCIsIHdhaXRVbnRpbFNjcmlwdElzUGFyc2VkKTsKKyAgICB0aGlzLmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLCAicmVzZXQiLCB3YWl0VW50aWxTY3JpcHRJ
c1BhcnNlZCk7CiAKICAgICAvLyBSZWxvYWQgaW5zcGVjdGVkIHBhZ2UuIEl0IHdpbGwgcmVzZXQg
dGhlIGRlYnVnZ2VyIGFnZW50LgogICAgIHRlc3QuZXZhbHVhdGVJbkNvbnNvbGVfKAogICAgICAg
ICAid2luZG93LmxvY2F0aW9uLnJlbG9hZCh0cnVlKTsiLAotICAgICAgICBmdW5jdGlvbihyZXN1
bHRUZXh0KSB7Ci0gICAgICAgICAgICB0ZXN0LmFzc2VydEVxdWFscygidW5kZWZpbmVkIiwgcmVz
dWx0VGV4dCwgIlVuZXhwZWN0ZWQgcmVzdWx0IG9mIHJlbG9hZCgpLiIpOwotICAgICAgICB9KTsK
KyAgICAgICAgZnVuY3Rpb24ocmVzdWx0VGV4dCkge30pOwogCiAgICAgZnVuY3Rpb24gd2FpdFVu
dGlsU2NyaXB0SXNQYXJzZWQoKSB7Ci0gICAgICAgIHZhciBwYXJzZWQgPSBkZXZ0b29scy50b29s
cy5nZXREZWJ1Z2dlckFnZW50KCkucGFyc2VkU2NyaXB0c187Ci0gICAgICAgIGZvciAodmFyIGlk
IGluIHBhcnNlZCkgewotICAgICAgICAgICAgdmFyIHVybCA9IHBhcnNlZFtpZF0uZ2V0VXJsKCk7
Ci0gICAgICAgICAgICBpZiAodXJsICYmIHVybC5zZWFyY2goImRlYnVnZ2VyX3Rlc3RfcGFnZS5o
dG1sIikgIT09IC0xKSB7Ci0gICAgICAgICAgICAgICAgY2hlY2tTY3JpcHRzUGFuZWwoKTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
dGVzdC5hZGRTbmlmZmVyKGRldnRvb2xzLkRlYnVnZ2VyQWdlbnQucHJvdG90eXBlLCAiYWRkU2Ny
aXB0SW5mb18iLCB3YWl0VW50aWxTY3JpcHRJc1BhcnNlZCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gY2hlY2tTY3JpcHRzUGFuZWwoKSB7CiAgICAgICAgIHRlc3Quc2hvd1BhbmVsKCJzY3JpcHRz
Iik7Ci0gICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZSh0ZXN0Ll9zY3JpcHRzQXJlUGFyc2VkKFsiZGVi
dWdnZXJfdGVzdF9wYWdlLmh0bWwiXSksICJJbnNwZWN0ZWQgc2NyaXB0IG5vdCBmb3VuZCBpbiB0
aGUgc2NyaXB0cyBsaXN0Iik7Ci0gICAgICAgIHRlc3QucmVsZWFzZUNvbnRyb2woKTsKKyAgICAg
ICAgdGVzdC5fd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZChbImRlYnVnZ2VyX3Rlc3RfcGFnZS5o
dG1sIl0sCisgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0ZXN0LnJl
bGVhc2VDb250cm9sKCk7CisgICAgICAgICAgICB9KTsKICAgICB9CiAKICAgICAvLyBXYWl0IHVu
dGlsIGFsbCBzY3JpcHRzIGFyZSBhZGRlZCB0byB0aGUgZGVidWdnZXIuCkBAIC02MDMsNyArNTkx
LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U2V0QnJlYWtwb2ludCA9IGZ1bmN0aW9uKCkK
ICAgICB2YXIgdGVzdCA9IHRoaXM7CiAgICAgdGhpcy5zaG93UGFuZWwoInNjcmlwdHMiKTsKIAot
ICAgIHZhciBicmVha3BvaW50TGluZSA9IDEyOworICAgIHZhciBicmVha3BvaW50TGluZSA9IDE2
CiAKICAgICB0aGlzLl93YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkKFsiZGVidWdnZXJfdGVzdF9w
YWdlLmh0bWwiXSwKICAgICAgICAgZnVuY3Rpb24oKSB7CkBAIC02MTEsMTUgKzU5OSwyNSBAQCBU
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTZXRCcmVha3BvaW50ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgICAiZGVidWdnZXJfdGVzdF9wYWdlLmh0bWwiLAogICAgICAgICAgICAgICBmdW5jdGlv
bih2aWV3LCB1cmwpIHsKICAgICAgICAgICAgICAgICB2aWV3Ll9hZGRCcmVha3BvaW50KGJyZWFr
cG9pbnRMaW5lKTsKLSAgICAgICAgICAgICAgICAvLyBGb3JjZSB2OCBleGVjdXRpb24uCi0gICAg
ICAgICAgICAgICAgUmVtb3RlRGVidWdnZXJBZ2VudC5wcm9jZXNzRGVidWdDb21tYW5kcygpOwot
ICAgICAgICAgICAgICAgIHRlc3Qud2FpdEZvclNldEJyZWFrcG9pbnRSZXNwb25zZV8odXJsLCBi
cmVha3BvaW50TGluZSwKLSAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0LnJlbGVhc2VDb250cm9sKCk7CisKKyAgICAgICAgICAgICAg
ICB0ZXN0LmV2YWx1YXRlSW5Db25zb2xlXygKKyAgICAgICAgICAgICAgICAgICAgJ3NldFRpbWVv
dXQoImNhbGN1bGF0ZSgpIiAsIDApJywKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24ocmVz
dWx0VGV4dCkgeworICAgICAgICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZSghaXNOYU4o
cmVzdWx0VGV4dCksICJGYWlsZWQgdG8gZ2V0IHRpbWVyIGlkOiAiICsgcmVzdWx0VGV4dCk7CiAg
ICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAK
KyAgICB0aGlzLl93YWl0Rm9yU2NyaXB0UGF1c2UoCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1
bmN0aW9uc09uU3RhY2s6IFsiY2FsY3VsYXRlIiwgIiJdLAorICAgICAgICAgICAgbGluZU51bWJl
cjogYnJlYWtwb2ludExpbmUsCisgICAgICAgICAgICBsaW5lVGV4dDogIiAgcmVzdWx0ID0gZmli
KGxhc3RWYWwrKyk7IgorICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHRlc3QucmVsZWFzZUNvbnRyb2woKTsKKyAgICAgICAgfSk7CisKICAgICB0aGlzLnRha2VD
b250cm9sKCk7CiB9OwogCkBAIC02MzIsMjEgKzYzMCwxMyBAQCBUZXN0U3VpdGUucHJvdG90eXBl
LnRlc3RQYXVzZU9uRXhjZXB0aW9uID0gZnVuY3Rpb24oKQogICAgIHRoaXMuc2hvd1BhbmVsKCJz
Y3JpcHRzIik7CiAgICAgdmFyIHRlc3QgPSB0aGlzOwogCi0gICAgLy8gVE9ETyh5dXJ5cyk6IHJl
bW92ZSBlbHNlIGJyYW5jaCBvbmNlIHRoZSBzdGF0ZXMgYXJlIHN1cHBvcnRlZC4KLSAgICBpZiAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlKSB7Ci0gICAg
ICAgIHdoaWxlIChXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsLl9wYXVzZU9uRXhjZXB0aW9uQnV0
dG9uLnN0YXRlICE9PSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25z
U3RhdGUuUGF1c2VPblVuY2F1Z2h0RXhjZXB0aW9ucykKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5jdXJyZW50UGFuZWwuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uZWxlbWVudC5jbGljaygpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSBwYXVzZSBvbiBleGNlcHRpb25zIGlz
IG9uLgotICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwuX3BhdXNlT25FeGNl
cHRpb25CdXR0b24udG9nZ2xlZCkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50UGFu
ZWwuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uZWxlbWVudC5jbGljaygpOwotICAgIH0KKyAgICBJ
bnNwZWN0b3JCYWNrZW5kLnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLlBhdXNlT25VbmNhdWdodEV4Y2VwdGlv
bnMpOwogCiAgICAgdGhpcy5fZXhlY3V0ZUNvZGVXaGVuU2NyaXB0c0FyZVBhcnNlZCgiaGFuZGxl
Q2xpY2soKSIsIFsicGF1c2Vfb25fZXhjZXB0aW9uLmh0bWwiXSk7CiAKICAgICB0aGlzLl93YWl0
Rm9yU2NyaXB0UGF1c2UoCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6
IFsidGhyb3dBbkV4Y2VwdGlvbiIsICJoYW5kbGVDbGljayIsICIoYW5vbnltb3VzIGZ1bmN0aW9u
KSJdLAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJ0aHJvd0FuRXhjZXB0aW9uIiwg
ImhhbmRsZUNsaWNrIiwgIiJdLAogICAgICAgICAgICAgbGluZU51bWJlcjogNiwKICAgICAgICAg
ICAgIGxpbmVUZXh0OiAiICByZXR1cm4gdW5rbm93bl92YXI7IgogICAgICAgICB9LApAQCAtNzI4
LDcgKzcxOCw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFBhdXNlV2hlblNjcmlwdElzUnVu
bmluZyA9IGZ1bmN0aW9uKCkKIAogICAgICAgICB0ZXN0Ll93YWl0Rm9yU2NyaXB0UGF1c2UoCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJoYW5kbGVD
bGljayIsICIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
c09uU3RhY2s6IFsiaGFuZGxlQ2xpY2siLCAiIl0sCiAgICAgICAgICAgICAgICAgbGluZU51bWJl
cjogNSwKICAgICAgICAgICAgICAgICBsaW5lVGV4dDogIiAgd2hpbGUodHJ1ZSkgeyIKICAgICAg
ICAgICAgIH0sCkBAIC04NjEsMzYgKzg1MSwzMCBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RF
dmFsT25DYWxsRnJhbWUgPSBmdW5jdGlvbigpCiAgICAgdmFyIGJyZWFrcG9pbnRMaW5lID0gMTY7
CiAKICAgICB2YXIgdGVzdCA9IHRoaXM7Ci0gICAgdGhpcy5hZGRTbmlmZmVyKGRldnRvb2xzLkRl
YnVnZ2VyQWdlbnQucHJvdG90eXBlLCAiaGFuZGxlU2NyaXB0c1Jlc3BvbnNlXyIsCi0gICAgICAg
IGZ1bmN0aW9uKG1zZykgeworICAgIHRoaXMuX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWQoWyJk
ZWJ1Z2dlcl90ZXN0X3BhZ2UuaHRtbCJdLAorICAgICAgICBmdW5jdGlvbigpIHsKICAgICAgICAg
ICB0ZXN0LnNob3dNYWluUGFnZVNjcmlwdFNvdXJjZV8oCiAgICAgICAgICAgICAgICJkZWJ1Z2dl
cl90ZXN0X3BhZ2UuaHRtbCIsCiAgICAgICAgICAgICAgIGZ1bmN0aW9uKHZpZXcsIHVybCkgewog
ICAgICAgICAgICAgICAgICAgdmlldy5fYWRkQnJlYWtwb2ludChicmVha3BvaW50TGluZSk7Ci0g
ICAgICAgICAgICAgICAgICAvLyBGb3JjZSB2OCBleGVjdXRpb24uCi0gICAgICAgICAgICAgICAg
ICBSZW1vdGVEZWJ1Z2dlckFnZW50LnByb2Nlc3NEZWJ1Z0NvbW1hbmRzKCk7Ci0gICAgICAgICAg
ICAgICAgICB0ZXN0LndhaXRGb3JTZXRCcmVha3BvaW50UmVzcG9uc2VfKHVybCwgYnJlYWtwb2lu
dExpbmUsIHNldEJyZWFrcG9pbnRDYWxsYmFjayk7CisKKyAgICAgICAgICAgICAgICAgIC8vIFNp
bmNlIGJyZWFrcG9pbnRzIGFyZSBpZ25vcmVkIGluIGV2YWxzJyBjYWxjdWxhdGUoKSBmdW5jdGlv
biBpcworICAgICAgICAgICAgICAgICAgLy8gZXhlY3V0ZSBhZnRlciB6ZXJvLXRpbWVvdXQgc28g
dGhhdCB0aGUgYnJlYWtwb2ludCBpcyBoaXQuCisgICAgICAgICAgICAgICAgICB0ZXN0LmV2YWx1
YXRlSW5Db25zb2xlXygKKyAgICAgICAgICAgICAgICAgICAgICAnc2V0VGltZW91dCgiY2FsY3Vs
YXRlKDEyMykiICwgMCknLAorICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKHJlc3VsdFRl
eHQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5hc3NlcnRUcnVlKCFpc05hTihy
ZXN1bHRUZXh0KSwgIkZhaWxlZCB0byBnZXQgdGltZXIgaWQ6ICIgKyByZXN1bHRUZXh0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2FpdEZvckJyZWFrcG9pbnRIaXQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogCi0gICAg
ZnVuY3Rpb24gc2V0QnJlYWtwb2ludENhbGxiYWNrKCkgewotICAgICAgLy8gU2luY2UgYnJlYWtw
b2ludHMgYXJlIGlnbm9yZWQgaW4gZXZhbHMnIGNhbGN1bGF0ZSgpIGZ1bmN0aW9uIGlzCi0gICAg
ICAvLyBleGVjdXRlIGFmdGVyIHplcm8tdGltZW91dCBzbyB0aGF0IHRoZSBicmVha3BvaW50IGlz
IGhpdC4KLSAgICAgIHRlc3QuZXZhbHVhdGVJbkNvbnNvbGVfKAotICAgICAgICAgICdzZXRUaW1l
b3V0KCJjYWxjdWxhdGUoMTIzKSIgLCAwKScsCi0gICAgICAgICAgZnVuY3Rpb24ocmVzdWx0VGV4
dCkgewotICAgICAgICAgICAgICB0ZXN0LmFzc2VydFRydWUoIWlzTmFOKHJlc3VsdFRleHQpLCAi
RmFpbGVkIHRvIGdldCB0aW1lciBpZDogIiArIHJlc3VsdFRleHQpOwotICAgICAgICAgICAgICB3
YWl0Rm9yQnJlYWtwb2ludEhpdCgpOwotICAgICAgICAgIH0pOwotICAgIH0KLQogICAgIGZ1bmN0
aW9uIHdhaXRGb3JCcmVha3BvaW50SGl0KCkgewotICAgICAgdGVzdC5hZGRTbmlmZmVyKAotICAg
ICAgICAgIGRldnRvb2xzLkRlYnVnZ2VyQWdlbnQucHJvdG90eXBlLAotICAgICAgICAgICJoYW5k
bGVCYWNrdHJhY2VSZXNwb25zZV8iLAotICAgICAgICAgIGZ1bmN0aW9uKG1zZykgewotICAgICAg
ICAgICAgdGVzdC5hc3NlcnRFcXVhbHMoMiwgdGhpcy5jYWxsRnJhbWVzXy5sZW5ndGgsICJVbmV4
cGVjdGVkIHN0YWNrIGRlcHRoIG9uIHRoZSBicmVha3BvaW50LiAiICsgSlNPTi5zdHJpbmdpZnko
bXNnKSk7Ci0gICAgICAgICAgICB0ZXN0LmFzc2VydEVxdWFscygiY2FsY3VsYXRlIiwgdGhpcy5j
YWxsRnJhbWVzX1swXS5mdW5jdGlvbk5hbWUsICJVbmV4cGVjdGVkIHRvcCBmcmFtZSBmdW5jdGlv
bi4iKTsKKyAgICAgIHRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsCisgICAgICAgICAgInBh
dXNlZFNjcmlwdCIsCisgICAgICAgICAgZnVuY3Rpb24oY2FsbEZyYW1lcykgeworICAgICAgICAg
ICAgdGVzdC5hc3NlcnRFcXVhbHMoMiwgY2FsbEZyYW1lcy5sZW5ndGgsICJVbmV4cGVjdGVkIHN0
YWNrIGRlcHRoIG9uIHRoZSBicmVha3BvaW50LiAiICsgSlNPTi5zdHJpbmdpZnkoY2FsbEZyYW1l
cywgbnVsbCwgNCkpOworICAgICAgICAgICAgdGVzdC5hc3NlcnRFcXVhbHMoImNhbGN1bGF0ZSIs
IGNhbGxGcmFtZXNbMF0uZnVuY3Rpb25OYW1lLCAiVW5leHBlY3RlZCB0b3AgZnJhbWUgZnVuY3Rp
b24uIik7CiAgICAgICAgICAgICAvLyBFdmFsdWF0ZSAiZSsxIiB3aGVyZSAiZSIgaXMgYW4gYXJn
dW1lbnQgb2YgImNhbGN1bGF0ZSIgZnVuY3Rpb24uCiAgICAgICAgICAgICB0ZXN0LmV2YWx1YXRl
SW5Db25zb2xlXygKICAgICAgICAgICAgICAgICAiZSsxIiwKQEAgLTkxNiw3ICs5MDAsNyBAQCBU
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RDb21wbGV0aW9uT25QYXVzZSA9IGZ1bmN0aW9uKCkKIAog
ICAgIHRoaXMuX3dhaXRGb3JTY3JpcHRQYXVzZSgKICAgICAgICAgewotICAgICAgICAgICAgZnVu
Y3Rpb25zT25TdGFjazogWyJpbm5lckZ1bmN0aW9uIiwgImhhbmRsZUNsaWNrIiwgIihhbm9ueW1v
dXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImlubmVyRnVu
Y3Rpb24iLCAiaGFuZGxlQ2xpY2siLCAiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiA5LAog
ICAgICAgICAgICAgbGluZVRleHQ6ICIgICAgZGVidWdnZXI7IgogICAgICAgICB9LApAQCAtOTYz
LDYgKzk0Nyw5IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdENvbXBsZXRpb25PblBhdXNlID0g
ZnVuY3Rpb24oKQogICovCiBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RBdXRvQ29udGludWVPblN5
bnRheEVycm9yID0gZnVuY3Rpb24oKQogeworICAgIGlmICh3aW5kb3cudjhTY3JpcHREZWJ1Z1Nl
cnZlckVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIHRoaXMuc2hvd1BhbmVsKCJzY3Jp
cHRzIik7CiAgICAgdmFyIHRlc3QgPSB0aGlzOwogCkBAIC05NzgsNiArOTY1LDcgQEAgVGVzdFN1
aXRlLnByb3RvdHlwZS50ZXN0QXV0b0NvbnRpbnVlT25TeW50YXhFcnJvciA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgfQogICAgIH0KIAorCiAgICAgdGhpcy5hZGRTbmlmZmVyKGRldnRvb2xzLkRlYnVn
Z2VyQWdlbnQucHJvdG90eXBlLCAiaGFuZGxlU2NyaXB0c1Jlc3BvbnNlXyIsCiAgICAgICAgIGZ1
bmN0aW9uKG1zZykgewogICAgICAgICAgICAgY2hlY2tTY3JpcHRzTGlzdCgpOwpAQCAtMTE0MCw3
ICsxMTI4LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS5fZXhlY3V0ZUNvZGVXaGVuU2NyaXB0c0Fy
ZVBhcnNlZCA9IGZ1bmN0aW9uKGNvZGUsIGV4cGVjdGVkU2MKICAgICAgICAgdGVzdC5ldmFsdWF0
ZUluQ29uc29sZV8oCiAgICAgICAgICAgICAnc2V0VGltZW91dCgiJyArIGNvZGUgKyAnIiAsIDAp
JywKICAgICAgICAgICAgIGZ1bmN0aW9uKHJlc3VsdFRleHQpIHsKLSAgICAgICAgICAgICAgICB0
ZXN0LmFzc2VydFRydWUoIWlzTmFOKHJlc3VsdFRleHQpLCAiRmFpbGVkIHRvIGdldCB0aW1lciBp
ZDogIiArIHJlc3VsdFRleHQpOworICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZSghaXNO
YU4ocmVzdWx0VGV4dCksICJGYWlsZWQgdG8gZ2V0IHRpbWVyIGlkOiAiICsgcmVzdWx0VGV4dCAr
ICIuIENvZGU6ICIgKyBjb2RlKTsKICAgICAgICAgICAgIH0pOwogICAgIH0KIApAQCAtMTE4OCw3
ICsxMTc2LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U3RlcE92ZXIgPSBmdW5jdGlvbigp
CiAKICAgICB0aGlzLl9wZXJmb3JtU3RlcHMoWwogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5j
dGlvbnNPblN0YWNrOiBbImQiLCJhIiwiKGFub255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAg
ICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIiXSwKICAgICAgICAgICAgIGxpbmVOdW1i
ZXI6IDMsCiAgICAgICAgICAgICBsaW5lVGV4dDogIiAgICBkZWJ1Z2dlcjsiCiAgICAgICAgIH0s
CkBAIC0xMTk2LDcgKzExODQsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTdGVwT3ZlciA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRz
LXN0ZXAtb3ZlciIpLmNsaWNrKCk7CiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAg
ICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIsIiJdLAogICAgICAgICAgICAgbGlu
ZU51bWJlcjogNSwKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICB2YXIgeSA9IGZhY3QoMTApOyIK
ICAgICAgICAgfSwKQEAgLTEyMDQsNyArMTE5Miw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVz
dFN0ZXBPdmVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNjcmlwdHMtc3RlcC1vdmVyIikuY2xpY2soKTsKICAgICAgICAgfSwKICAgICAgICAgewot
ICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIsIihhbm9ueW1vdXMgZnVuY3Rp
b24pIl0sCisgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwiIl0sCiAgICAg
ICAgICAgICBsaW5lTnVtYmVyOiA2LAogICAgICAgICAgICAgbGluZVRleHQ6ICIgIHJldHVybiB5
OyIKICAgICAgICAgfSwKQEAgLTEyMjksNyArMTIxNyw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUu
dGVzdFN0ZXBPdXQgPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl9wZXJmb3JtU3RlcHMoWwogICAg
ICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwiKGFub255bW91
cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIi
XSwKICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDMsCiAgICAgICAgICAgICBsaW5lVGV4dDogIiAg
ICBkZWJ1Z2dlcjsiCiAgICAgICAgIH0sCkBAIC0xMjM3LDcgKzEyMjUsNyBAQCBUZXN0U3VpdGUu
cHJvdG90eXBlLnRlc3RTdGVwT3V0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtc3RlcC1vdXQiKS5jbGljaygpOwogICAgICAgICB9LAog
ICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImEiLCIoYW5vbnltb3Vz
IGZ1bmN0aW9uKSJdLAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJhIiwiIl0sCiAg
ICAgICAgICAgICBsaW5lTnVtYmVyOiA4LAogICAgICAgICAgICAgbGluZVRleHQ6ICIgIHByaW50
UmVzdWx0KHJlc3VsdCk7IgogICAgICAgICB9LApAQCAtMTI2Miw3ICsxMjUwLDcgQEAgVGVzdFN1
aXRlLnByb3RvdHlwZS50ZXN0U3RlcEluID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5fcGVyZm9y
bVN0ZXBzKFsKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwi
YSIsIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNr
OiBbImQiLCJhIiwiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiAzLAogICAgICAgICAgICAg
bGluZVRleHQ6ICIgICAgZGVidWdnZXI7IgogICAgICAgICB9LApAQCAtMTI3MCw3ICsxMjU4LDcg
QEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U3RlcEluID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtc3RlcC1vdmVyIikuY2xpY2soKTsK
ICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJk
IiwiYSIsIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5jdGlvbnNPblN0
YWNrOiBbImQiLCJhIiwiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiA1LAogICAgICAgICAg
ICAgbGluZVRleHQ6ICIgIHZhciB5ID0gZmFjdCgxMCk7IgogICAgICAgICB9LApAQCAtMTI3OCw3
ICsxMjY2LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U3RlcEluID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtc3RlcC1pbnRvIiku
Y2xpY2soKTsKICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25T
dGFjazogWyJmYWN0IiwiZCIsImEiLCIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAgICAgICAg
ICAgZnVuY3Rpb25zT25TdGFjazogWyJmYWN0IiwiZCIsImEiLCIiXSwKICAgICAgICAgICAgIGxp
bmVOdW1iZXI6IDEwLAogICAgICAgICAgICAgbGluZVRleHQ6ICIgIHZhciByID0gMTsiCiAgICAg
ICAgIH0sCkBAIC0xNDQwLDcgKzE0MjgsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RFeHBh
bmRTY29wZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX3dhaXRGb3JTY3JpcHRQYXVzZSgKICAg
ICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJpbm5lckZ1bmN0aW9uIiwg
ImhhbmRsZUNsaWNrIiwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5j
dGlvbnNPblN0YWNrOiBbImlubmVyRnVuY3Rpb24iLCAiaGFuZGxlQ2xpY2siLCAiIl0sCiAgICAg
ICAgICAgICBsaW5lTnVtYmVyOiA4LAogICAgICAgICAgICAgbGluZVRleHQ6ICIgICAgZGVidWdn
ZXI7IgogICAgICAgICB9LApAQCAtMTQ2MywxNCArMTQ1MSwxNCBAQCBUZXN0U3VpdGUucHJvdG90
eXBlLnRlc3RFeHBhbmRTY29wZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICBwcm9wZXJ0
aWVzOiB7CiAgICAgICAgICAgICAgICAgICAgIHg6IjIwMDkiLAogICAgICAgICAgICAgICAgICAg
ICBpbm5lckZ1bmN0aW9uTG9jYWxWYXI6IjIwMTEiLAotICAgICAgICAgICAgICAgICAgICAidGhp
cyI6ICJnbG9iYWwiLAorICAgICAgICAgICAgICAgICAgICAidGhpcyI6ICh3aW5kb3cudjhTY3Jp
cHREZWJ1Z1NlcnZlckVuYWJsZWQgPyAiRE9NV2luZG93IiA6ICJnbG9iYWwiKSwKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
IHRpdGxlOiAiQ2xvc3VyZSIsCiAgICAgICAgICAgICAgICAgcHJvcGVydGllczogewotICAgICAg
ICAgICAgICAgICAgICBuOiJUZXh0UGFyYW0iLAotICAgICAgICAgICAgICAgICAgICBtYWtlQ2xv
c3VyZUxvY2FsVmFyOiJsb2NhbC5UZXh0UGFyYW0iLAorICAgICAgICAgICAgICAgICAgICBuOiAo
d2luZG93LnY4U2NyaXB0RGVidWdTZXJ2ZXJFbmFibGVkID8gJyJUZXh0UGFyYW0iJyA6ICJUZXh0
UGFyYW0iKSwKKyAgICAgICAgICAgICAgICAgICAgbWFrZUNsb3N1cmVMb2NhbFZhcjogKHdpbmRv
dy52OFNjcmlwdERlYnVnU2VydmVyRW5hYmxlZCA/ICcibG9jYWwuVGV4dFBhcmFtIicgOiAibG9j
YWwuVGV4dFBhcmFtIiksCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSwKICAgICAg
ICAgICAgIHsKQEAgLTE1NTQsNyArMTU0Miw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdERl
YnVnSW50cmluc2ljUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX3dhaXRGb3JT
Y3JpcHRQYXVzZSgKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJj
YWxsRGVidWdnZXIiLCAiaGFuZGxlQ2xpY2siLCAiKGFub255bW91cyBmdW5jdGlvbikiXSwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiY2FsbERlYnVnZ2VyIiwgImhhbmRsZUNsaWNr
IiwgIiJdLAogICAgICAgICAgICAgbGluZU51bWJlcjogMjksCiAgICAgICAgICAgICBsaW5lVGV4
dDogIiAgZGVidWdnZXI7IgogICAgICAgICB9LApAQCAtMTU3NCw2ICsxNTYyLDE1IEBAIFRlc3RT
dWl0ZS5wcm90b3R5cGUudGVzdERlYnVnSW50cmluc2ljUHJvcGVydGllcyA9IGZ1bmN0aW9uKCkK
ICAgICB9CiAKICAgICBmdW5jdGlvbiBleGFtaW5lTG9jYWxTY29wZSgpIHsKKyAgICAgIGlmICh3
aW5kb3cudjhTY3JpcHREZWJ1Z1NlcnZlckVuYWJsZWQpIHsKKyAgICAgIHZhciBzY29wZUV4cGVj
dGF0aW9ucyA9IFsKKyAgICAgICAgICAiYSIsICJDaGlsZCIsIFsKKyAgICAgICAgICAgICJjb25z
dHJ1Y3RvciIsICJmdW5jdGlvbiBDaGlsZChuKSB7IiwgbnVsbCwKKyAgICAgICAgICAgICJwYXJl
bnRGaWVsZCIsICIxMCIsIG51bGwsCisgICAgICAgICAgICAiY2hpbGRGaWVsZCIsICIyMCIsIG51
bGwsCisgICAgICAgICAgXQorICAgICAgXTsKKyAgICAgIH0gZWxzZSB7CiAgICAgICB2YXIgc2Nv
cGVFeHBlY3RhdGlvbnMgPSBbCiAgICAgICAgICAgImEiLCAiT2JqZWN0IiwgWwogICAgICAgICAg
ICAgICAiY29uc3RydWN0b3IiLCAiZnVuY3Rpb24gQ2hpbGQoKSIsIFsKQEAgLTE2MDYsMTMgKzE2
MDMsMTQgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RGVidWdJbnRyaW5zaWNQcm9wZXJ0aWVz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgImNoaWxkRmllbGQiLCAyMCwgbnVsbCwKICAgICAg
ICAgICBdCiAgICAgICBdOworICAgICAgfQogCiAgICAgICBjaGVja1Byb3BlcnR5KGxvY2FsU2Nv
cGVTZWN0aW9uLnByb3BlcnRpZXNUcmVlT3V0bGluZSwgIjxMb2NhbCBTY29wZT4iLCBzY29wZUV4
cGVjdGF0aW9ucyk7CiAgICAgfQogCiAgICAgdmFyIHByb3BRdWV1ZSA9IFtdOwogICAgIHZhciBp
bmRleCA9IDA7Ci0gICAgdmFyIGV4cGVjdGVkRmluYWxJbmRleCA9IDg7CisgICAgdmFyIGV4cGVj
dGVkRmluYWxJbmRleCA9ICh3aW5kb3cudjhTY3JpcHREZWJ1Z1NlcnZlckVuYWJsZWQgPyAxIDog
OCk7CiAKICAgICBmdW5jdGlvbiBleHBhbmRBbmRDaGVja05leHRQcm9wZXJ0eSgpIHsKICAgICAg
ICAgaWYgKGluZGV4ID09PSBwcm9wUXVldWUubGVuZ3RoKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58796</attachid>
            <date>2010-06-15 10:42:36 -0700</date>
            <delta_ts>2010-06-15 10:51:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40623-20100615214233.patch</filename>
            <type>text/plain</type>
            <size>21291</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWM3YzRjMWJhMGE1OTY0MmMwNDE5Y2U1NTZmNTg5NDhjNWRkMDAwOS4uYzQ1MGIzYjFhY2ZiNGVm
MmFiYTUzODE2ZmNlNWIyZTEwYjkwODdkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNi0xNSAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIFdlYiBJbnNwZWN0b3I6IG1ha2UgdWkg
dGVzdHMgcGFzcyB3aGVuIFNjcmlwdERlYnVnU2VydmVyIGlzIHVzZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjIzCisKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkphdmFT
Y3JpcHRDYWxsRnJhbWU6OmZ1bmN0aW9uTmFtZSk6IHJldHVybiBlbXB0eSBzdHJpbmcgZm9yIGFu
b255bW91cyBmdW5jdGlvbnMgaW5zdGVhZCBvZiBbYW5vbnltb3VzXS4KKyAgICAgICAgKiBiaW5k
aW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRE
ZWJ1Z1NlcnZlcjo6aGFuZGxlVjhEZWJ1Z0V2ZW50KTogYXV0b2NvbnRpbnVlIG9uIHN5bnRheCBl
cnJvcnMgc2luY2UgdGhlcmUgaXMgbm8gc3RhY2sgdHJhY2UgYW5kCisgICAgICAgIG5vdCBtdWNo
IHRvIGluc3BlY3QuCisKIDIwMTAtMDYtMTUgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1ha2UgV2ViQ29yZSdzIGFuZCBKYXZhU2NyaXB0Q29yZSdzIERlcml2ZWRT
b3VyY2VzIGF2YWlsYWJsZSBmb3IgZGVidWdnaW5nIGluIHByb2R1Y3Rpb24gYnVpbGRzCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCAwNDkzMjFiNTZm
ZWExODViNDRmMDUzOTYxOGU0NDUyMGY2Y2E2ZTM2Li4yMGJmMzc4YTc4N2IyMWM2ZDQ5ODM2MDBl
YmIxYTA0NjU3YmViMmFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0phdmFTY3Jp
cHRDYWxsRnJhbWUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2YVNjcmlwdENhbGxG
cmFtZS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgU3RyaW5nIEphdmFTY3JpcHRDYWxsRnJhbWU6OmZ1
bmN0aW9uTmFtZSgpIGNvbnN0CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAg
IHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUobV9kZWJ1Z2dlckNvbnRleHQuZ2V0KCkp
OwogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZXN1bHQgPSBtX2NhbGxGcmFtZS5nZXQoKS0+
R2V0KHY4U3RyaW5nKCJmdW5jdGlvbk5hbWUiKSk7Ci0gICAgcmV0dXJuIHRvV2ViQ29yZVN0cmlu
ZyhyZXN1bHQpOworICAgIHJldHVybiB0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbE9yVW5kZWZpbmVk
Q2hlY2socmVzdWx0KTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IEphdmFTY3JpcHRDYWxs
RnJhbWU6OnNjb3BlQ2hhaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVn
U2VydmVyLmNwcAppbmRleCAzOWU0MDllODA5ODYwYTg5Y2I0ZTY3NWM5ZmZhZWMyYWZhMGJlMjc0
Li5iOGU1ZWM0MjQ0Mzg3MDVlNWQ4YzU2Njg4MDcxNDE0MTVhZGM0YTBiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMzM1LDYgKzMzNSwxMiBAQCB2b2lk
IFNjcmlwdERlYnVnU2VydmVyOjpoYW5kbGVWOERlYnVnRXZlbnQoY29uc3Qgdjg6OkRlYnVnOjpF
dmVudERldGFpbHMmIGV2ZW50RAogICAgICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZShsaXN0ZW5lciwgb2JqZWN0KTsKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT0gdjg6OkJyZWFrIHx8IGV2ZW50ID09IHY4OjpFeGNl
cHRpb24pIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQgPT0gdjg6OkV4Y2VwdGlvbikgewor
ICAgICAgICAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OlN0YWNrVHJhY2U+IHN0YWNrVHJhY2Ug
PSB2ODo6U3RhY2tUcmFjZTo6Q3VycmVudFN0YWNrVHJhY2UoMSk7CisgICAgICAgICAgICAgICAg
ICAgIC8vIFN0YWNrIHRyYWNlIGlzIGVtcHR5IGluIGNhc2Ugb2Ygc3ludGF4IGVycm9yLiBTaWxl
bnRseSBjb250aW51ZSBleGVjdXRpb24gaW4gc3VjaCBjYXNlcy4KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFzdGFja1RyYWNlLT5HZXRGcmFtZUNvdW50KCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG1fZXhlY3V0
aW9uU3RhdGUuc2V0KGV2ZW50RGV0YWlscy5HZXRFeGVjdXRpb25TdGF0ZSgpKTsKICAgICAgICAg
ICAgICAgICBtX3BhdXNlZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOwogICAgICAgICAgICAgICAgIFNj
cmlwdFN0YXRlKiBjdXJyZW50Q2FsbEZyYW1lU3RhdGUgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShm
cmFtZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDc5
MTZjZDBmOGY5MDcyNDRhZTZmYTdlNjcyYTUxZThlZmNiZTk1MTIuLjMyNWUxMmNjMzA1M2MyMzM4
Y2U2YTAxNmY3NzM5NWY3Y2Y4NGM4Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCkBAIC00MzksNiArNDM5LDEyIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6Y29ubmVjdEZyb250ZW5kKGNvbnN0IFNjcmlwdE9iamVjdCYgd2ViSW5zcGVjdG9yKQogICAg
IG1fZG9tQWdlbnQgPSBJbnNwZWN0b3JET01BZ2VudDo6Y3JlYXRlKG1fY3NzU3RvcmUuZ2V0KCks
IG1fZnJvbnRlbmQuZ2V0KCkpOwogICAgIGlmIChtX3RpbWVsaW5lQWdlbnQpCiAgICAgICAgIG1f
dGltZWxpbmVBZ2VudC0+cmVzZXRGcm9udGVuZFByb3h5T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkp
OworCisgICAgLy8gSW5pdGlhbGl6ZSBXZWIgSW5zcGVjdG9yIHRpdGxlLgorICAgIG1fZnJvbnRl
bmQtPmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+bG9h
ZGVyKCktPnVybCgpLnN0cmluZygpKTsKKworICAgIHBvcHVsYXRlU2NyaXB0T2JqZWN0cygpOwor
CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKFNjcmlwdERlYnVnU2Vy
dmVyOjpzaGFyZWQoKS5pc0RlYnVnZ2VyQWx3YXlzRW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIEZJ
WE1FICg0MDM2NCk6IFRoaXMgd2lsbCBmb3JjZSBwdXNoaW5nIHNjcmlwdCBzb3VyY2VzIHRvIGZy
b250ZW5kIGV2ZW4gaWYgc2NyaXB0CkBAIC00NTQsMTEgKzQ2MCw2IEBAIHZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKGNvbnN0IFNjcmlwdE9iamVjdCYgd2ViSW5zcGVj
dG9yKQogICAgIH0KICNlbmRpZgogCi0gICAgLy8gSW5pdGlhbGl6ZSBXZWIgSW5zcGVjdG9yIHRp
dGxlLgotICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFVSTENoYW5nZWQobV9pbnNwZWN0ZWRQYWdl
LT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnVybCgpLnN0cmluZygpKTsKLQotICAgIHBvcHVsYXRl
U2NyaXB0T2JqZWN0cygpOwotCiAgICAgaWYgKG1fc2hvd0FmdGVyVmlzaWJsZSA9PSBDdXJyZW50
UGFuZWwpIHsKICAgICAgICAgU3RyaW5nIGxhc3RBY3RpdmVQYW5lbFNldHRpbmcgPSBzZXR0aW5n
KGxhc3RBY3RpdmVQYW5lbFNldHRpbmdOYW1lKTsKICAgICAgICAgbV9zaG93QWZ0ZXJWaXNpYmxl
ID0gc3BlY2lhbFBhbmVsRm9ySlNOYW1lKGxhc3RBY3RpdmVQYW5lbFNldHRpbmcpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggYTU4ZTk1ZDQ5MTBhODM4ZDQ0YzAxNDQxNmFiNDhlYWRjMzU2ODY1YS4uZTBhNDc5
MjdlYTE1OTQ2YTAzY2Q3NGEwYTM4MjUwNWNjNWM1NmYwZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTAtMDYtMTUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW3Y4
XSBXZWIgSW5zcGVjdG9yOiBtYWtlIHVpIHRlc3RzIHBhc3Mgd2hlbiBTY3JpcHREZWJ1Z1NlcnZl
ciBpcyB1c2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDYyMworCisgICAgICAgICogc3JjL2pzL0RlYnVnZ2VyQWdlbnQuanM6CisgICAgICAgIChk
ZXZ0b29scy5EZWJ1Z2dlckFnZW50LnByb3RvdHlwZS5mb3JtYXRDYWxsRnJhbWVfKTogcmV0dXJu
IGVtcHR5IGZ1bmN0aW9uIG5hbWUgZm9yIGFub255bW91cyBmdW5jdGlvbnMuCisgICAgICAgICog
c3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzOgorICAgICAgICAqIHNyYy9qcy9UZXN0cy5qczoKKyAg
ICAgICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RQcm9maWxlclRhYi5maW5kVmlzaWJsZVZp
ZXcpOgorICAgICAgICAoLlRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFByb2ZpbGVyVGFiKToKKyAg
ICAgICAgKC5UZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTY3JpcHRzVGFiSXNQb3B1bGF0ZWRPbklu
c3BlY3RlZFBhZ2VSZWZyZXNoLndhaXRVbnRpbFNjcmlwdElzUGFyc2VkKToKKyAgICAgICAgKC5U
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTZXRCcmVha3BvaW50LnRoaXMpOgorICAgICAgICAoLlRl
c3RTdWl0ZS5wcm90b3R5cGUudGVzdFNldEJyZWFrcG9pbnQpOgorICAgICAgICAoLlRlc3RTdWl0
ZS5wcm90b3R5cGUudGVzdEV2YWxPbkNhbGxGcmFtZS53YWl0Rm9yQnJlYWtwb2ludEhpdCk6Cisg
ICAgICAgICguVGVzdFN1aXRlLnByb3RvdHlwZS5fZXhlY3V0ZUNvZGVXaGVuU2NyaXB0c0FyZVBh
cnNlZC5leGVjdXRlRnVuY3Rpb25Jbkluc3BlY3RlZFBhZ2UpOgorICAgICAgICAoLlRlc3RTdWl0
ZS5wcm90b3R5cGUudGVzdEV4cGFuZFNjb3BlLmV4YW1pbmVTY29wZXMpOgorICAgICAgICAoLlRl
c3RTdWl0ZS5wcm90b3R5cGUudGVzdEV4cGFuZFNjb3BlKToKKyAgICAgICAgKC5UZXN0U3VpdGUu
cHJvdG90eXBlLnRlc3REZWJ1Z0ludHJpbnNpY1Byb3BlcnRpZXMpOgorCiAyMDEwLTA2LTE0ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IENocm9t
aXVtIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlckFn
ZW50LmpzIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlckFnZW50LmpzCmluZGV4IDhk
MjQ1N2ZiZGNmOWZhNWVmZDljZTVmNDEzMzg2ODNkNjVhYmI3NDcuLjAxZDc2MjdmYzJiMDFmYjMw
MjkzNGJiNDdlMDExM2MyY2Q3Y2YxNzQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvRGVidWdnZXJBZ2VudC5qcworKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2Vy
QWdlbnQuanMKQEAgLTEwNzUsNyArMTA3NSw3IEBAIGRldnRvb2xzLkRlYnVnZ2VyQWdlbnQucHJv
dG90eXBlLmZvcm1hdENhbGxGcmFtZV8gPSBmdW5jdGlvbihzdGFja0ZyYW1lKQogICAgICAgICBX
ZWJJbnNwZWN0b3IucGFyc2VkU2NyaXB0U291cmNlKHNvdXJjZUlkLCBudWxsLCBudWxsLCAwLCBX
ZWJJbnNwZWN0b3IuU2NyaXB0LldvcmxkVHlwZS5NQUlOX1dPUkxEKTsKICAgICB9CiAKLSAgICB2
YXIgZnVuY05hbWUgPSBmdW5jLm5hbWUgfHwgZnVuYy5pbmZlcnJlZE5hbWUgfHwgIihhbm9ueW1v
dXMgZnVuY3Rpb24pIjsKKyAgICB2YXIgZnVuY05hbWUgPSBmdW5jLm5hbWUgfHwgZnVuYy5pbmZl
cnJlZE5hbWU7CiAgICAgdmFyIGxpbmUgPSBkZXZ0b29scy5EZWJ1Z2dlckFnZW50LnY4VG9Xd2Vi
a2l0TGluZU51bWJlcl8oc3RhY2tGcmFtZS5saW5lKTsKIAogICAgIC8vIEFkZCBiYXNpYyBzY29w
ZSBjaGFpbiBpbmZvIHdpdGggc2NvcGUgdmFyaWFibGVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMv
RGVidWdnZXJTY3JpcHQuanMKaW5kZXggM2ZmM2ViNzBkYjZlY2Y5MGFkZDRiOWJiMDYyOTEzNWVk
NmUxMTg5NC4uYmFkZGI3ZGJjOWQ5MWJiNDlkOTE1YWE4OWU0NzU4NjAyZWE3N2U0NiAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcworKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCkBAIC0yMTksOCArMjE5LDYgQEAg
RGVidWdnZXJTY3JpcHQuX2ZyYW1lTWlycm9yVG9KU0NhbGxGcmFtZSA9IGZ1bmN0aW9uKGZyYW1l
TWlycm9yLCBjYWxsZXJGcmFtZSkKICAgICB2YXIgZnVuY3Rpb25OYW1lOwogICAgIGlmIChmdW5j
KQogICAgICAgICBmdW5jdGlvbk5hbWUgPSBmdW5jLm5hbWUoKSB8fCBmdW5jLmluZmVycmVkTmFt
ZSgpOwotICAgIGlmICghZnVuY3Rpb25OYW1lKQotICAgICAgICBmdW5jdGlvbk5hbWUgPSAiW2Fu
b255bW91c10iOwogICAgICAgICAKICAgICAvLyBHZXQgc2NyaXB0IElELgogICAgIHZhciBzY3Jp
cHQgPSBmdW5jLnNjcmlwdCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9U
ZXN0cy5qcyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvVGVzdHMuanMKaW5kZXggZmE5MTBhYjY5
MzFiZTdjNGE5NjMxMDY4ZmIzOWU1YjY5MDQzNTI0NS4uMDM3NWYxMDhmNTZhMTk4MzQ3MzFhNDcx
MmIyYTM2NzFiNTgwY2Y2MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0
cy5qcworKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL1Rlc3RzLmpzCkBAIC00NTMsNyArNDUz
LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0UHJvZmlsZXJUYWIgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICBzZXRUaW1lb3V0KGZpbmRWaXNpYmxlVmlldywgMCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgc2V0VGltZW91dChmaW5kRGlzcGxheWVkTm9kZSwg
MCk7ICAgICAgICAgICAgCisgICAgICAgIHNldFRpbWVvdXQoZmluZERpc3BsYXllZE5vZGUsIDAp
OwogICAgIH0KIAogICAgIGZpbmRWaXNpYmxlVmlldygpOwpAQCAtNDg4LDMxICs0ODgsMTkgQEAg
VGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U2NyaXB0c1RhYklzUG9wdWxhdGVkT25JbnNwZWN0ZWRQ
YWdlUmVmcmVzaCA9IGZ1bmN0aW9uKCkKICAgICB2YXIgdGVzdCA9IHRoaXM7CiAgICAgdGhpcy5h
c3NlcnRFcXVhbHMoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cywgV2ViSW5zcGVjdG9yLmN1
cnJlbnRQYW5lbCwgIkVsZW1lbnRzIHBhbmVsIHNob3VsZCBiZSBjdXJyZW50IG9uZS4iKTsKIAot
ICAgIHRoaXMuYWRkU25pZmZlcihkZXZ0b29scy5EZWJ1Z2dlckFnZW50LnByb3RvdHlwZSwgInJl
c2V0Iiwgd2FpdFVudGlsU2NyaXB0SXNQYXJzZWQpOworICAgIHRoaXMuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMsICJyZXNldCIsIHdhaXRVbnRpbFNjcmlwdElzUGFyc2Vk
KTsKIAogICAgIC8vIFJlbG9hZCBpbnNwZWN0ZWQgcGFnZS4gSXQgd2lsbCByZXNldCB0aGUgZGVi
dWdnZXIgYWdlbnQuCiAgICAgdGVzdC5ldmFsdWF0ZUluQ29uc29sZV8oCiAgICAgICAgICJ3aW5k
b3cubG9jYXRpb24ucmVsb2FkKHRydWUpOyIsCi0gICAgICAgIGZ1bmN0aW9uKHJlc3VsdFRleHQp
IHsKLSAgICAgICAgICAgIHRlc3QuYXNzZXJ0RXF1YWxzKCJ1bmRlZmluZWQiLCByZXN1bHRUZXh0
LCAiVW5leHBlY3RlZCByZXN1bHQgb2YgcmVsb2FkKCkuIik7Ci0gICAgICAgIH0pOworICAgICAg
ICBmdW5jdGlvbihyZXN1bHRUZXh0KSB7fSk7CiAKICAgICBmdW5jdGlvbiB3YWl0VW50aWxTY3Jp
cHRJc1BhcnNlZCgpIHsKLSAgICAgICAgdmFyIHBhcnNlZCA9IGRldnRvb2xzLnRvb2xzLmdldERl
YnVnZ2VyQWdlbnQoKS5wYXJzZWRTY3JpcHRzXzsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gcGFy
c2VkKSB7Ci0gICAgICAgICAgICB2YXIgdXJsID0gcGFyc2VkW2lkXS5nZXRVcmwoKTsKLSAgICAg
ICAgICAgIGlmICh1cmwgJiYgdXJsLnNlYXJjaCgiZGVidWdnZXJfdGVzdF9wYWdlLmh0bWwiKSAh
PT0gLTEpIHsKLSAgICAgICAgICAgICAgICBjaGVja1NjcmlwdHNQYW5lbCgpOwotICAgICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICB0ZXN0LmFk
ZFNuaWZmZXIoZGV2dG9vbHMuRGVidWdnZXJBZ2VudC5wcm90b3R5cGUsICJhZGRTY3JpcHRJbmZv
XyIsIHdhaXRVbnRpbFNjcmlwdElzUGFyc2VkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjaGVj
a1NjcmlwdHNQYW5lbCgpIHsKICAgICAgICAgdGVzdC5zaG93UGFuZWwoInNjcmlwdHMiKTsKLSAg
ICAgICAgdGVzdC5hc3NlcnRUcnVlKHRlc3QuX3NjcmlwdHNBcmVQYXJzZWQoWyJkZWJ1Z2dlcl90
ZXN0X3BhZ2UuaHRtbCJdKSwgIkluc3BlY3RlZCBzY3JpcHQgbm90IGZvdW5kIGluIHRoZSBzY3Jp
cHRzIGxpc3QiKTsKLSAgICAgICAgdGVzdC5yZWxlYXNlQ29udHJvbCgpOworICAgICAgICB0ZXN0
Ll93YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkKFsiZGVidWdnZXJfdGVzdF9wYWdlLmh0bWwiXSwK
KyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRlc3QucmVsZWFzZUNv
bnRyb2woKTsKKyAgICAgICAgICAgIH0pOwogICAgIH0KIAogICAgIC8vIFdhaXQgdW50aWwgYWxs
IHNjcmlwdHMgYXJlIGFkZGVkIHRvIHRoZSBkZWJ1Z2dlci4KQEAgLTYwMyw3ICs1OTEsNyBAQCBU
ZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTZXRCcmVha3BvaW50ID0gZnVuY3Rpb24oKQogICAgIHZh
ciB0ZXN0ID0gdGhpczsKICAgICB0aGlzLnNob3dQYW5lbCgic2NyaXB0cyIpOwogCi0gICAgdmFy
IGJyZWFrcG9pbnRMaW5lID0gMTI7CisgICAgdmFyIGJyZWFrcG9pbnRMaW5lID0gMTYKIAogICAg
IHRoaXMuX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWQoWyJkZWJ1Z2dlcl90ZXN0X3BhZ2UuaHRt
bCJdLAogICAgICAgICBmdW5jdGlvbigpIHsKQEAgLTYxMSwxNSArNTk5LDI1IEBAIFRlc3RTdWl0
ZS5wcm90b3R5cGUudGVzdFNldEJyZWFrcG9pbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAg
ICJkZWJ1Z2dlcl90ZXN0X3BhZ2UuaHRtbCIsCiAgICAgICAgICAgICAgIGZ1bmN0aW9uKHZpZXcs
IHVybCkgewogICAgICAgICAgICAgICAgIHZpZXcuX2FkZEJyZWFrcG9pbnQoYnJlYWtwb2ludExp
bmUpOwotICAgICAgICAgICAgICAgIC8vIEZvcmNlIHY4IGV4ZWN1dGlvbi4KLSAgICAgICAgICAg
ICAgICBSZW1vdGVEZWJ1Z2dlckFnZW50LnByb2Nlc3NEZWJ1Z0NvbW1hbmRzKCk7Ci0gICAgICAg
ICAgICAgICAgdGVzdC53YWl0Rm9yU2V0QnJlYWtwb2ludFJlc3BvbnNlXyh1cmwsIGJyZWFrcG9p
bnRMaW5lLAotICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3QucmVsZWFzZUNvbnRyb2woKTsKKworICAgICAgICAgICAgICAgIHRlc3Qu
ZXZhbHVhdGVJbkNvbnNvbGVfKAorICAgICAgICAgICAgICAgICAgICAnc2V0VGltZW91dCgiY2Fs
Y3VsYXRlKCkiICwgMCknLAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihyZXN1bHRUZXh0
KSB7CisgICAgICAgICAgICAgICAgICAgICAgdGVzdC5hc3NlcnRUcnVlKCFpc05hTihyZXN1bHRU
ZXh0KSwgIkZhaWxlZCB0byBnZXQgdGltZXIgaWQ6ICIgKyByZXN1bHRUZXh0KTsKICAgICAgICAg
ICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKIAorICAgIHRo
aXMuX3dhaXRGb3JTY3JpcHRQYXVzZSgKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb25z
T25TdGFjazogWyJjYWxjdWxhdGUiLCAiIl0sCisgICAgICAgICAgICBsaW5lTnVtYmVyOiBicmVh
a3BvaW50TGluZSwKKyAgICAgICAgICAgIGxpbmVUZXh0OiAiICByZXN1bHQgPSBmaWIobGFzdFZh
bCsrKTsiCisgICAgICAgIH0sCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVz
dC5yZWxlYXNlQ29udHJvbCgpOworICAgICAgICB9KTsKKwogICAgIHRoaXMudGFrZUNvbnRyb2wo
KTsKIH07CiAKQEAgLTYzMiwyMSArNjMwLDEzIEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFBh
dXNlT25FeGNlcHRpb24gPSBmdW5jdGlvbigpCiAgICAgdGhpcy5zaG93UGFuZWwoInNjcmlwdHMi
KTsKICAgICB2YXIgdGVzdCA9IHRoaXM7CiAKLSAgICAvLyBUT0RPKHl1cnlzKTogcmVtb3ZlIGVs
c2UgYnJhbmNoIG9uY2UgdGhlIHN0YXRlcyBhcmUgc3VwcG9ydGVkLgotICAgIGlmIChXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUpIHsKLSAgICAgICAgd2hp
bGUgKFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uc3Rh
dGUgIT09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Q
YXVzZU9uVW5jYXVnaHRFeGNlcHRpb25zKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJl
bnRQYW5lbC5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5lbGVtZW50LmNsaWNrKCk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHBhdXNlIG9uIGV4Y2VwdGlvbnMgaXMgb24uCi0g
ICAgICAgIGlmICghV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC5fcGF1c2VPbkV4Y2VwdGlvbkJ1
dHRvbi50b2dnbGVkKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbC5fcGF1
c2VPbkV4Y2VwdGlvbkJ1dHRvbi5lbGVtZW50LmNsaWNrKCk7Ci0gICAgfQorICAgIEluc3BlY3Rv
ckJhY2tlbmQuc2V0UGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZShXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuUGF1c2VPblVuY2F1Z2h0RXhjZXB0aW9ucyk7CiAK
ICAgICB0aGlzLl9leGVjdXRlQ29kZVdoZW5TY3JpcHRzQXJlUGFyc2VkKCJoYW5kbGVDbGljaygp
IiwgWyJwYXVzZV9vbl9leGNlcHRpb24uaHRtbCJdKTsKIAogICAgIHRoaXMuX3dhaXRGb3JTY3Jp
cHRQYXVzZSgKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJ0aHJv
d0FuRXhjZXB0aW9uIiwgImhhbmRsZUNsaWNrIiwgIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisg
ICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbInRocm93QW5FeGNlcHRpb24iLCAiaGFuZGxl
Q2xpY2siLCAiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiA2LAogICAgICAgICAgICAgbGlu
ZVRleHQ6ICIgIHJldHVybiB1bmtub3duX3ZhcjsiCiAgICAgICAgIH0sCkBAIC03MjgsNyArNzE4
LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0UGF1c2VXaGVuU2NyaXB0SXNSdW5uaW5nID0g
ZnVuY3Rpb24oKQogCiAgICAgICAgIHRlc3QuX3dhaXRGb3JTY3JpcHRQYXVzZSgKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImhhbmRsZUNsaWNrIiwg
Iihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFj
azogWyJoYW5kbGVDbGljayIsICIiXSwKICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiA1LAog
ICAgICAgICAgICAgICAgIGxpbmVUZXh0OiAiICB3aGlsZSh0cnVlKSB7IgogICAgICAgICAgICAg
fSwKQEAgLTg2MSwzNiArODUxLDMwIEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdEV2YWxPbkNh
bGxGcmFtZSA9IGZ1bmN0aW9uKCkKICAgICB2YXIgYnJlYWtwb2ludExpbmUgPSAxNjsKIAogICAg
IHZhciB0ZXN0ID0gdGhpczsKLSAgICB0aGlzLmFkZFNuaWZmZXIoZGV2dG9vbHMuRGVidWdnZXJB
Z2VudC5wcm90b3R5cGUsICJoYW5kbGVTY3JpcHRzUmVzcG9uc2VfIiwKLSAgICAgICAgZnVuY3Rp
b24obXNnKSB7CisgICAgdGhpcy5fd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZChbImRlYnVnZ2Vy
X3Rlc3RfcGFnZS5odG1sIl0sCisgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgIHRlc3Qu
c2hvd01haW5QYWdlU2NyaXB0U291cmNlXygKICAgICAgICAgICAgICAgImRlYnVnZ2VyX3Rlc3Rf
cGFnZS5odG1sIiwKICAgICAgICAgICAgICAgZnVuY3Rpb24odmlldywgdXJsKSB7CiAgICAgICAg
ICAgICAgICAgICB2aWV3Ll9hZGRCcmVha3BvaW50KGJyZWFrcG9pbnRMaW5lKTsKLSAgICAgICAg
ICAgICAgICAgIC8vIEZvcmNlIHY4IGV4ZWN1dGlvbi4KLSAgICAgICAgICAgICAgICAgIFJlbW90
ZURlYnVnZ2VyQWdlbnQucHJvY2Vzc0RlYnVnQ29tbWFuZHMoKTsKLSAgICAgICAgICAgICAgICAg
IHRlc3Qud2FpdEZvclNldEJyZWFrcG9pbnRSZXNwb25zZV8odXJsLCBicmVha3BvaW50TGluZSwg
c2V0QnJlYWtwb2ludENhbGxiYWNrKTsKKworICAgICAgICAgICAgICAgICAgLy8gU2luY2UgYnJl
YWtwb2ludHMgYXJlIGlnbm9yZWQgaW4gZXZhbHMnIGNhbGN1bGF0ZSgpIGZ1bmN0aW9uIGlzCisg
ICAgICAgICAgICAgICAgICAvLyBleGVjdXRlIGFmdGVyIHplcm8tdGltZW91dCBzbyB0aGF0IHRo
ZSBicmVha3BvaW50IGlzIGhpdC4KKyAgICAgICAgICAgICAgICAgIHRlc3QuZXZhbHVhdGVJbkNv
bnNvbGVfKAorICAgICAgICAgICAgICAgICAgICAgICdzZXRUaW1lb3V0KCJjYWxjdWxhdGUoMTIz
KSIgLCAwKScsCisgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24ocmVzdWx0VGV4dCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LmFzc2VydFRydWUoIWlzTmFOKHJlc3VsdFRl
eHQpLCAiRmFpbGVkIHRvIGdldCB0aW1lciBpZDogIiArIHJlc3VsdFRleHQpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICB3YWl0Rm9yQnJlYWtwb2ludEhpdCgpOworICAgICAgICAgICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAKLSAgICBmdW5jdGlv
biBzZXRCcmVha3BvaW50Q2FsbGJhY2soKSB7Ci0gICAgICAvLyBTaW5jZSBicmVha3BvaW50cyBh
cmUgaWdub3JlZCBpbiBldmFscycgY2FsY3VsYXRlKCkgZnVuY3Rpb24gaXMKLSAgICAgIC8vIGV4
ZWN1dGUgYWZ0ZXIgemVyby10aW1lb3V0IHNvIHRoYXQgdGhlIGJyZWFrcG9pbnQgaXMgaGl0Lgot
ICAgICAgdGVzdC5ldmFsdWF0ZUluQ29uc29sZV8oCi0gICAgICAgICAgJ3NldFRpbWVvdXQoImNh
bGN1bGF0ZSgxMjMpIiAsIDApJywKLSAgICAgICAgICBmdW5jdGlvbihyZXN1bHRUZXh0KSB7Ci0g
ICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZSghaXNOYU4ocmVzdWx0VGV4dCksICJGYWlsZWQg
dG8gZ2V0IHRpbWVyIGlkOiAiICsgcmVzdWx0VGV4dCk7Ci0gICAgICAgICAgICAgIHdhaXRGb3JC
cmVha3BvaW50SGl0KCk7Ci0gICAgICAgICAgfSk7Ci0gICAgfQotCiAgICAgZnVuY3Rpb24gd2Fp
dEZvckJyZWFrcG9pbnRIaXQoKSB7Ci0gICAgICB0ZXN0LmFkZFNuaWZmZXIoCi0gICAgICAgICAg
ZGV2dG9vbHMuRGVidWdnZXJBZ2VudC5wcm90b3R5cGUsCi0gICAgICAgICAgImhhbmRsZUJhY2t0
cmFjZVJlc3BvbnNlXyIsCi0gICAgICAgICAgZnVuY3Rpb24obXNnKSB7Ci0gICAgICAgICAgICB0
ZXN0LmFzc2VydEVxdWFscygyLCB0aGlzLmNhbGxGcmFtZXNfLmxlbmd0aCwgIlVuZXhwZWN0ZWQg
c3RhY2sgZGVwdGggb24gdGhlIGJyZWFrcG9pbnQuICIgKyBKU09OLnN0cmluZ2lmeShtc2cpKTsK
LSAgICAgICAgICAgIHRlc3QuYXNzZXJ0RXF1YWxzKCJjYWxjdWxhdGUiLCB0aGlzLmNhbGxGcmFt
ZXNfWzBdLmZ1bmN0aW9uTmFtZSwgIlVuZXhwZWN0ZWQgdG9wIGZyYW1lIGZ1bmN0aW9uLiIpOwor
ICAgICAgdGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwKKyAgICAgICAgICAicGF1c2VkU2Ny
aXB0IiwKKyAgICAgICAgICBmdW5jdGlvbihjYWxsRnJhbWVzKSB7CisgICAgICAgICAgICB0ZXN0
LmFzc2VydEVxdWFscygyLCBjYWxsRnJhbWVzLmxlbmd0aCwgIlVuZXhwZWN0ZWQgc3RhY2sgZGVw
dGggb24gdGhlIGJyZWFrcG9pbnQuICIgKyBKU09OLnN0cmluZ2lmeShjYWxsRnJhbWVzLCBudWxs
LCA0KSk7CisgICAgICAgICAgICB0ZXN0LmFzc2VydEVxdWFscygiY2FsY3VsYXRlIiwgY2FsbEZy
YW1lc1swXS5mdW5jdGlvbk5hbWUsICJVbmV4cGVjdGVkIHRvcCBmcmFtZSBmdW5jdGlvbi4iKTsK
ICAgICAgICAgICAgIC8vIEV2YWx1YXRlICJlKzEiIHdoZXJlICJlIiBpcyBhbiBhcmd1bWVudCBv
ZiAiY2FsY3VsYXRlIiBmdW5jdGlvbi4KICAgICAgICAgICAgIHRlc3QuZXZhbHVhdGVJbkNvbnNv
bGVfKAogICAgICAgICAgICAgICAgICJlKzEiLApAQCAtOTE2LDcgKzkwMCw3IEBAIFRlc3RTdWl0
ZS5wcm90b3R5cGUudGVzdENvbXBsZXRpb25PblBhdXNlID0gZnVuY3Rpb24oKQogCiAgICAgdGhp
cy5fd2FpdEZvclNjcmlwdFBhdXNlKAogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNP
blN0YWNrOiBbImlubmVyRnVuY3Rpb24iLCAiaGFuZGxlQ2xpY2siLCAiKGFub255bW91cyBmdW5j
dGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiaW5uZXJGdW5jdGlvbiIs
ICJoYW5kbGVDbGljayIsICIiXSwKICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDksCiAgICAgICAg
ICAgICBsaW5lVGV4dDogIiAgICBkZWJ1Z2dlcjsiCiAgICAgICAgIH0sCkBAIC05NjMsNiArOTQ3
LDkgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0Q29tcGxldGlvbk9uUGF1c2UgPSBmdW5jdGlv
bigpCiAgKi8KIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdEF1dG9Db250aW51ZU9uU3ludGF4RXJy
b3IgPSBmdW5jdGlvbigpCiB7CisgICAgaWYgKHdpbmRvdy52OFNjcmlwdERlYnVnU2VydmVyRW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgdGhpcy5zaG93UGFuZWwoInNjcmlwdHMiKTsK
ICAgICB2YXIgdGVzdCA9IHRoaXM7CiAKQEAgLTk3OCw2ICs5NjUsNyBAQCBUZXN0U3VpdGUucHJv
dG90eXBlLnRlc3RBdXRvQ29udGludWVPblN5bnRheEVycm9yID0gZnVuY3Rpb24oKQogICAgICAg
ICB9CiAgICAgfQogCisKICAgICB0aGlzLmFkZFNuaWZmZXIoZGV2dG9vbHMuRGVidWdnZXJBZ2Vu
dC5wcm90b3R5cGUsICJoYW5kbGVTY3JpcHRzUmVzcG9uc2VfIiwKICAgICAgICAgZnVuY3Rpb24o
bXNnKSB7CiAgICAgICAgICAgICBjaGVja1NjcmlwdHNMaXN0KCk7CkBAIC0xMTQwLDcgKzExMjgs
NyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLl9leGVjdXRlQ29kZVdoZW5TY3JpcHRzQXJlUGFyc2Vk
ID0gZnVuY3Rpb24oY29kZSwgZXhwZWN0ZWRTYwogICAgICAgICB0ZXN0LmV2YWx1YXRlSW5Db25z
b2xlXygKICAgICAgICAgICAgICdzZXRUaW1lb3V0KCInICsgY29kZSArICciICwgMCknLAogICAg
ICAgICAgICAgZnVuY3Rpb24ocmVzdWx0VGV4dCkgewotICAgICAgICAgICAgICAgIHRlc3QuYXNz
ZXJ0VHJ1ZSghaXNOYU4ocmVzdWx0VGV4dCksICJGYWlsZWQgdG8gZ2V0IHRpbWVyIGlkOiAiICsg
cmVzdWx0VGV4dCk7CisgICAgICAgICAgICAgICAgdGVzdC5hc3NlcnRUcnVlKCFpc05hTihyZXN1
bHRUZXh0KSwgIkZhaWxlZCB0byBnZXQgdGltZXIgaWQ6ICIgKyByZXN1bHRUZXh0ICsgIi4gQ29k
ZTogIiArIGNvZGUpOwogICAgICAgICAgICAgfSk7CiAgICAgfQogCkBAIC0xMTg4LDcgKzExNzYs
NyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTdGVwT3ZlciA9IGZ1bmN0aW9uKCkKIAogICAg
IHRoaXMuX3BlcmZvcm1TdGVwcyhbCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09u
U3RhY2s6IFsiZCIsImEiLCIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAgICAgICAgICAgZnVu
Y3Rpb25zT25TdGFjazogWyJkIiwiYSIsIiJdLAogICAgICAgICAgICAgbGluZU51bWJlcjogMywK
ICAgICAgICAgICAgIGxpbmVUZXh0OiAiICAgIGRlYnVnZ2VyOyIKICAgICAgICAgfSwKQEAgLTEx
OTYsNyArMTE4NCw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdFN0ZXBPdmVyID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtc3RlcC1v
dmVyIikuY2xpY2soKTsKICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAgZnVuY3Rp
b25zT25TdGFjazogWyJkIiwiYSIsIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAg
ICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwiIl0sCiAgICAgICAgICAgICBsaW5lTnVtYmVy
OiA1LAogICAgICAgICAgICAgbGluZVRleHQ6ICIgIHZhciB5ID0gZmFjdCgxMCk7IgogICAgICAg
ICB9LApAQCAtMTIwNCw3ICsxMTkyLDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U3RlcE92
ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Ny
aXB0cy1zdGVwLW92ZXIiKS5jbGljaygpOwogICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAg
ICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwiKGFub255bW91cyBmdW5jdGlvbikiXSwK
KyAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIiXSwKICAgICAgICAgICAg
IGxpbmVOdW1iZXI6IDYsCiAgICAgICAgICAgICBsaW5lVGV4dDogIiAgcmV0dXJuIHk7IgogICAg
ICAgICB9LApAQCAtMTIyOSw3ICsxMjE3LDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0U3Rl
cE91dCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX3BlcmZvcm1TdGVwcyhbCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIsImEiLCIoYW5vbnltb3VzIGZ1bmN0
aW9uKSJdLAorICAgICAgICAgICAgZnVuY3Rpb25zT25TdGFjazogWyJkIiwiYSIsIiJdLAogICAg
ICAgICAgICAgbGluZU51bWJlcjogMywKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICAgIGRlYnVn
Z2VyOyIKICAgICAgICAgfSwKQEAgLTEyMzcsNyArMTIyNSw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5
cGUudGVzdFN0ZXBPdXQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic2NyaXB0cy1zdGVwLW91dCIpLmNsaWNrKCk7CiAgICAgICAgIH0sCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiYSIsIihhbm9ueW1vdXMgZnVuY3Rp
b24pIl0sCisgICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImEiLCIiXSwKICAgICAgICAg
ICAgIGxpbmVOdW1iZXI6IDgsCiAgICAgICAgICAgICBsaW5lVGV4dDogIiAgcHJpbnRSZXN1bHQo
cmVzdWx0KTsiCiAgICAgICAgIH0sCkBAIC0xMjYyLDcgKzEyNTAsNyBAQCBUZXN0U3VpdGUucHJv
dG90eXBlLnRlc3RTdGVwSW4gPSBmdW5jdGlvbigpCiAKICAgICB0aGlzLl9wZXJmb3JtU3RlcHMo
WwogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwiKGFu
b255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsiZCIs
ImEiLCIiXSwKICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDMsCiAgICAgICAgICAgICBsaW5lVGV4
dDogIiAgICBkZWJ1Z2dlcjsiCiAgICAgICAgIH0sCkBAIC0xMjcwLDcgKzEyNTgsNyBAQCBUZXN0
U3VpdGUucHJvdG90eXBlLnRlc3RTdGVwSW4gPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1zdGVwLW92ZXIiKS5jbGljaygpOwogICAgICAg
ICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImQiLCJhIiwi
KGFub255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uc09uU3RhY2s6IFsi
ZCIsImEiLCIiXSwKICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDUsCiAgICAgICAgICAgICBsaW5l
VGV4dDogIiAgdmFyIHkgPSBmYWN0KDEwKTsiCiAgICAgICAgIH0sCkBAIC0xMjc4LDcgKzEyNjYs
NyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RTdGVwSW4gPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1zdGVwLWludG8iKS5jbGljaygp
OwogICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBb
ImZhY3QiLCJkIiwiYSIsIihhbm9ueW1vdXMgZnVuY3Rpb24pIl0sCisgICAgICAgICAgICBmdW5j
dGlvbnNPblN0YWNrOiBbImZhY3QiLCJkIiwiYSIsIiJdLAogICAgICAgICAgICAgbGluZU51bWJl
cjogMTAsCiAgICAgICAgICAgICBsaW5lVGV4dDogIiAgdmFyIHIgPSAxOyIKICAgICAgICAgfSwK
QEAgLTE0NDAsNyArMTQyOCw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVzdEV4cGFuZFNjb3Bl
ID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5fd2FpdEZvclNjcmlwdFBhdXNlKAogICAgICAgICB7
Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImlubmVyRnVuY3Rpb24iLCAiaGFuZGxl
Q2xpY2siLCAiKGFub255bW91cyBmdW5jdGlvbikiXSwKKyAgICAgICAgICAgIGZ1bmN0aW9uc09u
U3RhY2s6IFsiaW5uZXJGdW5jdGlvbiIsICJoYW5kbGVDbGljayIsICIiXSwKICAgICAgICAgICAg
IGxpbmVOdW1iZXI6IDgsCiAgICAgICAgICAgICBsaW5lVGV4dDogIiAgICBkZWJ1Z2dlcjsiCiAg
ICAgICAgIH0sCkBAIC0xNDYzLDE0ICsxNDUxLDE0IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUudGVz
dEV4cGFuZFNjb3BlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsK
ICAgICAgICAgICAgICAgICAgICAgeDoiMjAwOSIsCiAgICAgICAgICAgICAgICAgICAgIGlubmVy
RnVuY3Rpb25Mb2NhbFZhcjoiMjAxMSIsCi0gICAgICAgICAgICAgICAgICAgICJ0aGlzIjogImds
b2JhbCIsCisgICAgICAgICAgICAgICAgICAgICJ0aGlzIjogKHdpbmRvdy52OFNjcmlwdERlYnVn
U2VydmVyRW5hYmxlZCA/ICJET01XaW5kb3ciIDogImdsb2JhbCIpLAogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdGl0bGU6
ICJDbG9zdXJlIiwKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIG46IlRleHRQYXJhbSIsCi0gICAgICAgICAgICAgICAgICAgIG1ha2VDbG9zdXJlTG9j
YWxWYXI6ImxvY2FsLlRleHRQYXJhbSIsCisgICAgICAgICAgICAgICAgICAgIG46ICh3aW5kb3cu
djhTY3JpcHREZWJ1Z1NlcnZlckVuYWJsZWQgPyAnIlRleHRQYXJhbSInIDogIlRleHRQYXJhbSIp
LAorICAgICAgICAgICAgICAgICAgICBtYWtlQ2xvc3VyZUxvY2FsVmFyOiAod2luZG93LnY4U2Ny
aXB0RGVidWdTZXJ2ZXJFbmFibGVkID8gJyJsb2NhbC5UZXh0UGFyYW0iJyA6ICJsb2NhbC5UZXh0
UGFyYW0iKSwKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ewpAQCAtMTU1NCw3ICsxNTQyLDcgQEAgVGVzdFN1aXRlLnByb3RvdHlwZS50ZXN0RGVidWdJbnRy
aW5zaWNQcm9wZXJ0aWVzID0gZnVuY3Rpb24oKQogCiAgICAgdGhpcy5fd2FpdEZvclNjcmlwdFBh
dXNlKAogICAgICAgICB7Ci0gICAgICAgICAgICBmdW5jdGlvbnNPblN0YWNrOiBbImNhbGxEZWJ1
Z2dlciIsICJoYW5kbGVDbGljayIsICIoYW5vbnltb3VzIGZ1bmN0aW9uKSJdLAorICAgICAgICAg
ICAgZnVuY3Rpb25zT25TdGFjazogWyJjYWxsRGVidWdnZXIiLCAiaGFuZGxlQ2xpY2siLCAiIl0s
CiAgICAgICAgICAgICBsaW5lTnVtYmVyOiAyOSwKICAgICAgICAgICAgIGxpbmVUZXh0OiAiICBk
ZWJ1Z2dlcjsiCiAgICAgICAgIH0sCkBAIC0xNTc0LDYgKzE1NjIsMTUgQEAgVGVzdFN1aXRlLnBy
b3RvdHlwZS50ZXN0RGVidWdJbnRyaW5zaWNQcm9wZXJ0aWVzID0gZnVuY3Rpb24oKQogICAgIH0K
IAogICAgIGZ1bmN0aW9uIGV4YW1pbmVMb2NhbFNjb3BlKCkgeworICAgICAgaWYgKHdpbmRvdy52
OFNjcmlwdERlYnVnU2VydmVyRW5hYmxlZCkgeworICAgICAgdmFyIHNjb3BlRXhwZWN0YXRpb25z
ID0gWworICAgICAgICAgICJhIiwgIkNoaWxkIiwgWworICAgICAgICAgICAgImNvbnN0cnVjdG9y
IiwgImZ1bmN0aW9uIENoaWxkKG4pIHsiLCBudWxsLAorICAgICAgICAgICAgInBhcmVudEZpZWxk
IiwgIjEwIiwgbnVsbCwKKyAgICAgICAgICAgICJjaGlsZEZpZWxkIiwgIjIwIiwgbnVsbCwKKyAg
ICAgICAgICBdCisgICAgICBdOworICAgICAgfSBlbHNlIHsKICAgICAgIHZhciBzY29wZUV4cGVj
dGF0aW9ucyA9IFsKICAgICAgICAgICAiYSIsICJPYmplY3QiLCBbCiAgICAgICAgICAgICAgICJj
b25zdHJ1Y3RvciIsICJmdW5jdGlvbiBDaGlsZCgpIiwgWwpAQCAtMTYwNiwxMyArMTYwMywxNCBA
QCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3REZWJ1Z0ludHJpbnNpY1Byb3BlcnRpZXMgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICAiY2hpbGRGaWVsZCIsIDIwLCBudWxsLAogICAgICAgICAgIF0K
ICAgICAgIF07CisgICAgICB9CiAKICAgICAgIGNoZWNrUHJvcGVydHkobG9jYWxTY29wZVNlY3Rp
b24ucHJvcGVydGllc1RyZWVPdXRsaW5lLCAiPExvY2FsIFNjb3BlPiIsIHNjb3BlRXhwZWN0YXRp
b25zKTsKICAgICB9CiAKICAgICB2YXIgcHJvcFF1ZXVlID0gW107CiAgICAgdmFyIGluZGV4ID0g
MDsKLSAgICB2YXIgZXhwZWN0ZWRGaW5hbEluZGV4ID0gODsKKyAgICB2YXIgZXhwZWN0ZWRGaW5h
bEluZGV4ID0gKHdpbmRvdy52OFNjcmlwdERlYnVnU2VydmVyRW5hYmxlZCA/IDEgOiA4KTsKIAog
ICAgIGZ1bmN0aW9uIGV4cGFuZEFuZENoZWNrTmV4dFByb3BlcnR5KCkgewogICAgICAgICBpZiAo
aW5kZXggPT09IHByb3BRdWV1ZS5sZW5ndGgpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>