<?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>224886</bug_id>
          
          <creation_ts>2021-04-21 12:23:06 -0700</creation_ts>
          <short_desc>Get webkitpy.common.checkout.scm.scm_unittest passing</short_desc>
          <delta_ts>2021-04-22 12:32:40 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Sneddon [:gsnedders]">gsnedders</reporter>
          <assigned_to name="Sam Sneddon [:gsnedders]">gsnedders</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1752863</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-04-21 12:23:06 -0700</bug_when>
    <thetext>Our tests should pass.

This is potentially the first step before enabling them on EWS, even if we keep them disabled (for being slow) by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752864</commentid>
    <comment_count>1</comment_count>
      <attachid>426727</attachid>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-04-21 12:25:11 -0700</bug_when>
    <thetext>Created attachment 426727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752887</commentid>
    <comment_count>2</comment_count>
      <attachid>426727</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-04-21 13:10:05 -0700</bug_when>
    <thetext>Comment on attachment 426727
Patch

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

&gt; Tools/Scripts/webkitpy/test/markers.py:26
&gt; +def xfail(*args, **kwargs):

What other decorators do we intend to add to this file? I like this API, and like the fact that we are matching pytest.xfail (potentially replacing this in the future?) I wonder if this should live in webkitcorepy, though, so we could use this in testing that doesn&apos;t depend on webkitpy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753147</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-04-22 06:43:41 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Comment on attachment 426727 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=426727&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/test/markers.py:26
&gt; &gt; +def xfail(*args, **kwargs):
&gt; 
&gt; What other decorators do we intend to add to this file? I like this API, and
&gt; like the fact that we are matching pytest.xfail (potentially replacing this
&gt; in the future?) I wonder if this should live in webkitcorepy, though, so we
&gt; could use this in testing that doesn&apos;t depend on webkitpy.

I could foresee us re-introducing various skip markers (especially for tests where we simply disable entire modules currently on certain OSes).

And yes, that we match pytest.mark.xfail is completely deliberate to allow for future migration through simply removing our wrapper.

