<?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>36254</bug_id>
          
          <creation_ts>2010-03-17 17:46:01 -0700</creation_ts>
          <short_desc>Add more infrastructure for sheriff-bot, including making what-broke more awesome</short_desc>
          <delta_ts>2010-03-17 18:09:58 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dbates</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>201078</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-17 17:46:01 -0700</bug_when>
    <thetext>Add more infrastructure for sheriff-bot, including making what-broke more awesome</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201080</commentid>
    <comment_count>1</comment_count>
      <attachid>50981</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-17 17:48:05 -0700</bug_when>
    <thetext>Created attachment 50981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201083</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-17 17:51:13 -0700</bug_when>
    <thetext>CCing dbates, as I think he is the culprit behind the SCM.commit_with_message breakage of the scm unittests. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201093</commentid>
    <comment_count>3</comment_count>
      <attachid>50981</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-17 18:04:40 -0700</bug_when>
    <thetext>Comment on attachment 50981
Patch

This is like 27 different patch, but ok.  Also, all the code you&apos;re adding to what-broke needs to be factored out into separate concepts so it can be re-used by other parts of the system.

Thanks for fixing all the SCM unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201095</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-17 18:09:58 -0700</bug_when>
    <thetext>Committed r56137: &lt;http://trac.webkit.org/changeset/56137&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50981</attachid>
            <date>2010-03-17 17:48:05 -0700</date>
            <delta_ts>2010-03-17 18:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36254-20100317174804.patch</filename>
            <type>text/plain</type>
            <size>38354</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyMTIwNzNiLi42ZGMzMmY0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTAtMDMt
MTcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBtb3JlIGluZnJhc3RydWN0dXJlIGZvciBz
aGVyaWZmLWJvdCwgaW5jbHVkaW5nIG1ha2luZyB3aGF0LWJyb2tlIG1vcmUgYXdlc29tZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzYyNTQKKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYnVnemlsbGEucHk6CisgICAgICAgICAtIE1hZGUgdGhl
IHZhcmlvdXMgVVJMIG1ldGhvZHMgcmV0dXJuIE5vbmUgd2hlbiBwYXNzZWQgTm9uZS4KKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5OgorICAgICAgICAgLSBU
ZXN0IHRoYXQgdGhlIHVybCBtZXRob2RzIHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9idWlsZGJvdC5weToKKyAgICAgICAgIC0gQWRkIGEgc3RhdGljIEJ1aWxk
LmJ1aWxkX3VybCBzbyB0aGF0IGl0cyBwb3NzaWJsZSB0byBnZW5lcmF0ZSBhIGJ1aWxkIHVybCB3
aXRob3V0IGEgQnVpbGQgb2JqZWN0LgorICAgICAgICAgLSBHaXZlIHVzZXJzIGEgVVJMIGluIF9m
ZXRjaF94bWxycGNfYnVpbGRfZGljdGlvbmFyeSBlcnJvciBtZXNzYWdlLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY2hhbmdlbG9ncy5weToKKyAgICAgICAgIC0gQWRkIGEgbmV3IENoYW5n
ZUxvZ0VudHJ5IGNsYXNzIHRvIGVuY2Fwc3VsYXRlIGVudHJ5LXBhcnNpbmcgbG9naWMuCisgICAg
ICAgICAtIEFkZCBpc19wYXRoX3RvX2NoYW5nZWxvZyB0byBncmVhdGx5IHNpbXBsaWZ5IFNDTS5t
b2RpZmllZF9jaGFuZ2Vsb2dzIGNvZGUuCisgICAgICAgICAtIE1ha2UgQ2hhbmdlTG9nLnBhcnNl
X2xhdGVzdF9lbnRyeV9mcm9tX2ZpbGUgYSBwdWJsaWMgbWV0aG9kLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY2hhbmdlbG9nc191bml0dGVzdC5weToKKyAgICAgICAgIC0gQWRkIHRlc3Rz
IGZvciBuZXcgQ2hhbmdlTG9nIGVudHJ5IHBhcnNpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tYW5kcy9xdWVyaWVzLnB5OgorICAgICAgICAgLSBNYWtlICJ3aGF0LWJyb2tlIiBu
b3QgcHJpbnQgIm9rIiBidWlsZGVycywgb25seSBmYWlsaW5nIG9uZXMuCisgICAgICAgICAtIFBy
aW50IG11Y2ggbW9yZSBpbmZvcm1hdGlvbiBvbiBmYWlsaW5nIGJ1aWxkZXJzLCBpbmNsdWRpbmcg
bGlua3MgYW5kIGF1dGhvcnNoaXAvcmV2aWV3ZXIgaW5mb3JtYXRpb24uCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6CisgICAgICAgICAtIFVz
ZSBhIGZha2VfY2hlY2tvdXQgcGF0aCBzaW5jZSBmaXhpbmcgdGhlIGN3ZCAoYXMgcGFydCBvZiBm
aXhpbmcgc2NtX3VuaXR0ZXN0cy5weSkgd2FzIGJyZWFraW5nIHRlc3RzLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHk6CisgICAgICAgICAtIE1vdmUgTW9j
a1NDTSBhd2F5IGZyb20gdXNpbmcgb3MuZ2V0Y3dkKCkgYXMgdGhhdCB3YXMgZnJhZ2lsZSAoYW5k
IHdyb25nKS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHk6Cisg
ICAgICAgICAtIFJlbW92ZSBjb2RlIHdoaWNoIHdhcyBicm9rZW4gbm93IHRoYXQgdGhpcyBmaWxl
IGhhcyBtb3ZlZC4KKyAgICAgICAgIC0gQ29kZSB3YXMgYWxzbyByZWR1bmRhbnQgbm93IHRoYXQg
U0NNLmZpbmRfY2hlY2tvdXRfcm9vdCgpIGV4aXN0cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3NjbS5weToKKyAgICAgICAgIC0gR3JlYXRseSBzaW1wbGlmeSBtb2RpZmllZF9jaGFuZ2Vs
b2dzIG5vdyB0aGF0IEkgdW5kZXJzdGFuZCBsaXN0IGNvbXByZWhlbnNpb25zLgorICAgICAgICAg
LSBFeHBlY3QgQ2hhbmdlTG9nRW50cnkgb2JqZWN0cyBpbnN0ZWFkIG9mIHJhdyBzdHJpbmdzLgor
ICAgICAgICAgLSBBZGQgY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24sIGNvbW1pdHRlcl9lbWFp
bF9mb3JfcmV2aXNpb24gYW5kIGNvbnRlbnRzX2F0X3JldmlzaW9uCisgICAgICAgICAtIEFkZCBj
b21taXRfd2l0aF9tZXNzYWdlIGFyZ3VtZW50IHRvIGFsbCBzaXRlcyBzaW5jZSBzb21lb25lIGhh
bGYtYWRkZWQgaXQgYmVmb3JlLiA6KAorICAgICAgICAgLSBHZXQgcmlkIG9mIGNvcHkvcGFzdGUg
Y29kZSB1c2luZyBfc3RhdHVzX3JlZ2V4cCgpCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9z
Y21fdW5pdHRlc3QucHk6CisgICAgICAgICAtIEZpeCB0aGVzZSB0ZXN0cyEKKyAgICAgICAgIC0g
QWRkIG5ldyB0ZXN0cyBmb3IgbmV3IHNjbSBjb2RlLgorICAgICAgICAgLSBGaXggc3BlbGxpbmcg
b2YgImF3c29tZSIgdG8gImF3ZXNvbWUiLgorCiAyMDEwLTAzLTE3ICBWaWN0b3IgV2FuZyAgPHZp
Y3RvcndAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtv
di4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVnemlsbGEucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhLnB5CmluZGV4IDUyNGM0NzEu
LjlhNjkyNGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVnemls
bGEucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYS5weQpAQCAt
MzU4LDE1ICszNTgsMjEgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICB1bmFzc2lnbmVk
X2VtYWlsID0gIndlYmtpdC11bmFzc2lnbmVkQGxpc3RzLndlYmtpdC5vcmciCiAKICAgICBkZWYg
YnVnX3VybF9mb3JfYnVnX2lkKHNlbGYsIGJ1Z19pZCwgeG1sPUZhbHNlKToKKyAgICAgICAgaWYg
bm90IGJ1Z19pZDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIGNvbnRlbnRfdHlw
ZSA9ICImY3R5cGU9eG1sIiBpZiB4bWwgZWxzZSAiIgogICAgICAgICByZXR1cm4gIiVzc2hvd19i
dWcuY2dpP2lkPSVzJXMiICUgKHNlbGYuYnVnX3NlcnZlcl91cmwsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVnX2lkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSkKIAogICAgIGRlZiBzaG9ydF9idWdf
dXJsX2Zvcl9idWdfaWQoc2VsZiwgYnVnX2lkKToKKyAgICAgICAgaWYgbm90IGJ1Z19pZDoKKyAg
ICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiAiaHR0cDovL3dlYmtpdC5vcmcv
Yi8lcyIgJSBidWdfaWQKIAogICAgIGRlZiBhdHRhY2htZW50X3VybF9mb3JfaWQoc2VsZiwgYXR0
YWNobWVudF9pZCwgYWN0aW9uPSJ2aWV3Iik6CisgICAgICAgIGlmIG5vdCBhdHRhY2htZW50X2lk
OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgYWN0aW9uX3BhcmFtID0gIiIKICAg
ICAgICAgaWYgYWN0aW9uIGFuZCBhY3Rpb24gIT0gInZpZXciOgogICAgICAgICAgICAgYWN0aW9u
X3BhcmFtID0gIiZhY3Rpb249JXMiICUgYWN0aW9uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9idWd6aWxsYV91bml0dGVzdC5weQppbmRleCBmOTQ3NzMwLi41MDk1MDMyIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhX3VuaXR0ZXN0
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVnemlsbGFfdW5pdHRlc3Qu
cHkKQEAgLTEwMCw2ICsxMDAsMTMgQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlKToKICAgICAgICAgJ2F0dGFjaGVyX2VtYWlsJyA6ICdjaHJpc3RpYW4ucGxlc25lci5oYW5z
ZW5AZ21haWwuY29tJywKICAgICB9CiAKKyAgICBkZWYgdGVzdF91cmxfY3JlYXRpb24oc2VsZik6
CisgICAgICAgICMgRklYTUU6IFRoZXNlIHdvdWxkIGJlIGFsbCBiZXR0ZXIgYXMgZG9jdGVzdHMK
KyAgICAgICAgYnVncyA9IEJ1Z3ppbGxhKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoTm9u
ZSwgYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKE5vbmUsIGJ1Z3Muc2hvcnRfYnVnX3VybF9mb3JfYnVnX2lkKE5vbmUpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhOb25lLCBidWdzLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChOb25lKSkK
KwogICAgIGRlZiB0ZXN0X3BhcnNlX2J1Z19pZChzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhl
c2Ugd291bGQgYmUgYWxsIGJldHRlciBhcyBkb2N0ZXN0cwogICAgICAgICBidWdzID0gQnVnemls
bGEoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWlsZGJvdC5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkKaW5kZXggOWM2MTc1
Ni4uYjRlMzYzYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWls
ZGJvdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5CkBA
IC01OCw3ICs1OCw3IEBAIGNsYXNzIEJ1aWxkZXIob2JqZWN0KToKICAgICAgICAgaWYgY2FjaGVk
X2J1aWxkOgogICAgICAgICAgICAgcmV0dXJuIGNhY2hlZF9idWlsZAogCi0gICAgICAgIGJ1aWxk
X2RpY3Rpb25hcnkgPSBzZWxmLl9idWlsZGJvdC5fZmV0Y2hfeG1scnBjX2J1aWxkX2RpY3Rpb25h
cnkoc2VsZi5fbmFtZSwgYnVpbGRfbnVtYmVyKQorICAgICAgICBidWlsZF9kaWN0aW9uYXJ5ID0g
c2VsZi5fYnVpbGRib3QuX2ZldGNoX3htbHJwY19idWlsZF9kaWN0aW9uYXJ5KHNlbGYsIGJ1aWxk
X251bWJlcikKICAgICAgICAgaWYgbm90IGJ1aWxkX2RpY3Rpb25hcnk6CiAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQogICAgICAgICBidWlsZCA9IEJ1aWxkKGJ1aWxkX2RpY3Rpb25hcnksIHNlbGYp
CkBAIC03NCw4ICs3NCwxMiBAQCBjbGFzcyBCdWlsZChvYmplY3QpOgogICAgICAgICBzZWxmLl9u
dW1iZXIgPSBpbnQoYnVpbGRfZGljdGlvbmFyeVsnbnVtYmVyJ10pCiAgICAgICAgIHNlbGYuX2lz
X2dyZWVuID0gKGJ1aWxkX2RpY3Rpb25hcnlbJ3Jlc3VsdHMnXSA9PSAwKSAjIFVuZG9jdW1lbnRl
ZCwgYnVpbGRib3QgWE1MUlBDCiAKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGJ1aWxkX3Vy
bChidWlsZGVyLCBidWlsZF9udW1iZXIpOgorICAgICAgICByZXR1cm4gIiVzL2J1aWxkcy8lcyIg
JSAoYnVpbGRlci51cmwoKSwgYnVpbGRfbnVtYmVyKQorCiAgICAgZGVmIHVybChzZWxmKToKLSAg
ICAgICAgcmV0dXJuICIlcy9idWlsZHMvJXMiICUgKHNlbGYuYnVpbGRlcigpLnVybCgpLCBzZWxm
Ll9udW1iZXIpCisgICAgICAgIHJldHVybiBzZWxmLmJ1aWxkX3VybChzZWxmLmJ1aWxkZXIoKSwg
c2VsZi5fbnVtYmVyKQogCiAgICAgZGVmIGJ1aWxkZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLl9idWlsZGVyCkBAIC0xNzIsMTQgKzE3NiwxNSBAQCBjbGFzcyBCdWlsZEJvdChvYmplY3Qp
OgogICAgICAgICByZXR1cm4gbm90IHNlbGYucmVkX2NvcmVfYnVpbGRlcnMoKQogCiAgICAgIyBG
SVhNRTogVGhlc2UgX2ZldGNoIG1ldGhvZHMgc2hvdWxkIG1vdmUgdG8gYSBuZXR3b3JraW5nIGNs
YXNzLgotICAgIGRlZiBfZmV0Y2hfeG1scnBjX2J1aWxkX2RpY3Rpb25hcnkoc2VsZiwgYnVpbGRl
cl9uYW1lLCBidWlsZF9udW1iZXIpOgorICAgIGRlZiBfZmV0Y2hfeG1scnBjX2J1aWxkX2RpY3Rp
b25hcnkoc2VsZiwgYnVpbGRlciwgYnVpbGRfbnVtYmVyKToKICAgICAgICAgIyBUaGUgYnVpbGRi
b3QgWE1MUlBDIEFQSSBpcyBzdXBlci1saW1pdGVkLgogICAgICAgICAjIEZvciBvbmUsIHlvdSBj
YW5ub3QgZmV0Y2ggaW5mbyBvbiBidWlsZHMgd2hpY2ggYXJlIGluY29tcGxldGUuCiAgICAgICAg
IHByb3h5ID0geG1scnBjbGliLlNlcnZlclByb3h5KCJodHRwOi8vJXMveG1scnBjIiAlIHNlbGYu
YnVpbGRib3RfaG9zdCkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHByb3h5Lmdl
dEJ1aWxkKGJ1aWxkZXJfbmFtZSwgaW50KGJ1aWxkX251bWJlcikpCisgICAgICAgICAgICByZXR1
cm4gcHJveHkuZ2V0QnVpbGQoYnVpbGRlci5uYW1lKCksIGludChidWlsZF9udW1iZXIpKQogICAg
ICAgICBleGNlcHQgeG1scnBjbGliLkZhdWx0LCBlcnI6Ci0gICAgICAgICAgICBsb2coIkVycm9y
IGZldGNoaW5nIGRhdGEgZm9yIGJ1aWxkICVzIiAlIGJ1aWxkX251bWJlcikKKyAgICAgICAgICAg
IGJ1aWxkX3VybCA9IEJ1aWxkLmJ1aWxkX3VybChidWlsZGVyLCBidWlsZF9udW1iZXIpCisgICAg
ICAgICAgICBsb2coIkVycm9yIGZldGNoaW5nIGRhdGEgZm9yICVzIGJ1aWxkICVzICglcykiICUg
KGJ1aWxkZXIubmFtZSgpLCBidWlsZF9udW1iZXIsIGJ1aWxkX3VybCkpCiAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQogCiAgICAgZGVmIF9mZXRjaF9vbmVfYm94X3Blcl9idWlsZGVyKHNlbGYpOgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzLnB5CmluZGV4IGViYzg5YzQu
LjU4MTNlNGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY2hhbmdl
bG9ncy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NoYW5nZWxvZ3MucHkK
QEAgLTI5LDkgKzI5LDExIEBACiAjIFdlYktpdCdzIFB5dGhvbiBtb2R1bGUgZm9yIHBhcnNpbmcg
YW5kIG1vZGlmeWluZyBDaGFuZ2VMb2cgZmlsZXMKIAogaW1wb3J0IGZpbGVpbnB1dCAjIGlucGxh
Y2UgZmlsZSBlZGl0aW5nIGZvciBzZXRfcmV2aWV3ZXJfaW5fY2hhbmdlbG9nCitpbXBvcnQgb3Mu
cGF0aAogaW1wb3J0IHJlCiBpbXBvcnQgdGV4dHdyYXAKIAorZnJvbSB3ZWJraXRweS53ZWJraXRf
bG9nZ2luZyBpbXBvcnQgbG9nCiAKIGRlZiB2aWV3X3NvdXJjZV91cmwocmV2aXNpb25fbnVtYmVy
KToKICAgICAjIEZJTVhFOiBUaGlzIGRvZXNuJ3QgcmVhbGx5IGJlbG9uZyBpbiB0aGlzIGZpbGUs
IGJ1dCB3ZSBkb24ndCBoYXZlIGEKQEAgLTM5LDQwICs0MSw3NiBAQCBkZWYgdmlld19zb3VyY2Vf
dXJsKHJldmlzaW9uX251bWJlcik6CiAgICAgIyBNYXliZSBldmVudHVhbGx5IGEgd2Via2l0X2Nv
bmZpZy5weT8KICAgICByZXR1cm4gImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LyVz
IiAlIHJldmlzaW9uX251bWJlcgogCisjIFVzZWQgYnkgU0NNLm1vZGlmaWVkX2NoYW5nZWxvZ3Mo
KQorZGVmIGlzX3BhdGhfdG9fY2hhbmdlbG9nKHBhdGgpOgorICAgIHJldHVybiBvcy5wYXRoLmJh
c2VuYW1lKHBhdGgpID09ICJDaGFuZ2VMb2ciCiAKLWNsYXNzIENoYW5nZUxvZzoKKworY2xhc3Mg
Q2hhbmdlTG9nRW50cnkob2JqZWN0KToKKyAgICAjIGUuZy4gMjAwOS0wNi0wMyAgRXJpYyBTZWlk
ZWwgIDxlcmljQHdlYmtpdC5vcmc+CisgICAgZGF0ZV9saW5lX3JlZ2V4cCA9IHInXig/UDxkYXRl
PlxkezR9LVxkezJ9LVxkezJ9KVxzKyg/UDxuYW1lPi4rPylccys8KD9QPGVtYWlsPltePD5dKyk+
JCcKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb250ZW50cyk6CisgICAgICAgIHNlbGYuX2Nv
bnRlbnRzID0gY29udGVudHMKKyAgICAgICAgc2VsZi5fcGFyc2VfZW50cnkoKQorCisgICAgZGVm
IF9wYXJzZV9lbnRyeShzZWxmKToKKyAgICAgICAgbWF0Y2ggPSByZS5tYXRjaChzZWxmLmRhdGVf
bGluZV9yZWdleHAsIHNlbGYuX2NvbnRlbnRzLCByZS5NVUxUSUxJTkUpCisgICAgICAgIGlmIG5v
dCBtYXRjaDoKKyAgICAgICAgICAgIGxvZygiV0FSTklORzogQ3JlYXRpbmcgaW52YWxpZCBDaGFu
Z2VMb2dFbnRyeTpcbiVzIiAlIGNvbnRlbnRzKQorCisgICAgICAgICMgRklYTUU6IGdyb3VwKCJu
YW1lIikgZG9lcyBub3Qgc2VlbSB0byBiZSBVbmljb2RlPyAgUHJvYmFibHkgZHVlIHRvIHNlbGYu
X2NvbnRlbnRzIG5vdCBiZWluZyB1bmljb2RlLgorICAgICAgICBzZWxmLl9hdXRob3JfbmFtZSA9
IG1hdGNoLmdyb3VwKCJuYW1lIikgaWYgbWF0Y2ggZWxzZSBOb25lCisgICAgICAgIHNlbGYuX2F1
dGhvcl9lbWFpbCA9IG1hdGNoLmdyb3VwKCJlbWFpbCIpIGlmIG1hdGNoIGVsc2UgTm9uZQorCisg
ICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKCJeXHMrUmV2aWV3ZWQgYnkgKD9QPHJldmlld2VyPi4q
PylbXC4sXT9ccyokIiwgc2VsZi5fY29udGVudHMsIHJlLk1VTFRJTElORSkgIyBEaXNjYXJkIGV2
ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IHBlcmlvZAorICAgICAgICBzZWxmLl9yZXZpZXdlcl90
ZXh0ID0gbWF0Y2guZ3JvdXAoInJldmlld2VyIikgaWYgbWF0Y2ggZWxzZSBOb25lCisKKyAgICBk
ZWYgYXV0aG9yX25hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hdXRob3JfbmFtZQor
CisgICAgZGVmIGF1dGhvcl9lbWFpbChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2F1dGhv
cl9lbWFpbAorCisgICAgIyBGSVhNRTogRXZlbnR1YWxseSB3ZSB3b3VsZCBsaWtlIHRvIG1hcCBy
ZXZpd2VyIG5hbWVzIHRvIHJldmlld2VyIG9iamVjdHMuCisgICAgIyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTMzCisgICAgZGVmIHJldmlld2VyX3RleHQo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9yZXZpZXdlcl90ZXh0CisKKyAgICBkZWYgY29u
dGVudHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jb250ZW50cworCisKKyMgRklYTUU6
IFZhcmlvdXMgbWV0aG9kcyBvbiBDaGFuZ2VMb2cgc2hvdWxkIG1vdmUgaW50byBDaGFuZ2VMb2dF
bnRyeSBpbnN0ZWFkLgorY2xhc3MgQ2hhbmdlTG9nKG9iamVjdCk6CiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgcGF0aCk6CiAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKIAogICAgIF9jaGFuZ2Vs
b2dfaW5kZW50ID0gIiAiICogOAogCi0gICAgIyBlLmcuIDIwMDktMDYtMDMgIEVyaWMgU2VpZGVs
ICA8ZXJpY0B3ZWJraXQub3JnPgotICAgIGRhdGVfbGluZV9yZWdleHAgPSByZS5jb21waWxlKCde
KFxkezR9LVxkezJ9LVxkezJ9KScgIyBDb25zdW1lIHRoZSBkYXRlLgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArICdccysoLispXHMrJyAjIENvbnN1bWUgdGhlIG5hbWUuCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJzwoW148Pl0rKT4kJykgIyBBbmQgdGhlIGVt
YWlsIGFkZHJlc3MuCi0KICAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9wYXJzZV9sYXRlc3Rf
ZW50cnlfZnJvbV9maWxlKGNoYW5nZWxvZ19maWxlKToKKyAgICBkZWYgcGFyc2VfbGF0ZXN0X2Vu
dHJ5X2Zyb21fZmlsZShjaGFuZ2Vsb2dfZmlsZSk6CisgICAgICAgIGRhdGVfbGluZV9yZWdleHAg
PSByZS5jb21waWxlKENoYW5nZUxvZ0VudHJ5LmRhdGVfbGluZV9yZWdleHApCiAgICAgICAgIGVu
dHJ5X2xpbmVzID0gW10KICAgICAgICAgIyBUaGUgZmlyc3QgbGluZSBzaG91bGQgYmUgYSBkYXRl
IGxpbmUuCiAgICAgICAgIGZpcnN0X2xpbmUgPSBjaGFuZ2Vsb2dfZmlsZS5yZWFkbGluZSgpCi0g
ICAgICAgIGlmIG5vdCBDaGFuZ2VMb2cuZGF0ZV9saW5lX3JlZ2V4cC5tYXRjaChmaXJzdF9saW5l
KToKKyAgICAgICAgaWYgbm90IGRhdGVfbGluZV9yZWdleHAubWF0Y2goZmlyc3RfbGluZSk6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBlbnRyeV9saW5lcy5hcHBlbmQoZmlyc3Rf
bGluZSkKIAogICAgICAgICBmb3IgbGluZSBpbiBjaGFuZ2Vsb2dfZmlsZToKICAgICAgICAgICAg
ICMgSWYgd2UndmUgaGl0IHRoZSBuZXh0IGVudHJ5LCByZXR1cm4uCi0gICAgICAgICAgICBpZiBD
aGFuZ2VMb2cuZGF0ZV9saW5lX3JlZ2V4cC5tYXRjaChsaW5lKToKKyAgICAgICAgICAgIGlmIGRh
dGVfbGluZV9yZWdleHAubWF0Y2gobGluZSk6CiAgICAgICAgICAgICAgICAgIyBSZW1vdmUgdGhl
IGV4dHJhIG5ld2xpbmUgYXQgdGhlIGVuZAotICAgICAgICAgICAgICAgIHJldHVybiAnJy5qb2lu
KGVudHJ5X2xpbmVzWzotMV0pCisgICAgICAgICAgICAgICAgcmV0dXJuIENoYW5nZUxvZ0VudHJ5
KCcnLmpvaW4oZW50cnlfbGluZXNbOi0xXSkpCiAgICAgICAgICAgICBlbnRyeV9saW5lcy5hcHBl
bmQobGluZSkKICAgICAgICAgcmV0dXJuIE5vbmUgIyBXZSBuZXZlciBmb3VuZCBhIGRhdGUgbGlu
ZSEKIAogICAgIGRlZiBsYXRlc3RfZW50cnkoc2VsZik6CiAgICAgICAgIGNoYW5nZWxvZ19maWxl
ID0gb3BlbihzZWxmLnBhdGgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxm
Ll9wYXJzZV9sYXRlc3RfZW50cnlfZnJvbV9maWxlKGNoYW5nZWxvZ19maWxlKQorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucGFyc2VfbGF0ZXN0X2VudHJ5X2Zyb21fZmlsZShjaGFuZ2Vsb2dfZmls
ZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGNoYW5nZWxvZ19maWxlLmNsb3NlKCkK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzX3Vu
aXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jaGFuZ2Vsb2dzX3VuaXR0
ZXN0LnB5CmluZGV4IGRlM2U2MGMuLjFjNTRiYTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY2hhbmdlbG9nc191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NoYW5nZWxvZ3NfdW5pdHRlc3QucHkKQEAgLTg3LDggKzg3LDExIEBA
IGNsYXNzIENoYW5nZUxvZ3NUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9s
YXRlc3RfZW50cnlfcGFyc2Uoc2VsZik6CiAgICAgICAgIGNoYW5nZWxvZ19jb250ZW50cyA9ICIl
c1xuJXMiICUgKHNlbGYuX2V4YW1wbGVfZW50cnksIHNlbGYuX2V4YW1wbGVfY2hhbmdlbG9nKQog
ICAgICAgICBjaGFuZ2Vsb2dfZmlsZSA9IFN0cmluZ0lPKGNoYW5nZWxvZ19jb250ZW50cykKLSAg
ICAgICAgbGF0ZXN0X2VudHJ5ID0gQ2hhbmdlTG9nLl9wYXJzZV9sYXRlc3RfZW50cnlfZnJvbV9m
aWxlKGNoYW5nZWxvZ19maWxlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLl9leGFt
cGxlX2VudHJ5LCBsYXRlc3RfZW50cnkpCisgICAgICAgIGxhdGVzdF9lbnRyeSA9IENoYW5nZUxv
Zy5wYXJzZV9sYXRlc3RfZW50cnlfZnJvbV9maWxlKGNoYW5nZWxvZ19maWxlKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhsYXRlc3RfZW50cnkuY29udGVudHMoKSwgc2VsZi5fZXhhbXBsZV9l
bnRyeSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGF0ZXN0X2VudHJ5LmF1dGhvcl9uYW1l
KCksICJQZXRlciBLYXN0aW5nIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGF0ZXN0X2Vu
dHJ5LmF1dGhvcl9lbWFpbCgpLCAicGthc3RpbmdAZ29vZ2xlLmNvbSIpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKGxhdGVzdF9lbnRyeS5yZXZpZXdlcl90ZXh0KCksICJTdGV2ZSBGYWxrZW5i
dXJnIikKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgX3dyaXRlX3RtcF9maWxlX3dpdGhf
Y29udGVudHMoY29udGVudHMpOgpAQCAtMTY5LDExICsxNzIsMTYgQEAgY2xhc3MgQ2hhbmdlTG9n
c1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjaGFuZ2Vsb2cudXBkYXRlX2Zvcl9y
ZXZlcnQoKmFyZ3MpCiAgICAgICAgIGFjdHVhbF9lbnRyeSA9IGNoYW5nZWxvZy5sYXRlc3RfZW50
cnkoKQogICAgICAgICBvcy5yZW1vdmUoY2hhbmdlbG9nX3BhdGgpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGFjdHVhbF9lbnRyeSwgZXhwZWN0ZWRfZW50cnkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKGFjdHVhbF9lbnRyeS5jb250ZW50cygpLCBleHBlY3RlZF9lbnRyeSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsX2VudHJ5LnJldmlld2VyX3RleHQoKSwgTm9uZSkK
KyAgICAgICAgIyBUaGVzZSBjaGVja3MgY291bGQgYmUgcmVtb3ZlZCB0byBhbGxvdyB0aGlzIHRv
IHdvcmsgb24gb3RoZXIgZW50cmllczoKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFs
X2VudHJ5LmF1dGhvcl9uYW1lKCksICJFcmljIFNlaWRlbCIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGFjdHVhbF9lbnRyeS5hdXRob3JfZW1haWwoKSwgImVyaWNAd2Via2l0Lm9yZyIpCiAK
ICAgICBkZWYgdGVzdF91cGRhdGVfZm9yX3JldmVydChzZWxmKToKICAgICAgICAgc2VsZi5fYXNz
ZXJ0X3VwZGF0ZV9mb3JfcmV2ZXJ0X291dHB1dChbMTIzNDUsICJSZWFzb24iXSwgc2VsZi5fcmV2
ZXJ0X2VudHJ5X3dpdGhvdXRfYnVnX3VybCkKICAgICAgICAgc2VsZi5fYXNzZXJ0X3VwZGF0ZV9m
b3JfcmV2ZXJ0X291dHB1dChbMTIzNDUsICJSZWFzb24iLCAiaHR0cDovL2V4YW1wbGUuY29tLzEy
MyJdLCBzZWxmLl9yZXZlcnRfZW50cnlfd2l0aF9idWdfdXJsKQogCisKIGlmIF9fbmFtZV9fID09
ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkKaW5kZXggMWNjNGE5Ni4uMGFhM2NkMyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWVyaWVz
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmllcy5w
eQpAQCAtMzAsOSArMzAsMTMgQEAKIAogCiBmcm9tIG9wdHBhcnNlIGltcG9ydCBtYWtlX29wdGlv
bgoraW1wb3J0IFN0cmluZ0lPCiAKIGZyb20gd2Via2l0cHkuYnVpbGRib3QgaW1wb3J0IEJ1aWxk
Qm90Citmcm9tIHdlYmtpdHB5LmJ1Z3ppbGxhIGltcG9ydCBwYXJzZV9idWdfaWQKK2Zyb20gd2Vi
a2l0cHkuY2hhbmdlbG9ncyBpbXBvcnQgQ2hhbmdlTG9nLCBpc19wYXRoX3RvX2NoYW5nZWxvZywg
dmlld19zb3VyY2VfdXJsCiBmcm9tIHdlYmtpdHB5LmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRl
ckxpc3QKK2Zyb20gd2Via2l0cHkuZ3JhbW1hciBpbXBvcnQgcGx1cmFsaXplCiBmcm9tIHdlYmtp
dHB5LndlYmtpdF9sb2dnaW5nIGltcG9ydCBsb2cKIGZyb20gd2Via2l0cHkubXVsdGljb21tYW5k
dG9vbCBpbXBvcnQgQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQKIApAQCAtMTEyLDYgKzExNiw3
IEBAIGFuZCBkaXNwbGF5ZXMgdGhlIHN0YXR1cyBvZiBlYWNoIGJ1aWxkZXIuIiIiCiAgICAgZGVm
IF9sb25nZXN0X2J1aWxkZXJfbmFtZShzZWxmLCBidWlsZGVycyk6CiAgICAgICAgIHJldHVybiBt
YXgobWFwKGxhbWJkYSBidWlsZGVyOiBsZW4oYnVpbGRlclsibmFtZSJdKSwgYnVpbGRlcnMpKQog
CisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgbW92ZSBvbnRvIGJ1aWxkYm90LkJ1aWxkZXIKICAg
ICBkZWYgX2ZpbmRfZ3JlZW5fdG9fcmVkX3RyYW5zaXRpb24oc2VsZiwgYnVpbGRlcl9zdGF0dXMs
IGxvb2tfYmFja19saW1pdD0zMCk6CiAgICAgICAgICMgd2FsayBiYWNrd2FyZHMgdW50aWwgd2Ug
ZmluZCBhIGdyZWVuIGJ1aWxkCiAgICAgICAgIGJ1aWxkZXIgPSBzZWxmLnRvb2wuYnVpbGRib3Qu
YnVpbGRlcl93aXRoX25hbWUoYnVpbGRlcl9zdGF0dXNbIm5hbWUiXSkKQEAgLTEzNSwxMiArMTQw
LDQyIEBAIGFuZCBkaXNwbGF5ZXMgdGhlIHN0YXR1cyBvZiBlYWNoIGJ1aWxkZXIuIiIiCiAgICAg
ZGVmIF9wcmludF9idWlsZGVyX2xpbmUoc2VsZiwgYnVpbGRlcl9uYW1lLCBtYXhfbmFtZV93aWR0
aCwgc3RhdHVzX21lc3NhZ2UpOgogICAgICAgICBwcmludCAiJXMgOiAlcyIgJSAoYnVpbGRlcl9u
YW1lLmxqdXN0KG1heF9uYW1lX3dpZHRoKSwgc3RhdHVzX21lc3NhZ2UpCiAKLSAgICBkZWYgX3By
aW50X3N0YXR1c19mb3JfYnVpbGRlcihzZWxmLCBidWlsZGVyX3N0YXR1cywgbmFtZV93aWR0aCk6
Ci0gICAgICAgICMgSWYgdGhlIGJ1aWxkZXIgaXMgZ3JlZW4sIHByaW50IE9LLCBleGl0LgotICAg
ICAgICBpZiBidWlsZGVyX3N0YXR1c1siaXNfZ3JlZW4iXToKLSAgICAgICAgICAgIHNlbGYuX3By
aW50X2J1aWxkZXJfbGluZShidWlsZGVyX3N0YXR1c1sibmFtZSJdLCBuYW1lX3dpZHRoLCAib2si
KQotICAgICAgICAgICAgcmV0dXJuCi0KKyAgICBkZWYgX2NoYW5nZWxvZ19lbnRyaWVzX2Zvcl9y
ZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CisgICAgICAgIGNoYW5nZWRfZmlsZXMgPSBzZWxmLnRv
b2wuc2NtKCkuY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24ocmV2aXNpb24pCisgICAgICAgIGNo
YW5nZWxvZ19wYXRocyA9IFtwYXRoIGZvciBwYXRoIGluIGNoYW5nZWRfZmlsZXMgaWYgaXNfcGF0
aF90b19jaGFuZ2Vsb2cocGF0aCldCisgICAgICAgIGNoYW5nZWxvZ19lbnRyaWVzID0gW10KKyAg
ICAgICAgZm9yIGNoYW5nZWxvZ19wYXRoIGluIGNoYW5nZWxvZ19wYXRoczoKKyAgICAgICAgICAg
IGNoYW5nZWxvZ19jb250ZW50cyA9IHNlbGYudG9vbC5zY20oKS5jb250ZW50c19hdF9yZXZpc2lv
bihjaGFuZ2Vsb2dfcGF0aCwgcmV2aXNpb24pCisgICAgICAgICAgICBjaGFuZ2Vsb2dfZmlsZSA9
IFN0cmluZ0lPLlN0cmluZ0lPKGNoYW5nZWxvZ19jb250ZW50cykKKyAgICAgICAgICAgIGNoYW5n
ZWxvZ19lbnRyeSA9IENoYW5nZUxvZy5wYXJzZV9sYXRlc3RfZW50cnlfZnJvbV9maWxlKGNoYW5n
ZWxvZ19maWxlKQorICAgICAgICAgICAgY2hhbmdlbG9nX2VudHJpZXMuYXBwZW5kKGNoYW5nZWxv
Z19lbnRyeSkKKyAgICAgICAgcmV0dXJuIGNoYW5nZWxvZ19lbnRyaWVzCisKKyAgICBkZWYgX2Nv
bW1pdF9pbmZvX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CisgICAgICAgIGNvbW1pdHRl
cl9lbWFpbCA9IHNlbGYudG9vbC5zY20oKS5jb21taXR0ZXJfZW1haWxfZm9yX3JldmlzaW9uKHJl
dmlzaW9uKQorICAgICAgICBjaGFuZ2Vsb2dfZW50cmllcyA9IHNlbGYuX2NoYW5nZWxvZ19lbnRy
aWVzX2Zvcl9yZXZpc2lvbihyZXZpc2lvbikKKyAgICAgICAgIyBBc3N1bWUgZm9yIG5vdyB0aGF0
IHRoZSBmaXJzdCBlbnRyeSBoYXMgZXZlcnl0aGluZyB3ZSBuZWVkOgorICAgICAgICBjaGFuZ2Vs
b2dfZW50cnkgPSBjaGFuZ2Vsb2dfZW50cmllc1swXQorICAgICAgICAjIEZJWE1FOiBUaGUgY29t
bWl0IGluZm8gZGljdGlvbmFyeSBoZXJlIHNob3VsZCBwcm9iYWJseSBiZSBpdHMgb3duIGNsYXNz
PworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgImJ1Z19pZCIgOiBwYXJzZV9idWdfaWQo
Y2hhbmdlbG9nX2VudHJ5LmNvbnRlbnRzKCkpLAorICAgICAgICAgICAgInJldmlzaW9uIiA6IHJl
dmlzaW9uLAorICAgICAgICAgICAgImF1dGhvcl9uYW1lIiA6IGNoYW5nZWxvZ19lbnRyeS5hdXRo
b3JfbmFtZSgpLAorICAgICAgICAgICAgImF1dGhvcl9lbWFpbCIgOiBjaGFuZ2Vsb2dfZW50cnku
YXV0aG9yX2VtYWlsKCksCisgICAgICAgICAgICAicmV2aWV3ZXJfdGV4dCIgOiBjaGFuZ2Vsb2df
ZW50cnkucmV2aWV3ZXJfdGV4dCgpLCAjIEZJWE1FOiBFdmVudHVhbHkgd2Ugc2hvdWxkIHJldHVy
biBhbiBvYmplY3QgaGVyZS4KKyAgICAgICAgICAgICJjb21taXR0ZXJfZW1haWwiIDogY29tbWl0
dGVyX2VtYWlsLAorICAgICAgICAgICAgImNvbW1pdHRlciIgOiBDb21taXR0ZXJMaXN0KCkuY29t
bWl0dGVyX2J5X2VtYWlsKGNvbW1pdHRlcl9lbWFpbCkgaWYgY29tbWl0dGVyX2VtYWlsIGVsc2Ug
Tm9uZQorICAgICAgICB9CisKKyAgICBkZWYgX3ByaW50X2JsYW1lX2luZm9ybWF0aW9uX2Zvcl9j
b21taXQoc2VsZiwgY29tbWl0X2luZm8pOgorICAgICAgICBwcmludCAiciVzOiIgJSBjb21taXRf
aW5mb1sicmV2aXNpb24iXQorICAgICAgICBwcmludCAiICAlcyIgJSB2aWV3X3NvdXJjZV91cmwo
Y29tbWl0X2luZm9bInJldmlzaW9uIl0pCisgICAgICAgIHByaW50ICIgIEJ1ZzogJXMgKCVzKSIg
JSAoY29tbWl0X2luZm9bImJ1Z19pZCJdLCBzZWxmLnRvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdf
aWQoY29tbWl0X2luZm9bImJ1Z19pZCJdKSkKKyAgICAgICAgcHJpbnQgIiAgQXV0aG9yOiAlcyA8
JXM+IiAlIChjb21taXRfaW5mb1siYXV0aG9yX25hbWUiXSwgY29tbWl0X2luZm9bImF1dGhvcl9l
bWFpbCJdKQorICAgICAgICBwcmludCAiICBSZXZpZXdlcjogJXMiICUgY29tbWl0X2luZm9bInJl
dmlld2VyX3RleHQiXQorICAgICAgICBwcmludCAiICBDb21taXR0ZXI6ICVzIiAlIGNvbW1pdF9p
bmZvWyJjb21taXR0ZXIiXQorCisgICAgZGVmIF9wcmludF9ibGFtZV9pbmZvcm1hdGlvbl9mb3Jf
YnVpbGRlcihzZWxmLCBidWlsZGVyX3N0YXR1cywgbmFtZV93aWR0aCk6CiAgICAgICAgIChsYXN0
X2dyZWVuX2J1aWxkLCBmaXJzdF9yZWRfYnVpbGQpID0gc2VsZi5fZmluZF9ncmVlbl90b19yZWRf
dHJhbnNpdGlvbihidWlsZGVyX3N0YXR1cykKICAgICAgICAgaWYgbm90IGxhc3RfZ3JlZW5fYnVp
bGQ6CiAgICAgICAgICAgICBzZWxmLl9wcmludF9idWlsZGVyX2xpbmUoYnVpbGRlcl9zdGF0dXNb
Im5hbWUiXSwgbmFtZV93aWR0aCwgIkZBSUwgKGJsYW1lLWxpc3Q6IHNvbWV0aW1lIGJlZm9yZSAl
cz8pIiAlIGZpcnN0X3JlZF9idWlsZC5yZXZpc2lvbigpKQpAQCAtMTUwLDEyICsxODUsMjQgQEAg
YW5kIGRpc3BsYXllcyB0aGUgc3RhdHVzIG9mIGVhY2ggYnVpbGRlci4iIiIKICAgICAgICAgc3Vz
cGVjdF9yZXZpc2lvbnMucmV2ZXJzZSgpCiAgICAgICAgICMgRklYTUU6IFBhcnNlIHJldmlld2Vy
IGFuZCBjb21taXR0ZXIgZnJvbSByZWQgY2hlY2tpbgogICAgICAgICBzZWxmLl9wcmludF9idWls
ZGVyX2xpbmUoYnVpbGRlcl9zdGF0dXNbIm5hbWUiXSwgbmFtZV93aWR0aCwgIkZBSUwgKGJsYW1l
LWxpc3Q6ICVzKSIgJSBzdXNwZWN0X3JldmlzaW9ucykKKyAgICAgICAgZm9yIHJldmlzaW9uIGlu
IHN1c3BlY3RfcmV2aXNpb25zOgorICAgICAgICAgICAgY29tbWl0X2luZm8gPSBzZWxmLl9jb21t
aXRfaW5mb19mb3JfcmV2aXNpb24ocmV2aXNpb24pCisgICAgICAgICAgICBzZWxmLl9wcmludF9i
bGFtZV9pbmZvcm1hdGlvbl9mb3JfY29tbWl0KGNvbW1pdF9pbmZvKQogCiAgICAgZGVmIGV4ZWN1
dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIGJ1aWxkZXJzID0gdG9vbC5i
dWlsZGJvdC5idWlsZGVyX3N0YXR1c2VzKCkKLSAgICAgICAgbG9uZ2VzdF9idWlsZGVyX25hbWUg
PSBzZWxmLl9sb25nZXN0X2J1aWxkZXJfbmFtZShidWlsZGVycykKLSAgICAgICAgZm9yIGJ1aWxk
ZXIgaW4gYnVpbGRlcnM6Ci0gICAgICAgICAgICBzZWxmLl9wcmludF9zdGF0dXNfZm9yX2J1aWxk
ZXIoYnVpbGRlciwgbmFtZV93aWR0aD1sb25nZXN0X2J1aWxkZXJfbmFtZSkKKyAgICAgICAgYnVp
bGRlcl9zdGF0dXNlcyA9IHRvb2wuYnVpbGRib3QuYnVpbGRlcl9zdGF0dXNlcygpCisgICAgICAg
IGxvbmdlc3RfYnVpbGRlcl9uYW1lID0gc2VsZi5fbG9uZ2VzdF9idWlsZGVyX25hbWUoYnVpbGRl
cl9zdGF0dXNlcykKKyAgICAgICAgZmFpbGluZ19idWlsZGVycyA9IDAKKyAgICAgICAgZm9yIGJ1
aWxkZXJfc3RhdHVzIGluIGJ1aWxkZXJfc3RhdHVzZXM6CisgICAgICAgICAgICAjIElmIHRoZSBi
dWlsZGVyIGlzIGdyZWVuLCBwcmludCBPSywgZXhpdC4KKyAgICAgICAgICAgIGlmIGJ1aWxkZXJf
c3RhdHVzWyJpc19ncmVlbiJdOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAg
ICBzZWxmLl9wcmludF9ibGFtZV9pbmZvcm1hdGlvbl9mb3JfYnVpbGRlcihidWlsZGVyX3N0YXR1
cywgbmFtZV93aWR0aD1sb25nZXN0X2J1aWxkZXJfbmFtZSkKKyAgICAgICAgICAgIGZhaWxpbmdf
YnVpbGRlcnMgKz0gMQorICAgICAgICBpZiBmYWlsaW5nX2J1aWxkZXJzOgorICAgICAgICAgICAg
cHJpbnQgIiVzIG9mICVzIGFyZSBmYWlsaW5nIiAlIChmYWlsaW5nX2J1aWxkZXJzLCBwbHVyYWxp
emUoImJ1aWxkZXIiLCBsZW4oYnVpbGRlcl9zdGF0dXNlcykpKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcHJpbnQgIkFsbCBidWlsZGVycyBhcmUgcGFzc2luZyEiCiAKIAogY2xhc3MgVHJl
ZVN0YXR1cyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CmluZGV4
IDY1NzkxNzYuLjE3Yjk1YmEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CkBAIC0zMyw3ICszMyw3IEBAIGZy
b20gd2Via2l0cHkuY29tbWFuZHNfcmVmZXJlbmNlcyBpbXBvcnQgTW9jawogZnJvbSB3ZWJraXRw
eS5jb21tYW5kcy5jb21tYW5kdGVzdCBpbXBvcnQgQ29tbWFuZHNUZXN0CiBmcm9tIHdlYmtpdHB5
LmNvbW1hbmRzLnF1ZXVlcyBpbXBvcnQgKgogZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWV1ZXN0
ZXN0IGltcG9ydCBRdWV1ZXNUZXN0Ci1mcm9tIHdlYmtpdHB5Lm1vY2tfYnVnemlsbGF0b29sIGlt
cG9ydCBNb2NrQnVnemlsbGFUb29sCitmcm9tIHdlYmtpdHB5Lm1vY2tfYnVnemlsbGF0b29sIGlt
cG9ydCBNb2NrQnVnemlsbGFUb29sLCBNb2NrU0NNCiBmcm9tIHdlYmtpdHB5Lm91dHB1dGNhcHR1
cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIAogCkBAIC0xMDIsNyArMTAyLDcgQEAgY2xhc3MgQWJz
dHJhY3RSZXZpZXdRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToKIGNsYXNzIENvbW1pdFF1ZXVlVGVz
dChRdWV1ZXNUZXN0KToKICAgICBkZWYgdGVzdF9jb21taXRfcXVldWUoc2VsZik6CiAgICAgICAg
IGV4cGVjdGVkX3N0ZGVyciA9IHsKLSAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIiA6ICJD
QVVUSU9OOiBjb21taXQtcXVldWUgd2lsbCBkaXNjYXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluIFwi
JXNcIlxuUnVubmluZyBXZWJLaXQgY29tbWl0LXF1ZXVlLlxuIiAlIG9zLmdldGN3ZCgpLAorICAg
ICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiIDogIkNBVVRJT046IGNvbW1pdC1xdWV1ZSB3aWxs
IGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIlc1wiXG5SdW5uaW5nIFdlYktpdCBjb21t
aXQtcXVldWUuXG4iICUgTW9ja1NDTS5mYWtlX2NoZWNrb3V0X3Jvb3QsCiAgICAgICAgICAgICAj
IEZJWE1FOiBUaGUgY29tbWl0LXF1ZXVlIHdhcm5zIGFib3V0IGJhZCBjb21taXR0ZXJzIHR3aWNl
LiAgVGhpcyBpcyBkdWUgdG8gdGhlIGZhY3QgdGhhdCB3ZSBhY2Nlc3MgQXR0YWNobWVudC5yZXZp
ZXdlcigpIHR3aWNlIGFuZCBpdCBsb2dzIGVhY2ggdGltZS4KICAgICAgICAgICAgICJuZXh0X3dv
cmtfaXRlbSIgOiAiIiJXYXJuaW5nLCBhdHRhY2htZW50IDEyOCBvbiBidWcgNDIgaGFzIGludmFs
aWQgY29tbWl0dGVyIChub24tY29tbWl0dGVyQGV4YW1wbGUuY29tKQogV2FybmluZywgYXR0YWNo
bWVudCAxMjggb24gYnVnIDQyIGhhcyBpbnZhbGlkIGNvbW1pdHRlciAobm9uLWNvbW1pdHRlckBl
eGFtcGxlLmNvbSkKQEAgLTExNSw3ICsxMTUsNyBAQCBXYXJuaW5nLCBhdHRhY2htZW50IDEyOCBv
biBidWcgNDIgaGFzIGludmFsaWQgY29tbWl0dGVyIChub24tY29tbWl0dGVyQGV4YW1wbGUuYwog
ICAgICAgICB0b29sID0gTW9ja0J1Z3ppbGxhVG9vbCgpCiAgICAgICAgIHRvb2wuYnVpbGRib3Qu
bGlnaHRfdHJlZV9vbl9maXJlKCkKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gewotICAgICAg
ICAgICAgImJlZ2luX3dvcmtfcXVldWUiIDogIkNBVVRJT046IGNvbW1pdC1xdWV1ZSB3aWxsIGRp
c2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIlc1wiXG5SdW5uaW5nIFdlYktpdCBjb21taXQt
cXVldWUuXG4iICUgb3MuZ2V0Y3dkKCksCisgICAgICAgICAgICAiYmVnaW5fd29ya19xdWV1ZSIg
OiAiQ0FVVElPTjogY29tbWl0LXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBp
biBcIiVzXCJcblJ1bm5pbmcgV2ViS2l0IGNvbW1pdC1xdWV1ZS5cbiIgJSBNb2NrU0NNLmZha2Vf
Y2hlY2tvdXRfcm9vdCwKICAgICAgICAgICAgICMgRklYTUU6IFRoZSBjb21taXQtcXVldWUgd2Fy
bnMgYWJvdXQgYmFkIGNvbW1pdHRlcnMgdHdpY2UuICBUaGlzIGlzIGR1ZSB0byB0aGUgZmFjdCB0
aGF0IHdlIGFjY2VzcyBBdHRhY2htZW50LnJldmlld2VyKCkgdHdpY2UgYW5kIGl0IGxvZ3MgZWFj
aCB0aW1lLgogICAgICAgICAgICAgIm5leHRfd29ya19pdGVtIiA6ICIiIldhcm5pbmcsIGF0dGFj
aG1lbnQgMTI4IG9uIGJ1ZyA0MiBoYXMgaW52YWxpZCBjb21taXR0ZXIgKG5vbi1jb21taXR0ZXJA
ZXhhbXBsZS5jb20pCiBXYXJuaW5nLCBhdHRhY2htZW50IDEyOCBvbiBidWcgNDIgaGFzIGludmFs
aWQgY29tbWl0dGVyIChub24tY29tbWl0dGVyQGV4YW1wbGUuY29tKQpAQCAtMTI4LDcgKzEyOCw3
IEBAIFdhcm5pbmcsIGF0dGFjaG1lbnQgMTI4IG9uIGJ1ZyA0MiBoYXMgaW52YWxpZCBjb21taXR0
ZXIgKG5vbi1jb21taXR0ZXJAZXhhbXBsZS5jCiBjbGFzcyBTdHlsZVF1ZXVlVGVzdChRdWV1ZXNU
ZXN0KToKICAgICBkZWYgdGVzdF9zdHlsZV9xdWV1ZShzZWxmKToKICAgICAgICAgZXhwZWN0ZWRf
c3RkZXJyID0gewotICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiIDogIkNBVVRJT046IHN0
eWxlLXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBpbiBcIiVzXCJcblJ1bm5p
bmcgV2ViS2l0IHN0eWxlLXF1ZXVlLlxuIiAlIG9zLmdldGN3ZCgpLAorICAgICAgICAgICAgImJl
Z2luX3dvcmtfcXVldWUiIDogIkNBVVRJT046IHN0eWxlLXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwg
bG9jYWwgY2hhbmdlcyBpbiBcIiVzXCJcblJ1bm5pbmcgV2ViS2l0IHN0eWxlLXF1ZXVlLlxuIiAl
IE1vY2tTQ00uZmFrZV9jaGVja291dF9yb290LAogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVj
dGVkX2Vycm9yIiA6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCiAgICAgICAgIH0KICAgICAgICAg
c2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhTdHlsZVF1ZXVlKCksIGV4cGVjdGVkX3N0ZGVycj1l
eHBlY3RlZF9zdGRlcnIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L21vY2tfYnVnemlsbGF0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2Nr
X2J1Z3ppbGxhdG9vbC5weQppbmRleCBkNjVlMTY3Li5lNjQ4YWU5IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKQEAgLTI5NSw5ICsy
OTUsMTQgQEAgY2xhc3MgTW9ja0J1aWxkQm90KE1vY2spOgogCiBjbGFzcyBNb2NrU0NNKE1vY2sp
OgogCisgICAgZmFrZV9jaGVja291dF9yb290ID0gb3MucGF0aC5yZWFscGF0aCgiL3RtcCIpICMg
cmVhbHBhdGggaXMgbmVlZGVkIHRvIGFsbG93IGZvciBNYWMgT1MgWCdzIC9wcml2YXRlL3RtcAor
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBNb2NrLl9faW5pdF9fKHNlbGYpCi0g
ICAgICAgIHNlbGYuY2hlY2tvdXRfcm9vdCA9IG9zLmdldGN3ZCgpCisgICAgICAgICMgRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSB1c2UgcmVhbCBjaGVja291dC1yb290IGRldGVjdGlvbiBsb2dp
YyBoZXJlLgorICAgICAgICAjIG9zLmdldGN3ZCgpIGNhbid0IHdvcmsgaGVyZSBiZWNhdXNlIG90
aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGFzc3VtZSB0aGF0ICJjaGVja291dF9yb290IgorICAgICAg
ICAjIHdpbGwgYWN0dWFsbHkgYmUgdGhlIHJvb3QuICBTaW5jZSBnZXRjd2QoKSBpcyB3cm9uZywg
dXNlIGEgZ2xvYmFsbHkgZmFrZSByb290IGZvciBub3cuCisgICAgICAgIHNlbGYuY2hlY2tvdXRf
cm9vdCA9IHNlbGYuZmFrZV9jaGVja291dF9yb290CiAKICAgICBkZWYgY3JlYXRlX3BhdGNoKHNl
bGYpOgogICAgICAgICByZXR1cm4gIlBhdGNoMSIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcGF0Y2gvcGF0Y2hlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcGF0Y2gvcGF0Y2hlci5weQppbmRleCA5NzQ5Y2QzLi5iMjg5ZjYxIDEwMDc1NQotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BhdGNoL3BhdGNoZXIucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wYXRjaC9wYXRjaGVyLnB5CkBAIC03MiwxMiArNzIs
MTEgQEAgY2xhc3MgV2ViS2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCk6CiAKICAgICAgICAgaWYg
bm90IHNlbGYuX3NjbToKICAgICAgICAgICAgIHNjcmlwdF9kaXJlY3RvcnkgPSBvcy5wYXRoLmFi
c3BhdGgoc3lzLnBhdGhbMF0pCi0gICAgICAgICAgICB3ZWJraXRfZGlyZWN0b3J5ID0gb3MucGF0
aC5hYnNwYXRoKG9zLnBhdGguam9pbihzY3JpcHRfZGlyZWN0b3J5LCAiLi4vLi4iKSkKLSAgICAg
ICAgICAgIHNlbGYuX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKHdlYmtpdF9kaXJlY3RvcnkpCisg
ICAgICAgICAgICBzZWxmLl9zY20gPSBkZXRlY3Rfc2NtX3N5c3RlbShzY3JpcHRfZGlyZWN0b3J5
KQogICAgICAgICAgICAgaWYgc2VsZi5fc2NtOgotICAgICAgICAgICAgICAgIGxvZygiVGhlIGN1
cnJlbnQgZGlyZWN0b3J5ICglcykgaXMgbm90IGEgV2ViS2l0IGNoZWNrb3V0LCB1c2luZyAlcyIg
JSAob3JpZ2luYWxfY3dkLCB3ZWJraXRfZGlyZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBsb2co
IlRoZSBjdXJyZW50IGRpcmVjdG9yeSAoJXMpIGlzIG5vdCBhIFdlYktpdCBjaGVja291dCwgdXNp
bmcgJXMiICUgKG9yaWdpbmFsX2N3ZCwgc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3QpKQogICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBlcnJvcigiRkFUQUw6IEZhaWxlZCB0byBkZXRl
cm1pbmUgdGhlIFNDTSBzeXN0ZW0gZm9yIGVpdGhlciAlcyBvciAlcyIgJSAob3JpZ2luYWxfY3dk
LCB3ZWJraXRfZGlyZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBlcnJvcigiRkFUQUw6IEZhaWxl
ZCB0byBkZXRlcm1pbmUgdGhlIFNDTSBzeXN0ZW0gZm9yIGVpdGhlciAlcyBvciAlcyIgJSAob3Jp
Z2luYWxfY3dkLCBzY3JpcHRfZGlyZWN0b3J5KSkKIAogICAgICAgICByZXR1cm4gc2VsZi5fc2Nt
CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc2NtLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zY20ucHkKaW5kZXggODZlYjBhZC4uZTZmYTAxYSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zY20ucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zY20ucHkKQEAgLTM0LDcgKzM0LDcgQEAgaW1wb3J0
IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogCiAjIEltcG9ydCBXZWJLaXQtc3BlY2lmaWMgbW9kdWxl
cy4KLWZyb20gd2Via2l0cHkuY2hhbmdlbG9ncyBpbXBvcnQgQ2hhbmdlTG9nCitmcm9tIHdlYmtp
dHB5LmNoYW5nZWxvZ3MgaW1wb3J0IENoYW5nZUxvZywgaXNfcGF0aF90b19jaGFuZ2Vsb2cKIGZy
b20gd2Via2l0cHkuZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUsIHJ1bl9jb21tYW5kLCBTY3Jp
cHRFcnJvcgogZnJvbSB3ZWJraXRweS51c2VyIGltcG9ydCBVc2VyCiBmcm9tIHdlYmtpdHB5Lndl
YmtpdF9sb2dnaW5nIGltcG9ydCBlcnJvciwgbG9nCkBAIC0xNTcsMTIgKzE1Nyw3IEBAIGNsYXNz
IFNDTToKIAogICAgICMgQ2hhbmdlTG9nLXNwZWNpZmljIGNvZGUgZG9lc24ndCByZWFsbHkgYmVs
b25nIGluIHNjbS5weSwgYnV0IHRoaXMgZnVuY3Rpb24gaXMgdmVyeSB1c2VmdWwuCiAgICAgZGVm
IG1vZGlmaWVkX2NoYW5nZWxvZ3Moc2VsZik6Ci0gICAgICAgIGNoYW5nZWxvZ19wYXRocyA9IFtd
Ci0gICAgICAgIHBhdGhzID0gc2VsZi5jaGFuZ2VkX2ZpbGVzKCkKLSAgICAgICAgZm9yIHBhdGgg
aW4gcGF0aHM6Ci0gICAgICAgICAgICBpZiBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpID09ICJDaGFu
Z2VMb2ciOgotICAgICAgICAgICAgICAgIGNoYW5nZWxvZ19wYXRocy5hcHBlbmQocGF0aCkKLSAg
ICAgICAgcmV0dXJuIGNoYW5nZWxvZ19wYXRocworICAgICAgICByZXR1cm4gW3BhdGggZm9yIHBh
dGggaW4gc2VsZi5jaGFuZ2VkX2ZpbGVzKCkgaWYgaXNfcGF0aF90b19jaGFuZ2Vsb2cocGF0aCld
CiAKICAgICAjIEZJWE1FOiBSZXF1aXJlcyB1bml0IHRlc3QKICAgICAjIEZJWE1FOiBjb21taXRf
bWVzc2FnZV9mb3JfdGhpc19jb21taXQgYW5kIG1vZGlmaWVkX2NoYW5nZWxvZ3MgZG9uJ3QKQEAg
LTE4MSw3ICsxNzYsNyBAQCBjbGFzcyBTQ006CiAgICAgICAgICAgICBjaGFuZ2Vsb2dfZW50cnkg
PSBDaGFuZ2VMb2coY2hhbmdlbG9nX3BhdGgpLmxhdGVzdF9lbnRyeSgpCiAgICAgICAgICAgICBp
ZiBub3QgY2hhbmdlbG9nX2VudHJ5OgogICAgICAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9y
KG1lc3NhZ2U9IkZhaWxlZCB0byBwYXJzZSBDaGFuZ2VMb2c6ICIgKyBvcy5wYXRoLmFic3BhdGgo
Y2hhbmdlbG9nX3BhdGgpKQotICAgICAgICAgICAgY2hhbmdlbG9nX21lc3NhZ2VzLmFwcGVuZChj
aGFuZ2Vsb2dfZW50cnkpCisgICAgICAgICAgICBjaGFuZ2Vsb2dfbWVzc2FnZXMuYXBwZW5kKGNo
YW5nZWxvZ19lbnRyeS5jb250ZW50cygpKQogCiAgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBz
b3J0IGFuZCBsYWJlbCB0aGUgQ2hhbmdlTG9nIG1lc3NhZ2VzIGxpa2UgY29tbWl0LWxvZy1lZGl0
b3IgZG9lcy4KICAgICAgICAgcmV0dXJuIENvbW1pdE1lc3NhZ2UoIiIuam9pbihjaGFuZ2Vsb2df
bWVzc2FnZXMpLnNwbGl0bGluZXMoKSkKQEAgLTIxMCw2ICsyMDUsOSBAQCBjbGFzcyBTQ006CiAg
ICAgZGVmIGNoYW5nZWRfZmlsZXMoc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgogCisgICAgZGVmIGNoYW5nZWRfZmls
ZXNfZm9yX3JldmlzaW9uKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
LCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKKwogICAgIGRlZiBjb25mbGljdGVkX2ZpbGVz
KHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBt
dXN0IGltcGxlbWVudCIKIApAQCAtMjE5LDYgKzIxNywxMiBAQCBjbGFzcyBTQ006CiAgICAgZGVm
IGNyZWF0ZV9wYXRjaChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwg
InN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCiAKKyAgICBkZWYgY29tbWl0dGVyX2VtYWlsX2Zv
cl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IsICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgorCisgICAgZGVmIGNvbnRlbnRzX2F0
X3JldmlzaW9uKHNlbGYsIHBhdGgsIHJldmlzaW9uKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCisKICAgICBkZWYgZGlmZl9m
b3JfcmV2aXNpb24oc2VsZiwgcmV2aXNpb24pOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKIApAQCAtMjI4LDcgKzIzMiw3IEBA
IGNsYXNzIFNDTToKICAgICBkZWYgcmV2ZXJ0X2ZpbGVzKHNlbGYsIGZpbGVfcGF0aHMpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVu
dCIKIAotICAgIGRlZiBjb21taXRfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgorICAgIGRl
ZiBjb21taXRfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIHVzZXJuYW1lPU5vbmUpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxlbWVu
dCIKIAogICAgIGRlZiBzdm5fY29tbWl0X2xvZyhzZWxmLCBzdm5fcmV2aXNpb24pOgpAQCAtMzMw
LDE5ICszMzQsMjAgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgZGVmIHN0YXR1c19jb21tYW5kKHNl
bGYpOgogICAgICAgICByZXR1cm4gWydzdm4nLCAnc3RhdHVzJ10KIAorICAgIGRlZiBfc3RhdHVz
X3JlZ2V4cChzZWxmLCBleHBlY3RlZF90eXBlcyk6CisgICAgICAgIGZpZWxkX2NvdW50ID0gNiBp
ZiBzZWxmLnN2bl92ZXJzaW9uKCkgPiAiMS42IiBlbHNlIDUKKyAgICAgICAgcmV0dXJuICJeKD9Q
PHN0YXR1cz5bJXNdKS57JXN9ICg/UDxmaWxlbmFtZT4uKykkIiAlIChleHBlY3RlZF90eXBlcywg
ZmllbGRfY291bnQpCisKICAgICBkZWYgY2hhbmdlZF9maWxlcyhzZWxmKToKLSAgICAgICAgaWYg
c2VsZi5zdm5fdmVyc2lvbigpID4gIjEuNiI6Ci0gICAgICAgICAgICBzdGF0dXNfcmVnZXhwID0g
Il4oP1A8c3RhdHVzPltBQ0RNUl0pLns2fSAoP1A8ZmlsZW5hbWU+LispJCIKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHN0YXR1c19yZWdleHAgPSAiXig/UDxzdGF0dXM+W0FDRE1SXSkuezV9
ICg/UDxmaWxlbmFtZT4uKykkIgotICAgICAgICByZXR1cm4gc2VsZi5ydW5fc3RhdHVzX2FuZF9l
eHRyYWN0X2ZpbGVuYW1lcyhzZWxmLnN0YXR1c19jb21tYW5kKCksIHN0YXR1c19yZWdleHApCisg
ICAgICAgIHJldHVybiBzZWxmLnJ1bl9zdGF0dXNfYW5kX2V4dHJhY3RfZmlsZW5hbWVzKHNlbGYu
c3RhdHVzX2NvbW1hbmQoKSwgc2VsZi5fc3RhdHVzX3JlZ2V4cCgiQUNETVIiKSkKKworICAgIGRl
ZiBjaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CisgICAgICAgICMg
QXMgZmFyIGFzIEkgY2FuIHRlbGwgc3ZuIGRpZmYgLS1zdW1tYXJpemUgb3V0cHV0IGxvb2tzIGp1
c3QgbGlrZSBzdm4gc3RhdHVzIG91dHB1dC4KKyAgICAgICAgc3RhdHVzX2NvbW1hbmQgPSBbInN2
biIsICJkaWZmIiwgIi0tc3VtbWFyaXplIiwgIi1jIiwgc3RyKHJldmlzaW9uKV0KKyAgICAgICAg
cmV0dXJuIHNlbGYucnVuX3N0YXR1c19hbmRfZXh0cmFjdF9maWxlbmFtZXMoc3RhdHVzX2NvbW1h
bmQsIHNlbGYuX3N0YXR1c19yZWdleHAoIkFDRE1SIikpCiAKICAgICBkZWYgY29uZmxpY3RlZF9m
aWxlcyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5zdm5fdmVyc2lvbigpID4gIjEuNiI6Ci0gICAg
ICAgICAgICBzdGF0dXNfcmVnZXhwID0gIl4oP1A8c3RhdHVzPltDXSkuezZ9ICg/UDxmaWxlbmFt
ZT4uKykkIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3RhdHVzX3JlZ2V4cCA9ICJeKD9Q
PHN0YXR1cz5bQ10pLns1fSAoP1A8ZmlsZW5hbWU+LispJCIKLSAgICAgICAgcmV0dXJuIHNlbGYu
cnVuX3N0YXR1c19hbmRfZXh0cmFjdF9maWxlbmFtZXMoc2VsZi5zdGF0dXNfY29tbWFuZCgpLCBz
dGF0dXNfcmVnZXhwKQorICAgICAgICByZXR1cm4gc2VsZi5ydW5fc3RhdHVzX2FuZF9leHRyYWN0
X2ZpbGVuYW1lcyhzZWxmLnN0YXR1c19jb21tYW5kKCksIHNlbGYuX3N0YXR1c19yZWdleHAoIkMi
KSkKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgc3VwcG9ydHNfbG9jYWxfY29tbWl0cygp
OgpAQCAtMzU0LDYgKzM1OSwxMyBAQCBjbGFzcyBTVk4oU0NNKToKICAgICBkZWYgY3JlYXRlX3Bh
dGNoKHNlbGYpOgogICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoc2VsZi5zY3JpcHRfcGF0aCgi
c3ZuLWNyZWF0ZS1wYXRjaCIpLCBjd2Q9c2VsZi5jaGVja291dF9yb290LCByZXR1cm5fc3RkZXJy
PUZhbHNlKQogCisgICAgZGVmIGNvbW1pdHRlcl9lbWFpbF9mb3JfcmV2aXNpb24oc2VsZiwgcmV2
aXNpb24pOgorICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWyJzdm4iLCAicHJvcGdldCIsICJz
dm46YXV0aG9yIiwgIi0tcmV2cHJvcCIsICItciIsIHN0cihyZXZpc2lvbildKS5yc3RyaXAoKQor
CisgICAgZGVmIGNvbnRlbnRzX2F0X3JldmlzaW9uKHNlbGYsIHBhdGgsIHJldmlzaW9uKToKKyAg
ICAgICAgcmVtb3RlX3BhdGggPSAiJXMvJXMiICUgKHNlbGYuX3JlcG9zaXRvcnlfdXJsKCksIHBh
dGgpCisgICAgICAgIHJldHVybiBydW5fY29tbWFuZChbInN2biIsICJjYXQiLCAiLXIiLCBzdHIo
cmV2aXNpb24pLCByZW1vdGVfcGF0aF0pCisKICAgICBkZWYgZGlmZl9mb3JfcmV2aXNpb24oc2Vs
ZiwgcmV2aXNpb24pOgogICAgICAgICByZXR1cm4gcnVuX2NvbW1hbmQoWydzdm4nLCAnZGlmZics
ICctYycsIHN0cihyZXZpc2lvbildKQogCkBAIC00MTUsNyArNDI3LDYgQEAgY2xhc3MgR2l0KFND
TSk6CiAgICAgZGVmIGNvbW1pdF9zdWNjZXNzX3JlZ2V4cCgpOgogICAgICAgICByZXR1cm4gIl5D
b21taXR0ZWQgcig/UDxzdm5fcmV2aXNpb24+XGQrKSQiCiAKLQogICAgIGRlZiBkaXNjYXJkX2xv
Y2FsX2NvbW1pdHMoc2VsZik6CiAgICAgICAgIHJ1bl9jb21tYW5kKFsnZ2l0JywgJ3Jlc2V0Jywg
Jy0taGFyZCcsICd0cnVuayddKQogICAgIApAQCAtNDM4LDE1ICs0NDksMjMgQEAgY2xhc3MgR2l0
KFNDTSk6CiAgICAgZGVmIHN0YXR1c19jb21tYW5kKHNlbGYpOgogICAgICAgICByZXR1cm4gWydn
aXQnLCAnc3RhdHVzJ10KIAorICAgIGRlZiBfc3RhdHVzX3JlZ2V4cChzZWxmLCBleHBlY3RlZF90
eXBlcyk6CisgICAgICAgIHJldHVybiAnXig/UDxzdGF0dXM+WyVzXSlcdCg/UDxmaWxlbmFtZT4u
KykkJyAlIGV4cGVjdGVkX3R5cGVzCisKICAgICBkZWYgY2hhbmdlZF9maWxlcyhzZWxmKToKICAg
ICAgICAgc3RhdHVzX2NvbW1hbmQgPSBbJ2dpdCcsICdkaWZmJywgJy1yJywgJy0tbmFtZS1zdGF0
dXMnLCAnLUMnLCAnLU0nLCAnSEVBRCddCi0gICAgICAgIHN0YXR1c19yZWdleHAgPSAnXig/UDxz
dGF0dXM+W0FETV0pXHQoP1A8ZmlsZW5hbWU+LispJCcKLSAgICAgICAgcmV0dXJuIHNlbGYucnVu
X3N0YXR1c19hbmRfZXh0cmFjdF9maWxlbmFtZXMoc3RhdHVzX2NvbW1hbmQsIHN0YXR1c19yZWdl
eHApCisgICAgICAgIHJldHVybiBzZWxmLnJ1bl9zdGF0dXNfYW5kX2V4dHJhY3RfZmlsZW5hbWVz
KHN0YXR1c19jb21tYW5kLCBzZWxmLl9zdGF0dXNfcmVnZXhwKCJBRE0iKSkKKworICAgIGRlZiBj
aGFuZ2VkX2ZpbGVzX2Zvcl9yZXZpc2lvbihzZWxmLCByZXZpc2lvbik6CisgICAgICAgIGNvbW1p
dF9pZCA9IHNlbGYuZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKKyAgICAg
ICAgIyAtLXByZXR0eT0iZm9ybWF0OiIgbWFrZXMgZ2l0IHNob3cgbm90IHByaW50IHRoZSBjb21t
aXQgbG9nIGhlYWRlciwKKyAgICAgICAgY2hhbmdlZF9maWxlcyA9IHJ1bl9jb21tYW5kKFsiZ2l0
IiwgInNob3ciLCAiLS1wcmV0dHk9Zm9ybWF0OiIsICItLW5hbWUtb25seSIsIGNvbW1pdF9pZF0p
LnNwbGl0bGluZXMoKQorICAgICAgICAjIGluc3RlYWQgaXQganVzdCBwcmludHMgYSBibGFuayBs
aW5lIGF0IHRoZSB0b3AsIHNvIHdlIHNraXAgdGhlIGJsYW5rIGxpbmU6CisgICAgICAgIHJldHVy
biBjaGFuZ2VkX2ZpbGVzWzE6XQogCiAgICAgZGVmIGNvbmZsaWN0ZWRfZmlsZXMoc2VsZik6CiAg
ICAgICAgIHN0YXR1c19jb21tYW5kID0gWydnaXQnLCAnZGlmZicsICctLW5hbWUtc3RhdHVzJywg
Jy1DJywgJy1NJywgJy0tZGlmZi1maWx0ZXI9VSddCi0gICAgICAgIHN0YXR1c19yZWdleHAgPSAn
Xig/UDxzdGF0dXM+W1VdKVx0KD9QPGZpbGVuYW1lPi4rKSQnCi0gICAgICAgIHJldHVybiBzZWxm
LnJ1bl9zdGF0dXNfYW5kX2V4dHJhY3RfZmlsZW5hbWVzKHN0YXR1c19jb21tYW5kLCBzdGF0dXNf
cmVnZXhwKQorICAgICAgICByZXR1cm4gc2VsZi5ydW5fc3RhdHVzX2FuZF9leHRyYWN0X2ZpbGVu
YW1lcyhzdGF0dXNfY29tbWFuZCwgc2VsZi5fc3RhdHVzX3JlZ2V4cCgiVSIpKQogCiAgICAgQHN0
YXRpY21ldGhvZAogICAgIGRlZiBzdXBwb3J0c19sb2NhbF9jb21taXRzKCk6CkBAIC00NjAsMTkg
KzQ3OSwyOCBAQCBjbGFzcyBHaXQoU0NNKToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBn
aXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKGNscywgcmV2aXNpb24pOgorICAgICAgICBnaXRf
Y29tbWl0ID0gcnVuX2NvbW1hbmQoWydnaXQnLCAnc3ZuJywgJ2ZpbmQtcmV2JywgJ3IlcycgJSBy
ZXZpc2lvbl0pLnJzdHJpcCgpCiAgICAgICAgICMgZ2l0IHN2biBmaW5kLXJldiBhbHdheXMgZXhp
dHMgMCwgZXZlbiB3aGVuIHRoZSByZXZpc2lvbiBpcyBub3QgZm91bmQuCi0gICAgICAgIHJldHVy
biBydW5fY29tbWFuZChbJ2dpdCcsICdzdm4nLCAnZmluZC1yZXYnLCAnciVzJyAlIHJldmlzaW9u
XSkucnN0cmlwKCkKKyAgICAgICAgaWYgbm90IGdpdF9jb21taXQ6CisgICAgICAgICAgICByYWlz
ZSBTY3JpcHRFcnJvcihtZXNzYWdlPSdGYWlsZWQgdG8gZmluZCBnaXQgY29tbWl0IGZvciByZXZp
c2lvbiAlcywgeW91ciBjaGVja291dCBsaWtlbHkgbmVlZHMgYW4gdXBkYXRlLicgJSByZXZpc2lv
bikKKyAgICAgICAgcmV0dXJuIGdpdF9jb21taXQKKworICAgIGRlZiBjb250ZW50c19hdF9yZXZp
c2lvbihzZWxmLCBwYXRoLCByZXZpc2lvbik6CisgICAgICAgIHJldHVybiBydW5fY29tbWFuZChb
ImdpdCIsICJzaG93IiwgIiVzOiVzIiAlIChzZWxmLmdpdF9jb21taXRfZnJvbV9zdm5fcmV2aXNp
b24ocmV2aXNpb24pLCBwYXRoKV0pCiAKICAgICBkZWYgZGlmZl9mb3JfcmV2aXNpb24oc2VsZiwg
cmV2aXNpb24pOgogICAgICAgICBnaXRfY29tbWl0ID0gc2VsZi5naXRfY29tbWl0X2Zyb21fc3Zu
X3JldmlzaW9uKHJldmlzaW9uKQogICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGVfcGF0Y2hfZnJv
bV9sb2NhbF9jb21taXQoZ2l0X2NvbW1pdCkKIAorICAgIGRlZiBjb21taXR0ZXJfZW1haWxfZm9y
X3JldmlzaW9uKHNlbGYsIHJldmlzaW9uKToKKyAgICAgICAgZ2l0X2NvbW1pdCA9IHNlbGYuZ2l0
X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihyZXZpc2lvbikKKyAgICAgICAgY29tbWl0dGVyX2Vt
YWlsID0gcnVuX2NvbW1hbmQoWyJnaXQiLCAibG9nIiwgIi0xIiwgIi0tcHJldHR5PWZvcm1hdDol
Y2UiLCBnaXRfY29tbWl0XSkKKyAgICAgICAgIyBHaXQgYWRkcyBhbiBleHRyYSBAcmVwb3NpdG9y
eV9oYXNoIHRvIHRoZSBlbmQgb2YgZXZlcnkgY29tbWl0dGVyIGVtYWlsLCByZW1vdmUgaXQ6Cisg
ICAgICAgIHJldHVybiBjb21taXR0ZXJfZW1haWwucnNwbGl0KCJAIiwgMSlbMF0KKwogICAgIGRl
ZiBhcHBseV9yZXZlcnNlX2RpZmYoc2VsZiwgcmV2aXNpb24pOgogICAgICAgICAjIEFzc3VtZSB0
aGUgcmV2aXNpb24gaXMgYW4gc3ZuIHJldmlzaW9uLgogICAgICAgICBnaXRfY29tbWl0ID0gc2Vs
Zi5naXRfY29tbWl0X2Zyb21fc3ZuX3JldmlzaW9uKHJldmlzaW9uKQotICAgICAgICBpZiBub3Qg
Z2l0X2NvbW1pdDoKLSAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9J0ZhaWxl
ZCB0byBmaW5kIGdpdCBjb21taXQgZm9yIHJldmlzaW9uICVzLCBnaXQgc3ZuIGxvZyBvdXRwdXQ6
ICIlcyInICUgKHJldmlzaW9uLCBnaXRfY29tbWl0KSkKLQogICAgICAgICAjIEkgdGhpbmsgdGhp
cyB3aWxsIGFsd2F5cyBmYWlsIGR1ZSB0byBDaGFuZ2VMb2dzLgogICAgICAgICBydW5fY29tbWFu
ZChbJ2dpdCcsICdyZXZlcnQnLCAnLS1uby1jb21taXQnLCBnaXRfY29tbWl0XSwgZXJyb3JfaGFu
ZGxlcj1FeGVjdXRpdmUuaWdub3JlX2Vycm9yKQogCkBAIC00ODgsNyArNTE2LDggQEAgY2xhc3Mg
R2l0KFNDTSk6CiAgICAgZGVmIHJldmVydF9maWxlcyhzZWxmLCBmaWxlX3BhdGhzKToKICAgICAg
ICAgcnVuX2NvbW1hbmQoWydnaXQnLCAnY2hlY2tvdXQnLCAnSEVBRCddICsgZmlsZV9wYXRocykK
IAotICAgIGRlZiBjb21taXRfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgorICAgIGRlZiBj
b21taXRfd2l0aF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIHVzZXJuYW1lPU5vbmUpOgorICAgICAg
ICAjIFVzZXJuYW1lIGlzIGlnbm9yZWQgZHVyaW5nIEdpdCBjb21taXRzLgogICAgICAgICBzZWxm
LmNvbW1pdF9sb2NhbGx5X3dpdGhfbWVzc2FnZShtZXNzYWdlKQogICAgICAgICByZXR1cm4gc2Vs
Zi5wdXNoX2xvY2FsX2NvbW1pdHNfdG9fc2VydmVyKCkKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zY21fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3NjbV91bml0dGVzdC5weQppbmRleCBkZDc2MzQ2Li5lMGE4Nzg5IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3NjbV91bml0dGVzdC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3NjbV91bml0dGVzdC5weQpAQCAtMjgsNiArMjgs
NyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBvcnQgYmFzZTY0CitpbXBvcnQgZ2V0cGFzcwogaW1w
b3J0IG9zCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IHJlCkBAIC03Myw3ICs3NCw3IEBAIGNsYXNz
IFNWTlRlc3RSZXBvc2l0b3J5OgogICAgICAgICB0ZXN0X2ZpbGUgPSBvcGVuKCd0ZXN0X2ZpbGUn
LCAndycpCiAgICAgICAgIHRlc3RfZmlsZS53cml0ZSgidGVzdDEiKQogICAgICAgICB0ZXN0X2Zp
bGUuZmx1c2goKQotICAgICAgICAKKwogICAgICAgICBydW5fY29tbWFuZChbJ3N2bicsICdhZGQn
LCAndGVzdF9maWxlJ10pCiAgICAgICAgIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ2NvbW1pdCcsICct
LXF1aWV0JywgJy0tbWVzc2FnZScsICdpbml0aWFsIGNvbW1pdCddKQogICAgICAgICAKQEAgLTg0
LDcgKzg1LDkgQEAgY2xhc3MgU1ZOVGVzdFJlcG9zaXRvcnk6CiAgICAgICAgIAogICAgICAgICB0
ZXN0X2ZpbGUud3JpdGUoInRlc3QzXG4iKQogICAgICAgICB0ZXN0X2ZpbGUuZmx1c2goKQotICAg
ICAgICAKKyAgICAgICAgd3JpdGVfaW50b19maWxlX2F0X3BhdGgoInRlc3RfZmlsZTIiLCAic2Vj
b25kIGZpbGUiKQorICAgICAgICBydW5fY29tbWFuZChbJ3N2bicsICdhZGQnLCAndGVzdF9maWxl
MiddKQorCiAgICAgICAgIHJ1bl9jb21tYW5kKFsnc3ZuJywgJ2NvbW1pdCcsICctLXF1aWV0Jywg
Jy0tbWVzc2FnZScsICd0aGlyZCBjb21taXQnXSkKIAogICAgICAgICB0ZXN0X2ZpbGUud3JpdGUo
InRlc3Q0XG4iKQpAQCAtMTE1LDYgKzExOCwxMCBAQCBjbGFzcyBTVk5UZXN0UmVwb3NpdG9yeToK
ICAgICAgICAgcnVuX2NvbW1hbmQoWydybScsICctcmYnLCB0ZXN0X29iamVjdC5zdm5fcmVwb19w
YXRoXSkKICAgICAgICAgcnVuX2NvbW1hbmQoWydybScsICctcmYnLCB0ZXN0X29iamVjdC5zdm5f
Y2hlY2tvdXRfcGF0aF0pCiAKKyAgICAgICAgIyBOb3cgdGhhdCB3ZSd2ZSBkZWxldGVkIHRoZSBj
aGVja291dCBwYXRocywgY3dkZGlyIG1heSBiZSBpbnZhbGlkCisgICAgICAgICMgQ2hhbmdlIGJh
Y2sgdG8gYSB2YWxpZCBkaXJlY3Rvcnkgc28gdGhhdCBsYXRlciBjYWxscyB0byBvcy5nZXRjd2Qo
KSBkbyBub3QgZmFpbC4KKyAgICAgICAgb3MuY2hkaXIoZGV0ZWN0X3NjbV9zeXN0ZW0ob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSkuY2hlY2tvdXRfcm9vdCkKKwogIyBGb3IgdGVzdGluZyB0aGUg
U0NNIGJhc2VjbGFzcyBkaXJlY3RseS4KIGNsYXNzIFNDTUNsYXNzVGVzdHModW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTE4MCw3ICsxODcsNyBAQCBjbGFzcyBT
Q01UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICMgVGVzdHMgd2hpY2ggYm90aCBHaXRU
ZXN0IGFuZCBTVk5UZXN0IHNob3VsZCBydW4uCiAgICAgIyBGSVhNRTogVGhlcmUgbXVzdCBiZSBh
IHNpbXBsZXIgd2F5IHRvIGFkZCB0aGVzZSB3L28gYWRkaW5nIGEgd3JhcHBlciBtZXRob2QgdG8g
Ym90aCBzdWJjbGFzc2VzCi0gICAgZGVmIF9zaGFyZWRfdGVzdF9jb21taXRfd2l0aF9tZXNzYWdl
KHNlbGYsIHVzZXJuYW1lKToKKyAgICBkZWYgX3NoYXJlZF90ZXN0X2NvbW1pdF93aXRoX21lc3Nh
Z2Uoc2VsZiwgdXNlcm5hbWU9ImRiYXRlc0B3ZWJraXQub3JnIik6CiAgICAgICAgIHdyaXRlX2lu
dG9fZmlsZV9hdF9wYXRoKCd0ZXN0X2ZpbGUnLCAnbW9yZSB0ZXN0IGNvbnRlbnQnKQogICAgICAg
ICBjb21taXRfdGV4dCA9IHNlbGYuc2NtLmNvbW1pdF93aXRoX21lc3NhZ2UoImFub3RoZXIgdGVz
dCBjb21taXQiLCB1c2VybmFtZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNjbS5z
dm5fcmV2aXNpb25fZnJvbV9jb21taXRfdGV4dChjb21taXRfdGV4dCksICc1JykKQEAgLTE5MCw2
ICsxOTcsMjYgQEAgY2xhc3MgU0NNVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNv
bW1pdF90ZXh0ID0gc2VsZi5zY20uY29tbWl0X3dpdGhfbWVzc2FnZSgieWV0IGFub3RoZXIgdGVz
dCBjb21taXQiLCB1c2VybmFtZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNjbS5z
dm5fcmV2aXNpb25fZnJvbV9jb21taXRfdGV4dChjb21taXRfdGV4dCksICcwJykKIAorICAgIGRl
ZiBfc2hhcmVkX3Rlc3RfY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oc2VsZik6CisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20uY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24oMiks
IFsidGVzdF9maWxlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHNlbGYuc2Nt
LmNoYW5nZWRfZmlsZXNfZm9yX3JldmlzaW9uKDMpKSwgc29ydGVkKFsidGVzdF9maWxlIiwgInRl
c3RfZmlsZTIiXSkpICMgR2l0IGFuZCBTVk4gcmV0dXJuIGRpZmZlcmVudCBvcmRlcnMuCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20uY2hhbmdlZF9maWxlc19mb3JfcmV2aXNpb24o
NCksIFsidGVzdF9maWxlIl0pCisKKyAgICBkZWYgX3NoYXJlZF90ZXN0X2NvbnRlbnRzX2F0X3Jl
dmlzaW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRz
X2F0X3JldmlzaW9uKCJ0ZXN0X2ZpbGUiLCAyKSwgInRlc3QxdGVzdDIiKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYuc2NtLmNvbnRlbnRzX2F0X3JldmlzaW9uKCJ0ZXN0X2ZpbGUiLCAz
KSwgInRlc3QxdGVzdDJ0ZXN0M1xuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNj
bS5jb250ZW50c19hdF9yZXZpc2lvbigidGVzdF9maWxlIiwgNCksICJ0ZXN0MXRlc3QydGVzdDNc
bnRlc3Q0XG4iKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zY20uY29udGVudHNf
YXRfcmV2aXNpb24oInRlc3RfZmlsZTIiLCAzKSwgInNlY29uZCBmaWxlIikKKyAgICAgICAgIyBG
aWxlcyB3aGljaCBkb24ndCBleGlzdDoKKyAgICAgICAgIyBDdXJyZW50bHkgd2UgcmFpc2UgaW5z
dGVhZCBvZiByZXR1cm5pbmcgTm9uZSBiZWNhdXNlIGRldGVjdGluZyB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuCisgICAgICAgICMgImZpbGUgbm90IGZvdW5kIiBhbmQgYW55IG90aGVyIGVycm9yIHNl
ZW1zIGltcG9zc2libGUgd2l0aCBzdm4gKGdpdCBzZWVtcyB0byBleHBvc2Ugc3VjaCB0aHJvdWdo
IHRoZSByZXR1cm4gY29kZSkuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFNjcmlwdEVycm9y
LCBzZWxmLnNjbS5jb250ZW50c19hdF9yZXZpc2lvbiwgInRlc3RfZmlsZTIiLCAyKQorICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhTY3JpcHRFcnJvciwgc2VsZi5zY20uY29udGVudHNfYXRfcmV2
aXNpb24sICJkb2VzX25vdF9leGlzdCIsIDIpCisKKyAgICBkZWYgX3NoYXJlZF90ZXN0X2NvbW1p
dHRlcl9lbWFpbF9mb3JfcmV2aXNpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5zY20uY29tbWl0dGVyX2VtYWlsX2Zvcl9yZXZpc2lvbigyKSwgZ2V0cGFzcy5nZXR1c2Vy
KCkpICMgQ29tbWl0dGVyICJlbWFpbCIgd2lsbCBiZSB0aGUgY3VycmVudCB1c2VyCisKICAgICBk
ZWYgX3NoYXJlZF90ZXN0X3JldmVyc2VfZGlmZihzZWxmKToKICAgICAgICAgc2VsZi5fc2V0dXBf
d2Via2l0dG9vbHNfc2NyaXB0c19zeW1saW5rKHNlbGYuc2NtKSAjIEdpdCdzIGFwcGx5X3JldmVy
c2VfZGlmZiB1c2VzIHJlc29sdmUtQ2hhbmdlTG9ncwogICAgICAgICAjIE9ubHkgdGVzdCB0aGUg
c2ltcGxlIGNhc2UsIGFzIGFueSBvdGhlciB3aWxsIGVuZCB1cCB3aXRoIGNvbmZsaWN0IG1hcmtl
cnMuCkBAIC0zMTcsNyArMzQ0LDcgQEAgY2xhc3MgU1ZOVGVzdChTQ01UZXN0KToKIAogKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiArCi0rICAgICAgICBTZWNvbmQgbW9zdCBh
d3NvbWUgY2hhbmdlIGV2ZXIuCisrICAgICAgICBTZWNvbmQgbW9zdCBhd2Vzb21lIGNoYW5nZSBl
dmVyLgogKwogKyAgICAgICAgKiBzY21fdW5pdHRlc3QucHk6CiArCkBAIC0zMzEsNyArMzU4LDcg
QEAgY2xhc3MgU1ZOVGVzdChTQ01UZXN0KToKIAogICAgICAgICBSZXZpZXdlZCBieSBSRVZJRVdF
Ul9IRVJFLgogCi0gICAgICAgIFNlY29uZCBtb3N0IGF3c29tZSBjaGFuZ2UgZXZlci4KKyAgICAg
ICAgU2Vjb25kIG1vc3QgYXdlc29tZSBjaGFuZ2UgZXZlci4KIAogICAgICAgICAqIHNjbV91bml0
dGVzdC5weToKICIiIgpAQCAtMzQzLDcgKzM3MCw3IEBAIGNsYXNzIFNWTlRlc3QoU0NNVGVzdCk6
CiAKICAgICAgICAgIFJldmlld2VkIGJ5IEZvbyBCYXIuCiAKLSsgICAgICAgIFNlY29uZCBtb3N0
IGF3c29tZSBjaGFuZ2UgZXZlci4KKysgICAgICAgIFNlY29uZCBtb3N0IGF3ZXNvbWUgY2hhbmdl
IGV2ZXIuCiArCiArICAgICAgICAqIHNjbV91bml0dGVzdC5weToKICsKQEAgLTM1OSw3ICszODYs
NyBAQCBjbGFzcyBTVk5UZXN0KFNDTVRlc3QpOgogCiAgICAgICAgIFJldmlld2VkIGJ5IEZvbyBC
YXIuCiAKLSAgICAgICAgU2Vjb25kIG1vc3QgYXdzb21lIGNoYW5nZSBldmVyLgorICAgICAgICBT
ZWNvbmQgbW9zdCBhd2Vzb21lIGNoYW5nZSBldmVyLgogCiAgICAgICAgICogc2NtX3VuaXR0ZXN0
LnB5OgogIiIiCkBAIC00OTIsNiArNTE5LDE2IEBAIFExZFRCeDBBQUFCNDJpdGc0R2xnWUpqR3dN
RER5T0RNeE1EdzM0R0JnUUVBSlBRREpBPT0KICAgICBkZWYgdGVzdF9zdm5fYXBwbHlfZ2l0X3Bh
dGNoKHNlbGYpOgogICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9zdm5fYXBwbHlfZ2l0X3BhdGNo
KCkKIAorICAgIGRlZiB0ZXN0X2NoYW5nZWRfZmlsZXNfZm9yX3JldmlzaW9uKHNlbGYpOgorICAg
ICAgICBzZWxmLl9zaGFyZWRfdGVzdF9jaGFuZ2VkX2ZpbGVzX2Zvcl9yZXZpc2lvbigpCisKKyAg
ICBkZWYgdGVzdF9jb250ZW50c19hdF9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fc2hh
cmVkX3Rlc3RfY29udGVudHNfYXRfcmV2aXNpb24oKQorCisgICAgZGVmIHRlc3RfY29tbWl0dGVy
X2VtYWlsX2Zvcl9yZXZpc2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fc2hhcmVkX3Rlc3RfY29t
bWl0dGVyX2VtYWlsX2Zvcl9yZXZpc2lvbigpCisKKwogY2xhc3MgR2l0VGVzdChTQ01UZXN0KToK
IAogICAgIGRlZiBfc2V0dXBfZ2l0X2Nsb25lX29mX3N2bl9yZXBvc2l0b3J5KHNlbGYpOgpAQCAt
NjE0LDYgKzY1MSwxNSBAQCBjbGFzcyBHaXRUZXN0KFNDTVRlc3QpOgogICAgICAgICBzZWxmLmFz
c2VydFRydWUocmUuc2VhcmNoKHInXG5saXRlcmFsIDI1NlxuJywgcGF0Y2hfc2luY2VfbG9jYWxf
Y29tbWl0KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXRjaF9mcm9tX2xvY2FsX2NvbW1p
dCwgcGF0Y2hfc2luY2VfbG9jYWxfY29tbWl0KQogCisgICAgZGVmIHRlc3RfY2hhbmdlZF9maWxl
c19mb3JfcmV2aXNpb24oc2VsZik6CisgICAgICAgIHNlbGYuX3NoYXJlZF90ZXN0X2NoYW5nZWRf
ZmlsZXNfZm9yX3JldmlzaW9uKCkKKworICAgIGRlZiB0ZXN0X2NvbnRlbnRzX2F0X3JldmlzaW9u
KHNlbGYpOgorICAgICAgICBzZWxmLl9zaGFyZWRfdGVzdF9jb250ZW50c19hdF9yZXZpc2lvbigp
CisKKyAgICBkZWYgdGVzdF9jb21taXR0ZXJfZW1haWxfZm9yX3JldmlzaW9uKHNlbGYpOgorICAg
ICAgICBzZWxmLl9zaGFyZWRfdGVzdF9jb21taXR0ZXJfZW1haWxfZm9yX3JldmlzaW9uKCkKKwog
CiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQo=
</data>
<flag name="review"
          id="34168"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>