<?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>232266</bug_id>
          
          <creation_ts>2021-10-25 13:51:15 -0700</creation_ts>
          <short_desc>webkitpy: Add an explicit ImageDiffResult.passed rather than relying on diff_image being non-None</short_desc>
          <delta_ts>2021-10-25 16:26:18 -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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1808565</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 13:51:15 -0700</bug_when>
    <thetext>webkitpy: Add an explicit ImageDiffResult.passed rather than relying on diff_image being non-None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808567</commentid>
    <comment_count>1</comment_count>
      <attachid>442409</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 13:55:13 -0700</bug_when>
    <thetext>Created attachment 442409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808574</commentid>
    <comment_count>2</comment_count>
      <attachid>442412</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 14:04:40 -0700</bug_when>
    <thetext>Created attachment 442412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808659</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-25 16:25:10 -0700</bug_when>
    <thetext>Committed r284845 (243522@main): &lt;https://commits.webkit.org/243522@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442412.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808660</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-25 16:26:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84636930&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442409</attachid>
            <date>2021-10-25 13:55:13 -0700</date>
            <delta_ts>2021-10-25 14:04:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232266-20211025135513.patch</filename>
            <type>text/plain</type>
            <size>19151</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y1MDJjN2M0YTdhZWMwODEwZDc3MjZkMjBmZWUzYTli
