<?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>122333</bug_id>
          
          <creation_ts>2013-10-04 11:26:39 -0700</creation_ts>
          <short_desc>Delete baseline optimizer</short_desc>
          <delta_ts>2013-11-20 16:51:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpranke</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>ossy</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936269</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-04 11:26:39 -0700</bug_when>
    <thetext>At this point, we only have 4 ports that run layout tests.
We should get rid of this broken feature from webkitpy.

It only confuses hell out of me and other contributors because
the current behavior is almost a random shuffling of expected results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952600</commentid>
    <comment_count>1</comment_count>
      <attachid>217437</attachid>
    <who name="Berta József">jberta.u-szeged</who>
    <bug_when>2013-11-20 08:28:20 -0800</bug_when>
    <thetext>Created attachment 217437
The baseline optimizer and its dependencies are removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952609</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-11-20 08:44:54 -0800</bug_when>
    <thetext>akling was using webkit-patch optimize-baselines lately, I think with success.

Is this really good to delete? I guess it&apos;s a bit bloat-y, but presumably it still works, and is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952840</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-11-20 16:25:02 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; akling was using webkit-patch optimize-baselines lately, I think with success.
&gt; 
&gt; Is this really good to delete? I guess it&apos;s a bit bloat-y, but presumably it still works, and is used.

It&apos;s actually broken in some unknown ways :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952850</commentid>
    <comment_count>4</comment_count>
      <attachid>217437</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 16:51:44 -0800</bug_when>
    <thetext>Comment on attachment 217437
The baseline optimizer and its dependencies are removed.

Clearing flags on attachment: 217437

Committed r159595: &lt;http://trac.webkit.org/changeset/159595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>952851</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-20 16:51:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217437</attachid>
            <date>2013-11-20 08:28:20 -0800</date>
            <delta_ts>2013-11-20 16:51:44 -0800</delta_ts>
            <desc>The baseline optimizer and its dependencies are removed.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>33308</size>
            <attacher name="Berta József">jberta.u-szeged</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1Y2Uy