I put this in webkitpy mostly because that&apos;s where the old skip_if decorator was; no other reason for it to be there! Happy to move it webkitcorepy if you want?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753164</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-04-22 07:56:42 -0700</bug_when>
    <thetext>(In reply to Sam Sneddon [:gsnedders] from comment #3)
&gt; (In reply to Jonathan Bedard from comment #2)
&gt; &gt; Comment on attachment 426727 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=426727&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/test/markers.py:26
&gt; &gt; &gt; +def xfail(*args, **kwargs):
&gt; &gt; 
&gt; &gt; What other decorators do we intend to add to this file? I like this API, and
&gt; &gt; like the fact that we are matching pytest.xfail (potentially replacing this
&gt; &gt; in the future?) I wonder if this should live in webkitcorepy, though, so we
&gt; &gt; could use this in testing that doesn&apos;t depend on webkitpy.
&gt; 
&gt; I could foresee us re-introducing various skip markers (especially for tests
&gt; where we simply disable entire modules currently on certain OSes).
&gt; 
&gt; And yes, that we match pytest.mark.xfail is completely deliberate to allow
&gt; for future migration through simply removing our wrapper.
&gt; 
&gt; I put this in webkitpy mostly because that&apos;s where the old skip_if decorator
&gt; was; no other reason for it to be there! Happy to move it webkitcorepy if
&gt; you want?

Let&apos;s land this as is now, and discuss moving later. I think we do want something like this in webkitcorepy ultimately. I&apos;ve explored this idea before, in particular, resultsdbpy has some interesting testing decorators that do things like run the same test with in-memory database mocks and actual databases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753171</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-22 08:18:03 -0700</bug_when>
    <thetext>Committed r276436 (236899@main): &lt;https://commits.webkit.org/236899@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426727.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753254</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-22 12:32:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/77032460&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426727</attachid>
            <date>2021-04-21 12:25:11 -0700</date>
            <delta_ts>2021-04-22 08:18:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224886-20210421202510.patch</filename>
            <type>text/plain</type>
            <size>14923</size>
            <attacher name="Sam Sneddon [:gsnedders]">gsnedders</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MzU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOThiYjE3M2E2MjU1NmZjNDRkNjEwYmRiZGVlNDE0Yjc1
ZGE4NjhkMS4uNGQ4YWJhMGUwNTcxZjBjZmYyZWM3ZGFlNDY1YjU5YzFmZjUxMmNkNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2
IEBACisyMDIxLTA0LTIxICBTYW0gU25lZGRvbiAgPGdzbmVkZGVyc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGFuIHhmYWlsIG1hcmtlciBmb3Igd2Via2l0cHkncyB0ZXN0czsgZ2V0IFNDTSBw
YXNzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjQ4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
bHNvOgorCisgICAgICAgIERlbGV0ZSB0aGUgb2xkLCB1bnVzZWQgc2tpcF9pZiBkZWNvcmF0b3Iu
CisKKyAgICAgICAgRml4IG91ciBydW5uZXIgdG8gZGV0ZWN0IHVuZXhwZWN0ZWQtc3VjY2VzcyBh
bmQgcmVwb3J0IHRoZW0gYXMgZmFpbHVyZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9jaGVja291dC9zY20vc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAoR2l0U1ZOVGVz
dC50ZXN0X3JlYmFzZV9pbl9wcm9ncmVzcyk6CisgICAgICAgIChHaXRUZXN0V2l0aE1vY2sudGVz
dF9jcmVhdGVfcGF0Y2gpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYXJrZXJz
LnB5OgorICAgICAgICAoeGZhaWwpOgorICAgICAgICAoeGZhaWwuZGVjb3JhdG9yKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcnVubmVyLnB5OgorICAgICAgICAoUnVubmVyLmhh
bmRsZSk6CisgICAgICAgIChfV29ya2VyLmhhbmRsZSk6CisgICAgICAgIChUZXN0UmVzdWx0KToK
KyAgICAgICAgKFRlc3RSZXN1bHQuX19pbml0X18pOgorICAgICAgICAoVGVzdFJlc3VsdC5hZGRT
dWNjZXNzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rlc3QvcnVubmVyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoRmFrZVRlc3RDYXNlKToKKyAgICAgICAgKEZha2VUZXN0Q2FzZS5fX2lu
aXRfXyk6CisgICAgICAgIChGYWtlVGVzdENhc2UuaWQpOgorICAgICAgICAoRmFrZU1vZHVsZVN1
aXRlLnJ1bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90ZXN0L3NraXAucHk6IFJlbW92
ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90ZXN0L3NraXBfdW5pdHRlc3QucHk6IFJl
bW92ZWQuCisKIDIwMjEtMDQtMjEgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW1dQRV0gQWxsb3cgZGVmaW5pbmcgY3VzdG9tIHJlcG8gYW5kIGJyYW5jaCBmb3Ig
Q29nIGNoZWNrb3V0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY20vc2NtX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vY2hlY2tvdXQvc2NtL3NjbV91bml0dGVzdC5weQppbmRleCBjYjNmZWNlYTFhNzM4ODMyNTNj
NjQwMzZlNTM0ZjhlZTM1ODRlNzVkLi5kMGFiZTVmZTBhYmZmYmIyOTBmMTRjNzZjODgwYmE4M2Zl
MWVmMmVjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291
dC9zY20vc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L3NjbS9zY21fdW5pdHRlc3QucHkKQEAgLTU5LDYgKzU5LDggQEAgZnJvbSB3ZWJr
aXRweS5jb21tb24uY2hlY2tvdXQuc2NtLmRldGVjdGlvbiBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0
ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zY20gaW1wb3J0IENoZWNrb3V0
TmVlZHNVcGRhdGUsIGNvbW1pdF9lcnJvcl9oYW5kbGVyLCBBdXRoZW50aWNhdGlvbkVycm9yCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc3ZuIGltcG9ydCBTVk4KIAorZnJvbSB3
ZWJraXRweS50ZXN0Lm1hcmtlcnMgaW1wb3J0IHhmYWlsCisKIGZyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBPdXRwdXRDYXB0dXJlCiAKIHRyeToKQEAgLTEyNDIsNiArMTI0NCw3IEBAIGNsYXNzIEdp
dFNWTlRlc3QoU0NNVGVzdCk6CiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90UmVnZXhwTWF0Y2hlcyhk
aWZmX3RvX2NvbW1vbl9iYXNlLCBiJ2ZvbycpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0
Y2hlcyhkaWZmX3RvX21lcmdlX2Jhc2UsIGInZm9vJykKIAorICAgIEB4ZmFpbAogICAgIGRlZiB0
ZXN0X3JlYmFzZV9pbl9wcm9ncmVzcyhzZWxmKToKICAgICAgICAgc3ZuX3Rlc3RfZmlsZSA9IG9z
LnBhdGguam9pbihzZWxmLnN2bl9jaGVja291dF9wYXRoLCAndGVzdF9maWxlJykKICAgICAgICAg
d3JpdGVfaW50b19maWxlX2F0X3BhdGgoc3ZuX3Rlc3RfZmlsZSwgInN2bl9jaGVja291dCIpCkBA
IC0xNzIyLDYgKzE3MjUsNyBAQCBjbGFzcyBHaXRUZXN0V2l0aE1vY2sodW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICBzY20uX2V4ZWN1dGl2ZS5fc2hvdWxkX2xvZyA9IGxvZ2dpbmdfZXhlY3V0
aXZlCiAgICAgICAgIHJldHVybiBzY20KIAorICAgIEB4ZmFpbAogICAgIGRlZiB0ZXN0X2NyZWF0
ZV9wYXRjaChzZWxmKToKICAgICAgICAgc2NtID0gc2VsZi5tYWtlX3NjbShsb2dnaW5nX2V4ZWN1
dGl2ZT1UcnVlKQogICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUobGV2ZWw9bG9nZ2luZy5JTkZP
KSBhcyBjYXB0dXJlZDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9t
YXJrZXJzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21hcmtlcnMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDgzZDU5NWViMzNiYzQ4YWFjMjkxZTZlYWM5Njc0Y2FhN2Y2YTY1NQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYXJrZXJzLnB5CkBAIC0wLDAg
KzEsNTQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0
IHVuaXR0ZXN0CisKKworZGVmIHhmYWlsKCphcmdzLCAqKmt3YXJncyk6CisgICAgIiIiYSBweXRl
c3QubWFyay54ZmFpbC1saWtlIHdyYXBwZXIgZm9yIHVuaXR0ZXN0LmV4cGVjdGVkRmFpbHVyZQor
CisgICAgYy5mLiBweXRlc3QubWFyay54ZmFpbChjb25kaXRpb24sIC4uLiwgKiwgcmVhc29uPS4u
LiwgcnVuPVRydWUsIHJhaXNlcz1Ob25lLCBzdHJpY3Q9W2Zyb20gY29uZmlnXSkKKworICAgIE5v
dGUgdGhhdCB0aGlzIGRvZXNuJ3Qgc3VwcG9ydCByYWlzZXMgb3Igc3RyaWN0IiIiCisKKyAgICAj
IHNob3J0Y3V0IGlmIHdlJ3JlIGJlaW5nIGNhbGxlZCBhcyBhIGRlY29yYXRvciBvdXJzZWx2ZXMK
KyAgICBpZiBsZW4oYXJncykgPT0gMSBhbmQgY2FsbGFibGUoYXJnc1swXSkgYW5kIG5vdCBrd2Fy
Z3M6CisgICAgICAgIHJldHVybiB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUoYXJnc1swXSkKKwor
ICAgIGRlZiBkZWNvcmF0b3IoZnVuYyk6CisgICAgICAgIGNvbmRpdGlvbnMgPSBhcmdzCisgICAg
ICAgIHJlYXNvbiA9IGt3YXJncy5nZXQocmVhc29uLCBOb25lKQorICAgICAgICBydW4gPSBrd2Fy
Z3MuZ2V0KHJ1biwgVHJ1ZSkKKyAgICAgICAgaWYgInJhaXNlcyIgaW4ga3dhcmdzOgorICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKCJ4ZmFpbChyYWlzZXM9Li4uKSBpcyBub3Qgc3VwcG9ydGVk
IikKKyAgICAgICAgaWYgInN0cmljdCIgaW4ga3dhcmdzOgorICAgICAgICAgICAgcmFpc2UgVHlw
ZUVycm9yKCJzdHJpY3QgaXMgbm90IHN1cHBvcnRlZCIpCisKKyAgICAgICAgaWYgbm90IHJ1bjoK
KyAgICAgICAgICAgIHJldHVybiB1bml0dGVzdC5za2lwKHJlYXNvbikoZnVuYykKKworICAgICAg
ICBpZiBhbGwoY29uZGl0aW9ucyk6CisgICAgICAgICAgICByZXR1cm4gdW5pdHRlc3QuZXhwZWN0
ZWRGYWlsdXJlKGZ1bmMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gZnVuYwor
CisgICAgcmV0dXJuIGRlY29yYXRvcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90ZXN0L3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXIucHkK
aW5kZXggOTQ0NzVhY2UxNTEwMmQ3NDRkYzFiZTUyNGMwMDE1MTk0MTA5MjQ1My4uOWVhODkyYThk
NDIyOTIxMzQ1ZTI0MDJkMWNjMTA3Yjk0MWI4MzZlMyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90ZXN0L3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rl
c3QvcnVubmVyLnB5CkBAIC02MCw2ICs2MCw5IEBAIGNsYXNzIFJ1bm5lcihvYmplY3QpOgogICAg
ICAgICAgICAgc2VsZi5wcmludGVyLnByaW50X3N0YXJ0ZWRfdGVzdChzb3VyY2UsIHRlc3RfbmFt
ZSkKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIGlmIG1lc3NhZ2VfbmFtZSAhPSAnZmlu
aXNoZWRfdGVzdCc6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIG1lc3Nh
Z2U6ICVyIiAlIG1lc3NhZ2VfdHlwZSkKKwogICAgICAgICBzZWxmLnRlc3RzX3J1bi5hcHBlbmQo
dGVzdF9uYW1lKQogICAgICAgICBpZiBmYWlsdXJlczoKICAgICAgICAgICAgIHNlbGYuZmFpbHVy
ZXMuYXBwZW5kKCh0ZXN0X25hbWUsIGZhaWx1cmVzKSkKQEAgLTc1LDExICs3OCwyOCBAQCBjbGFz
cyBfV29ya2VyKG9iamVjdCk6CiAKICAgICBkZWYgaGFuZGxlKHNlbGYsIG1lc3NhZ2VfbmFtZSwg
c291cmNlLCB0ZXN0X25hbWUpOgogICAgICAgICBhc3NlcnQgbWVzc2FnZV9uYW1lID09ICd0ZXN0
JwotICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXN0UmVzdWx0KCkKKyAgICAgICAgcmVzdWx0
ID0gVGVzdFJlc3VsdCgpCiAgICAgICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKICAgICAgICAgc2Vs
Zi5fY2FsbGVyLnBvc3QoJ3N0YXJ0ZWRfdGVzdCcsIHRlc3RfbmFtZSkKIAogICAgICAgICAjIFdl
IHdpbGwgbmVlZCB0byByZXdvcmsgdGhpcyBpZiBhIHRlc3RfbmFtZSByZXN1bHRzIGluIG11bHRp
cGxlIHRlc3RzLgogICAgICAgICBzZWxmLl9sb2FkZXIubG9hZFRlc3RzRnJvbU5hbWUodGVzdF9u
YW1lLCBOb25lKS5ydW4ocmVzdWx0KQorCisgICAgICAgIGFzc2VydChsZW4ocmVzdWx0LmVycm9y
cykgKyBsZW4ocmVzdWx0LmZhaWx1cmVzKSArCisgICAgICAgICAgICAgICBsZW4ocmVzdWx0LnNr
aXBwZWQpICsgbGVuKHJlc3VsdC5leHBlY3RlZEZhaWx1cmVzKSArCisgICAgICAgICAgICAgICBs
ZW4ocmVzdWx0LnVuZXhwZWN0ZWRTdWNjZXNzZXMpICsgcmVzdWx0LnN1Y2Nlc3NlcykgPT0gcmVz
dWx0LnRlc3RzUnVuCisKKyAgICAgICAgZmFpbHVyZXMgPSAoW2ZhaWx1cmVbMV0gZm9yIGZhaWx1
cmUgaW4gcmVzdWx0LmZhaWx1cmVzXQorICAgICAgICAgICAgICAgICAgICArIFsiVU5FWFBFQ1RF
RCBTVUNDRVNTIiBmb3IgXyBpbiByZXN1bHQudW5leHBlY3RlZFN1Y2Nlc3Nlc10pCisKICAgICAg
ICAgc2VsZi5fY2FsbGVyLnBvc3QoJ2ZpbmlzaGVkX3Rlc3QnLCB0ZXN0X25hbWUsIHRpbWUudGlt
ZSgpIC0gc3RhcnQsCi0gICAgICAgICAgICBbZmFpbHVyZVsxXSBmb3IgZmFpbHVyZSBpbiByZXN1
bHQuZmFpbHVyZXNdLCBbZXJyb3JbMV0gZm9yIGVycm9yIGluIHJlc3VsdC5lcnJvcnNdKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlcywgW2Vycm9yWzFdIGZvciBlcnJvciBpbiBy
ZXN1bHQuZXJyb3JzXSkKKworCitjbGFzcyBUZXN0UmVzdWx0KHVuaXR0ZXN0LlRlc3RSZXN1bHQp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBl
cihUZXN0UmVzdWx0LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNl
bGYuc3VjY2Vzc2VzID0gMAorCisgICAgZGVmIGFkZFN1Y2Nlc3Moc2VsZiwgdGVzdCk6CisgICAg
ICAgIHNlbGYuc3VjY2Vzc2VzICs9IDEKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qv
cnVubmVyX3VuaXR0ZXN0LnB5CmluZGV4IDk3YWQ0Mzk4ZmEzMDgwMjEyYzNlMTFmMGY4MWM3YWM1
NTRiODQzYzkuLjBjMDQ1ODEwY2ZlNDMzZWRkMjQyMGI0OTI4MDAwYjZjMWEwMTIyNDQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9ydW5uZXJfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3J1bm5lcl91bml0dGVzdC5weQpAQCAtMzEs
NiArMzEsMTUgQEAgZnJvbSB3ZWJraXRweS50ZXN0LnByaW50ZXIgaW1wb3J0IFByaW50ZXIKIGZy
b20gd2Via2l0cHkudGVzdC5ydW5uZXIgaW1wb3J0IFJ1bm5lcgogCiAKK2NsYXNzIEZha2VUZXN0
Q2FzZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgc2Vs
Zi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLmZhaWx1cmVFeGNlcHRpb24gPSBBc3NlcnRpb25F
cnJvcgorCisgICAgZGVmIGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5uYW1lCisKKwog
Y2xhc3MgRmFrZU1vZHVsZVN1aXRlKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUsIHJlc3VsdCwgbXNnKToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQpAQCAtNDEsMTEgKzUw
LDE5IEBAIGNsYXNzIEZha2VNb2R1bGVTdWl0ZShvYmplY3QpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5uYW1lCiAKICAgICBkZWYgcnVuKHNlbGYsIHJlc3VsdCk6Ci0gICAgICAgIHJlc3VsdC50ZXN0
c1J1biArPSAxCi0gICAgICAgIGlmIHNlbGYucmVzdWx0ID09ICdGJzoKLSAgICAgICAgICAgIHJl
c3VsdC5mYWlsdXJlcy5hcHBlbmQoKHNlbGYubmFtZSwgc2VsZi5tc2cpKQotICAgICAgICBlbGlm
IHNlbGYucmVzdWx0ID09ICdFJzoKLSAgICAgICAgICAgIHJlc3VsdC5lcnJvcnMuYXBwZW5kKChz
ZWxmLm5hbWUsIHNlbGYubXNnKSkKKyAgICAgICAgdGMgPSBGYWtlVGVzdENhc2Uoc2VsZi5uYW1l
KQorICAgICAgICByZXN1bHQuc3RhcnRUZXN0KHRjKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBpZiBzZWxmLnJlc3VsdCA9PSAnRic6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEZhaWx1
cmUodGMsIChOb25lLCBOb25lLCBOb25lKSkKKyAgICAgICAgICAgIGVsaWYgc2VsZi5yZXN1bHQg
PT0gJ0UnOgorICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRFcnJvcih0YywgKE5vbmUsIE5vbmUs
IE5vbmUpKQorICAgICAgICAgICAgZWxpZiBzZWxmLnJlc3VsdCA9PSAnLic6CisgICAgICAgICAg
ICAgICAgcmVzdWx0LmFkZFN1Y2Nlc3ModGMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBGYWxzZSwgInVucmVhY2hhYmxlIgorICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgcmVzdWx0LnN0b3BUZXN0KHRjKQogCiAKIGNsYXNzIEZha2VUb3BTdWl0ZShvYmpl
Y3QpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3NraXAucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODNiNjM0ZDM1MDlkZDYwZmRiZDI4ZjBjYWIwYmY3MjBjOTI5OTE0Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rlc3Qvc2tpcC5weQorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGxvZ2dpbmcKLQotX2xv
ZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWRlZiBza2lwX2lmKGtsYXNzLCBj
b25kaXRpb24sIG1lc3NhZ2U9Tm9uZSwgbG9nZ2VyPU5vbmUpOgotICAgICIiIk1ha2VzIGFsbCB0
ZXN0XyogbWV0aG9kcyBpbiBhIGdpdmVuIGNsYXNzIG5vLW9wcyBpZiB0aGUgZ2l2ZW4gY29uZGl0
aW9uCi0gICAgaXMgRmFsc2UuIEJhY2twb3J0ZWQgZnJvbSBQeXRob24gMy4xKydzIHVuaXR0ZXN0
LnNraXBJZiBkZWNvcmF0b3IuIiIiCi0gICAgaWYgbm90IGxvZ2dlcjoKLSAgICAgICAgbG9nZ2Vy
ID0gX2xvZwotICAgIGlmIG5vdCBjb25kaXRpb246Ci0gICAgICAgIHJldHVybiBrbGFzcwotICAg
IGZvciBuYW1lIGluIGRpcihrbGFzcyk6Ci0gICAgICAgIGF0dHIgPSBnZXRhdHRyKGtsYXNzLCBu
YW1lKQotICAgICAgICBpZiBub3QgY2FsbGFibGUoYXR0cik6Ci0gICAgICAgICAgICBjb250aW51
ZQotICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCd0ZXN0XycpOgotICAgICAgICAgICAg
Y29udGludWUKLSAgICAgICAgc2V0YXR0cihrbGFzcywgbmFtZSwgX3NraXBwZWRfbWV0aG9kKGF0
dHIsIG1lc3NhZ2UsIGxvZ2dlcikpCi0gICAga2xhc3MuX3ByaW50ZWRfc2tpcHBlZF9tZXNzYWdl
ID0gRmFsc2UKLSAgICByZXR1cm4ga2xhc3MKLQotCi1kZWYgX3NraXBwZWRfbWV0aG9kKG1ldGhv
ZCwgbWVzc2FnZSwgbG9nZ2VyKToKLSAgICBkZWYgX3NraXAoc2VsZiwgKmFyZ3MpOgotICAgICAg
ICBpZiBzZWxmLl9wcmludGVkX3NraXBwZWRfbWVzc2FnZToKLSAgICAgICAgICAgIHJldHVybgot
ICAgICAgICBzZWxmLl9wcmludGVkX3NraXBwZWRfbWVzc2FnZSA9IFRydWUKLSAgICAgICAgbG9n
Z2VyLmluZm8oJ1NraXBwaW5nICVzLiVzOiAlcycgJSAobWV0aG9kLl9fbW9kdWxlX18sIHR5cGUo
c2VsZikuX19uYW1lX18sIG1lc3NhZ2UpKQotICAgIHJldHVybiBfc2tpcApkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L3NraXBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDM1MDlmYTZmMGI0MWExNzVlOWE3MTgyNGQyZDZjOGQ5NDI0YWZiZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rlc3Qvc2tpcF91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGxvZ2dp
bmcKLWltcG9ydCB1bml0dGVzdAotCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgU3RyaW5nSU8K
LQotZnJvbSB3ZWJraXRweS50ZXN0LnNraXAgaW1wb3J0IHNraXBfaWYKLQotCi1jbGFzcyBTa2lw
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz
ZWxmLmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0gICAgICAgIHNlbGYu
b2xkX2xldmVsID0gc2VsZi5sb2dnZXIubGV2ZWwKLSAgICAgICAgc2VsZi5sb2dnZXIuc2V0TGV2
ZWwobG9nZ2luZy5JTkZPKQotCi0gICAgICAgIHNlbGYub2xkX3Byb3BhZ2F0ZSA9IHNlbGYubG9n
Z2VyLnByb3BhZ2F0ZQotICAgICAgICBzZWxmLmxvZ2dlci5wcm9wYWdhdGUgPSBGYWxzZQotCi0g
ICAgICAgIHNlbGYubG9nX3N0cmVhbSA9IFN0cmluZ0lPKCkKLSAgICAgICAgc2VsZi5oYW5kbGVy
ID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHNlbGYubG9nX3N0cmVhbSkKLSAgICAgICAgc2VsZi5s
b2dnZXIuYWRkSGFuZGxlcihzZWxmLmhhbmRsZXIpCi0KLSAgICAgICAgc2VsZi5mb29fd2FzX2Nh
bGxlZCA9IEZhbHNlCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHNlbGYubG9n
Z2VyLnJlbW92ZUhhbmRsZXIoc2VsZi5oYW5kbGVyKQotICAgICAgICBzZWxmLnByb3BhZ2F0ZSA9
IHNlbGYub2xkX3Byb3BhZ2F0ZQotICAgICAgICBzZWxmLmxvZ2dlci5zZXRMZXZlbChzZWxmLm9s
ZF9sZXZlbCkKLQotICAgIGRlZiBjcmVhdGVfZml4dHVyZV9jbGFzcyhzZWxmKToKLSAgICAgICAg
Y2xhc3MgVGVzdFNraXBGaXh0dXJlKG9iamVjdCk6Ci0gICAgICAgICAgICBkZWYgX19pbml0X18o
c2VsZiwgY2FsbGJhY2spOgotICAgICAgICAgICAgICAgIHNlbGYuY2FsbGJhY2sgPSBjYWxsYmFj
awotCi0gICAgICAgICAgICBkZWYgdGVzdF9mb28oc2VsZik6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5jYWxsYmFjaygpCi0KLSAgICAgICAgcmV0dXJuIFRlc3RTa2lwRml4dHVyZQotCi0gICAgZGVm
IGZvb19jYWxsYmFjayhzZWxmKToKLSAgICAgICAgc2VsZi5mb29fd2FzX2NhbGxlZCA9IFRydWUK
LQotICAgIGRlZiB0ZXN0X3NraXBfaWZfZmFsc2Uoc2VsZik6Ci0gICAgICAgIGtsYXNzID0gc2tp
cF9pZihzZWxmLmNyZWF0ZV9maXh0dXJlX2NsYXNzKCksIEZhbHNlLCAnU2hvdWxkIG5vdCBzZWUg
dGhpcyBtZXNzYWdlLicsIGxvZ2dlcj1zZWxmLmxvZ2dlcikKLSAgICAgICAga2xhc3Moc2VsZi5m
b29fY2FsbGJhY2spLnRlc3RfZm9vKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxv
Z19zdHJlYW0uZ2V0dmFsdWUoKSwgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmZv
b193YXNfY2FsbGVkKQotCi0gICAgZGVmIHRlc3Rfc2tpcF9pZl90cnVlKHNlbGYpOgotICAgICAg
ICBrbGFzcyA9IHNraXBfaWYoc2VsZi5jcmVhdGVfZml4dHVyZV9jbGFzcygpLCBUcnVlLCAnU2hv
dWxkIHNlZSB0aGlzIG1lc3NhZ2UuJywgbG9nZ2VyPXNlbGYubG9nZ2VyKQotICAgICAgICBrbGFz
cyhzZWxmLmZvb19jYWxsYmFjaykudGVzdF9mb28oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYubG9nX3N0cmVhbS5nZXR2YWx1ZSgpLCAnU2tpcHBpbmcgd2Via2l0cHkudGVzdC5za2lw
X3VuaXR0ZXN0LlRlc3RTa2lwRml4dHVyZTogU2hvdWxkIHNlZSB0aGlzIG1lc3NhZ2UuXG4nKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuZm9vX3dhc19jYWxsZWQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>