ZmQyOTk2OS4uM2FhMWEzNDBlNTZjZWE3N2YyZDQ2YTYyNjQ5NzhiY2I5OWRhM2FmZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIHdlYmtpdHB5OiBBZGQgYW4gZXhwbGljaXQgSW1hZ2VEaWZmUmVzdWx0LnBhc3Nl
ZCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGRpZmZfaW1hZ2UgYmVpbmcgbm9uLU5vbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI2NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQSByZWYg
dGVzdCB3YXMgY29uc2lkZXJlZCBmYWlsaW5nIGlmIGl0IEltYWdlRGlmZlJlc3VsdC5kaWZmX2lt
YWdlIHdhcyBub3QgTm9uZSwgcmVzdWx0aW5nCisgICAgICAgIGFsbG93aW5nIGZvciBjb25mdXNp
bmcgdW5pdCB0ZXN0cyB0aGF0IHVzZWQgYSB2YWx1ZSBvZiBUcnVlIGZvciBkaWZmX2ltYWdlLgor
CisgICAgICAgIEZpeCBieSBnaXZpbmcgSW1hZ2VEaWZmUmVzdWx0IGFuIGV4cGxpY2l0ICdwYXNz
ZXMnIGZpZWxkLCBhbmQgdGVzdGluZyBpdCByYXRoZXIgdGhhbiBkaWZmX2ltYWdlLgorICAgICAg
ICAKKyAgICAgICAgQWxzbyB1c2VkIG5hbWVkIGFyZ3VtZW50cyB3aGVuIGNyZWF0aW5nIEltYWdl
RGlmZlJlc3VsdHMgZm9yIHJlYWRhYmlsaXR5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5OgorICAgICAg
ICAoU2luZ2xlVGVzdFJ1bm5lci5fY29tcGFyZV9pbWFnZSk6IFVzZSBgZGlmZl9yZXN1bHQucGFz
c2VkYCBhcyB0cnV0aCBmb3Igd2hldGhlciB0aGUgdGVzdCBwYXNzZWQsCisgICAgICAgIGFuZCBv
bmx5IHN0b3JlIHRoZSBlcnJvcl9zdHJpbmcgaW4gZmFpbHVyZSBjYXNlcyAod2hpY2ggYWxsb3dz
IEltYWdlRGlmZiB0byBzcGV3IGRpYWdub3N0aWMgZXJyb3JzCisgICAgICAgIHdpdGhvdXQgdHJp
Z2dlcmluZyBmYWlsdXJlcykuCisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9jb21wYXJlX291
dHB1dF93aXRoX3JlZmVyZW5jZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoVGVzdFJlc3VsdFdyaXRlclRlc3QudGVzdF9yZWZ0ZXN0X2RpZmZfaW1hZ2UuSW1hZ2VEaWZm
VGVzdFBvcnQuZGlmZl9pbWFnZSk6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVzdCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19p
bnRlZ3JhdGlvbnRlc3QucHk6CisgICAgICAgIChSdW5UZXN0LnRlc3RfdG9sZXJhbmNlLkltYWdl
RGlmZlRlc3RQb3J0LmRpZmZfaW1hZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9iYXNlLnB5OgorICAgICAgICAoUG9ydC5kaWZmX2ltYWdlKToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3BvcnQvaW1hZ2VfZGlmZi5weToKKyAgICAgICAgKEltYWdlRGlmZlJlc3VsdC5f
X2luaXRfXyk6CisgICAgICAgIChJbWFnZURpZmZSZXN1bHQuX19lcV9fKToKKyAgICAgICAgKElt
YWdlRGlmZlJlc3VsdC5fX3JlcHJfXyk6CisgICAgICAgIChJbWFnZURpZmZlci5fcmVhZCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHk6CisgICAgICAg
IChQb3J0VGVzdENhc2UuaW50ZWdyYXRpb25fdGVzdF9pbWFnZV9kaWZmKToKKyAgICAgICAgKFBv
cnRUZXN0Q2FzZS50ZXN0X2RpZmZfaW1hZ2VfX21pc3NpbmdfYm90aCk6CisgICAgICAgIChQb3J0
VGVzdENhc2UudGVzdF9kaWZmX2ltYWdlX19taXNzaW5nX2FjdHVhbCk6CisgICAgICAgIChQb3J0
VGVzdENhc2UudGVzdF9kaWZmX2ltYWdlX19taXNzaW5nX2V4cGVjdGVkKToKKyAgICAgICAgKFBv
cnRUZXN0Q2FzZS50ZXN0X2RpZmZfaW1hZ2UpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3Rf
ZGlmZl9pbWFnZV9wYXNzZWQpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZGlmZl9pbWFn
ZV9mYWlsZWQpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZGlmZl9pbWFnZV9jcmFzaGVk
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weToKKwogMjAyMS0xMC0y
NSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBCcmluZyB1
cCBxdWV1ZXMgZm9yIE1vbnRlcmV5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5u
ZXIucHkKaW5kZXggY2ZlNmE3MGNkYWJmZThiYWEyNDcxYzgxNjBiNTk4MjM4Y2JlYzY3Ny4uNDM3
OGI0YzFlMjg3ZGI1MTg5MzVjMzE4MWE4M2QyN2JlMjUzYWYxZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVu
bmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQpAQCAtMjk0LDE3ICsyOTQsMTUgQEAgY2xhc3MgU2lu
Z2xlVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3Rf
ZmFpbHVyZXMuRmFpbHVyZU1pc3NpbmdJbWFnZUhhc2goKSkKICAgICAgICAgZWxpZiBkcml2ZXJf
b3V0cHV0LmltYWdlX2hhc2ggIT0gZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFnZV9oYXNoOgog
ICAgICAgICAgICAgZGlmZl9yZXN1bHQgPSBzZWxmLl9wb3J0LmRpZmZfaW1hZ2UoZXhwZWN0ZWRf
ZHJpdmVyX291dHB1dC5pbWFnZSwgZHJpdmVyX291dHB1dC5pbWFnZSkKLSAgICAgICAgICAgIGlm
IGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZzoKLSAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmco
JyAgJXMgOiAlcycgJSAoc2VsZi5fdGVzdF9uYW1lLCBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcp
KQotICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJ
bWFnZUhhc2hNaXNtYXRjaCgpKQotICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuZXJyb3Ig
PSAoZHJpdmVyX291dHB1dC5lcnJvciBvciAnJykgKyBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcK
LSAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBub3QgZGlmZl9yZXN1bHQucGFzc2Vk
OgorICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJ
bWFnZUhhc2hNaXNtYXRjaChkaWZmX3Jlc3VsdC5kaWZmX3BlcmNlbnQpKQorICAgICAgICAgICAg
ICAgIGlmIGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZzoKKyAgICAgICAgICAgICAgICAgICAgX2xv
Zy53YXJuaW5nKCcgICVzIDogJXMnICUgKHNlbGYuX3Rlc3RfbmFtZSwgZGlmZl9yZXN1bHQuZXJy
b3Jfc3RyaW5nKSkKKyAgICAgICAgICAgICAgICAgICAgZHJpdmVyX291dHB1dC5lcnJvciA9IChk
cml2ZXJfb3V0cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZwogICAg
ICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuaW1hZ2VfZGlmZiA9IGRpZmZfcmVzdWx0LmRpZmZf
aW1hZ2UKLSAgICAgICAgICAgICAgICBpZiBkcml2ZXJfb3V0cHV0LmltYWdlX2RpZmY6Ci0gICAg
ICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFn
ZUhhc2hNaXNtYXRjaChkaWZmX3Jlc3VsdC5kaWZmX3BlcmNlbnQpKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02OTQ0NCBmb3Igd2h5IHRoaXMgaXNuJ3QgYSBmdWxsIGZhaWx1cmUu
Ci0gICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnICAlcyAtPiBwaXhlbCBoYXNoIGZh
aWxlZCAoYnV0IGRpZmYgcGFzc2VkKScgJSBzZWxmLl90ZXN0X25hbWUpCisgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02OTQ0NCBmb3Igd2h5IHRoaXMgaXNuJ3QgYSBmdWxsIGZhaWx1cmUuCisgICAg
ICAgICAgICAgICAgX2xvZy53YXJuaW5nKCcgICVzIC0+IHBpeGVsIGhhc2ggZmFpbGVkIChidXQg
ZGlmZiBwYXNzZWQpJyAlIHNlbGYuX3Rlc3RfbmFtZSkKICAgICAgICAgcmV0dXJuIGZhaWx1cmVz
CiAKICAgICBkZWYgX3J1bl9yZWZ0ZXN0KHNlbGYpOgpAQCAtMzU3LDExICszNTUsMTAgQEAgY2xh
c3MgU2luZ2xlVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBlbGlmIHJlZmVyZW5jZV9kcml2
ZXJfb3V0cHV0LmltYWdlX2hhc2ggIT0gYWN0dWFsX2RyaXZlcl9vdXRwdXQuaW1hZ2VfaGFzaDoK
ICAgICAgICAgICAgICMgSW1hZ2VEaWZmIGhhcyBhIGhhcmQgY29kZWQgY29sb3IgZGlzdGFuY2Ug
dGhyZXNob2xkIGV2ZW4gdGhvdWdoIHRvbGVyYW5jZT0wIGlzIHNwZWNpZmllZC4KICAgICAgICAg
ICAgIGRpZmZfcmVzdWx0ID0gc2VsZi5fcG9ydC5kaWZmX2ltYWdlKHJlZmVyZW5jZV9kcml2ZXJf
b3V0cHV0LmltYWdlLCBhY3R1YWxfZHJpdmVyX291dHB1dC5pbWFnZSwgdG9sZXJhbmNlPTApCi0g
ICAgICAgICAgICBpZiBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6Ci0gICAgICAgICAgICAgICAg
X2xvZy53YXJuaW5nKCcgICVzIDogJXMnICUgKHNlbGYuX3Rlc3RfbmFtZSwgZGlmZl9yZXN1bHQu
ZXJyb3Jfc3RyaW5nKSkKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWls
dXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHJlZmVyZW5jZV9maWxlbmFtZSkpCi0gICAgICAg
ICAgICAgICAgYWN0dWFsX2RyaXZlcl9vdXRwdXQuZXJyb3IgPSAoYWN0dWFsX2RyaXZlcl9vdXRw
dXQuZXJyb3Igb3IgJycpICsgZGlmZl9yZXN1bHQuZXJyb3Jfc3RyaW5nCi0gICAgICAgICAgICBl
bGlmIGRpZmZfcmVzdWx0LmRpZmZfaW1hZ2U6CisgICAgICAgICAgICBpZiBub3QgZGlmZl9yZXN1
bHQucGFzc2VkOgogICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVz
LkZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2gocmVmZXJlbmNlX2ZpbGVuYW1lKSkKKyAgICAgICAgICAg
ICAgICBpZiBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6CisgICAgICAgICAgICAgICAgICAgIF9s
b2cud2FybmluZygnICAlcyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVy
cm9yX3N0cmluZykpCisgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVy
cm9yID0gKGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVy
cm9yX3N0cmluZwogCiAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX3Rlc3RfaW5wdXQs
IGZhaWx1cmVzLCB0b3RhbF90ZXN0X3RpbWUsIGhhc19zdGRlcnIsIHBpZD1hY3R1YWxfZHJpdmVy
X291dHB1dC5waWQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0
ZXJfdW5pdHRlc3QucHkKaW5kZXggZDM1NGYxZjE1ODczNmRkYjA3OTZlY2ZiMDRjMmIxZjc4ZGMz
YjEzYS4uOGIyYWUyMzk1NjY3YThhZGJlMzI1YzU2NzgyODQzOGExMjRkMzI0NiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9y
ZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlcl91bml0dGVzdC5weQpAQCAt
NDIsNyArNDIsNyBAQCBjbGFzcyBUZXN0UmVzdWx0V3JpdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIGNsYXNzIEltYWdlRGlmZlRlc3RQb3J0KFRlc3RQb3J0KToKICAgICAgICAg
ICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29udGVu
dHMsIHRvbGVyYW5jZT1Ob25lKToKICAgICAgICAgICAgICAgICB1c2VkX3RvbGVyYW5jZV92YWx1
ZXMuYXBwZW5kKHRvbGVyYW5jZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVz
dWx0KFRydWUsIDEsIE5vbmUpCisgICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEpCiAKICAgICAgICAg
aG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAgcG9ydCA9IEltYWdlRGlmZlRlc3RQb3J0KGhvc3Qp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Vi
a2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IDdkOTY5
ZTNiN2FkOWIxZmRlNWU3MGY3MWM5N2VhOTU1YzYzMmM2ZTAuLmM4NzBkNGU1MGQ1ZmNjYThhMTk3
MGIyNmRjZDZhZTc0ZjY3NjE4MTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdy
YXRpb250ZXN0LnB5CkBAIC03NTIsNyArNzUyLDcgQEAgY2xhc3MgUnVuVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSwgU3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgY2xhc3MgSW1hZ2VEaWZmVGVz
dFBvcnQodGVzdC5UZXN0UG9ydCk6CiAgICAgICAgICAgICBkZWYgZGlmZl9pbWFnZShzZWxmLCBl
eHBlY3RlZF9jb250ZW50cywgYWN0dWFsX2NvbnRlbnRzLCB0b2xlcmFuY2U9Tm9uZSk6CiAgICAg
ICAgICAgICAgICAgc2VsZi50b2xlcmFuY2VfdXNlZF9mb3JfZGlmZl9pbWFnZSA9IHNlbGYuX29w
dGlvbnMudG9sZXJhbmNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChU
cnVlLCAxLCBOb25lKQorICAgICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFz
c2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xKQogCiAgICAgICAgIGRlZiBn
ZXRfcG9ydF9mb3JfcnVuKGFyZ3MpOgogICAgICAgICAgICAgb3B0aW9ucywgcGFyc2VkX2FyZ3Mg
PSBydW5fd2Via2l0X3Rlc3RzLnBhcnNlX2FyZ3MoYXJncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2UucHkKaW5kZXggMzU2NDAwMThjMzNkMDUyMTNjYjA2Yjg4MWM0MjQ1MzIxZGI3OWNlYS4u
NmM1Y2MzNTcyZjI3NTdlNzBhNDA4ZDc1ZjdhOTlmNTMwMjA4ZTAxYyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2Jhc2UucHkKQEAgLTMwNywxMCArMzA3LDEwIEBAIGNsYXNzIFBvcnQob2JqZWN0
KToKICAgICAgICAgSWYgYW4gZXJyb3Igb2NjdXJzIChsaWtlIEltYWdlRGlmZiBpc24ndCBmb3Vu
ZCwgb3IgY3Jhc2hlcywgd2UgbG9nIGFuIGVycm9yIGFuZCByZXR1cm4gVHJ1ZSAoZm9yIGEgZGlm
ZikuCiAgICAgICAgICIiIgogICAgICAgICBpZiBub3QgYWN0dWFsX2NvbnRlbnRzIGFuZCBub3Qg
ZXhwZWN0ZWRfY29udGVudHM6Ci0gICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KE5v
bmUsIDAsIE5vbmUpCisgICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1U
cnVlLCBkaWZmX2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9MCkKIAogICAgICAgICBpZiBub3QgYWN0
dWFsX2NvbnRlbnRzIG9yIG5vdCBleHBlY3RlZF9jb250ZW50czoKLSAgICAgICAgICAgIHJldHVy
biBJbWFnZURpZmZSZXN1bHQoVHJ1ZSwgMCwgTm9uZSkKKyAgICAgICAgICAgIHJldHVybiBJbWFn
ZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xKQog
CiAgICAgICAgIGlmIG5vdCBzZWxmLl9pbWFnZV9kaWZmZXI6CiAgICAgICAgICAgICBzZWxmLl9p
bWFnZV9kaWZmZXIgPSBpbWFnZV9kaWZmLkltYWdlRGlmZmVyKHNlbGYpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW1hZ2VfZGlmZi5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CmluZGV4IDYzM2IxZTMwM2IwOWNiYjIyODY0ZGMy
YzM5N2M4ZDc0ZTkxMGI2ZWUuLmNiOGIzZjA0ZWEzN2Y5ZjlmOTJjMGUzMDQ1Mzc0ODYxZmE3OGFm
YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CkBAIC00MCwx
NCArNDAsMTYgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNz
IEltYWdlRGlmZlJlc3VsdChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaWZmX2lt
YWdlLCBkaWZmZXJlbmNlLCBlcnJvcl9zdHJpbmcpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBw
YXNzZWQsIGRpZmZfaW1hZ2UsIGRpZmZlcmVuY2UsIGVycm9yX3N0cmluZz1Ob25lKToKKyAgICAg
ICAgc2VsZi5wYXNzZWQgPSBwYXNzZWQKICAgICAgICAgc2VsZi5kaWZmX2ltYWdlID0gZGlmZl9p
bWFnZQogICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IGRpZmZlcmVuY2UKICAgICAgICAgc2Vs
Zi5lcnJvcl9zdHJpbmcgPSBlcnJvcl9zdHJpbmcKIAogICAgIGRlZiBfX2VxX18oc2VsZiwgb3Ro
ZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBzZWxmLl9fY2xhc3NfXyk6Ci0gICAg
ICAgICAgICByZXR1cm4gKHNlbGYuZGlmZl9pbWFnZSA9PSBvdGhlci5kaWZmX2ltYWdlIGFuZAor
ICAgICAgICAgICAgcmV0dXJuIChzZWxmLnBhc3NlZCA9PSBvdGhlci5wYXNzZWQgYW5kCisgICAg
ICAgICAgICAgICAgICAgIHNlbGYuZGlmZl9pbWFnZSA9PSBvdGhlci5kaWZmX2ltYWdlIGFuZAog
ICAgICAgICAgICAgICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9PSBvdGhlci5kaWZmX3BlcmNl
bnQgYW5kCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3Jfc3RyaW5nID09IG90aGVyLmVy
cm9yX3N0cmluZykKIApAQCAtNTcsNyArNTksNyBAQCBjbGFzcyBJbWFnZURpZmZSZXN1bHQob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKIAogICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICdJbWFnZURpZmZSZXN1bHQoe30ge30ge30p
Jy5mb3JtYXQoc2VsZi5kaWZmX2ltYWdlLCBzZWxmLmRpZmZfcGVyY2VudCwgc2VsZi5lcnJvcl9z
dHJpbmcpCisgICAgICAgIHJldHVybiAnSW1hZ2VEaWZmUmVzdWx0KFBhc3NlZCB7fSB7fSB7fSB7
fSknLmZvcm1hdChzZWxmLnBhc3NlZCwgc2VsZi5kaWZmX2ltYWdlLCBzZWxmLmRpZmZfcGVyY2Vu
dCwgc2VsZi5lcnJvcl9zdHJpbmcpCiAKIGNsYXNzIEltYWdlRGlmZmVyKG9iamVjdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQpOgpAQCAtMTI4LDEwICsxMzAsMTAgQEAgY2xhc3MgSW1h
Z2VEaWZmZXIob2JqZWN0KToKICAgICAgICAgaWYgb3V0cHV0IGFuZCBvdXRwdXQuc3RhcnRzd2l0
aChiJ2RpZmYnKToKICAgICAgICAgICAgIG0gPSByZS5tYXRjaChiJ2RpZmY6ICguKyklIChwYXNz
ZWR8ZmFpbGVkKScsIG91dHB1dCkKICAgICAgICAgICAgIGlmIG0uZ3JvdXAoMikgPT0gYidwYXNz
ZWQnOgotICAgICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQoTm9uZSwgMCwgTm9u
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBk
aWZmX2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9MCkKICAgICAgICAgICAgIGRpZmZfcGVyY2VudCA9
IGZsb2F0KHN0cmluZ191dGlscy5kZWNvZGUobS5ncm91cCgxKSwgdGFyZ2V0X3R5cGU9c3RyKSkK
IAotICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KG91dHB1dF9pbWFnZSwgZGlmZl9wZXJj
ZW50LCBlcnJfc3RyIG9yIE5vbmUpCisgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFz
c2VkPUZhbHNlLCBkaWZmX2ltYWdlPW91dHB1dF9pbWFnZSwgZGlmZmVyZW5jZT1kaWZmX3BlcmNl
bnQsIGVycm9yX3N0cmluZz1lcnJfc3RyIG9yIE5vbmUpCiAKICAgICBkZWYgc3RvcChzZWxmKToK
ICAgICAgICAgaWYgc2VsZi5fcHJvY2VzczoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3BvcnRfdGVzdGNhc2UucHkKaW5kZXggODcxN2M5YTZjMGIwYWIwOTI2ZTVjYWJkNmQ2MGU0YWM3
ZmE0YWM2OS4uYmYzMWZhNjk5MGUyMjU4ZTdlN2Q5NGZiOTdkMDFjZjk1OTU5ZTllMyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTI0OSwzNiAr
MjQ5LDM1IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IGRpciA9IHBvcnQubGF5b3V0X3Rlc3RzX2RpcigpCiAgICAgICAgIGZpbGUxID0gcG9ydC5fZmls
ZXN5c3RlbS5qb2luKGRpciwgJ2Zhc3QnLCAnY3NzJywgJ2J1dHRvbl9jZW50ZXIucG5nJykKICAg
ICAgICAgY29udGVudHMxID0gcG9ydC5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKGZpbGUx
KQotICAgICAgICBmaWxlMiA9IHBvcnQuX2ZpbGVzeXN0ZW0uam9pbihkaXIsICdmYXN0JywgJ2Nz
cycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZW1vdmUtc2hvcnRo
YW5kLWV4cGVjdGVkLnBuZycpCisgICAgICAgIGZpbGUyID0gcG9ydC5fZmlsZXN5c3RlbS5qb2lu
KGRpciwgJ2Zhc3QnLCAnY3NzJywgJ3JlbW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQucG5nJykKICAg
ICAgICAgY29udGVudHMyID0gcG9ydC5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKGZpbGUy
KQogICAgICAgICB0bXBmZCwgdG1wZmlsZSA9IHBvcnQuX2ZpbGVzeXN0ZW0ub3Blbl9iaW5hcnlf
dGVtcGZpbGUoJycpCiAgICAgICAgIHRtcGZkLmNsb3NlKCkKIAotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKHBvcnQuZGlmZl9pbWFnZShjb250ZW50czEsIGNvbnRlbnRzMSkuZGlmZl9pbWFnZSkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShjb250ZW50czEsIGNvbnRl
bnRzMikuZGlmZl9pbWFnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFn
ZShjb250ZW50czEsIGNvbnRlbnRzMSkucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KHBvcnQuZGlmZl9pbWFnZShjb250ZW50czEsIGNvbnRlbnRzMikucGFzc2VkKQogCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRpZmZfaW1hZ2UoY29udGVudHMxLCBjb250ZW50czIsIHRt
cGZpbGUpLmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5kaWZmX2lt
YWdlKGNvbnRlbnRzMSwgY29udGVudHMyLCB0bXBmaWxlKS5wYXNzZWQpCiAKICAgICAgICAgcG9y
dC5fZmlsZXN5c3RlbS5yZW1vdmUodG1wZmlsZSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2Vf
X21pc3NpbmdfYm90aChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3J0LmRpZmZfaW1hZ2UoTm9uZSwgTm9uZSkuZGlmZl9p
bWFnZSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3J0LmRpZmZfaW1hZ2UoTm9uZSwgYicn
KS5kaWZmX2ltYWdlKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBvcnQuZGlmZl9pbWFnZShi
JycsIE5vbmUpLmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRpZmZf
aW1hZ2UoTm9uZSwgTm9uZSkucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5k
aWZmX2ltYWdlKE5vbmUsIGInJykucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9y
dC5kaWZmX2ltYWdlKGInJywgTm9uZSkucGFzc2VkKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UocG9ydC5kaWZmX2ltYWdlKGInJywgYicnKS5kaWZmX2ltYWdlKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUocG9ydC5kaWZmX2ltYWdlKGInJywgYicnKS5wYXNzZWQpCiAKICAgICBkZWYgdGVz
dF9kaWZmX2ltYWdlX19taXNzaW5nX2FjdHVhbChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYu
bWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShOb25l
LCBiJ2ZvbycpLmRpZmZfaW1hZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRpZmZf
aW1hZ2UoYicnLCBiJ2ZvbycpLmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
cG9ydC5kaWZmX2ltYWdlKE5vbmUsIGInZm9vJykucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKHBvcnQuZGlmZl9pbWFnZShiJycsIGInZm9vJykucGFzc2VkKQogCiAgICAgZGVmIHRl
c3RfZGlmZl9pbWFnZV9fbWlzc2luZ19leHBlY3RlZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNl
bGYubWFrZV9wb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShi
J2ZvbycsIE5vbmUpLmRpZmZfaW1hZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRp
ZmZfaW1hZ2UoYidmb28nLCBiJycpLmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgTm9uZSkucGFzc2VkKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInJykucGFzc2VkKQogCiAgICAgZGVm
IHRlc3RfZGlmZl9pbWFnZShzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkK
QEAgLTI5OCwyMiArMjk3LDIyIEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgICMgRmlyc3QgdGVzdCB0aGUgY2FzZSBvZiBub3QgdXNpbmcgdGhlIEpIQnVp
bGQgd3JhcHBlci4KICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3J0Ll9zaG91bGRfdXNlX2po
YnVpbGQoKSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2Zv
bycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChiJycsIDEwMC4wLCBOb25lKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicpLCBJbWFnZURp
ZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwgW3BvcnQuX3BhdGhfdG9f
aW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMC4xIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCBOb25lKSwgSW1hZ2VEaWZmUmVz
dWx0KGInJywgMTAwLjAsIE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlm
Zl9pbWFnZShiJ2ZvbycsIGInYmFyJywgTm9uZSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFs
c2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnByb2MuY21kLCBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRv
bGVyYW5jZSIsICIwLjEiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1h
Z2UoYidmb28nLCBiJ2JhcicsIDApLCBJbWFnZURpZmZSZXN1bHQoYicnLCAxMDAuMCwgTm9uZSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXIn
LCAwKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZl
cmVuY2U9MTAwLjApKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIFtw
b3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAiXSkKIAogICAgICAg
ICAjIE5vdyB0ZXN0IHRoZSBjYXNlIG9mIHVzaW5nIEpIQnVpbGQgd3JhcHBlci4KICAgICAgICAg
cG9ydC5fZmlsZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShwb3J0LnBhdGhfZnJvbV93ZWJr
aXRfYmFzZSgnV2ViS2l0QnVpbGQnLCAnRGVwZW5kZW5jaWVzJXMnICUgcG9ydC5wb3J0X25hbWUu
dXBwZXIoKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9zaG91bGRfdXNlX2poYnVp
bGQoKSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2Zvbycs
IGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChiJycsIDEwMC4wLCBOb25lKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicpLCBJbWFnZURpZmZS
ZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwgcG9ydC5famhidWlsZF93cmFw
cGVyICsgW3BvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMC4xIl0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXIn
LCBOb25lKSwgSW1hZ2VEaWZmUmVzdWx0KGInJywgMTAwLjAsIE5vbmUpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgTm9uZSksIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4w
KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21kLCBwb3J0Ll9qaGJ1aWxk
X3dyYXBwZXIgKyBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIw
LjEiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBi
J2JhcicsIDApLCBJbWFnZURpZmZSZXN1bHQoYicnLCAxMDAuMCwgTm9uZSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCAwKSwgSW1hZ2VE
aWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjAp
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIHBvcnQuX2poYnVpbGRf
d3JhcHBlciArIFtwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAi
XSkKIAogICAgICAgICBwb3J0LmNsZWFuX3VwX3Rlc3RfcnVuKCkKQEAgLTMyNCwxMyArMzIzLDEz
IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQg
PSBzZWxmLm1ha2VfcG9ydCgpCiAgICAgICAgIHBvcnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVj
dG9yID0gbGFtYmRhIHBvcnQsIG5tLCBjbWQsIGVudiwgY3Jhc2hfbWVzc2FnZT1Ob25lOiBNb2Nr
U2VydmVyUHJvY2VzcyhsaW5lcz1bJ2RpZmY6IDAlIHBhc3NlZFxuJ10pCiAgICAgICAgIGltYWdl
X2RpZmZlciA9IEltYWdlRGlmZmVyKHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1h
Z2VfZGlmZmVyLmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIDAuMSksIEltYWdlRGlmZlJlc3Vs
dChOb25lLCAwLCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIu
ZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgMC4xKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1U
cnVlLCBkaWZmX2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9MCkpCiAKICAgICBkZWYgdGVzdF9kaWZm
X2ltYWdlX2ZhaWxlZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAg
ICAgICAgcG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3IgPSBsYW1iZGEgcG9ydCwgbm0s
IGNtZCwgZW52LCBjcmFzaF9tZXNzYWdlPU5vbmU6IE1vY2tTZXJ2ZXJQcm9jZXNzKGxpbmVzPVsn
ZGlmZjogMTAwJSBmYWlsZWRcbiddKQogICAgICAgICBpbWFnZV9kaWZmZXIgPSBJbWFnZURpZmZl
cihwb3J0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltYWdlX2RpZmZlci5kaWZmX2ltYWdl
KGInZm9vJywgYidiYXInLCAwLjEpLCBJbWFnZURpZmZSZXN1bHQoYicnLCAxMDAuMCwgTm9uZSkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlmZmVyLmRpZmZfaW1hZ2UoYidmb28n
LCBiJ2JhcicsIDAuMSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9
YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2VfY3Jhc2hl
ZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAgLTM0Niw3ICszNDUs
NyBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIHBv
cnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gbWFrZV9wcm9jCiAgICAgICAgIHBvcnQu
c2V0dXBfdGVzdF9ydW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFn
ZShiJ2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChiJycsIDAsICdJbWFnZURpZmYgY3Jh
c2hlZFxuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9v
JywgYidiYXInKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycs
IGRpZmZlcmVuY2U9MCwgZXJyb3Jfc3RyaW5nPSdJbWFnZURpZmYgY3Jhc2hlZFxuJykpCiAgICAg
ICAgIHBvcnQuY2xlYW5fdXBfdGVzdF9ydW4oKQogCiAgICAgQHNsb3cKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L3Rlc3QucHkKaW5kZXggZTJjOTY4YTcwNmM5OWI2YjIyYzM0ZTE4YjVmMDQ0MTExNGY5
MzRjZC4uMTIxNjczODEzNWE3OGExZGYxMzg3NjhlNzdkODhiNzZlMDdjZDBhZiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKQEAgLTQwOCwyMCArNDA4LDIzIEBAIGNsYXNzIFRlc3RQ
b3J0KFBvcnQpOgogICAgICAgICBhY3R1YWxfY29udGVudHMgPSBzdHJpbmdfdXRpbHMuZW5jb2Rl
KGFjdHVhbF9jb250ZW50cykKICAgICAgICAgZGlmZmVkID0gYWN0dWFsX2NvbnRlbnRzICE9IGV4
cGVjdGVkX2NvbnRlbnRzCiAgICAgICAgIGlmIG5vdCBhY3R1YWxfY29udGVudHMgYW5kIG5vdCBl
eHBlY3RlZF9jb250ZW50czoKLSAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQoTm9u
ZSwgMCwgTm9uZSkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPVRy
dWUsIGRpZmZfaW1hZ2U9Tm9uZSwgZGlmZmVyZW5jZT0wKQogCiAgICAgICAgIGlmIG5vdCBhY3R1
YWxfY29udGVudHMgb3Igbm90IGV4cGVjdGVkX2NvbnRlbnRzOgotICAgICAgICAgICAgcmV0dXJu
IEltYWdlRGlmZlJlc3VsdChUcnVlLCAwLCBOb25lKQorICAgICAgICAgICAgcmV0dXJuIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTApCiAK
ICAgICAgICAgaWYgYidyZWYnIGluIGV4cGVjdGVkX2NvbnRlbnRzOgogICAgICAgICAgICAgYXNz
ZXJ0IHRvbGVyYW5jZSA9PSAwCiAgICAgICAgIGlmIGRpZmZlZDoKLSAgICAgICAgICAgIHJldHVy
biBJbWFnZURpZmZSZXN1bHQoIjwge31cbi0tLVxuPiB7fVxuIi5mb3JtYXQoCi0gICAgICAgICAg
ICAgICAgc3RyaW5nX3V0aWxzLmRlY29kZShleHBlY3RlZF9jb250ZW50cywgdGFyZ2V0X3R5cGU9
c3RyKSwKLSAgICAgICAgICAgICAgICBzdHJpbmdfdXRpbHMuZGVjb2RlKGFjdHVhbF9jb250ZW50
cywgdGFyZ2V0X3R5cGU9c3RyKSwKLSAgICAgICAgICAgICksIDEsIE5vbmUpCi0KLSAgICAgICAg
cmV0dXJuIEltYWdlRGlmZlJlc3VsdChOb25lLCAwLCBOb25lKQorICAgICAgICAgICAgcmV0dXJu
IEltYWdlRGlmZlJlc3VsdCgKKyAgICAgICAgICAgICAgICBwYXNzZWQ9RmFsc2UsCisgICAgICAg
ICAgICAgICAgZGlmZl9pbWFnZT0iPCB7fVxuLS0tXG4+IHt9XG4iLmZvcm1hdCgKKyAgICAgICAg
ICAgICAgICAgICAgc3RyaW5nX3V0aWxzLmRlY29kZShleHBlY3RlZF9jb250ZW50cywgdGFyZ2V0
X3R5cGU9c3RyKSwKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nX3V0aWxzLmRlY29kZShhY3R1
YWxfY29udGVudHMsIHRhcmdldF90eXBlPXN0ciksCisgICAgICAgICAgICAgICAgKSwKKyAgICAg
ICAgICAgICAgICBkaWZmZXJlbmNlPTEpCisKKyAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9VHJ1ZSwgZGlmZl9pbWFnZT1Ob25lLCBkaWZmZXJlbmNlPTApCiAKICAgICBkZWYg
bGF5b3V0X3Rlc3RzX2RpcihzZWxmKToKICAgICAgICAgcmV0dXJuIExBWU9VVF9URVNUX0RJUgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442412</attachid>
            <date>2021-10-25 14:04:40 -0700</date>
            <delta_ts>2021-10-25 16:25:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232266-20211025140439.patch</filename>
            <type>text/plain</type>
            <size>19142</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y1MDJjN2M0YTdhZWMwODEwZDc3MjZkMjBmZWUzYTli