MDcyLi42NjVhOGRhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMTEtMjAgIEpvenNlZiBCZXJ0YSAgPGpiZXJ0
YUBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgRGVsZXRlIGJhc2VsaW5lIG9wdGltaXplcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMzMzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGluZW9wdGltaXplci5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGluZW9wdGlt
aXplcl91bml0dGVzdC5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcmViYXNlbGluZS5weToKKyAgICAgICAgKFJlYmFzZWxpbmVUZXN0LmV4ZWN1
dGUpOgorICAgICAgICAoQWJzdHJhY3RQYXJhbGxlbFJlYmFzZWxpbmVDb21tYW5kLl9maWxlc190
b19hZGQpOgorICAgICAgICAoQWJzdHJhY3RQYXJhbGxlbFJlYmFzZWxpbmVDb21tYW5kLl9yZWJh
c2VsaW5lKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNl
bGluZV91bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RSZWJhc2VsaW5lSnNvbi50ZXN0X3JlYmFz
ZWxpbmVfYWxsKToKKyAgICAgICAgKFRlc3RSZWJhc2VsaW5lSnNvbi50ZXN0X3JlYmFzZWxpbmVf
ZGVidWcpOgorICAgICAgICAoVGVzdFJlYmFzZWxpbmVFeHBlY3RhdGlvbnMuZGlzYWJsZWRfdGVz
dF9vdmVycmlkZXNfYXJlX2luY2x1ZGVkX2NvcnJlY3RseSk6CisKIDIwMTMtMTEtMjAgIETDoW5p
ZWwgQsOhdHlhaSAgPEJhdHlhaS5EYW5pZWxAc3R1ZC51LXN6ZWdlZC5odT4KIAogICAgICAgICBN
b3ZlZCBzdHJheSB1cmxzIGZyb20gc3ZuLnB5IGFuZCBzdGF0dXNzZXJ2ZXIucHkgaW50byBjb21t
b24uY29uZmlnLnVybHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L2Jhc2VsaW5lb3B0aW1pemVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvYmFzZWxpbmVvcHRpbWl6ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDBhYThhODcuLjAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvYmFzZWxpbmVvcHRpbWl6ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwy
NzQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoQykgMjAxMywgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGNvcHkKLWltcG9ydCBsb2dnaW5n
Ci0KLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLSMgWWVzLCBpdCdz
IGEgaHlwZXJncmFwaC4KLSMgRklYTUU6IFNob3VsZCB0aGlzIGZ1bmN0aW9uIGxpdmUgd2l0aCB0
aGUgcG9ydHMgc29tZXdoZXJlPwotIyBQZXJoYXBzIHRoaXMgc2hvdWxkIG1vdmUgb250byBQb3J0
RmFjdG9yeT8KLWRlZiBfYmFzZWxpbmVfc2VhcmNoX2h5cGVyZ3JhcGgoaG9zdCwgcG9ydF9uYW1l
cyk6Ci0gICAgaHlwZXJncmFwaCA9IHt9Ci0KLSAgICAjIFRoZXNlIGVkZ2VzIGluIHRoZSBoeXBl
cmdyYXBoIGFyZW4ndCB2aXNpYmxlIG9uIGJ1aWxkLndlYmtpdC5vcmcsCi0gICAgIyBidXQgdGhl
eSBpbXBvc2UgY29uc3RyYWludHMgb24gaG93IHdlIG9wdGltaXplIGJhc2VsaW5lcy4KLSAgICBo
eXBlcmdyYXBoLnVwZGF0ZShfVklSVFVBTF9QT1JUUykKLQotICAgICMgRklYTUU6IFNob3VsZCB3
ZSBnZXQgdGhpcyBjb25zdGFudCBmcm9tIHNvbWV3aGVyZT8KLSAgICBmYWxsYmFja19wYXRoID0g
WydMYXlvdXRUZXN0cyddCi0KLSAgICBwb3J0X2ZhY3RvcnkgPSBob3N0LnBvcnRfZmFjdG9yeQot
ICAgIGZvciBwb3J0X25hbWUgaW4gcG9ydF9uYW1lczoKLSAgICAgICAgcG9ydCA9IHBvcnRfZmFj
dG9yeS5nZXQocG9ydF9uYW1lKQotICAgICAgICB3ZWJraXRfYmFzZSA9IHBvcnQud2Via2l0X2Jh
c2UoKQotICAgICAgICBzZWFyY2hfcGF0aCA9IHBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoKQot
ICAgICAgICBpZiBzZWFyY2hfcGF0aDoKLSAgICAgICAgICAgIGh5cGVyZ3JhcGhbcG9ydF9uYW1l
XSA9IFtob3N0LmZpbGVzeXN0ZW0ucmVscGF0aChwYXRoLCB3ZWJraXRfYmFzZSkgZm9yIHBhdGgg
aW4gc2VhcmNoX3BhdGhdICsgZmFsbGJhY2tfcGF0aAotICAgIHJldHVybiBoeXBlcmdyYXBoCi0K
LQotX1ZJUlRVQUxfUE9SVFMgPSB7Ci0gICAgJ21hYy1mdXR1cmUnOiBbJ0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1mdXR1cmUnLCAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjJywgJ0xheW91dFRl
c3RzJ10sCi0gICAgJ3dpbi1mdXR1cmUnOiBbJ0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi1mdXR1
cmUnLCAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luJywgJ0xheW91dFRlc3RzJ10sCi19Ci0KLQot
IyBGSVhNRTogU2hvdWxkIHRoaXMgZnVuY3Rpb24gYmUgc29tZXdoZXJlIG1vcmUgZ2VuZXJhbD8K
LWRlZiBfaW52ZXJ0X2RpY3Rpb25hcnkoZGljdGlvbmFyeSk6Ci0gICAgaW52ZXJ0ZWRfZGljdGlv
bmFyeSA9IHt9Ci0gICAgZm9yIGtleSwgdmFsdWUgaW4gZGljdGlvbmFyeS5pdGVtcygpOgotICAg
ICAgICBpZiBpbnZlcnRlZF9kaWN0aW9uYXJ5LmdldCh2YWx1ZSk6Ci0gICAgICAgICAgICBpbnZl
cnRlZF9kaWN0aW9uYXJ5W3ZhbHVlXS5hcHBlbmQoa2V5KQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgaW52ZXJ0ZWRfZGljdGlvbmFyeVt2YWx1ZV0gPSBba2V5XQotICAgIHJldHVybiBpbnZl
cnRlZF9kaWN0aW9uYXJ5Ci0KLQotY2xhc3MgQmFzZWxpbmVPcHRpbWl6ZXIob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lcyk6Ci0gICAgICAgIHNlbGYuX2hv
c3QgPSBob3N0Ci0gICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBzZWxmLl9ob3N0LmZpbGVzeXN0
ZW0KLSAgICAgICAgc2VsZi5fc2NtID0gc2VsZi5faG9zdC5zY20oKQotICAgICAgICBzZWxmLl9o
eXBlcmdyYXBoID0gX2Jhc2VsaW5lX3NlYXJjaF9oeXBlcmdyYXBoKGhvc3QsIHBvcnRfbmFtZXMp
Ci0gICAgICAgIHNlbGYuX2RpcmVjdG9yaWVzID0gcmVkdWNlKHNldC51bmlvbiwgbWFwKHNldCwg
c2VsZi5faHlwZXJncmFwaC52YWx1ZXMoKSkpCi0KLSAgICBkZWYgcmVhZF9yZXN1bHRzX2J5X2Rp
cmVjdG9yeShzZWxmLCBiYXNlbGluZV9uYW1lKToKLSAgICAgICAgcmVzdWx0c19ieV9kaXJlY3Rv
cnkgPSB7fQotICAgICAgICBmb3IgZGlyZWN0b3J5IGluIHNlbGYuX2RpcmVjdG9yaWVzOgotICAg
ICAgICAgICAgcGF0aCA9IHNlbGYuX2ZpbGVzeXN0ZW0uam9pbihzZWxmLl9zY20uY2hlY2tvdXRf
cm9vdCwgZGlyZWN0b3J5LCBiYXNlbGluZV9uYW1lKQotICAgICAgICAgICAgaWYgc2VsZi5fZmls
ZXN5c3RlbS5leGlzdHMocGF0aCk6Ci0gICAgICAgICAgICAgICAgcmVzdWx0c19ieV9kaXJlY3Rv
cnlbZGlyZWN0b3J5XSA9IHNlbGYuX2ZpbGVzeXN0ZW0uc2hhMShwYXRoKQotICAgICAgICByZXR1
cm4gcmVzdWx0c19ieV9kaXJlY3RvcnkKLQotICAgIGRlZiBfcmVzdWx0c19ieV9wb3J0X25hbWUo
c2VsZiwgcmVzdWx0c19ieV9kaXJlY3RvcnkpOgotICAgICAgICByZXN1bHRzX2J5X3BvcnRfbmFt
ZSA9IHt9Ci0gICAgICAgIGZvciBwb3J0X25hbWUsIHNlYXJjaF9wYXRoIGluIHNlbGYuX2h5cGVy
Z3JhcGguaXRlbXMoKToKLSAgICAgICAgICAgIGZvciBkaXJlY3RvcnkgaW4gc2VhcmNoX3BhdGg6
Ci0gICAgICAgICAgICAgICAgaWYgZGlyZWN0b3J5IGluIHJlc3VsdHNfYnlfZGlyZWN0b3J5Ogot
ICAgICAgICAgICAgICAgICAgICByZXN1bHRzX2J5X3BvcnRfbmFtZVtwb3J0X25hbWVdID0gcmVz
dWx0c19ieV9kaXJlY3RvcnlbZGlyZWN0b3J5XQotICAgICAgICAgICAgICAgICAgICBicmVhawot
ICAgICAgICByZXR1cm4gcmVzdWx0c19ieV9wb3J0X25hbWUKLQotICAgIGRlZiBfbW9zdF9zcGVj
aWZpY19jb21tb25fZGlyZWN0b3J5KHNlbGYsIHBvcnRfbmFtZXMpOgotICAgICAgICBwYXRocyA9
IFtzZWxmLl9oeXBlcmdyYXBoW3BvcnRfbmFtZV0gZm9yIHBvcnRfbmFtZSBpbiBwb3J0X25hbWVz
XQotICAgICAgICBjb21tb25fZGlyZWN0b3JpZXMgPSByZWR1Y2Uoc2V0LmludGVyc2VjdGlvbiwg
bWFwKHNldCwgcGF0aHMpKQotCi0gICAgICAgIGRlZiBzY29yZShkaXJlY3RvcnkpOgotICAgICAg
ICAgICAgcmV0dXJuIHN1bShbcGF0aC5pbmRleChkaXJlY3RvcnkpIGZvciBwYXRoIGluIHBhdGhz
XSkKLQotICAgICAgICBfLCBkaXJlY3RvcnkgPSBzb3J0ZWQoWyhzY29yZShkaXJlY3RvcnkpLCBk
aXJlY3RvcnkpIGZvciBkaXJlY3RvcnkgaW4gY29tbW9uX2RpcmVjdG9yaWVzXSlbMF0KLSAgICAg
ICAgcmV0dXJuIGRpcmVjdG9yeQotCi0gICAgZGVmIF9maWx0ZXJfcG9ydF9uYW1lc19ieV9yZXN1
bHQoc2VsZiwgcHJlZGljYXRlLCBwb3J0X25hbWVzX2J5X3Jlc3VsdCk6Ci0gICAgICAgIGZpbHRl
cmVkX3BvcnRfbmFtZXNfYnlfcmVzdWx0ID0ge30KLSAgICAgICAgZm9yIHJlc3VsdCwgcG9ydF9u
YW1lcyBpbiBwb3J0X25hbWVzX2J5X3Jlc3VsdC5pdGVtcygpOgotICAgICAgICAgICAgZmlsdGVy
ZWRfcG9ydF9uYW1lcyA9IGZpbHRlcihwcmVkaWNhdGUsIHBvcnRfbmFtZXMpCi0gICAgICAgICAg
ICBpZiBmaWx0ZXJlZF9wb3J0X25hbWVzOgotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BvcnRf
bmFtZXNfYnlfcmVzdWx0W3Jlc3VsdF0gPSBmaWx0ZXJlZF9wb3J0X25hbWVzCi0gICAgICAgIHJl
dHVybiBmaWx0ZXJlZF9wb3J0X25hbWVzX2J5X3Jlc3VsdAotCi0gICAgZGVmIF9wbGFjZV9yZXN1
bHRzX2luX21vc3Rfc3BlY2lmaWNfY29tbW9uX2RpcmVjdG9yeShzZWxmLCBwb3J0X25hbWVzX2J5
X3Jlc3VsdCwgcmVzdWx0c19ieV9kaXJlY3RvcnkpOgotICAgICAgICBmb3IgcmVzdWx0LCBwb3J0
X25hbWVzIGluIHBvcnRfbmFtZXNfYnlfcmVzdWx0Lml0ZW1zKCk6Ci0gICAgICAgICAgICBkaXJl
Y3RvcnkgPSBzZWxmLl9tb3N0X3NwZWNpZmljX2NvbW1vbl9kaXJlY3RvcnkocG9ydF9uYW1lcykK
LSAgICAgICAgICAgIHJlc3VsdHNfYnlfZGlyZWN0b3J5W2RpcmVjdG9yeV0gPSByZXN1bHQKLQot
ICAgIGRlZiBfZmluZF9vcHRpbWFsX3Jlc3VsdF9wbGFjZW1lbnQoc2VsZiwgYmFzZWxpbmVfbmFt
ZSk6Ci0gICAgICAgIHJlc3VsdHNfYnlfZGlyZWN0b3J5ID0gc2VsZi5yZWFkX3Jlc3VsdHNfYnlf
ZGlyZWN0b3J5KGJhc2VsaW5lX25hbWUpCi0gICAgICAgIHJlc3VsdHNfYnlfcG9ydF9uYW1lID0g
c2VsZi5fcmVzdWx0c19ieV9wb3J0X25hbWUocmVzdWx0c19ieV9kaXJlY3RvcnkpCi0gICAgICAg
IHBvcnRfbmFtZXNfYnlfcmVzdWx0ID0gX2ludmVydF9kaWN0aW9uYXJ5KHJlc3VsdHNfYnlfcG9y
dF9uYW1lKQotCi0gICAgICAgIG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeSA9IHNlbGYuX29wdGlt
aXplX2J5X21vc3Rfc3BlY2lmaWNfY29tbW9uX2RpcmVjdG9yeShyZXN1bHRzX2J5X2RpcmVjdG9y
eSwgcmVzdWx0c19ieV9wb3J0X25hbWUsIHBvcnRfbmFtZXNfYnlfcmVzdWx0KQotICAgICAgICBp
ZiBub3QgbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5OgotICAgICAgICAgICAgbmV3X3Jlc3VsdHNf
YnlfZGlyZWN0b3J5ID0gc2VsZi5fb3B0aW1pemVfYnlfcHVzaGluZ19yZXN1bHRzX3VwKHJlc3Vs
dHNfYnlfZGlyZWN0b3J5LCByZXN1bHRzX2J5X3BvcnRfbmFtZSwgcG9ydF9uYW1lc19ieV9yZXN1
bHQpCi0KLSAgICAgICAgcmV0dXJuIHJlc3VsdHNfYnlfZGlyZWN0b3J5LCBuZXdfcmVzdWx0c19i
eV9kaXJlY3RvcnkKLQotICAgIGRlZiBfb3B0aW1pemVfYnlfbW9zdF9zcGVjaWZpY19jb21tb25f
ZGlyZWN0b3J5KHNlbGYsIHJlc3VsdHNfYnlfZGlyZWN0b3J5LCByZXN1bHRzX2J5X3BvcnRfbmFt
ZSwgcG9ydF9uYW1lc19ieV9yZXN1bHQpOgotICAgICAgICBuZXdfcmVzdWx0c19ieV9kaXJlY3Rv
cnkgPSB7fQotICAgICAgICB1bnNhdGlzZmllZF9wb3J0X25hbWVzX2J5X3Jlc3VsdCA9IHBvcnRf
bmFtZXNfYnlfcmVzdWx0Ci0gICAgICAgIHdoaWxlIHVuc2F0aXNmaWVkX3BvcnRfbmFtZXNfYnlf
cmVzdWx0OgotICAgICAgICAgICAgc2VsZi5fcGxhY2VfcmVzdWx0c19pbl9tb3N0X3NwZWNpZmlj
X2NvbW1vbl9kaXJlY3RvcnkodW5zYXRpc2ZpZWRfcG9ydF9uYW1lc19ieV9yZXN1bHQsIG5ld19y
ZXN1bHRzX2J5X2RpcmVjdG9yeSkKLSAgICAgICAgICAgIG5ld19yZXN1bHRzX2J5X3BvcnRfbmFt
ZSA9IHNlbGYuX3Jlc3VsdHNfYnlfcG9ydF9uYW1lKG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeSkK
LQotICAgICAgICAgICAgZGVmIGlzX3Vuc2F0aXNmaWVkKHBvcnRfbmFtZSk6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdHNfYnlfcG9ydF9uYW1lW3BvcnRfbmFtZV0gIT0gbmV3X3Jlc3Vs
dHNfYnlfcG9ydF9uYW1lW3BvcnRfbmFtZV0KLQotICAgICAgICAgICAgbmV3X3Vuc2F0aXNmaWVk
X3BvcnRfbmFtZXNfYnlfcmVzdWx0ID0gc2VsZi5fZmlsdGVyX3BvcnRfbmFtZXNfYnlfcmVzdWx0
KGlzX3Vuc2F0aXNmaWVkLCBwb3J0X25hbWVzX2J5X3Jlc3VsdCkKLQotICAgICAgICAgICAgaWYg
bGVuKG5ld191bnNhdGlzZmllZF9wb3J0X25hbWVzX2J5X3Jlc3VsdC52YWx1ZXMoKSkgPj0gbGVu
KHVuc2F0aXNmaWVkX3BvcnRfbmFtZXNfYnlfcmVzdWx0LnZhbHVlcygpKToKLSAgICAgICAgICAg
ICAgICByZXR1cm4ge30gICMgRnJvd25zLiBXZSBkbyBub3QgYXBwZWFyIHRvIGJlIGNvbnZlcmdp
bmcuCi0gICAgICAgICAgICB1bnNhdGlzZmllZF9wb3J0X25hbWVzX2J5X3Jlc3VsdCA9IG5ld191
bnNhdGlzZmllZF9wb3J0X25hbWVzX2J5X3Jlc3VsdAotCi0gICAgICAgIHJldHVybiBuZXdfcmVz
dWx0c19ieV9kaXJlY3RvcnkKLQotICAgIGRlZiBfb3B0aW1pemVfYnlfcHVzaGluZ19yZXN1bHRz
X3VwKHNlbGYsIHJlc3VsdHNfYnlfZGlyZWN0b3J5LCByZXN1bHRzX2J5X3BvcnRfbmFtZSwgcG9y
dF9uYW1lc19ieV9yZXN1bHQpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXN1bHRzX2J5
X2RpcmVjdG9yeSA9IHJlc3VsdHNfYnlfZGlyZWN0b3J5Ci0gICAgICAgICAgICBiZXN0X3NvX2Zh
ciA9IHJlc3VsdHNfYnlfZGlyZWN0b3J5Ci0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAg
ICAgICAgICAgIG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeSA9IGNvcHkuY29weShiZXN0X3NvX2Zh
cikKLSAgICAgICAgICAgICAgICBmb3IgcG9ydF9uYW1lIGluIHNlbGYuX2h5cGVyZ3JhcGgua2V5
cygpOgotICAgICAgICAgICAgICAgICAgICBmYWxsYmFja19wYXRoID0gc2VsZi5faHlwZXJncmFw
aFtwb3J0X25hbWVdCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfaW5kZXgsIGN1cnJlbnRf
ZGlyZWN0b3J5ID0gc2VsZi5fZmluZF9pbl9mYWxsYmFja3BhdGgoZmFsbGJhY2tfcGF0aCwgcmVz
dWx0c19ieV9wb3J0X25hbWVbcG9ydF9uYW1lXSwgYmVzdF9zb19mYXIpCi0gICAgICAgICAgICAg
ICAgICAgIGN1cnJlbnRfcmVzdWx0ID0gcmVzdWx0c19ieV9wb3J0X25hbWVbcG9ydF9uYW1lXQot
ICAgICAgICAgICAgICAgICAgICBmb3IgaW5kZXggaW4gcmFuZ2UoY3VycmVudF9pbmRleCArIDEs
IGxlbihmYWxsYmFja19wYXRoKSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdfZGlyZWN0
b3J5ID0gZmFsbGJhY2tfcGF0aFtpbmRleF0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBuZXdfZGlyZWN0b3J5IGluIG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeToKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdfcmVzdWx0c19ieV9kaXJlY3RvcnlbbmV3X2RpcmVjdG9yeV0g
PSBjdXJyZW50X3Jlc3VsdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGN1cnJlbnRf
ZGlyZWN0b3J5IGluIG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeToKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVsIG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeVtjdXJyZW50X2RpcmVj
dG9yeV0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgbmV3X3Jlc3VsdHNfYnlfZGlyZWN0
b3J5W25ld19kaXJlY3RvcnldID09IGN1cnJlbnRfcmVzdWx0OgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIGN1cnJlbnRfZGlyZWN0b3J5IGluIG5ld19yZXN1bHRzX2J5X2RpcmVjdG9y
eToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsIG5ld19yZXN1bHRzX2J5X2Rp
cmVjdG9yeVtjdXJyZW50X2RpcmVjdG9yeV0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGUgbmV3X2RpcmVjdG9yeSBjb250YWlu
cyBhIGRpZmZlcmVudCByZXN1bHQsIHNvIHN0b3AgdHJ5aW5nIHRvIHB1c2ggcmVzdWx0cyB1cC4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAgICAgICAgaWYg
bGVuKG5ld19yZXN1bHRzX2J5X2RpcmVjdG9yeSkgPj0gbGVuKGJlc3Rfc29fZmFyKToKLSAgICAg
ICAgICAgICAgICAgICAgIyBXZSd2ZSBmYWlsZWQgdG8gaW1wcm92ZSwgc28gZ2l2ZSB1cC4KLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICBiZXN0X3NvX2ZhciA9IG5l
d19yZXN1bHRzX2J5X2RpcmVjdG9yeQotCi0gICAgICAgICAgICByZXR1cm4gYmVzdF9zb19mYXIK
LSAgICAgICAgZXhjZXB0IEtleUVycm9yIGFzIGU6Ci0gICAgICAgICAgICAjIEZJWE1FOiBLZXlF
cnJvcnMgZ2V0IHJhaXNlZCBpZiB3ZSdyZSBtaXNzaW5nIGJhc2VsaW5lcy4gV2Ugc2hvdWxkIGhh
bmRsZSB0aGlzIGJldHRlci4KLSAgICAgICAgICAgIHJldHVybiB7fQotCi0gICAgZGVmIF9maW5k
X2luX2ZhbGxiYWNrcGF0aChzZWxmLCBmYWxsYmFja19wYXRoLCBjdXJyZW50X3Jlc3VsdCwgcmVz
dWx0c19ieV9kaXJlY3RvcnkpOgotICAgICAgICBmb3IgaW5kZXgsIGRpcmVjdG9yeSBpbiBlbnVt
ZXJhdGUoZmFsbGJhY2tfcGF0aCk6Ci0gICAgICAgICAgICBpZiBkaXJlY3RvcnkgaW4gcmVzdWx0
c19ieV9kaXJlY3RvcnkgYW5kIChyZXN1bHRzX2J5X2RpcmVjdG9yeVtkaXJlY3RvcnldID09IGN1
cnJlbnRfcmVzdWx0KToKLSAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXgsIGRpcmVjdG9yeQot
ICAgICAgICBhc3NlcnQgRmFsc2UsICJyZXN1bHQgJXMgbm90IGZvdW5kIGluIGZhbGxiYWNrX3Bh
dGggJXMsICVzIiAlIChjdXJyZW50X3Jlc3VsdCwgZmFsbGJhY2tfcGF0aCwgcmVzdWx0c19ieV9k
aXJlY3RvcnkpCi0KLSAgICBkZWYgX2ZpbHRlcmVkX3Jlc3VsdHNfYnlfcG9ydF9uYW1lKHNlbGYs
IHJlc3VsdHNfYnlfZGlyZWN0b3J5KToKLSAgICAgICAgcmVzdWx0c19ieV9wb3J0X25hbWUgPSBz
ZWxmLl9yZXN1bHRzX2J5X3BvcnRfbmFtZShyZXN1bHRzX2J5X2RpcmVjdG9yeSkKLSAgICAgICAg
Zm9yIHBvcnRfbmFtZSBpbiBfVklSVFVBTF9QT1JUUy5rZXlzKCk6Ci0gICAgICAgICAgICBpZiBw
b3J0X25hbWUgaW4gcmVzdWx0c19ieV9wb3J0X25hbWU6Ci0gICAgICAgICAgICAgICAgZGVsIHJl
c3VsdHNfYnlfcG9ydF9uYW1lW3BvcnRfbmFtZV0KLSAgICAgICAgcmV0dXJuIHJlc3VsdHNfYnlf
cG9ydF9uYW1lCi0KLSAgICBkZWYgX3BsYXRmb3JtKHNlbGYsIGZpbGVuYW1lKToKLSAgICAgICAg
cGxhdGZvcm1fZGlyID0gJ0xheW91dFRlc3RzJyArIHNlbGYuX2ZpbGVzeXN0ZW0uc2VwICsgJ3Bs
YXRmb3JtJyArIHNlbGYuX2ZpbGVzeXN0ZW0uc2VwCi0gICAgICAgIGlmIGZpbGVuYW1lLnN0YXJ0
c3dpdGgocGxhdGZvcm1fZGlyKToKLSAgICAgICAgICAgIHJldHVybiBmaWxlbmFtZS5yZXBsYWNl
KHBsYXRmb3JtX2RpciwgJycpLnNwbGl0KHNlbGYuX2ZpbGVzeXN0ZW0uc2VwKVswXQotICAgICAg
ICBwbGF0Zm9ybV9kaXIgPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fc2NtLmNoZWNrb3V0
X3Jvb3QsIHBsYXRmb3JtX2RpcikKLSAgICAgICAgaWYgZmlsZW5hbWUuc3RhcnRzd2l0aChwbGF0
Zm9ybV9kaXIpOgotICAgICAgICAgICAgcmV0dXJuIGZpbGVuYW1lLnJlcGxhY2UocGxhdGZvcm1f
ZGlyLCAnJykuc3BsaXQoc2VsZi5fZmlsZXN5c3RlbS5zZXApWzBdCi0gICAgICAgIHJldHVybiAn
KGdlbmVyaWMpJwotCi0gICAgZGVmIF9tb3ZlX2Jhc2VsaW5lcyhzZWxmLCBiYXNlbGluZV9uYW1l
LCByZXN1bHRzX2J5X2RpcmVjdG9yeSwgbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5KToKLSAgICAg
ICAgZGF0YV9mb3JfcmVzdWx0ID0ge30KLSAgICAgICAgZm9yIGRpcmVjdG9yeSwgcmVzdWx0IGlu
IHJlc3VsdHNfYnlfZGlyZWN0b3J5Lml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBub3QgcmVzdWx0
IGluIGRhdGFfZm9yX3Jlc3VsdDoKLSAgICAgICAgICAgICAgICBzb3VyY2UgPSBzZWxmLl9maWxl
c3lzdGVtLmpvaW4oc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3QsIGRpcmVjdG9yeSwgYmFzZWxpbmVf
bmFtZSkKLSAgICAgICAgICAgICAgICBkYXRhX2Zvcl9yZXN1bHRbcmVzdWx0XSA9IHNlbGYuX2Zp
bGVzeXN0ZW0ucmVhZF9iaW5hcnlfZmlsZShzb3VyY2UpCi0KLSAgICAgICAgZmlsZV9uYW1lcyA9
IFtdCi0gICAgICAgIGZvciBkaXJlY3RvcnksIHJlc3VsdCBpbiByZXN1bHRzX2J5X2RpcmVjdG9y
eS5pdGVtcygpOgotICAgICAgICAgICAgaWYgbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5LmdldChk
aXJlY3RvcnkpICE9IHJlc3VsdDoKLSAgICAgICAgICAgICAgICBmaWxlX25hbWVzLmFwcGVuZChz
ZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3QsIGRpcmVjdG9yeSwg
YmFzZWxpbmVfbmFtZSkpCi0gICAgICAgIGlmIGZpbGVfbmFtZXM6Ci0gICAgICAgICAgICBfbG9n
LmRlYnVnKCIgICAgRGVsZXRpbmc6IikKLSAgICAgICAgICAgIGZvciBwbGF0Zm9ybV9kaXIgaW4g
c29ydGVkKHNlbGYuX3BsYXRmb3JtKGZpbGVuYW1lKSBmb3IgZmlsZW5hbWUgaW4gZmlsZV9uYW1l
cyk6Ci0gICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygiICAgICAgIiArIHBsYXRmb3JtX2RpcikK
LSAgICAgICAgICAgIHNlbGYuX3NjbS5kZWxldGVfbGlzdChmaWxlX25hbWVzKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygiICAgIChOb3RoaW5nIHRvIGRlbGV0ZSkiKQot
Ci0gICAgICAgIGZpbGVfbmFtZXMgPSBbXQotICAgICAgICBmb3IgZGlyZWN0b3J5LCByZXN1bHQg
aW4gbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5Lml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiByZXN1
bHRzX2J5X2RpcmVjdG9yeS5nZXQoZGlyZWN0b3J5KSAhPSByZXN1bHQ6Ci0gICAgICAgICAgICAg
ICAgZGVzdGluYXRpb24gPSBzZWxmLl9maWxlc3lzdGVtLmpvaW4oc2VsZi5fc2NtLmNoZWNrb3V0
X3Jvb3QsIGRpcmVjdG9yeSwgYmFzZWxpbmVfbmFtZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9m
aWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHNlbGYuX2ZpbGVzeXN0ZW0uc3BsaXQoZGVz
dGluYXRpb24pWzBdKQotICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0ud3JpdGVfYmlu
YXJ5X2ZpbGUoZGVzdGluYXRpb24sIGRhdGFfZm9yX3Jlc3VsdFtyZXN1bHRdKQotICAgICAgICAg
ICAgICAgIGZpbGVfbmFtZXMuYXBwZW5kKGRlc3RpbmF0aW9uKQotICAgICAgICBpZiBmaWxlX25h
bWVzOgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygiICAgIEFkZGluZzoiKQotICAgICAgICAgICAg
Zm9yIHBsYXRmb3JtX2RpciBpbiBzb3J0ZWQoc2VsZi5fcGxhdGZvcm0oZmlsZW5hbWUpIGZvciBm
aWxlbmFtZSBpbiBmaWxlX25hbWVzKToKLSAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCIgICAg
ICAiICsgcGxhdGZvcm1fZGlyKQotICAgICAgICAgICAgc2VsZi5fc2NtLmFkZF9saXN0KGZpbGVf
bmFtZXMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBfbG9nLmRlYnVnKCIgICAgKE5vdGhp
bmcgdG8gYWRkKSIpCi0KLSAgICBkZWYgZGlyZWN0b3JpZXNfYnlfcmVzdWx0KHNlbGYsIGJhc2Vs
aW5lX25hbWUpOgotICAgICAgICByZXN1bHRzX2J5X2RpcmVjdG9yeSA9IHNlbGYucmVhZF9yZXN1
bHRzX2J5X2RpcmVjdG9yeShiYXNlbGluZV9uYW1lKQotICAgICAgICByZXR1cm4gX2ludmVydF9k
aWN0aW9uYXJ5KHJlc3VsdHNfYnlfZGlyZWN0b3J5KQotCi0gICAgZGVmIHdyaXRlX2J5X2RpcmVj
dG9yeShzZWxmLCByZXN1bHRzX2J5X2RpcmVjdG9yeSwgd3JpdGVyLCBpbmRlbnQpOgotICAgICAg
ICBmb3IgcGF0aCBpbiBzb3J0ZWQocmVzdWx0c19ieV9kaXJlY3RvcnkpOgotICAgICAgICAgICAg
d3JpdGVyKCIlcyVzOiAlcyIgJSAoaW5kZW50LCBzZWxmLl9wbGF0Zm9ybShwYXRoKSwgcmVzdWx0
c19ieV9kaXJlY3RvcnlbcGF0aF1bMDo2XSkpCi0KLSAgICBkZWYgb3B0aW1pemUoc2VsZiwgYmFz
ZWxpbmVfbmFtZSk6Ci0gICAgICAgIGJhc2VuYW1lID0gc2VsZi5fZmlsZXN5c3RlbS5iYXNlbmFt
ZShiYXNlbGluZV9uYW1lKQotICAgICAgICByZXN1bHRzX2J5X2RpcmVjdG9yeSwgbmV3X3Jlc3Vs
dHNfYnlfZGlyZWN0b3J5ID0gc2VsZi5fZmluZF9vcHRpbWFsX3Jlc3VsdF9wbGFjZW1lbnQoYmFz
ZWxpbmVfbmFtZSkKLSAgICAgICAgc2VsZi5uZXdfcmVzdWx0c19ieV9kaXJlY3RvcnkgPSBuZXdf
cmVzdWx0c19ieV9kaXJlY3RvcnkKLSAgICAgICAgaWYgbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5
ID09IHJlc3VsdHNfYnlfZGlyZWN0b3J5OgotICAgICAgICAgICAgaWYgbmV3X3Jlc3VsdHNfYnlf
ZGlyZWN0b3J5OgotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIiAgJXM6IChhbHJlYWR5IG9w
dGltYWwpIiAlIGJhc2VuYW1lKQotICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfYnlfZGlyZWN0
b3J5KHJlc3VsdHNfYnlfZGlyZWN0b3J5LCBfbG9nLmRlYnVnLCAiICAgICIpCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoIiAgJXM6IChubyBiYXNlbGluZXMg
Zm91bmQpIiAlIGJhc2VuYW1lKQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgaWYg
c2VsZi5fZmlsdGVyZWRfcmVzdWx0c19ieV9wb3J0X25hbWUocmVzdWx0c19ieV9kaXJlY3Rvcnkp
ICE9IHNlbGYuX2ZpbHRlcmVkX3Jlc3VsdHNfYnlfcG9ydF9uYW1lKG5ld19yZXN1bHRzX2J5X2Rp
cmVjdG9yeSk6Ci0gICAgICAgICAgICBfbG9nLndhcm5pbmcoIiAgJXM6IG9wdGltaXphdGlvbiBm
YWlsZWQiICUgYmFzZW5hbWUpCi0gICAgICAgICAgICBzZWxmLndyaXRlX2J5X2RpcmVjdG9yeShy
ZXN1bHRzX2J5X2RpcmVjdG9yeSwgX2xvZy53YXJuaW5nLCAiICAgICAgIikKLSAgICAgICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgICAgIF9sb2cuZGVidWcoIiAgJXM6IiAlIGJhc2VuYW1lKQot
ICAgICAgICBfbG9nLmRlYnVnKCIgICAgQmVmb3JlOiAiKQotICAgICAgICBzZWxmLndyaXRlX2J5
X2RpcmVjdG9yeShyZXN1bHRzX2J5X2RpcmVjdG9yeSwgX2xvZy5kZWJ1ZywgIiAgICAgICIpCi0g
ICAgICAgIF9sb2cuZGVidWcoIiAgICBBZnRlcjogIikKLSAgICAgICAgc2VsZi53cml0ZV9ieV9k
aXJlY3RvcnkobmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5LCBfbG9nLmRlYnVnLCAiICAgICAgIikK
LQotICAgICAgICBzZWxmLl9tb3ZlX2Jhc2VsaW5lcyhiYXNlbGluZV9uYW1lLCByZXN1bHRzX2J5
X2RpcmVjdG9yeSwgbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5KQotICAgICAgICByZXR1cm4gVHJ1
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvYmFz
ZWxpbmVvcHRpbWl6ZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jaGVja291dC9iYXNlbGluZW9wdGltaXplcl91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTM0MmE1OS4uMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9iYXNlbGluZW9wdGltaXplcl91bml0dGVzdC5weQorKysgL2Rl
di9udWxsCkBAIC0xLDE1MSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBt
ZXQ6Ci0jCi0jICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHN5cwotaW1wb3J0
IHVuaXR0ZXN0MiBhcyB1bml0dGVzdAotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5i
YXNlbGluZW9wdGltaXplciBpbXBvcnQgQmFzZWxpbmVPcHRpbWl6ZXIKLWZyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCi1mcm9t
IHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1vY2tIb3N0Ci0KLQotY2xhc3MgVGVz
dEJhc2VsaW5lT3B0aW1pemVyKEJhc2VsaW5lT3B0aW1pemVyKToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgbW9ja19yZXN1bHRzX2J5X2RpcmVjdG9yeSk6Ci0gICAgICAgIGhvc3QgPSBNb2NrSG9z
dCgpCi0gICAgICAgIEJhc2VsaW5lT3B0aW1pemVyLl9faW5pdF9fKHNlbGYsIGhvc3QsIGhvc3Qu
cG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzKCkpCi0gICAgICAgIHNlbGYuX21vY2tfcmVzdWx0
c19ieV9kaXJlY3RvcnkgPSBtb2NrX3Jlc3VsdHNfYnlfZGlyZWN0b3J5Ci0KLSAgICAjIFdlIG92
ZXJyaWRlIHRoaXMgbWV0aG9kIGZvciB0ZXN0aW5nIHNvIHdlIGRvbid0IGhhdmUgdG8gY29uc3Ry
dWN0IGFuCi0gICAgIyBlbGFib3JhdGUgbW9jayBmaWxlIHN5c3RlbS4KLSAgICBkZWYgcmVhZF9y
ZXN1bHRzX2J5X2RpcmVjdG9yeShzZWxmLCBiYXNlbGluZV9uYW1lKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX21vY2tfcmVzdWx0c19ieV9kaXJlY3RvcnkKLQotICAgIGRlZiBfbW92ZV9iYXNlbGlu
ZXMoc2VsZiwgYmFzZWxpbmVfbmFtZSwgcmVzdWx0c19ieV9kaXJlY3RvcnksIG5ld19yZXN1bHRz
X2J5X2RpcmVjdG9yeSk6Ci0gICAgICAgIHNlbGYubmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5ID0g
bmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5Ci0KLQotY2xhc3MgQmFzZWxpbmVPcHRpbWl6ZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgX2Fzc2VydE9wdGltaXphdGlvbihzZWxmLCBy
ZXN1bHRzX2J5X2RpcmVjdG9yeSwgZXhwZWN0ZWRfbmV3X3Jlc3VsdHNfYnlfZGlyZWN0b3J5KToK
LSAgICAgICAgYmFzZWxpbmVfb3B0aW1pemVyID0gVGVzdEJhc2VsaW5lT3B0aW1pemVyKHJlc3Vs
dHNfYnlfZGlyZWN0b3J5KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoYmFzZWxpbmVfb3B0aW1p
emVyLm9wdGltaXplKCdtb2NrLWJhc2VsaW5lLnBuZycpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGJhc2VsaW5lX29wdGltaXplci5uZXdfcmVzdWx0c19ieV9kaXJlY3RvcnksIGV4cGVjdGVk
X25ld19yZXN1bHRzX2J5X2RpcmVjdG9yeSkKLQotICAgIGRlZiBfYXNzZXJ0T3B0aW1pemF0aW9u
RmFpbGVkKHNlbGYsIHJlc3VsdHNfYnlfZGlyZWN0b3J5KToKLSAgICAgICAgYmFzZWxpbmVfb3B0
aW1pemVyID0gVGVzdEJhc2VsaW5lT3B0aW1pemVyKHJlc3VsdHNfYnlfZGlyZWN0b3J5KQotICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKGJhc2VsaW5lX29wdGltaXplci5vcHRpbWl6ZSgnbW9jay1i
YXNlbGluZS5wbmcnKSkKLQotICAgIGRlZiB0ZXN0X21vdmVfYmFzZWxpbmVzKHNlbGYpOgotICAg
ICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICBob3N0LmZpbGVzeXN0ZW0ud3JpdGVfYmlu
YXJ5X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uL2Fu
b3RoZXIvdGVzdC1leHBlY3RlZC50eHQnLCAncmVzdWx0IEEnKQotICAgICAgICBob3N0LmZpbGVz
eXN0ZW0ud3JpdGVfYmluYXJ5X2ZpbGUoJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1saW9uLXdrMi9hbm90aGVyL3Rlc3QtZXhwZWN0ZWQudHh0JywgJ3Jlc3VsdCBBJykK
LSAgICAgICAgaG9zdC5maWxlc3lzdGVtLndyaXRlX2JpbmFyeV9maWxlKCcvbW9jay1jaGVja291
dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYW5vdGhlci90ZXN0LWV4cGVjdGVkLnR4dCcsICdy
ZXN1bHQgQicpCi0gICAgICAgIGJhc2VsaW5lX29wdGltaXplciA9IEJhc2VsaW5lT3B0aW1pemVy
KGhvc3QsIGhvc3QucG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzKCkpCi0gICAgICAgIGJhc2Vs
aW5lX29wdGltaXplci5fbW92ZV9iYXNlbGluZXMoJ2Fub3RoZXIvdGVzdC1leHBlY3RlZC50eHQn
LCB7Ci0gICAgICAgICAgICAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24nOiAnYWFhJywK
LSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGlvbi13azInOiAnYWFhJywK
LSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMnOiAnYmJiJywKLSAgICAgICAg
fSwgewotICAgICAgICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21hYyc6ICdhYWEnLAotICAg
ICAgICB9KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhvc3QuZmlsZXN5c3RlbS5yZWFkX2Jp
bmFyeV9maWxlKCcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYW5vdGhl
ci90ZXN0LWV4cGVjdGVkLnR4dCcpLCAncmVzdWx0IEEnKQotCi0gICAgZGVmIHRlc3RfZWZsKHNl
bGYpOgotICAgICAgICBzZWxmLl9hc3NlcnRPcHRpbWl6YXRpb24oewotICAgICAgICAgICAgJ0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbCc6ICc0NjJkMDNiOWMwMjVkYjFiMDM5MmQ3NDUzMzEwZGJl
ZTVmOWE5ZTc0JywKLSAgICAgICAgfSwgewotICAgICAgICAgICAgJ0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbCc6ICc0NjJkMDNiOWMwMjVkYjFiMDM5MmQ3NDUzMzEwZGJlZTVmOWE5ZTc0JywKLSAg
ICAgICAgfSkKLQotICAgIGRlZiB0ZXN0X25vX2FkZF9tYWNfZnV0dXJlKHNlbGYpOgotICAgICAg
ICBzZWxmLl9hc3NlcnRPcHRpbWl6YXRpb24oewotICAgICAgICAgICAgJ0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYyc6ICcyOWExNzE1YTY0NzBkNWRkOTQ4NmExNDJmNjA5NzA4ZGU4NGNkYWM4JywK
LSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4teHAnOiAnNDUzZTY3MTc3YTc1
YjJlNzk5MDUxNTRlY2UwZWZiYTZlNWJmYjY1ZCcsCi0gICAgICAgICAgICAnTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWxpb24nOiAnYzQzZWFlYjM1OGY0OWQ1ZTgzNTIzNmFlMjNiN2U0OWQ3ZjJi
MDg5ZicsCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMnOiAnMjlhMTcxNWE2NDcwZDVkZDk0ODZhMTQyZjYwOTcwOGRlODRjZGFjOCcsCi0gICAgICAg
ICAgICAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwJzogJzQ1M2U2NzE3N2E3NWIyZTc5OTA1
MTU0ZWNlMGVmYmE2ZTViZmI2NWQnLAotICAgICAgICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1saW9uJzogJ2M0M2VhZWIzNThmNDlkNWU4MzUyMzZhZTIzYjdlNDlkN2YyYjA4OWYnLAot
ICAgICAgICB9KQotCi0gICAgZGVmIHRlc3RfbWFjX2Z1dHVyZShzZWxmKToKLSAgICAgICAgc2Vs
Zi5fYXNzZXJ0T3B0aW1pemF0aW9uKHsKLSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtbGlvbic6ICc0NjJkMDNiOWMwMjVkYjFiMDM5MmQ3NDUzMzEwZGJlZTVmOWE5ZTc0JywK
LSAgICAgICAgfSwgewotICAgICAgICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9u
JzogJzQ2MmQwM2I5YzAyNWRiMWIwMzkyZDc0NTMzMTBkYmVlNWY5YTllNzQnLAotICAgICAgICB9
KQotCi0gICAgZGVmIHRlc3Rfd2luX2RvZXNfbm90X2Ryb3BfdG9fd2luXzdzcDAoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX2Fzc2VydE9wdGltaXphdGlvbih7Ci0gICAgICAgICAgICAnTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luJzogJzEnLAotICAgICAgICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYyc6ICcyJywKLSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsnOiAnMycs
Ci0gICAgICAgIH0sIHsKLSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4nOiAn
MScsCi0gICAgICAgICAgICAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjJzogJzInLAotICAgICAg
ICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ayc6ICczJywKLSAgICAgICAgfSkKLQotICAg
IGRlZiB0ZXN0X2NvbW1vbl9kaXJlY3RvcnlfaW5jbHVkZXNfcm9vdChzZWxmKToKLSAgICAgICAg
IyBUaGlzIHRlc3QgY2FzZSBjaGVja3MgdGhhdCB3ZSBkb24ndCB0aHJvdyBhbiBleGNlcHRpb24g
d2hlbiB3ZSBmYWlsCi0gICAgICAgICMgdG8gb3B0aW1pemUuCi0gICAgICAgIHNlbGYuX2Fzc2Vy
dE9wdGltaXphdGlvbkZhaWxlZCh7Ci0gICAgICAgICAgICAnTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrJzogJ2U4NjA4NzYzZjYyNDFkZGFjZGQ1YzFlZjE5NzNiYTI3MTc3ZDA4NDYnLAotICAgICAg
ICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21hYyc6ICdlODYwODc2M2Y2MjQxZGRhY2RkNWMx
ZWYxOTczYmEyNzE3N2QwODQ2JywKLSAgICAgICAgfSkKLQotICAgICAgICBzZWxmLl9hc3NlcnRP
cHRpbWl6YXRpb24oewotICAgICAgICAgICAgJ0xheW91dFRlc3RzJzogJzljODc2ZjhjM2U0Y2My
YWVmOTUxOWE2YzExNzRlYjM0MzI1OTExMjcnLAotICAgICAgICB9LCB7Ci0gICAgICAgICAgICAn
TGF5b3V0VGVzdHMnOiAnOWM4NzZmOGMzZTRjYzJhZWY5NTE5YTZjMTE3NGViMzQzMjU5MTEyNycs
Ci0gICAgICAgIH0pCi0KLSAgICBkZWYgdGVzdF9jb21wbGV4X3NoYWRvd2luZyhzZWxmKToKLSAg
ICAgICAgIyBUaGlzIHRlc3QgcmVsaWVzIG9uIE9TIHNwZWNpZmljIGZ1bmN0aW9uYWxpdHksIHNv
IGl0IGRvZXNuJ3Qgd29yayBvbiBXaW5kb3dzLgotICAgICAgICAjIEZJWE1FOiBXaGF0IGZ1bmN0
aW9uYWxpdHkgZG9lcyB0aGlzIHJlbHkgb24/ICBXaGVuIGNhbiB3ZSByZW1vdmUgdGhpcyBpZj8K
LSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6Ci0gICAgICAgICAgICByZXR1cm4K
LSAgICAgICAgc2VsZi5fYXNzZXJ0T3B0aW1pemF0aW9uKHsKLSAgICAgICAgICAgICdMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMnOiAnNWRhYTc4ZTU1ZjA1ZDlmMGQxYmIxZjMyYjBjZDFiYzNhMDFl
OTM2NCcsCi0gICAgICAgICAgICAnTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24nOiAnN2Fk
MDQ1ZWNlN2MwMzBlMjI4M2M1ZDIxZDk1ODdiZTIyYmNiYTU2ZScsCi0gICAgICAgICAgICAnTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luLXhwJzogJzViMTI1M2VmNGQ1MDk0NTMwZDVmMWJjNmNkYjk1
YzkwYjQ0NmJlYzcnLAotICAgICAgICB9LCB7Ci0gICAgICAgICAgICAnTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjJzogJzVkYWE3OGU1NWYwNWQ5ZjBkMWJiMWYzMmIwY2QxYmMzYTAxZTkzNjQnLAot
ICAgICAgICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1saW9uJzogJzdhZDA0NWVjZTdj
MDMwZTIyODNjNWQyMWQ5NTg3YmUyMmJjYmE1NmUnLAotICAgICAgICAgICAgJ0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi14cCc6ICc1YjEyNTNlZjRkNTA5NDUzMGQ1ZjFiYzZjZGI5NWM5MGI0NDZi
ZWM3JywKLSAgICAgICAgfSkKLQotICAgIGRlZiB0ZXN0X3ZpcnR1YWxfcG9ydHNfZmlsdGVyZWQo
c2VsZik6Ci0gICAgICAgIHNlbGYuX2Fzc2VydE9wdGltaXphdGlvbih7Ci0gICAgICAgICAgICAn
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrJzogJzMnLAotICAgICAgICAgICAgJ0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbCc6ICczJywKLSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMnOiAnNCcsCi0gICAgICAgIH0sIHsKLSAgICAgICAgICAgICdMYXlvdXRUZXN0cyc6ICczJywK
LSAgICAgICAgICAgICdMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMnOiAnNCcsCi0gICAgICAgIH0p
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNl
bGluZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5l
LnB5CmluZGV4IDA2ZDQyZDAuLjk4OTg2NzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5CkBAIC0zMSw3ICszMSw2IEBAIGltcG9y
dCBsb2dnaW5nCiBpbXBvcnQgb3B0cGFyc2UKIGltcG9ydCBzeXMKIAotZnJvbSB3ZWJraXRweS5j
b21tb24uY2hlY2tvdXQuYmFzZWxpbmVvcHRpbWl6ZXIgaW1wb3J0IEJhc2VsaW5lT3B0aW1pemVy
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuY29udHJvbGxlcnMudGVzdF9yZXN1bHRfd3Jp
dGVyIGltcG9ydCBUZXN0UmVzdWx0V3JpdGVyCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5t
b2RlbHMgaW1wb3J0IHRlc3RfZmFpbHVyZXMKQEAgLTE5Nyw3NCArMTk2LDYgQEAgY2xhc3MgUmVi
YXNlbGluZVRlc3QoQWJzdHJhY3RSZWJhc2VsaW5pbmdDb21tYW5kKToKICAgICAgICAgcHJpbnQg
anNvbi5kdW1wcyhzZWxmLl9zY21fY2hhbmdlcykKIAogCi1jbGFzcyBPcHRpbWl6ZUJhc2VsaW5l
cyhBYnN0cmFjdFJlYmFzZWxpbmluZ0NvbW1hbmQpOgotICAgIG5hbWUgPSAib3B0aW1pemUtYmFz
ZWxpbmVzIgotICAgIGhlbHBfdGV4dCA9ICJSZXNodWZmbGVzIHRoZSBiYXNlbGluZXMgZm9yIHRo
ZSBnaXZlbiB0ZXN0cyB0byB1c2UgYXMgbGl0dGUgc3BhY2Ugb24gZGlzayBhcyBwb3NzaWJsZS4i
Ci0gICAgYXJndW1lbnRfbmFtZXMgPSAiVEVTVF9OQU1FUyIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKLSAgICAgICAgc3VwZXIoT3B0aW1pemVCYXNlbGluZXMsIHNlbGYpLl9faW5pdF9fKG9w
dGlvbnM9W3NlbGYuc3VmZml4ZXNfb3B0aW9uXSArIHNlbGYucGxhdGZvcm1fb3B0aW9ucykKLQot
ICAgIGRlZiBfb3B0aW1pemVfYmFzZWxpbmUoc2VsZiwgb3B0aW1pemVyLCB0ZXN0X25hbWUpOgot
ICAgICAgICBmb3Igc3VmZml4IGluIHNlbGYuX2Jhc2VsaW5lX3N1ZmZpeF9saXN0OgotICAgICAg
ICAgICAgYmFzZWxpbmVfbmFtZSA9IF9iYXNlbGluZV9uYW1lKHNlbGYuX3Rvb2wuZmlsZXN5c3Rl
bSwgdGVzdF9uYW1lLCBzdWZmaXgpCi0gICAgICAgICAgICBpZiBub3Qgb3B0aW1pemVyLm9wdGlt
aXplKGJhc2VsaW5lX25hbWUpOgotICAgICAgICAgICAgICAgIHByaW50ICJIZXVyaXN0aWNzIGZh
aWxlZCB0byBvcHRpbWl6ZSAlcyIgJSBiYXNlbGluZV9uYW1lCi0KLSAgICBkZWYgZXhlY3V0ZShz
ZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKLSAgICAgICAgc2VsZi5fYmFzZWxpbmVfc3VmZml4
X2xpc3QgPSBvcHRpb25zLnN1ZmZpeGVzLnNwbGl0KCcsJykKLSAgICAgICAgcG9ydF9uYW1lcyA9
IHRvb2wucG9ydF9mYWN0b3J5LmFsbF9wb3J0X25hbWVzKG9wdGlvbnMucGxhdGZvcm0pCi0gICAg
ICAgIGlmIG5vdCBwb3J0X25hbWVzOgotICAgICAgICAgICAgcHJpbnQgIk5vIHBvcnQgbmFtZXMg
bWF0Y2ggJyVzJyIgJSBvcHRpb25zLnBsYXRmb3JtCi0gICAgICAgICAgICByZXR1cm4KLQotICAg
ICAgICBvcHRpbWl6ZXIgPSBCYXNlbGluZU9wdGltaXplcih0b29sLCBwb3J0X25hbWVzKQotICAg
ICAgICBwb3J0ID0gdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZXNbMF0pCi0gICAgICAg
IGZvciB0ZXN0X25hbWUgaW4gcG9ydC50ZXN0cyhhcmdzKToKLSAgICAgICAgICAgIF9sb2cuaW5m
bygiT3B0aW1pemluZyAlcyIgJSB0ZXN0X25hbWUpCi0gICAgICAgICAgICBzZWxmLl9vcHRpbWl6
ZV9iYXNlbGluZShvcHRpbWl6ZXIsIHRlc3RfbmFtZSkKLQotCi1jbGFzcyBBbmFseXplQmFzZWxp
bmVzKEFic3RyYWN0UmViYXNlbGluaW5nQ29tbWFuZCk6Ci0gICAgbmFtZSA9ICJhbmFseXplLWJh
c2VsaW5lcyIKLSAgICBoZWxwX3RleHQgPSAiQW5hbHl6ZXMgdGhlIGJhc2VsaW5lcyBmb3IgdGhl
IGdpdmVuIHRlc3RzIGFuZCBwcmludHMgcmVzdWx0cyB0aGF0IGFyZSBpZGVudGljYWwuIgotICAg
IGFyZ3VtZW50X25hbWVzID0gIlRFU1RfTkFNRVMiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6
Ci0gICAgICAgIHN1cGVyKEFuYWx5emVCYXNlbGluZXMsIHNlbGYpLl9faW5pdF9fKG9wdGlvbnM9
WwotICAgICAgICAgICAgc2VsZi5zdWZmaXhlc19vcHRpb24sCi0gICAgICAgICAgICBvcHRwYXJz
ZS5tYWtlX29wdGlvbignLS1taXNzaW5nJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1G
YWxzZSwgaGVscD0nc2hvdyBtaXNzaW5nIGJhc2VsaW5lcyBhcyB3ZWxsJyksCi0gICAgICAgICAg
ICBdICsgc2VsZi5wbGF0Zm9ybV9vcHRpb25zKQotICAgICAgICBzZWxmLl9vcHRpbWl6ZXJfY2xh
c3MgPSBCYXNlbGluZU9wdGltaXplciAgIyBvdmVycmlkYWJsZSBmb3IgdGVzdGluZwotICAgICAg
ICBzZWxmLl9iYXNlbGluZV9vcHRpbWl6ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX3BvcnQgPSBO
b25lCi0KLSAgICBkZWYgX3dyaXRlKHNlbGYsIG1zZyk6Ci0gICAgICAgIHByaW50IG1zZwotCi0g
ICAgZGVmIF9hbmFseXplX2Jhc2VsaW5lKHNlbGYsIG9wdGlvbnMsIHRlc3RfbmFtZSk6Ci0gICAg
ICAgIGZvciBzdWZmaXggaW4gc2VsZi5fYmFzZWxpbmVfc3VmZml4X2xpc3Q6Ci0gICAgICAgICAg
ICBiYXNlbGluZV9uYW1lID0gX2Jhc2VsaW5lX25hbWUoc2VsZi5fdG9vbC5maWxlc3lzdGVtLCB0
ZXN0X25hbWUsIHN1ZmZpeCkKLSAgICAgICAgICAgIHJlc3VsdHNfYnlfZGlyZWN0b3J5ID0gc2Vs
Zi5fYmFzZWxpbmVfb3B0aW1pemVyLnJlYWRfcmVzdWx0c19ieV9kaXJlY3RvcnkoYmFzZWxpbmVf
bmFtZSkKLSAgICAgICAgICAgIGlmIHJlc3VsdHNfYnlfZGlyZWN0b3J5OgotICAgICAgICAgICAg
ICAgIHNlbGYuX3dyaXRlKCIlczoiICUgYmFzZWxpbmVfbmFtZSkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9iYXNlbGluZV9vcHRpbWl6ZXIud3JpdGVfYnlfZGlyZWN0b3J5KHJlc3VsdHNfYnlfZGly
ZWN0b3J5LCBzZWxmLl93cml0ZSwgIiAgIikKLSAgICAgICAgICAgIGVsaWYgb3B0aW9ucy5taXNz
aW5nOgotICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlKCIlczogKG5vIGJhc2VsaW5lcyBmb3Vu
ZCkiICUgYmFzZWxpbmVfbmFtZSkKLQotICAgIGRlZiBleGVjdXRlKHNlbGYsIG9wdGlvbnMsIGFy
Z3MsIHRvb2wpOgotICAgICAgICBzZWxmLl9iYXNlbGluZV9zdWZmaXhfbGlzdCA9IG9wdGlvbnMu
c3VmZml4ZXMuc3BsaXQoJywnKQotICAgICAgICBwb3J0X25hbWVzID0gdG9vbC5wb3J0X2ZhY3Rv
cnkuYWxsX3BvcnRfbmFtZXMob3B0aW9ucy5wbGF0Zm9ybSkKLSAgICAgICAgaWYgbm90IHBvcnRf
bmFtZXM6Ci0gICAgICAgICAgICBwcmludCAiTm8gcG9ydCBuYW1lcyBtYXRjaCAnJXMnIiAlIG9w
dGlvbnMucGxhdGZvcm0KLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX2Jhc2Vs
aW5lX29wdGltaXplciA9IHNlbGYuX29wdGltaXplcl9jbGFzcyh0b29sLCBwb3J0X25hbWVzKQot
ICAgICAgICBzZWxmLl9wb3J0ID0gdG9vbC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZXNbMF0p
Ci0gICAgICAgIGZvciB0ZXN0X25hbWUgaW4gc2VsZi5fcG9ydC50ZXN0cyhhcmdzKToKLSAgICAg
ICAgICAgIHNlbGYuX2FuYWx5emVfYmFzZWxpbmUob3B0aW9ucywgdGVzdF9uYW1lKQotCi0KIGNs
YXNzIEFic3RyYWN0UGFyYWxsZWxSZWJhc2VsaW5lQ29tbWFuZChBYnN0cmFjdFJlYmFzZWxpbmlu
Z0NvbW1hbmQpOgogICAgICMgbm90IG92ZXJyaWRpbmcgZXhlY3V0ZSgpIC0gcHlsaW50OiBkaXNh
YmxlPVcwMjIzCiAKQEAgLTMzNiwxNSArMjY3LDYgQEAgY2xhc3MgQWJzdHJhY3RQYXJhbGxlbFJl
YmFzZWxpbmVDb21tYW5kKEFic3RyYWN0UmViYXNlbGluaW5nQ29tbWFuZCk6CiAKICAgICAgICAg
cmV0dXJuIGxpc3QoZmlsZXNfdG9fYWRkKQogCi0gICAgZGVmIF9vcHRpbWl6ZV9iYXNlbGluZXMo
c2VsZiwgdGVzdF9saXN0LCB2ZXJib3NlPUZhbHNlKToKLSAgICAgICAgIyBXZSBkb24ndCBydW4g
dGhpcyBpbiBwYXJhbGxlbCBiZWNhdXNlIG1vZGlmeWluZyB0aGUgU0NNIGluIHBhcmFsbGVsIGlz
IHVucmVsaWFibGUuCi0gICAgICAgIGZvciB0ZXN0IGluIHRlc3RfbGlzdDoKLSAgICAgICAgICAg
IGFsbF9zdWZmaXhlcyA9IHNldCgpCi0gICAgICAgICAgICBmb3IgYnVpbGRlciBpbiBzZWxmLl9i
dWlsZGVyc190b19mZXRjaF9mcm9tKHRlc3RfbGlzdFt0ZXN0XSk6Ci0gICAgICAgICAgICAgICAg
YWxsX3N1ZmZpeGVzLnVwZGF0ZSh0ZXN0X2xpc3RbdGVzdF1bYnVpbGRlcl0pCi0gICAgICAgICAg
ICAjIEZJWE1FOiBXZSBzaG91bGQgcHJvcGFnYXRlIHRoZSBwbGF0Zm9ybSBvcHRpb25zIGFzIHdl
bGwuCi0gICAgICAgICAgICBzZWxmLl9ydW5fd2Via2l0X3BhdGNoKFsnb3B0aW1pemUtYmFzZWxp
bmVzJywgJy0tc3VmZml4ZXMnLCAnLCcuam9pbihhbGxfc3VmZml4ZXMpLCB0ZXN0XSwgdmVyYm9z
ZSkKLQogICAgIGRlZiBfcmViYXNlbGluZShzZWxmLCBvcHRpb25zLCB0ZXN0X2xpc3QpOgogICAg
ICAgICBmb3IgdGVzdCwgYnVpbGRlcnNfdG9fY2hlY2sgaW4gc29ydGVkKHRlc3RfbGlzdC5pdGVt
cygpKToKICAgICAgICAgICAgIF9sb2cuaW5mbygiUmViYXNlbGluaW5nICVzIiAlIHRlc3QpCkBA
IC0zNjMsOSArMjg1LDYgQEAgY2xhc3MgQWJzdHJhY3RQYXJhbGxlbFJlYmFzZWxpbmVDb21tYW5k
KEFic3RyYWN0UmViYXNlbGluaW5nQ29tbWFuZCk6CiAgICAgICAgIGlmIGZpbGVzX3RvX2FkZDoK
ICAgICAgICAgICAgIHNlbGYuX3Rvb2wuc2NtKCkuYWRkX2xpc3QobGlzdChmaWxlc190b19hZGQp
KQogCi0gICAgICAgIGlmIG9wdGlvbnMub3B0aW1pemU6Ci0gICAgICAgICAgICBzZWxmLl9vcHRp
bWl6ZV9iYXNlbGluZXModGVzdF9saXN0LCBvcHRpb25zLnZlcmJvc2UpCi0KIAogY2xhc3MgUmVi
YXNlbGluZUpzb24oQWJzdHJhY3RQYXJhbGxlbFJlYmFzZWxpbmVDb21tYW5kKToKICAgICBuYW1l
ID0gInJlYmFzZWxpbmUtanNvbiIKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHkKaW5kZXggNzU1ZGYzMi4u
ODdiYWU4NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3JlYmFzZWxpbmVfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3JlYmFzZWxpbmVfdW5pdHRlc3QucHkKQEAgLTMwLDcgKzMwLDYgQEAKIGltcG9y
dCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91
dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKLWZyb20gd2Via2l0cHkuY29tbW9uLmNo
ZWNrb3V0LmJhc2VsaW5lb3B0aW1pemVyIGltcG9ydCBCYXNlbGluZU9wdGltaXplcgogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmJ1aWxkYm90LmJ1aWxkYm90X21vY2sgaW1wb3J0IE1vY2tCdWls
ZGVyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1v
Y2tFeGVjdXRpdmUyCiBmcm9tIHdlYmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQgTW9jawpA
QCAtMjQ4LDI5ICsyNDcsMTAgQEAgY2xhc3MgVGVzdFJlYmFzZWxpbmVKc29uKF9CYXNlVGVzdENh
c2UpOgogICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMob3B0aW1pemU9VHJ1ZSwgdmVyYm9z
ZT1UcnVlLCBtb3ZlX292ZXJ3cml0dGVuX2Jhc2VsaW5lcz1GYWxzZSwgcmVzdWx0c19kaXJlY3Rv
cnk9Tm9uZSkKICAgICAgICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lKG9wdGlvbnMsICB7InVz
ZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCI6IHsiTU9DSyBidWlsZGVyIjogWyJ0eHQiLCAi
cG5nIl19fSkKIAotICAgICAgICAjIE5vdGUgdGhhdCB3ZSBoYXZlIG9uZSBydW5faW5fcGFyYWxs
ZWwoKSBjYWxsIGZvbGxvd2VkIGJ5IGEgcnVuX2NvbW1hbmQoKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYudG9vbC5leGVjdXRpdmUuY2FsbHMsCi0gICAgICAgICAgICBbW1snZWNobycs
ICdyZWJhc2VsaW5lLXRlc3QtaW50ZXJuYWwnLCAnLS1zdWZmaXhlcycsICd0eHQscG5nJywgJy0t
YnVpbGRlcicsICdNT0NLIGJ1aWxkZXInLCAnLS10ZXN0JywgJ3VzZXItc2NyaXB0cy9hbm90aGVy
LXRlc3QuaHRtbCcsICctLXZlcmJvc2UnXV0sCi0gICAgICAgICAgICAgWydlY2hvJywgJy0tdmVy
Ym9zZScsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAnLS1zdWZmaXhlcycsICd0eHQscG5nJywgJ3Vz
ZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCddXSkKLQogICAgIGRlZiB0ZXN0X3JlYmFzZWxp
bmVfZGVidWcoc2VsZik6CiAgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucyhvcHRpbWl6ZT1U
cnVlLCB2ZXJib3NlPVRydWUsIG1vdmVfb3ZlcndyaXR0ZW5fYmFzZWxpbmVzPUZhbHNlLCByZXN1
bHRzX2RpcmVjdG9yeT1Ob25lKQogICAgICAgICBzZWxmLmNvbW1hbmQuX3JlYmFzZWxpbmUob3B0
aW9ucywgIHsidXNlci1zY3JpcHRzL2Fub3RoZXItdGVzdC5odG1sIjogeyJNT0NLIGJ1aWxkZXIg
KERlYnVnKSI6IFsidHh0IiwgInBuZyJdfX0pCiAKLSAgICAgICAgIyBOb3RlIHRoYXQgd2UgaGF2
ZSBvbmUgcnVuX2luX3BhcmFsbGVsKCkgY2FsbCBmb2xsb3dlZCBieSBhIHJ1bl9jb21tYW5kKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRvb2wuZXhlY3V0aXZlLmNhbGxzLAotICAg
ICAgICAgICAgW1tbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0LWludGVybmFsJywgJy0tc3VmZml4
ZXMnLCAndHh0LHBuZycsICctLWJ1aWxkZXInLCAnTU9DSyBidWlsZGVyIChEZWJ1ZyknLCAnLS10
ZXN0JywgJ3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCcsICctLXZlcmJvc2UnXV0sCi0g
ICAgICAgICAgICAgWydlY2hvJywgJy0tdmVyYm9zZScsICdvcHRpbWl6ZS1iYXNlbGluZXMnLCAn
LS1zdWZmaXhlcycsICd0eHQscG5nJywgJ3VzZXItc2NyaXB0cy9hbm90aGVyLXRlc3QuaHRtbCdd
XSkKLQotICAgIGRlZiB0ZXN0X21vdmVfb3ZlcndyaXR0ZW4oc2VsZik6Ci0gICAgICAgIG9wdGlv
bnMgPSBNb2NrT3B0aW9ucyhvcHRpbWl6ZT1UcnVlLCB2ZXJib3NlPVRydWUsIG1vdmVfb3Zlcndy
aXR0ZW5fYmFzZWxpbmVzPVRydWUsIHJlc3VsdHNfZGlyZWN0b3J5PU5vbmUpCi0gICAgICAgIHNl
bGYuY29tbWFuZC5fcmViYXNlbGluZShvcHRpb25zLCAgeyJ1c2VyLXNjcmlwdHMvYW5vdGhlci10
ZXN0Lmh0bWwiOiB7Ik1PQ0sgYnVpbGRlciI6IFsidHh0IiwgInBuZyJdfX0pCi0KLSAgICAgICAg
IyBOb3RlIHRoYXQgd2UgaGF2ZSBvbmUgcnVuX2luX3BhcmFsbGVsKCkgY2FsbCBmb2xsb3dlZCBi
eSBhIHJ1bl9jb21tYW5kKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRvb2wuZXhl
Y3V0aXZlLmNhbGxzLAotICAgICAgICAgICAgW1tbJ2VjaG8nLCAncmViYXNlbGluZS10ZXN0LWlu
dGVybmFsJywgJy0tc3VmZml4ZXMnLCAndHh0LHBuZycsICctLWJ1aWxkZXInLCAnTU9DSyBidWls
ZGVyJywgJy0tdGVzdCcsICd1c2VyLXNjcmlwdHMvYW5vdGhlci10ZXN0Lmh0bWwnLCAnLS1tb3Zl
LW92ZXJ3cml0dGVuLWJhc2VsaW5lcy10bycsICd0ZXN0LW1hYy1sZW9wYXJkJywgJy0tdmVyYm9z
ZSddXSwKLSAgICAgICAgICAgICBbJ2VjaG8nLCAnLS12ZXJib3NlJywgJ29wdGltaXplLWJhc2Vs
aW5lcycsICctLXN1ZmZpeGVzJywgJ3R4dCxwbmcnLCAndXNlci1zY3JpcHRzL2Fub3RoZXItdGVz
dC5odG1sJ11dKQotCiAgICAgZGVmIHRlc3Rfbm9fb3B0aW1pemUoc2VsZik6CiAgICAgICAgIG9w
dGlvbnMgPSBNb2NrT3B0aW9ucyhvcHRpbWl6ZT1GYWxzZSwgdmVyYm9zZT1UcnVlLCBtb3ZlX292
ZXJ3cml0dGVuX2Jhc2VsaW5lcz1GYWxzZSwgcmVzdWx0c19kaXJlY3Rvcnk9Tm9uZSkKICAgICAg
ICAgc2VsZi5jb21tYW5kLl9yZWJhc2VsaW5lKG9wdGlvbnMsICB7InVzZXItc2NyaXB0cy9hbm90
aGVyLXRlc3QuaHRtbCI6IHsiTU9DSyBidWlsZGVyIChEZWJ1ZykiOiBbInR4dCIsICJwbmciXX19
KQpAQCAtMzY3LDM4ICszNDcsMyBAQCBjbGFzcyBUZXN0UmViYXNlbGluZUV4cGVjdGF0aW9ucyhf
QmFzZVRlc3RDYXNlKToKIAogICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbChzZWxmLmNvbW1h
bmQuX3Rlc3RzX3RvX3JlYmFzZWxpbmUoc2VsZi5saW9uX3BvcnQpLCB7J3VzZXJzY3JpcHRzL2Fu
b3RoZXItdGVzdC5odG1sJzogc2V0KFsncG5nJywgJ3R4dCcsICd3YXYnXSl9KQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHNlbGYuX3JlYWQoc2VsZi5saW9uX2V4cGVjdGF0aW9uc19wYXRoKSwg
JycpCi0KLQotY2xhc3MgX0Zha2VPcHRpbWl6ZXIoQmFzZWxpbmVPcHRpbWl6ZXIpOgotICAgIGRl
ZiByZWFkX3Jlc3VsdHNfYnlfZGlyZWN0b3J5KHNlbGYsIGJhc2VsaW5lX25hbWUpOgotICAgICAg
ICBpZiBiYXNlbGluZV9uYW1lLmVuZHN3aXRoKCd0eHQnKToKLSAgICAgICAgICAgIHJldHVybiB7
J0xheW91dFRlc3RzL3Bhc3Nlcy90ZXh0Lmh0bWwnOiAnMTIzNDU2JywKLSAgICAgICAgICAgICAg
ICAgICAgJ0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3QtbWFjLWxlb3BhcmQvcGFzc2VzL3RleHQu
aHRtbCc6ICdhYmNkZWYnfQotICAgICAgICByZXR1cm4ge30KLQotCi1jbGFzcyBUZXN0QW5hbHl6
ZUJhc2VsaW5lcyhfQmFzZVRlc3RDYXNlKToKLSAgICBjb21tYW5kX2NvbnN0cnVjdG9yID0gQW5h
bHl6ZUJhc2VsaW5lcwotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihUZXN0
QW5hbHl6ZUJhc2VsaW5lcywgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLnBvcnQgPSBzZWxm
LnRvb2wucG9ydF9mYWN0b3J5LmdldCgndGVzdCcpCi0gICAgICAgIHNlbGYudG9vbC5wb3J0X2Zh
Y3RvcnkuZ2V0ID0gKGxhbWJkYSBwb3J0X25hbWU9Tm9uZSwgb3B0aW9ucz1Ob25lOiBzZWxmLnBv
cnQpCi0gICAgICAgIHNlbGYubGluZXMgPSBbXQotICAgICAgICBzZWxmLmNvbW1hbmQuX29wdGlt
aXplcl9jbGFzcyA9IF9GYWtlT3B0aW1pemVyCi0gICAgICAgIHNlbGYuY29tbWFuZC5fd3JpdGUg
PSAobGFtYmRhIG1zZzogc2VsZi5saW5lcy5hcHBlbmQobXNnKSkgICMgcHlsaW50IGJ1ZyB3YXJu
aW5nIGFib3V0IHVubmVjZXNzYXJ5IGxhbWJkYT8gcHlsaW50OiBkaXNhYmxlPVcwMTA4Ci0KLSAg
ICBkZWYgdGVzdF9kZWZhdWx0KHNlbGYpOgotICAgICAgICBzZWxmLmNvbW1hbmQuZXhlY3V0ZShN
b2NrT3B0aW9ucyhzdWZmaXhlcz0ndHh0JywgbWlzc2luZz1GYWxzZSwgcGxhdGZvcm09Tm9uZSks
IFsncGFzc2VzL3RleHQuaHRtbCddLCBzZWxmLnRvb2wpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5saW5lcywKLSAgICAgICAgICAgIFsncGFzc2VzL3RleHQtZXhwZWN0ZWQudHh0Oics
Ci0gICAgICAgICAgICAgJyAgKGdlbmVyaWMpOiAxMjM0NTYnLAotICAgICAgICAgICAgICcgIHRl
c3QtbWFjLWxlb3BhcmQ6IGFiY2RlZiddKQotCi0gICAgZGVmIHRlc3RfbWlzc2luZ19iYXNlbGlu
ZXMoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tbWFuZC5leGVjdXRlKE1vY2tPcHRpb25zKHN1ZmZp
eGVzPSdwbmcsdHh0JywgbWlzc2luZz1UcnVlLCBwbGF0Zm9ybT1Ob25lKSwgWydwYXNzZXMvdGV4
dC5odG1sJ10sIHNlbGYudG9vbCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxpbmVz
LAotICAgICAgICAgICAgWydwYXNzZXMvdGV4dC1leHBlY3RlZC5wbmc6IChubyBiYXNlbGluZXMg
Zm91bmQpJywKLSAgICAgICAgICAgICAncGFzc2VzL3RleHQtZXhwZWN0ZWQudHh0OicsCi0gICAg
ICAgICAgICAgJyAgKGdlbmVyaWMpOiAxMjM0NTYnLAotICAgICAgICAgICAgICcgIHRlc3QtbWFj
LWxlb3BhcmQ6IGFiY2RlZiddKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>