ZmQyOTk2OS4uY2Q5YzExOWUxMDI3N2VjNWQwMWJlOTc5OWU4MTVjZWM3ODYyYTNlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2
IEBACisyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIHdlYmtpdHB5OiBBZGQgYW4gZXhwbGljaXQgSW1hZ2VEaWZmUmVzdWx0LnBhc3Nl
ZCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGRpZmZfaW1hZ2UgYmVpbmcgbm9uLU5vbmUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjI2NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQSByZWYg
dGVzdCB3YXMgY29uc2lkZXJlZCBmYWlsaW5nIGlmIGl0IEltYWdlRGlmZlJlc3VsdC5kaWZmX2lt
YWdlIHdhcyBub3QgTm9uZSwgYWxsb3dpbmcKKyAgICAgICAgZm9yIGNvbmZ1c2luZyB1bml0IHRl
c3RzIHRoYXQgdXNlZCBhIHZhbHVlIG9mIFRydWUgZm9yIGRpZmZfaW1hZ2UuCisKKyAgICAgICAg
Rml4IGJ5IGdpdmluZyBJbWFnZURpZmZSZXN1bHQgYW4gZXhwbGljaXQgJ3Bhc3NlcycgZmllbGQs
IGFuZCB0ZXN0aW5nIGl0IHJhdGhlciB0aGFuCisgICAgICAgIGRpZmZfaW1hZ2UuCisKKyAgICAg
ICAgQWxzbyB1c2VkIG5hbWVkIGFyZ3VtZW50cyB3aGVuIGNyZWF0aW5nIEltYWdlRGlmZlJlc3Vs
dHMgZm9yIHJlYWRhYmlsaXR5LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoU2luZ2xl
VGVzdFJ1bm5lci5fY29tcGFyZV9pbWFnZSk6IFVzZSBgZGlmZl9yZXN1bHQucGFzc2VkYCBhcyB0
cnV0aCBmb3Igd2hldGhlciB0aGUgdGVzdCBwYXNzZWQsCisgICAgICAgIGFuZCBvbmx5IHN0b3Jl
IHRoZSBlcnJvcl9zdHJpbmcgaW4gZmFpbHVyZSBjYXNlcyAod2hpY2ggYWxsb3dzIEltYWdlRGlm
ZiB0byBzcGV3IGRpYWdub3N0aWMgZXJyb3JzCisgICAgICAgIHdpdGhvdXQgdHJpZ2dlcmluZyBm
YWlsdXJlcykuCisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9jb21wYXJlX291dHB1dF93aXRo
X3JlZmVyZW5jZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFJl
c3VsdFdyaXRlclRlc3QudGVzdF9yZWZ0ZXN0X2RpZmZfaW1hZ2UuSW1hZ2VEaWZmVGVzdFBvcnQu
ZGlmZl9pbWFnZSk6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVzdCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlv
bnRlc3QucHk6CisgICAgICAgIChSdW5UZXN0LnRlc3RfdG9sZXJhbmNlLkltYWdlRGlmZlRlc3RQ
b3J0LmRpZmZfaW1hZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
OgorICAgICAgICAoUG9ydC5kaWZmX2ltYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvaW1hZ2VfZGlmZi5weToKKyAgICAgICAgKEltYWdlRGlmZlJlc3VsdC5fX2luaXRfXyk6
CisgICAgICAgIChJbWFnZURpZmZSZXN1bHQuX19lcV9fKToKKyAgICAgICAgKEltYWdlRGlmZlJl
c3VsdC5fX3JlcHJfXyk6CisgICAgICAgIChJbWFnZURpZmZlci5fcmVhZCk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHk6CisgICAgICAgIChQb3J0VGVz
dENhc2UuaW50ZWdyYXRpb25fdGVzdF9pbWFnZV9kaWZmKToKKyAgICAgICAgKFBvcnRUZXN0Q2Fz
ZS50ZXN0X2RpZmZfaW1hZ2VfX21pc3NpbmdfYm90aCk6CisgICAgICAgIChQb3J0VGVzdENhc2Uu
dGVzdF9kaWZmX2ltYWdlX19taXNzaW5nX2FjdHVhbCk6CisgICAgICAgIChQb3J0VGVzdENhc2Uu
dGVzdF9kaWZmX2ltYWdlX19taXNzaW5nX2V4cGVjdGVkKToKKyAgICAgICAgKFBvcnRUZXN0Q2Fz
ZS50ZXN0X2RpZmZfaW1hZ2UpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZGlmZl9pbWFn
ZV9wYXNzZWQpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZGlmZl9pbWFnZV9mYWlsZWQp
OgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfZGlmZl9pbWFnZV9jcmFzaGVkKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weToKKwogMjAyMS0xMC0yNSAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBCcmluZyB1cCBxdWV1ZXMg
Zm9yIE1vbnRlcmV5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkKaW5k
ZXggY2ZlNmE3MGNkYWJmZThiYWEyNDcxYzgxNjBiNTk4MjM4Y2JlYzY3Ny4uNDM3OGI0YzFlMjg3
ZGI1MTg5MzVjMzE4MWE4M2QyN2JlMjUzYWYxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rlc3RfcnVubmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Npbmds
ZV90ZXN0X3J1bm5lci5weQpAQCAtMjk0LDE3ICsyOTQsMTUgQEAgY2xhc3MgU2luZ2xlVGVzdFJ1
bm5lcihvYmplY3QpOgogICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMu
RmFpbHVyZU1pc3NpbmdJbWFnZUhhc2goKSkKICAgICAgICAgZWxpZiBkcml2ZXJfb3V0cHV0Lmlt
YWdlX2hhc2ggIT0gZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFnZV9oYXNoOgogICAgICAgICAg
ICAgZGlmZl9yZXN1bHQgPSBzZWxmLl9wb3J0LmRpZmZfaW1hZ2UoZXhwZWN0ZWRfZHJpdmVyX291
dHB1dC5pbWFnZSwgZHJpdmVyX291dHB1dC5pbWFnZSkKLSAgICAgICAgICAgIGlmIGRpZmZfcmVz
dWx0LmVycm9yX3N0cmluZzoKLSAgICAgICAgICAgICAgICBfbG9nLndhcm5pbmcoJyAgJXMgOiAl
cycgJSAoc2VsZi5fdGVzdF9uYW1lLCBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcpKQotICAgICAg
ICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFnZUhhc2hN
aXNtYXRjaCgpKQotICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuZXJyb3IgPSAoZHJpdmVy
X291dHB1dC5lcnJvciBvciAnJykgKyBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcKLSAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBpZiBub3QgZGlmZl9yZXN1bHQucGFzc2VkOgorICAgICAg
ICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFnZUhhc2hN
aXNtYXRjaChkaWZmX3Jlc3VsdC5kaWZmX3BlcmNlbnQpKQorICAgICAgICAgICAgICAgIGlmIGRp
ZmZfcmVzdWx0LmVycm9yX3N0cmluZzoKKyAgICAgICAgICAgICAgICAgICAgX2xvZy53YXJuaW5n
KCcgICVzIDogJXMnICUgKHNlbGYuX3Rlc3RfbmFtZSwgZGlmZl9yZXN1bHQuZXJyb3Jfc3RyaW5n
KSkKKyAgICAgICAgICAgICAgICAgICAgZHJpdmVyX291dHB1dC5lcnJvciA9IChkcml2ZXJfb3V0
cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZwogICAgICAgICAgICAg
ICAgIGRyaXZlcl9vdXRwdXQuaW1hZ2VfZGlmZiA9IGRpZmZfcmVzdWx0LmRpZmZfaW1hZ2UKLSAg
ICAgICAgICAgICAgICBpZiBkcml2ZXJfb3V0cHV0LmltYWdlX2RpZmY6Ci0gICAgICAgICAgICAg
ICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVJbWFnZUhhc2hNaXNt
YXRjaChkaWZmX3Jlc3VsdC5kaWZmX3BlcmNlbnQpKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02OTQ0NCBmb3Igd2h5IHRoaXMgaXNuJ3QgYSBmdWxsIGZhaWx1cmUuCi0gICAgICAg
ICAgICAgICAgICAgIF9sb2cud2FybmluZygnICAlcyAtPiBwaXhlbCBoYXNoIGZhaWxlZCAoYnV0
IGRpZmYgcGFzc2VkKScgJSBzZWxmLl90ZXN0X25hbWUpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02OTQ0NCBmb3Igd2h5IHRoaXMgaXNuJ3QgYSBmdWxsIGZhaWx1cmUuCisgICAgICAgICAgICAg
ICAgX2xvZy53YXJuaW5nKCcgICVzIC0+IHBpeGVsIGhhc2ggZmFpbGVkIChidXQgZGlmZiBwYXNz
ZWQpJyAlIHNlbGYuX3Rlc3RfbmFtZSkKICAgICAgICAgcmV0dXJuIGZhaWx1cmVzCiAKICAgICBk
ZWYgX3J1bl9yZWZ0ZXN0KHNlbGYpOgpAQCAtMzU3LDExICszNTUsMTAgQEAgY2xhc3MgU2luZ2xl
VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBlbGlmIHJlZmVyZW5jZV9kcml2ZXJfb3V0cHV0
LmltYWdlX2hhc2ggIT0gYWN0dWFsX2RyaXZlcl9vdXRwdXQuaW1hZ2VfaGFzaDoKICAgICAgICAg
ICAgICMgSW1hZ2VEaWZmIGhhcyBhIGhhcmQgY29kZWQgY29sb3IgZGlzdGFuY2UgdGhyZXNob2xk
IGV2ZW4gdGhvdWdoIHRvbGVyYW5jZT0wIGlzIHNwZWNpZmllZC4KICAgICAgICAgICAgIGRpZmZf
cmVzdWx0ID0gc2VsZi5fcG9ydC5kaWZmX2ltYWdlKHJlZmVyZW5jZV9kcml2ZXJfb3V0cHV0Lmlt
YWdlLCBhY3R1YWxfZHJpdmVyX291dHB1dC5pbWFnZSwgdG9sZXJhbmNlPTApCi0gICAgICAgICAg
ICBpZiBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6Ci0gICAgICAgICAgICAgICAgX2xvZy53YXJu
aW5nKCcgICVzIDogJXMnICUgKHNlbGYuX3Rlc3RfbmFtZSwgZGlmZl9yZXN1bHQuZXJyb3Jfc3Ry
aW5nKSkKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWlsdXJlcy5GYWls
dXJlUmVmdGVzdE1pc21hdGNoKHJlZmVyZW5jZV9maWxlbmFtZSkpCi0gICAgICAgICAgICAgICAg
YWN0dWFsX2RyaXZlcl9vdXRwdXQuZXJyb3IgPSAoYWN0dWFsX2RyaXZlcl9vdXRwdXQuZXJyb3Ig
b3IgJycpICsgZGlmZl9yZXN1bHQuZXJyb3Jfc3RyaW5nCi0gICAgICAgICAgICBlbGlmIGRpZmZf
cmVzdWx0LmRpZmZfaW1hZ2U6CisgICAgICAgICAgICBpZiBub3QgZGlmZl9yZXN1bHQucGFzc2Vk
OgogICAgICAgICAgICAgICAgIGZhaWx1cmVzLmFwcGVuZCh0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVS
ZWZ0ZXN0TWlzbWF0Y2gocmVmZXJlbmNlX2ZpbGVuYW1lKSkKKyAgICAgICAgICAgICAgICBpZiBk
aWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6CisgICAgICAgICAgICAgICAgICAgIF9sb2cud2Fybmlu
ZygnICAlcyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0cmlu
ZykpCisgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yID0gKGFj
dHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVycm9yX3N0cmlu
ZwogCiAgICAgICAgIHJldHVybiBUZXN0UmVzdWx0KHNlbGYuX3Rlc3RfaW5wdXQsIGZhaWx1cmVz
LCB0b3RhbF90ZXN0X3RpbWUsIGhhc19zdGRlcnIsIHBpZD1hY3R1YWxfZHJpdmVyX291dHB1dC5w
aWQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRl
c3QucHkKaW5kZXggZDM1NGYxZjE1ODczNmRkYjA3OTZlY2ZiMDRjMmIxZjc4ZGMzYjEzYS4uOGIy
YWUyMzk1NjY3YThhZGJlMzI1YzU2NzgyODQzOGExMjRkMzI0NiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3Jp
dGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dyaXRlcl91bml0dGVzdC5weQpAQCAtNDIsNyArNDIs
NyBAQCBjbGFzcyBUZXN0UmVzdWx0V3JpdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIGNsYXNzIEltYWdlRGlmZlRlc3RQb3J0KFRlc3RQb3J0KToKICAgICAgICAgICAgIGRlZiBk
aWZmX2ltYWdlKHNlbGYsIGV4cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29udGVudHMsIHRvbGVy
YW5jZT1Ob25lKToKICAgICAgICAgICAgICAgICB1c2VkX3RvbGVyYW5jZV92YWx1ZXMuYXBwZW5k
KHRvbGVyYW5jZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KFRydWUs
IDEsIE5vbmUpCisgICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9
RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEpCiAKICAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKICAgICAgICAgcG9ydCA9IEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
X2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CmluZGV4IDdkOTY5ZTNiN2FkOWIx
ZmRlNWU3MGY3MWM5N2VhOTU1YzYzMmM2ZTAuLmM4NzBkNGU1MGQ1ZmNjYThhMTk3MGIyNmRjZDZh
ZTc0ZjY3NjE4MTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0
LnB5CkBAIC03NTIsNyArNzUyLDcgQEAgY2xhc3MgUnVuVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSwg
U3RyZWFtVGVzdGluZ01peGluKToKICAgICAgICAgY2xhc3MgSW1hZ2VEaWZmVGVzdFBvcnQodGVz
dC5UZXN0UG9ydCk6CiAgICAgICAgICAgICBkZWYgZGlmZl9pbWFnZShzZWxmLCBleHBlY3RlZF9j
b250ZW50cywgYWN0dWFsX2NvbnRlbnRzLCB0b2xlcmFuY2U9Tm9uZSk6CiAgICAgICAgICAgICAg
ICAgc2VsZi50b2xlcmFuY2VfdXNlZF9mb3JfZGlmZl9pbWFnZSA9IHNlbGYuX29wdGlvbnMudG9s
ZXJhbmNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChUcnVlLCAxLCBO
b25lKQorICAgICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNl
LCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xKQogCiAgICAgICAgIGRlZiBnZXRfcG9ydF9m
b3JfcnVuKGFyZ3MpOgogICAgICAgICAgICAgb3B0aW9ucywgcGFyc2VkX2FyZ3MgPSBydW5fd2Vi
a2l0X3Rlc3RzLnBhcnNlX2FyZ3MoYXJncykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9iYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkK
aW5kZXggMzU2NDAwMThjMzNkMDUyMTNjYjA2Yjg4MWM0MjQ1MzIxZGI3OWNlYS4uNmM1Y2MzNTcy
ZjI3NTdlNzBhNDA4ZDc1ZjdhOTlmNTMwMjA4ZTAxYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2UucHkKQEAgLTMwNywxMCArMzA3LDEwIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAg
ICAgSWYgYW4gZXJyb3Igb2NjdXJzIChsaWtlIEltYWdlRGlmZiBpc24ndCBmb3VuZCwgb3IgY3Jh
c2hlcywgd2UgbG9nIGFuIGVycm9yIGFuZCByZXR1cm4gVHJ1ZSAoZm9yIGEgZGlmZikuCiAgICAg
ICAgICIiIgogICAgICAgICBpZiBub3QgYWN0dWFsX2NvbnRlbnRzIGFuZCBub3QgZXhwZWN0ZWRf
Y29udGVudHM6Ci0gICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KE5vbmUsIDAsIE5v
bmUpCisgICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZm
X2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9MCkKIAogICAgICAgICBpZiBub3QgYWN0dWFsX2NvbnRl
bnRzIG9yIG5vdCBleHBlY3RlZF9jb250ZW50czoKLSAgICAgICAgICAgIHJldHVybiBJbWFnZURp
ZmZSZXN1bHQoVHJ1ZSwgMCwgTm9uZSkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1
bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xKQogCiAgICAgICAg
IGlmIG5vdCBzZWxmLl9pbWFnZV9kaWZmZXI6CiAgICAgICAgICAgICBzZWxmLl9pbWFnZV9kaWZm
ZXIgPSBpbWFnZV9kaWZmLkltYWdlRGlmZmVyKHNlbGYpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvaW1hZ2VfZGlmZi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9pbWFnZV9kaWZmLnB5CmluZGV4IDYzM2IxZTMwM2IwOWNiYjIyODY0ZGMyYzM5N2M4ZDc0
ZTkxMGI2ZWUuLmNiOGIzZjA0ZWEzN2Y5ZjlmOTJjMGUzMDQ1Mzc0ODYxZmE3OGFmYjUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CkBAIC00MCwxNCArNDAsMTYg
QEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIEltYWdlRGlm
ZlJlc3VsdChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaWZmX2ltYWdlLCBkaWZm
ZXJlbmNlLCBlcnJvcl9zdHJpbmcpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXNzZWQsIGRp
ZmZfaW1hZ2UsIGRpZmZlcmVuY2UsIGVycm9yX3N0cmluZz1Ob25lKToKKyAgICAgICAgc2VsZi5w
YXNzZWQgPSBwYXNzZWQKICAgICAgICAgc2VsZi5kaWZmX2ltYWdlID0gZGlmZl9pbWFnZQogICAg
ICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IGRpZmZlcmVuY2UKICAgICAgICAgc2VsZi5lcnJvcl9z
dHJpbmcgPSBlcnJvcl9zdHJpbmcKIAogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAg
ICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBzZWxmLl9fY2xhc3NfXyk6Ci0gICAgICAgICAgICBy
ZXR1cm4gKHNlbGYuZGlmZl9pbWFnZSA9PSBvdGhlci5kaWZmX2ltYWdlIGFuZAorICAgICAgICAg
ICAgcmV0dXJuIChzZWxmLnBhc3NlZCA9PSBvdGhlci5wYXNzZWQgYW5kCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYuZGlmZl9pbWFnZSA9PSBvdGhlci5kaWZmX2ltYWdlIGFuZAogICAgICAgICAg
ICAgICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9PSBvdGhlci5kaWZmX3BlcmNlbnQgYW5kCiAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3Jfc3RyaW5nID09IG90aGVyLmVycm9yX3N0cmlu
ZykKIApAQCAtNTcsNyArNTksNyBAQCBjbGFzcyBJbWFnZURpZmZSZXN1bHQob2JqZWN0KToKICAg
ICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKIAogICAgIGRlZiBfX3JlcHJfXyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuICdJbWFnZURpZmZSZXN1bHQoe30ge30ge30pJy5mb3JtYXQo
c2VsZi5kaWZmX2ltYWdlLCBzZWxmLmRpZmZfcGVyY2VudCwgc2VsZi5lcnJvcl9zdHJpbmcpCisg
ICAgICAgIHJldHVybiAnSW1hZ2VEaWZmUmVzdWx0KFBhc3NlZCB7fSB7fSB7fSB7fSknLmZvcm1h
dChzZWxmLnBhc3NlZCwgc2VsZi5kaWZmX2ltYWdlLCBzZWxmLmRpZmZfcGVyY2VudCwgc2VsZi5l
cnJvcl9zdHJpbmcpCiAKIGNsYXNzIEltYWdlRGlmZmVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHBvcnQpOgpAQCAtMTI4LDEwICsxMzAsMTAgQEAgY2xhc3MgSW1hZ2VEaWZmZXIo
b2JqZWN0KToKICAgICAgICAgaWYgb3V0cHV0IGFuZCBvdXRwdXQuc3RhcnRzd2l0aChiJ2RpZmYn
KToKICAgICAgICAgICAgIG0gPSByZS5tYXRjaChiJ2RpZmY6ICguKyklIChwYXNzZWR8ZmFpbGVk
KScsIG91dHB1dCkKICAgICAgICAgICAgIGlmIG0uZ3JvdXAoMikgPT0gYidwYXNzZWQnOgotICAg
ICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQoTm9uZSwgMCwgTm9uZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZmX2ltYWdl
PU5vbmUsIGRpZmZlcmVuY2U9MCkKICAgICAgICAgICAgIGRpZmZfcGVyY2VudCA9IGZsb2F0KHN0
cmluZ191dGlscy5kZWNvZGUobS5ncm91cCgxKSwgdGFyZ2V0X3R5cGU9c3RyKSkKIAotICAgICAg
ICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KG91dHB1dF9pbWFnZSwgZGlmZl9wZXJjZW50LCBlcnJf
c3RyIG9yIE5vbmUpCisgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNl
LCBkaWZmX2ltYWdlPW91dHB1dF9pbWFnZSwgZGlmZmVyZW5jZT1kaWZmX3BlcmNlbnQsIGVycm9y
X3N0cmluZz1lcnJfc3RyIG9yIE5vbmUpCiAKICAgICBkZWYgc3RvcChzZWxmKToKICAgICAgICAg
aWYgc2VsZi5fcHJvY2VzczoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9wb3J0X3Rlc3RjYXNlLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVz
dGNhc2UucHkKaW5kZXggODcxN2M5YTZjMGIwYWIwOTI2ZTVjYWJkNmQ2MGU0YWM3ZmE0YWM2OS4u
YmYzMWZhNjk5MGUyMjU4ZTdlN2Q5NGZiOTdkMDFjZjk1OTU5ZTllMyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkKQEAgLTI0OSwzNiArMjQ5LDM1IEBA
IGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGRpciA9IHBv
cnQubGF5b3V0X3Rlc3RzX2RpcigpCiAgICAgICAgIGZpbGUxID0gcG9ydC5fZmlsZXN5c3RlbS5q
b2luKGRpciwgJ2Zhc3QnLCAnY3NzJywgJ2J1dHRvbl9jZW50ZXIucG5nJykKICAgICAgICAgY29u
dGVudHMxID0gcG9ydC5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKGZpbGUxKQotICAgICAg
ICBmaWxlMiA9IHBvcnQuX2ZpbGVzeXN0ZW0uam9pbihkaXIsICdmYXN0JywgJ2NzcycsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZW1vdmUtc2hvcnRoYW5kLWV4cGVj
dGVkLnBuZycpCisgICAgICAgIGZpbGUyID0gcG9ydC5fZmlsZXN5c3RlbS5qb2luKGRpciwgJ2Zh
c3QnLCAnY3NzJywgJ3JlbW92ZS1zaG9ydGhhbmQtZXhwZWN0ZWQucG5nJykKICAgICAgICAgY29u
dGVudHMyID0gcG9ydC5fZmlsZXN5c3RlbS5yZWFkX2JpbmFyeV9maWxlKGZpbGUyKQogICAgICAg
ICB0bXBmZCwgdG1wZmlsZSA9IHBvcnQuX2ZpbGVzeXN0ZW0ub3Blbl9iaW5hcnlfdGVtcGZpbGUo
JycpCiAgICAgICAgIHRtcGZkLmNsb3NlKCkKIAotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBv
cnQuZGlmZl9pbWFnZShjb250ZW50czEsIGNvbnRlbnRzMSkuZGlmZl9pbWFnZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShjb250ZW50czEsIGNvbnRlbnRzMikuZGlm
Zl9pbWFnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShjb250ZW50
czEsIGNvbnRlbnRzMSkucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBvcnQuZGlm
Zl9pbWFnZShjb250ZW50czEsIGNvbnRlbnRzMikucGFzc2VkKQogCi0gICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShwb3J0LmRpZmZfaW1hZ2UoY29udGVudHMxLCBjb250ZW50czIsIHRtcGZpbGUpLmRp
ZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5kaWZmX2ltYWdlKGNvbnRl
bnRzMSwgY29udGVudHMyLCB0bXBmaWxlKS5wYXNzZWQpCiAKICAgICAgICAgcG9ydC5fZmlsZXN5
c3RlbS5yZW1vdmUodG1wZmlsZSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2VfX21pc3Npbmdf
Ym90aChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZShwb3J0LmRpZmZfaW1hZ2UoTm9uZSwgTm9uZSkuZGlmZl9pbWFnZSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3J0LmRpZmZfaW1hZ2UoTm9uZSwgYicnKS5kaWZmX2lt
YWdlKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBvcnQuZGlmZl9pbWFnZShiJycsIE5vbmUp
LmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRpZmZfaW1hZ2UoTm9u
ZSwgTm9uZSkucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5kaWZmX2ltYWdl
KE5vbmUsIGInJykucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5kaWZmX2lt
YWdlKGInJywgTm9uZSkucGFzc2VkKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5k
aWZmX2ltYWdlKGInJywgYicnKS5kaWZmX2ltYWdlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
cG9ydC5kaWZmX2ltYWdlKGInJywgYicnKS5wYXNzZWQpCiAKICAgICBkZWYgdGVzdF9kaWZmX2lt
YWdlX19taXNzaW5nX2FjdHVhbChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShOb25lLCBiJ2Zvbycp
LmRpZmZfaW1hZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRpZmZfaW1hZ2UoYicn
LCBiJ2ZvbycpLmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5kaWZm
X2ltYWdlKE5vbmUsIGInZm9vJykucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBv
cnQuZGlmZl9pbWFnZShiJycsIGInZm9vJykucGFzc2VkKQogCiAgICAgZGVmIHRlc3RfZGlmZl9p
bWFnZV9fbWlzc2luZ19leHBlY3RlZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9w
b3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIE5v
bmUpLmRpZmZfaW1hZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0LmRpZmZfaW1hZ2Uo
Yidmb28nLCBiJycpLmRpZmZfaW1hZ2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5k
aWZmX2ltYWdlKGInZm9vJywgTm9uZSkucGFzc2VkKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInJykucGFzc2VkKQogCiAgICAgZGVmIHRlc3RfZGlm
Zl9pbWFnZShzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAgLTI5OCwy
MiArMjk3LDIyIEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICMgRmlyc3QgdGVzdCB0aGUgY2FzZSBvZiBub3QgdXNpbmcgdGhlIEpIQnVpbGQgd3JhcHBl
ci4KICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwb3J0Ll9zaG91bGRfdXNlX2poYnVpbGQoKSkK
IAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFy
JyksIEltYWdlRGlmZlJlc3VsdChiJycsIDEwMC4wLCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicpLCBJbWFnZURpZmZSZXN1bHQo
cGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwgW3BvcnQuX3BhdGhfdG9faW1hZ2VfZGlm
ZigpLCAiLS10b2xlcmFuY2UiLCAiMC4xIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9y
dC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCBOb25lKSwgSW1hZ2VEaWZmUmVzdWx0KGInJywg
MTAwLjAsIE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShi
J2ZvbycsIGInYmFyJywgTm9uZSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZf
aW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLnByb2MuY21kLCBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIs
ICIwLjEiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28n
LCBiJ2JhcicsIDApLCBJbWFnZURpZmZSZXN1bHQoYicnLCAxMDAuMCwgTm9uZSkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCAwKSwgSW1h
Z2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAw
LjApKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIFtwb3J0Ll9wYXRo
X3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAiXSkKIAogICAgICAgICAjIE5vdyB0
ZXN0IHRoZSBjYXNlIG9mIHVzaW5nIEpIQnVpbGQgd3JhcHBlci4KICAgICAgICAgcG9ydC5fZmls
ZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShwb3J0LnBhdGhfZnJvbV93ZWJraXRfYmFzZSgn
V2ViS2l0QnVpbGQnLCAnRGVwZW5kZW5jaWVzJXMnICUgcG9ydC5wb3J0X25hbWUudXBwZXIoKSkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9zaG91bGRfdXNlX2poYnVpbGQoKSkKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJyks
IEltYWdlRGlmZlJlc3VsdChiJycsIDEwMC4wLCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicpLCBJbWFnZURpZmZSZXN1bHQocGFz
c2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwgcG9ydC5famhidWlsZF93cmFwcGVyICsgW3Bv
cnQuX3BhdGhfdG9faW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMC4xIl0pCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCBOb25lKSwg
SW1hZ2VEaWZmUmVzdWx0KGInJywgMTAwLjAsIE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgTm9uZSksIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21kLCBwb3J0Ll9qaGJ1aWxkX3dyYXBwZXIg
KyBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIwLjEiXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIDAp
LCBJbWFnZURpZmZSZXN1bHQoYicnLCAxMDAuMCwgTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCAwKSwgSW1hZ2VEaWZmUmVzdWx0
KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjApKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIHBvcnQuX2poYnVpbGRfd3JhcHBlciAr
IFtwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAiXSkKIAogICAg
ICAgICBwb3J0LmNsZWFuX3VwX3Rlc3RfcnVuKCkKQEAgLTMyNCwxMyArMzIzLDEzIEBAIGNsYXNz
IFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1h
a2VfcG9ydCgpCiAgICAgICAgIHBvcnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gbGFt
YmRhIHBvcnQsIG5tLCBjbWQsIGVudiwgY3Jhc2hfbWVzc2FnZT1Ob25lOiBNb2NrU2VydmVyUHJv
Y2VzcyhsaW5lcz1bJ2RpZmY6IDAlIHBhc3NlZFxuJ10pCiAgICAgICAgIGltYWdlX2RpZmZlciA9
IEltYWdlRGlmZmVyKHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlmZmVy
LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIDAuMSksIEltYWdlRGlmZlJlc3VsdChOb25lLCAw
LCBOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIuZGlmZl9pbWFn
ZShiJ2ZvbycsIGInYmFyJywgMC4xKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZm
X2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9MCkpCiAKICAgICBkZWYgdGVzdF9kaWZmX2ltYWdlX2Zh
aWxlZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAgICAgcG9y
dC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3IgPSBsYW1iZGEgcG9ydCwgbm0sIGNtZCwgZW52
LCBjcmFzaF9tZXNzYWdlPU5vbmU6IE1vY2tTZXJ2ZXJQcm9jZXNzKGxpbmVzPVsnZGlmZjogMTAw
JSBmYWlsZWRcbiddKQogICAgICAgICBpbWFnZV9kaWZmZXIgPSBJbWFnZURpZmZlcihwb3J0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltYWdlX2RpZmZlci5kaWZmX2ltYWdlKGInZm9vJywg
YidiYXInLCAwLjEpLCBJbWFnZURpZmZSZXN1bHQoYicnLCAxMDAuMCwgTm9uZSkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlmZmVyLmRpZmZfaW1hZ2UoYidmb28nLCBiJ2Jhcics
IDAuMSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZm
ZXJlbmNlPTEwMC4wKSkKIAogICAgIGRlZiB0ZXN0X2RpZmZfaW1hZ2VfY3Jhc2hlZChzZWxmKToK
ICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAgLTM0Niw3ICszNDUsNyBAQCBjbGFz
cyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIHBvcnQuX3NlcnZl
cl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gbWFrZV9wcm9jCiAgICAgICAgIHBvcnQuc2V0dXBfdGVz
dF9ydW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2Zvbycs
IGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChiJycsIDAsICdJbWFnZURpZmYgY3Jhc2hlZFxuJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXIn
KSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVu
Y2U9MCwgZXJyb3Jfc3RyaW5nPSdJbWFnZURpZmYgY3Jhc2hlZFxuJykpCiAgICAgICAgIHBvcnQu
Y2xlYW5fdXBfdGVzdF9ydW4oKQogCiAgICAgQHNsb3cKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rl
c3QucHkKaW5kZXggZTJjOTY4YTcwNmM5OWI2YjIyYzM0ZTE4YjVmMDQ0MTExNGY5MzRjZC4uMTIx
NjczODEzNWE3OGExZGYxMzg3NjhlNzdkODhiNzZlMDdjZDBhZiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L3Rlc3QucHkKQEAgLTQwOCwyMCArNDA4LDIzIEBAIGNsYXNzIFRlc3RQb3J0KFBvcnQp
OgogICAgICAgICBhY3R1YWxfY29udGVudHMgPSBzdHJpbmdfdXRpbHMuZW5jb2RlKGFjdHVhbF9j
b250ZW50cykKICAgICAgICAgZGlmZmVkID0gYWN0dWFsX2NvbnRlbnRzICE9IGV4cGVjdGVkX2Nv
bnRlbnRzCiAgICAgICAgIGlmIG5vdCBhY3R1YWxfY29udGVudHMgYW5kIG5vdCBleHBlY3RlZF9j
b250ZW50czoKLSAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQoTm9uZSwgMCwgTm9u
ZSkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPVRydWUsIGRpZmZf
aW1hZ2U9Tm9uZSwgZGlmZmVyZW5jZT0wKQogCiAgICAgICAgIGlmIG5vdCBhY3R1YWxfY29udGVu
dHMgb3Igbm90IGV4cGVjdGVkX2NvbnRlbnRzOgotICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlm
ZlJlc3VsdChUcnVlLCAwLCBOb25lKQorICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTApCiAKICAgICAgICAg
aWYgYidyZWYnIGluIGV4cGVjdGVkX2NvbnRlbnRzOgogICAgICAgICAgICAgYXNzZXJ0IHRvbGVy
YW5jZSA9PSAwCiAgICAgICAgIGlmIGRpZmZlZDoKLSAgICAgICAgICAgIHJldHVybiBJbWFnZURp
ZmZSZXN1bHQoIjwge31cbi0tLVxuPiB7fVxuIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgc3Ry
aW5nX3V0aWxzLmRlY29kZShleHBlY3RlZF9jb250ZW50cywgdGFyZ2V0X3R5cGU9c3RyKSwKLSAg
ICAgICAgICAgICAgICBzdHJpbmdfdXRpbHMuZGVjb2RlKGFjdHVhbF9jb250ZW50cywgdGFyZ2V0
X3R5cGU9c3RyKSwKLSAgICAgICAgICAgICksIDEsIE5vbmUpCi0KLSAgICAgICAgcmV0dXJuIElt
YWdlRGlmZlJlc3VsdChOb25lLCAwLCBOb25lKQorICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlm
ZlJlc3VsdCgKKyAgICAgICAgICAgICAgICBwYXNzZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ZGlmZl9pbWFnZT0iPCB7fVxuLS0tXG4+IHt9XG4iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAg
ICAgc3RyaW5nX3V0aWxzLmRlY29kZShleHBlY3RlZF9jb250ZW50cywgdGFyZ2V0X3R5cGU9c3Ry
KSwKKyAgICAgICAgICAgICAgICAgICAgc3RyaW5nX3V0aWxzLmRlY29kZShhY3R1YWxfY29udGVu
dHMsIHRhcmdldF90eXBlPXN0ciksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAg
ICBkaWZmZXJlbmNlPTEpCisKKyAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9
VHJ1ZSwgZGlmZl9pbWFnZT1Ob25lLCBkaWZmZXJlbmNlPTApCiAKICAgICBkZWYgbGF5b3V0X3Rl
c3RzX2RpcihzZWxmKToKICAgICAgICAgcmV0dXJuIExBWU9VVF9URVNUX0RJUgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>