<?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>34031</bug_id>
          
          <creation_ts>2010-01-22 19:08:16 -0800</creation_ts>
          <short_desc>check-webkit-style: Remove the filename parameter from the style error handler functions</short_desc>
          <delta_ts>2010-01-25 23:37:57 -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>All</rep_platform>
          <op_sys>All</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="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>183923</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-22 19:08:16 -0800</bug_when>
    <thetext>The filename parameter is unnecessary since it is the same for all errors processed within a file.  This refactoring will simplify the code a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183930</commentid>
    <comment_count>1</comment_count>
      <attachid>47262</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-22 19:46:46 -0800</bug_when>
    <thetext>Created attachment 47262
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183931</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-22 19:51:14 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=47262) [details]
&gt; Proposed patch

Just saw the size of this patch (53K).

FYI, I&apos;d estimate that 85% of the size of this patch or so results from this simple search and replace: &quot;error(filename, &quot; -&gt; &quot;error(&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184484</commentid>
    <comment_count>3</comment_count>
      <attachid>47262</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2010-01-25 20:56:56 -0800</bug_when>
    <thetext>Comment on attachment 47262
Proposed patch

Sorry for the latency. I was a bit sick and busy these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184485</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-25 21:02:07 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 47262 [details])
&gt; Sorry for the latency. I was a bit sick and busy these days.

Thanks.  Hope you&apos;re feeling better...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184511</commentid>
    <comment_count>5</comment_count>
      <attachid>47262</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-25 23:37:49 -0800</bug_when>
    <thetext>Comment on attachment 47262
Proposed patch

Clearing flags on attachment: 47262

Committed r53841: &lt;http://trac.webkit.org/changeset/53841&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184512</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-01-25 23:37:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47262</attachid>
            <date>2010-01-22 19:46:46 -0800</date>
            <delta_ts>2010-01-25 23:37:49 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-34031-1.txt</filename>
            <type>text/plain</type>
            <size>54149</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA3ZGE4MGM2Li45YTZkMWRmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDEt
MjIgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCBjaGVjay13ZWJr
aXQtc3R5bGUgYnkgcmVtb3ZpbmcgdGhlIGZpbGUgcGF0aAorICAgICAgICBwYXJhbWV0ZXIgZnJv
bSB0aGUgc3R5bGUgZXJyb3IgaGFuZGxlciBmdW5jdGlvbnMuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MDMxCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBBZGRlZCBfZGVmYXVsdF9z
dHlsZV9lcnJvcl9oYW5kbGVyKCkgdG8gU3R5bGVDaGVja2VyIGNsYXNzLgorICAgICAgICAgIC0g
TW92ZWQgaGFuZGxlX3N0eWxlX2Vycm9yKCkgdG8gaW5zaWRlIF9kZWZhdWx0X3N0eWxlX2Vycm9y
X2hhbmRsZXIoKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91
bml0dGVzdC5weToKKyAgICAgICAgICAtIFJlbW92ZWQgZmlsZSBwYXRoIGZyb20gY2FsbHMgdG8g
ZXJyb3IgaGFuZGxlci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0
eWxlLnB5OgorICAgICAgICAgIC0gUmVtb3ZlZCBmaWxlIHBhdGggZnJvbSBjYWxscyB0byBlcnJv
ciBoYW5kbGVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jcHBfc3R5bGVf
dW5pdHRlc3QucHk6CisgICAgICAgICAgLSBSZW1vdmVkIGZpbGUgcGF0aCBmcm9tIGNhbGxzIHRv
IGVycm9yIGhhbmRsZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3RleHRf
c3R5bGUucHk6CisgICAgICAgICAgLSBSZW1vdmVkIGZpbGUgcGF0aCBmcm9tIGNhbGxzIHRvIGVy
cm9yIGhhbmRsZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3RleHRfc3R5
bGVfdW5pdHRlc3QucHk6CisgICAgICAgICAgLSBSZW1vdmVkIGZpbGUgcGF0aCBmcm9tIGNhbGxz
IHRvIGVycm9yIGhhbmRsZXIuCisKIDIwMTAtMDEtMjIgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFs
a2VuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCBjMTUwNmM5
Li41NGYxZmI3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXIucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5CkBAIC03NzEsMzggKzc3MSw0OSBAQCBjbGFzcyBTdHlsZUNoZWNrZXIob2JqZWN0KToK
ICAgICAgICAgc2VsZi5lcnJvcl9jb3VudCA9IDAKICAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0
aW9ucwogCi0gICAgZGVmIF9oYW5kbGVfc3R5bGVfZXJyb3Ioc2VsZiwgZmlsZW5hbWUsIGxpbmVf
bnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkhhbmRs
ZSB0aGUgb2NjdXJyZW5jZSBvZiBhIHN0eWxlIGVycm9yIHdoaWxlIGNoZWNraW5nLgotCi0gICAg
ICAgIENoZWNrIHdoZXRoZXIgYW4gZXJyb3Igc2hvdWxkIGJlIHJlcG9ydGVkLiBJZiBzbywgaW5j
cmVtZW50IHRoZQotICAgICAgICBnbG9iYWwgZXJyb3IgY291bnQgYW5kIHJlcG9ydCB0aGUgZXJy
b3IgZGV0YWlscy4KKyAgICBkZWYgX2RlZmF1bHRfc3R5bGVfZXJyb3JfaGFuZGxlcihzZWxmLCBm
aWxlX3BhdGgpOgorICAgICAgICAiIiJSZXR1cm4gYSBkZWZhdWx0IHN0eWxlIGVycm9yIGhhbmRs
ZXIgZm9yIHRoZSBnaXZlbiBwYXRoLgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgZmlsZW5h
bWU6IFRoZSBuYW1lIG9mIHRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGVycm9yLgotICAgICAgICAg
IGxpbmVfbnVtYmVyOiBUaGUgbnVtYmVyIG9mIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIGVycm9y
LgotICAgICAgICAgIGNhdGVnb3J5OiBBIHN0cmluZyB1c2VkIHRvIGRlc2NyaWJlIHRoZSAiY2F0
ZWdvcnkiIHRoaXMgYnVnCi0gICAgICAgICAgICAgICAgICAgIGZhbGxzIHVuZGVyOiAid2hpdGVz
cGFjZSIsIHNheSwgb3IgInJ1bnRpbWUiLgotICAgICAgICAgICAgICAgICAgICBDYXRlZ29yaWVz
IG1heSBoYXZlIGEgaGllcmFyY2h5IHNlcGFyYXRlZCBieSBzbGFzaGVzOgotICAgICAgICAgICAg
ICAgICAgICAid2hpdGVzcGFjZS9pbmRlbnQiLgotICAgICAgICAgIGNvbmZpZGVuY2U6IEEgbnVt
YmVyIGZyb20gMS01IHJlcHJlc2VudGluZyBhIGNvbmZpZGVuY2Ugc2NvcmUKLSAgICAgICAgICAg
ICAgICAgICAgICBmb3IgdGhlIGVycm9yLCB3aXRoIDUgbWVhbmluZyB0aGF0IHdlIGFyZSBjZXJ0
YWluCi0gICAgICAgICAgICAgICAgICAgICAgb2YgdGhlIHByb2JsZW0sIGFuZCAxIG1lYW5pbmcg
dGhhdCBpdCBjb3VsZCBiZSBhCi0gICAgICAgICAgICAgICAgICAgICAgbGVnaXRpbWF0ZSBjb25z
dHJ1Y3QuCi0gICAgICAgICAgbWVzc2FnZTogVGhlIGVycm9yIG1lc3NhZ2UuCisgICAgICAgICAg
ZmlsZV9wYXRoOiBUaGUgcGF0aCB0byB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBlcnJvci4gVGhp
cworICAgICAgICAgICAgICAgICAgICAgaXMgbWVhbnQgZm9yIHJlcG9ydGluZyB0byB0aGUgdXNl
ci4KIAogICAgICAgICAiIiIKLSAgICAgICAgaWYgbm90IHNlbGYub3B0aW9ucy5zaG91bGRfcmVw
b3J0X2Vycm9yKGNhdGVnb3J5LCBjb25maWRlbmNlKToKLSAgICAgICAgICAgIHJldHVybgotCi0g
ICAgICAgIHNlbGYuZXJyb3JfY291bnQgKz0gMQotCi0gICAgICAgIGlmIHNlbGYub3B0aW9ucy5v
dXRwdXRfZm9ybWF0ID09ICd2czcnOgotICAgICAgICAgICAgZm9ybWF0X3N0cmluZyA9ICIlcygl
cyk6ICAlcyAgWyVzXSBbJWRdXG4iCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmb3JtYXRf
c3RyaW5nID0gIiVzOiVzOiAgJXMgIFslc10gWyVkXVxuIgorICAgICAgICBkZWYgaGFuZGxlX3N0
eWxlX2Vycm9yKGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6Cisg
ICAgICAgICAgICAiIiJIYW5kbGUgdGhlIG9jY3VycmVuY2Ugb2YgYSBzdHlsZSBlcnJvci4KKwor
ICAgICAgICAgICAgQ2hlY2sgd2hldGhlciBhbiBlcnJvciBzaG91bGQgYmUgcmVwb3J0ZWQuIElm
IHNvLCBpbmNyZW1lbnQgdGhlCisgICAgICAgICAgICBnbG9iYWwgZXJyb3IgY291bnQgYW5kIHJl
cG9ydCB0aGUgZXJyb3IgZGV0YWlscy4KKworICAgICAgICAgICAgQXJnczoKKyAgICAgICAgICAg
ICAgbGluZV9udW1iZXI6IFRoZSBudW1iZXIgb2YgdGhlIGxpbmUgY29udGFpbmluZyB0aGUgZXJy
b3IuCisgICAgICAgICAgICAgIGNhdGVnb3J5OiBBIHN0cmluZyB1c2VkIHRvIGRlc2NyaWJlIHRo
ZSAiY2F0ZWdvcnkiIHRoaXMgYnVnCisgICAgICAgICAgICAgICAgICAgICAgICBmYWxscyB1bmRl
cjogIndoaXRlc3BhY2UiLCBzYXksIG9yICJydW50aW1lIi4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIENhdGVnb3JpZXMgbWF5IGhhdmUgYSBoaWVyYXJjaHkgc2VwYXJhdGVkIGJ5IHNsYXNoZXM6
CisgICAgICAgICAgICAgICAgICAgICAgICAid2hpdGVzcGFjZS9pbmRlbnQiLgorICAgICAgICAg
ICAgICBjb25maWRlbmNlOiBBIG51bWJlciBmcm9tIDEtNSByZXByZXNlbnRpbmcgYSBjb25maWRl
bmNlIHNjb3JlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0aGUgZXJyb3IsIHdpdGgg
NSBtZWFuaW5nIHRoYXQgd2UgYXJlIGNlcnRhaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
b2YgdGhlIHByb2JsZW0sIGFuZCAxIG1lYW5pbmcgdGhhdCBpdCBjb3VsZCBiZSBhCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxlZ2l0aW1hdGUgY29uc3RydWN0LgorICAgICAgICAgICAgICBt
ZXNzYWdlOiBUaGUgZXJyb3IgbWVzc2FnZS4KKworICAgICAgICAgICAgIiIiCisgICAgICAgICAg
ICBpZiBub3Qgc2VsZi5vcHRpb25zLnNob3VsZF9yZXBvcnRfZXJyb3IoY2F0ZWdvcnksIGNvbmZp
ZGVuY2UpOgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBzZWxmLmVycm9y
X2NvdW50ICs9IDEKKworICAgICAgICAgICAgaWYgc2VsZi5vcHRpb25zLm91dHB1dF9mb3JtYXQg
PT0gJ3ZzNyc6CisgICAgICAgICAgICAgICAgZm9ybWF0X3N0cmluZyA9ICIlcyglcyk6ICAlcyAg
WyVzXSBbJWRdXG4iCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvcm1hdF9z
dHJpbmcgPSAiJXM6JXM6ICAlcyAgWyVzXSBbJWRdXG4iCiAKLSAgICAgICAgc2VsZi5fc3RkZXJy
X3dyaXRlKGZvcm1hdF9zdHJpbmcgJSAoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBtZXNzYWdlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeSwgY29u
ZmlkZW5jZSkpCisgICAgICAgICAgICBzZWxmLl9zdGRlcnJfd3JpdGUoZm9ybWF0X3N0cmluZyAl
IChmaWxlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lX251bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYXRlZ29yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gaGFuZGxlX3N0eWxlX2Vy
cm9yCiAKICAgICBkZWYgX3Byb2Nlc3NfZmlsZShzZWxmLCBwcm9jZXNzb3IsIGZpbGVfcGF0aCwg
aGFuZGxlX3N0eWxlX2Vycm9yKToKICAgICAgICAgIiIiUHJvY2VzcyB0aGUgZmlsZSB1c2luZyB0
aGUgZ2l2ZW4gcHJvY2Vzc29yLiIiIgpAQCAtODYyLDcgKzg3Myw3IEBAIGNsYXNzIFN0eWxlQ2hl
Y2tlcihvYmplY3QpOgogCiAgICAgICAgICIiIgogICAgICAgICBpZiBoYW5kbGVfc3R5bGVfZXJy
b3IgaXMgTm9uZToKLSAgICAgICAgICAgIGhhbmRsZV9zdHlsZV9lcnJvciA9IHNlbGYuX2hhbmRs
ZV9zdHlsZV9lcnJvcgorICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yID0gc2VsZi5fZGVm
YXVsdF9zdHlsZV9lcnJvcl9oYW5kbGVyKGZpbGVfcGF0aCkKIAogICAgICAgICBpZiBwcm9jZXNz
X2ZpbGUgaXMgTm9uZToKICAgICAgICAgICAgIHByb2Nlc3NfZmlsZSA9IHNlbGYuX3Byb2Nlc3Nf
ZmlsZQpAQCAtODk2LDcgKzkwNywxMCBAQCBjbGFzcyBTdHlsZUNoZWNrZXIob2JqZWN0KToKICAg
ICAgICAgZm9yIGZpbGVfcGF0aCwgZGlmZiBpbiBwYXRjaF9maWxlcy5pdGVyaXRlbXMoKToKICAg
ICAgICAgICAgIGxpbmVfbnVtYmVycyA9IHNldCgpCiAKLSAgICAgICAgICAgIGRlZiBlcnJvcl9m
b3JfcGF0Y2goZmlsZV9wYXRoLCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1l
c3NhZ2UpOgorICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yID0gc2VsZi5fZGVmYXVsdF9z
dHlsZV9lcnJvcl9oYW5kbGVyKGZpbGVfcGF0aCkKKworICAgICAgICAgICAgZGVmIGhhbmRsZV9w
YXRjaF9zdHlsZV9lcnJvcihsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UpOgogICAgICAgICAg
ICAgICAgICIiIldyYXBwZXIgZnVuY3Rpb24gb2YgY3BwX3N0eWxlLmVycm9yIGZvciBwYXRjaGVz
LgogCiAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBvdXRwdXRzIGVycm9ycyBvbmx5IGlm
IHRoZSBsaW5lIG51bWJlcgpAQCAtOTEzLDcgKzkyNyw3IEBAIGNsYXNzIFN0eWxlQ2hlY2tlcihv
YmplY3QpOgogICAgICAgICAgICAgICAgICMgRklYTUU6IE1ha2Ugc3VyZSBlcnJvcnMgaGF2aW5n
IGxpbmUgbnVtYmVyIHplcm8gYXJlCiAgICAgICAgICAgICAgICAgIyAgICAgICAgbG9nZ2VkIC0t
IGxpa2UgY2FycmlhZ2UtcmV0dXJuIGVycm9ycy4KICAgICAgICAgICAgICAgICBpZiBsaW5lX251
bWJlciBpbiBsaW5lX251bWJlcnM6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9z
dHlsZV9lcnJvcihmaWxlX3BhdGgsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwg
bWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yKGxpbmVfbnVt
YmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSkKIAotICAgICAgICAgICAgc2VsZi5j
aGVja19maWxlKGZpbGVfcGF0aCwgaGFuZGxlX3N0eWxlX2Vycm9yPWVycm9yX2Zvcl9wYXRjaCkK
KyAgICAgICAgICAgIHNlbGYuY2hlY2tfZmlsZShmaWxlX3BhdGgsIGhhbmRsZV9wYXRjaF9zdHls
ZV9lcnJvcikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDI4OTA0YTkuLjc1MWFhZDYgMTAwNzU1Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3Qu
cHkKQEAgLTU0OSwxMyArNTQ5LDE1IEBAIGNsYXNzIFN0eWxlQ2hlY2tlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogCiAgICAgZGVmIHdyaXRlX3NhbXBsZV9lcnJvcihzZWxmLCBzdHlsZV9jaGVj
a2VyLCBlcnJvcl9jb25maWRlbmNlKToKICAgICAgICAgIiIiV3JpdGUgYW4gZXJyb3IgdG8gdGhl
IGdpdmVuIHN0eWxlIGNoZWNrZXIuIiIiCi0gICAgICAgIHN0eWxlX2NoZWNrZXIuX2hhbmRsZV9z
dHlsZV9lcnJvcihmaWxlbmFtZT0iZmlsZW5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZV9udW1iZXI9MSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5PSJjYXRlZ29yeSIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNlPWVycm9yX2NvbmZpZGVuY2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJtZXNzYWdl
IikKKyAgICAgICAgaGFuZGxlX3N0eWxlX2Vycm9yID0gKAorICAgICAgICAgICAgc3R5bGVfY2hl
Y2tlci5fZGVmYXVsdF9zdHlsZV9lcnJvcl9oYW5kbGVyKCJmaWxlbmFtZSIpKQogCi0gICAgZGVm
IHRlc3RfaGFuZGxlX3N0eWxlX2Vycm9yKHNlbGYpOgorICAgICAgICBoYW5kbGVfc3R5bGVfZXJy
b3IobGluZV9udW1iZXI9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5PSJj
YXRlZ29yeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWRlbmNlPWVycm9yX2Nv
bmZpZGVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJtZXNzYWdlIikK
KworICAgIGRlZiB0ZXN0X2RlZmF1bHRfc3R5bGVfZXJyb3JfaGFuZGxlcihzZWxmKToKICAgICAg
ICAgIiIiVGVzdCBfaGFuZGxlX3N0eWxlX2Vycm9yKCkgZnVuY3Rpb24uIiIiCiAgICAgICAgIG9w
dGlvbnMgPSBQcm9jZXNzb3JPcHRpb25zKG91dHB1dF9mb3JtYXQ9ImVtYWNzIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zaXR5PTMpCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NwcF9zdHlsZS5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlLnB5CmluZGV4IDJjMzllMWEuLjk1MzYw
ZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0
eWxlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxl
LnB5CkBAIC0yOTQsNyArMjk0LDcgQEAgY2xhc3MgX0Z1bmN0aW9uU3RhdGUob2JqZWN0KToKICAg
ICAgICAgICAgICMgNTAgPT4gMCwgMTAwID0+IDEsIDIwMCA9PiAyLCA0MDAgPT4gMywgODAwID0+
IDQsIDE2MDAgPT4gNSwgLi4uCiAgICAgICAgICAgICBpZiBlcnJvcl9sZXZlbCA+IDU6CiAgICAg
ICAgICAgICAgICAgZXJyb3JfbGV2ZWwgPSA1Ci0gICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwg
bGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9mbl9zaXplJywgZXJyb3JfbGV2ZWwsCisgICAgICAg
ICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L2ZuX3NpemUnLCBlcnJvcl9sZXZl
bCwKICAgICAgICAgICAgICAgICAgICdTbWFsbCBhbmQgZm9jdXNlZCBmdW5jdGlvbnMgYXJlIHBy
ZWZlcnJlZDonCiAgICAgICAgICAgICAgICAgICAnICVzIGhhcyAlZCBub24tY29tbWVudCBsaW5l
cycKICAgICAgICAgICAgICAgICAgICcgKGVycm9yIHRyaWdnZXJlZCBieSBleGNlZWRpbmcgJWQg
bGluZXMpLicgICUgKApAQCAtNDcyLDcgKzQ3Miw3IEBAIGRlZiByZW1vdmVfbXVsdGlfbGluZV9j
b21tZW50cyhmaWxlbmFtZSwgbGluZXMsIGVycm9yKToKICAgICAgICAgICAgIHJldHVybgogICAg
ICAgICBsaW5lX2luZGV4X2VuZCA9IGZpbmRfbmV4dF9tdWx0aV9saW5lX2NvbW1lbnRfZW5kKGxp
bmVzLCBsaW5lX2luZGV4X2JlZ2luKQogICAgICAgICBpZiBsaW5lX2luZGV4X2VuZCA+PSBsZW4o
bGluZXMpOgotICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfaW5kZXhfYmVnaW4gKyAx
LCAncmVhZGFiaWxpdHkvbXVsdGlsaW5lX2NvbW1lbnQnLCA1LAorICAgICAgICAgICAgZXJyb3Io
bGluZV9pbmRleF9iZWdpbiArIDEsICdyZWFkYWJpbGl0eS9tdWx0aWxpbmVfY29tbWVudCcsIDUs
CiAgICAgICAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgZW5kIG9mIG11bHRpLWxpbmUgY29t
bWVudCcpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgcmVtb3ZlX211bHRpX2xpbmVfY29t
bWVudHNfZnJvbV9yYW5nZShsaW5lcywgbGluZV9pbmRleF9iZWdpbiwgbGluZV9pbmRleF9lbmQg
KyAxKQpAQCAtNTkxLDcgKzU5MSw3IEBAIGRlZiBjaGVja19mb3JfY29weXJpZ2h0KGZpbGVuYW1l
LCBsaW5lcywgZXJyb3IpOgogICAgICAgICBpZiByZS5zZWFyY2gocidDb3B5cmlnaHQnLCBsaW5l
c1tsaW5lXSwgcmUuSSk6CiAgICAgICAgICAgICBicmVhawogICAgIGVsc2U6ICAgICAgICAgICAg
ICAgICAgICAgICAjIG1lYW5zIG5vIGNvcHlyaWdodCBsaW5lIHdhcyBmb3VuZAotICAgICAgICBl
cnJvcihmaWxlbmFtZSwgMCwgJ2xlZ2FsL2NvcHlyaWdodCcsIDUsCisgICAgICAgIGVycm9yKDAs
ICdsZWdhbC9jb3B5cmlnaHQnLCA1LAogICAgICAgICAgICAgICAnTm8gY29weXJpZ2h0IG1lc3Nh
Z2UgZm91bmQuICAnCiAgICAgICAgICAgICAgICdZb3Ugc2hvdWxkIGhhdmUgYSBsaW5lOiAiQ29w
eXJpZ2h0IFt5ZWFyXSA8Q29weXJpZ2h0IE93bmVyPiInKQogCkBAIC02NDIsMTQgKzY0MiwxNCBA
QCBkZWYgY2hlY2tfZm9yX2hlYWRlcl9ndWFyZChmaWxlbmFtZSwgbGluZXMsIGVycm9yKToKICAg
ICAgICAgICAgICAgICBicmVhawogCiAgICAgaWYgbm90IGlmbmRlZiBvciBub3QgZGVmaW5lIG9y
IGlmbmRlZiAhPSBkZWZpbmU6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCAwLCAnYnVpbGQvaGVh
ZGVyX2d1YXJkJywgNSwKKyAgICAgICAgZXJyb3IoMCwgJ2J1aWxkL2hlYWRlcl9ndWFyZCcsIDUs
CiAgICAgICAgICAgICAgICdObyAjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZCwgc3VnZ2VzdGVk
IENQUCB2YXJpYWJsZSBpczogJXMnICUKICAgICAgICAgICAgICAgY3BwdmFyKQogICAgICAgICBy
ZXR1cm4KIAogICAgICMgVGhlIGd1YXJkIHNob3VsZCBiZSBGaWxlX2guCiAgICAgaWYgaWZuZGVm
ICE9IGNwcHZhcjoKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGlmbmRlZl9saW5lX251bWJlciwg
J2J1aWxkL2hlYWRlcl9ndWFyZCcsIDUsCisgICAgICAgIGVycm9yKGlmbmRlZl9saW5lX251bWJl
ciwgJ2J1aWxkL2hlYWRlcl9ndWFyZCcsIDUsCiAgICAgICAgICAgICAgICcjaWZuZGVmIGhlYWRl
ciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVzJyAlIGNwcHZhcikKIAogCkBA
IC02NjgsNyArNjY4LDcgQEAgZGVmIGNoZWNrX2Zvcl91bmljb2RlX3JlcGxhY2VtZW50X2NoYXJh
Y3RlcnMoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcik6CiAgICAgIiIiCiAgICAgZm9yIGxpbmVfbnVt
YmVyLCBsaW5lIGluIGVudW1lcmF0ZShsaW5lcyk6CiAgICAgICAgIGlmIHUnXHVmZmZkJyBpbiBs
aW5lOgotICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncmVhZGFiaWxp
dHkvdXRmOCcsIDUsCisgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5
L3V0ZjgnLCA1LAogICAgICAgICAgICAgICAgICAgJ0xpbmUgY29udGFpbnMgaW52YWxpZCBVVEYt
OCAob3IgVW5pY29kZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIpLicpCiAKIApAQCAtNjg2LDcgKzY4
Niw3IEBAIGRlZiBjaGVja19mb3JfbmV3X2xpbmVfYXRfZW9mKGZpbGVuYW1lLCBsaW5lcywgZXJy
b3IpOgogICAgICMgVG8gdmVyaWZ5IHRoYXQgdGhlIGZpbGUgZW5kcyBpbiBcbiwgd2UganVzdCBo
YXZlIHRvIG1ha2Ugc3VyZSB0aGUKICAgICAjIGxhc3QtYnV0LXR3byBlbGVtZW50IG9mIGxpbmVz
KCkgZXhpc3RzIGFuZCBpcyBlbXB0eS4KICAgICBpZiBsZW4obGluZXMpIDwgMyBvciBsaW5lc1st
Ml06Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsZW4obGluZXMpIC0gMiwgJ3doaXRlc3BhY2Uv
ZW5kaW5nX25ld2xpbmUnLCA1LAorICAgICAgICBlcnJvcihsZW4obGluZXMpIC0gMiwgJ3doaXRl
c3BhY2UvZW5kaW5nX25ld2xpbmUnLCA1LAogICAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQg
YSBuZXdsaW5lIGNoYXJhY3RlciBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlLicpCiAKIApAQCAtNzE0
LDcgKzcxNCw3IEBAIGRlZiBjaGVja19mb3JfbXVsdGlsaW5lX2NvbW1lbnRzX2FuZF9zdHJpbmdz
KGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsCiAgICAgbGluZSA9IGxpbmUucmVw
bGFjZSgnXFxcXCcsICcnKQogCiAgICAgaWYgbGluZS5jb3VudCgnLyonKSA+IGxpbmUuY291bnQo
JyovJyk6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5
L211bHRpbGluZV9jb21tZW50JywgNSwKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFk
YWJpbGl0eS9tdWx0aWxpbmVfY29tbWVudCcsIDUsCiAgICAgICAgICAgICAgICdDb21wbGV4IG11
bHRpLWxpbmUgLyouLi4qLy1zdHlsZSBjb21tZW50IGZvdW5kLiAnCiAgICAgICAgICAgICAgICdM
aW50IG1heSBnaXZlIGJvZ3VzIHdhcm5pbmdzLiAgJwogICAgICAgICAgICAgICAnQ29uc2lkZXIg
cmVwbGFjaW5nIHRoZXNlIHdpdGggLy8tc3R5bGUgY29tbWVudHMsICcKQEAgLTcyMiw3ICs3MjIs
NyBAQCBkZWYgY2hlY2tfZm9yX211bHRpbGluZV9jb21tZW50c19hbmRfc3RyaW5ncyhmaWxlbmFt
ZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLAogICAgICAgICAgICAgICAnb3Igd2l0aCBtb3Jl
IGNsZWFybHkgc3RydWN0dXJlZCBtdWx0aS1saW5lIGNvbW1lbnRzLicpCiAKICAgICBpZiAobGlu
ZS5jb3VudCgnIicpIC0gbGluZS5jb3VudCgnXFwiJykpICUgMjoKLSAgICAgICAgZXJyb3IoZmls
ZW5hbWUsIGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvbXVsdGlsaW5lX3N0cmluZycsIDUsCisg
ICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvbXVsdGlsaW5lX3N0cmluZycs
IDUsCiAgICAgICAgICAgICAgICdNdWx0aS1saW5lIHN0cmluZyAoIi4uLiIpIGZvdW5kLiAgVGhp
cyBsaW50IHNjcmlwdCBkb2VzblwndCAnCiAgICAgICAgICAgICAgICdkbyB3ZWxsIHdpdGggc3Vj
aCBzdHJpbmdzLCBhbmQgbWF5IGdpdmUgYm9ndXMgd2FybmluZ3MuICBUaGV5XCdyZSAnCiAgICAg
ICAgICAgICAgICd1Z2x5IGFuZCB1bm5lY2Vzc2FyeSwgYW5kIHlvdSBzaG91bGQgdXNlIGNvbmNh
dGVuYXRpb24gaW5zdGVhZCIuJykKQEAgLTc2Niw3ICs3NjYsNyBAQCBkZWYgY2hlY2tfcG9zaXhf
dGhyZWFkaW5nKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKICAg
ICAgICAgIyBDb21wYXJpc29ucyBtYWRlIGV4cGxpY2l0IGZvciBjbGFyaXR5IC0tIHB5bGludDog
ZGlzYWJsZS1tc2c9QzY0MDMKICAgICAgICAgaWYgaW5kZXggPj0gMCBhbmQgKGluZGV4ID09IDAg
b3IgKG5vdCBsaW5lW2luZGV4IC0gMV0uaXNhbG51bSgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbmQgbGluZVtpbmRleCAtIDFdIG5vdCBpbiAoJ18nLCAnLics
ICc+JykpKToKLSAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3J1bnRp
bWUvdGhyZWFkc2FmZV9mbicsIDIsCisgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1
bnRpbWUvdGhyZWFkc2FmZV9mbicsIDIsCiAgICAgICAgICAgICAgICAgICAnQ29uc2lkZXIgdXNp
bmcgJyArIG11bHRpdGhyZWFkX3NhZmVfZnVuY3Rpb24gKwogICAgICAgICAgICAgICAgICAgJy4u
LikgaW5zdGVhZCBvZiAnICsgc2luZ2xlX3RocmVhZF9mdW5jdGlvbiArCiAgICAgICAgICAgICAg
ICAgICAnLi4uKSBmb3IgaW1wcm92ZWQgdGhyZWFkIHNhZmV0eS4nKQpAQCAtNzk2LDcgKzc5Niw3
IEBAIGRlZiBjaGVja19pbnZhbGlkX2luY3JlbWVudChmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxp
bmVfbnVtYmVyLCBlcnJvcik6CiAgICAgIiIiCiAgICAgbGluZSA9IGNsZWFuX2xpbmVzLmVsaWRl
ZFtsaW5lX251bWJlcl0KICAgICBpZiBfUkVfUEFUVEVSTl9JTlZBTElEX0lOQ1JFTUVOVC5tYXRj
aChsaW5lKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGltZS9p
bnZhbGlkX2luY3JlbWVudCcsIDUsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncnVudGlt
ZS9pbnZhbGlkX2luY3JlbWVudCcsIDUsCiAgICAgICAgICAgICAgICdDaGFuZ2luZyBwb2ludGVy
IGluc3RlYWQgb2YgdmFsdWUgKG9yIHVudXNlZCB2YWx1ZSBvZiBvcGVyYXRvciopLicpCiAKIApA
QCAtODM3LDcgKzgzNyw3IEBAIGNsYXNzIF9DbGFzc1N0YXRlKG9iamVjdCk6CiAgICAgICAgICAg
ICAjIE5vdGU6IFRoaXMgdGVzdCBjYW4gcmVzdWx0IGluIGZhbHNlIHBvc2l0aXZlcyBpZiAjaWZk
ZWYgY29uc3RydWN0cwogICAgICAgICAgICAgIyBnZXQgaW4gdGhlIHdheSBvZiBicmFjZSBtYXRj
aGluZy4gU2VlIHRoZSB0ZXN0QnVpbGRDbGFzcyB0ZXN0IGluCiAgICAgICAgICAgICAjIGNwcF9z
dHlsZV91bml0dGVzdC5weSBmb3IgYW4gZXhhbXBsZSBvZiB0aGlzLgotICAgICAgICAgICAgZXJy
b3IoZmlsZW5hbWUsIHNlbGYuY2xhc3NpbmZvX3N0YWNrWzBdLmxpbmVfbnVtYmVyLCAnYnVpbGQv
Y2xhc3MnLCA1LAorICAgICAgICAgICAgZXJyb3Ioc2VsZi5jbGFzc2luZm9fc3RhY2tbMF0ubGlu
ZV9udW1iZXIsICdidWlsZC9jbGFzcycsIDUsCiAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRv
IGZpbmQgY29tcGxldGUgZGVjbGFyYXRpb24gb2YgY2xhc3MgJXMnICUKICAgICAgICAgICAgICAg
ICAgIHNlbGYuY2xhc3NpbmZvX3N0YWNrWzBdLm5hbWUpCiAKQEAgLTg4NiwxOCArODg2LDE4IEBA
IGRlZiBjaGVja19mb3Jfbm9uX3N0YW5kYXJkX2NvbnN0cnVjdHMoZmlsZW5hbWUsIGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwKICAgICBsaW5lID0gY2xlYW5fbGluZXMubGluZXNbbGluZV9udW1i
ZXJdCiAKICAgICBpZiBzZWFyY2gocidwcmludGZccypcKC4qIi4qJVstKyBdP1xkKnEnLCBsaW5l
KToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGltZS9wcmludGZf
Zm9ybWF0JywgMywKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL3ByaW50Zl9m
b3JtYXQnLCAzLAogICAgICAgICAgICAgICAnJXEgaW4gZm9ybWF0IHN0cmluZ3MgaXMgZGVwcmVj
YXRlZC4gIFVzZSAlbGwgaW5zdGVhZC4nKQogCiAgICAgaWYgc2VhcmNoKHIncHJpbnRmXHMqXCgu
KiIuKiVcZCtcJCcsIGxpbmUpOgotICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIs
ICdydW50aW1lL3ByaW50Zl9mb3JtYXQnLCAyLAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwg
J3J1bnRpbWUvcHJpbnRmX2Zvcm1hdCcsIDIsCiAgICAgICAgICAgICAgICclTiQgZm9ybWF0cyBh
cmUgdW5jb252ZW50aW9uYWwuICBUcnkgcmV3cml0aW5nIHRvIGF2b2lkIHRoZW0uJykKIAogICAg
ICMgUmVtb3ZlIGVzY2FwZWQgYmFja3NsYXNoZXMgYmVmb3JlIGxvb2tpbmcgZm9yIHVuZGVmaW5l
ZCBlc2NhcGVzLgogICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoJ1xcXFwnLCAnJykKIAogICAgIGlm
IHNlYXJjaChyJygifFwnKS4qXFwoJXxcW3xcKHx7KScsIGxpbmUpOgotICAgICAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICdidWlsZC9wcmludGZfZm9ybWF0JywgMywKKyAgICAgICAg
ZXJyb3IobGluZV9udW1iZXIsICdidWlsZC9wcmludGZfZm9ybWF0JywgMywKICAgICAgICAgICAg
ICAgJyUsIFssICgsIGFuZCB7IGFyZSB1bmRlZmluZWQgY2hhcmFjdGVyIGVzY2FwZXMuICBVbmVz
Y2FwZSB0aGVtLicpCiAKICAgICAjIEZvciB0aGUgcmVzdCwgd29yayB3aXRoIGJvdGggY29tbWVu
dHMgYW5kIHN0cmluZ3MgcmVtb3ZlZC4KQEAgLTkwOCwxOSArOTA4LDE5IEBAIGRlZiBjaGVja19m
b3Jfbm9uX3N0YW5kYXJkX2NvbnN0cnVjdHMoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251
bWJlciwKICAgICAgICAgICAgICAgcid8c2NoYXJ8dT9pbnQ4fHU/aW50MTZ8dT9pbnQzMnx1P2lu
dDY0KScKICAgICAgICAgICAgICAgcidccysoYXV0b3xyZWdpc3RlcnxzdGF0aWN8ZXh0ZXJufHR5
cGVkZWYpXGInLAogICAgICAgICAgICAgICBsaW5lKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUs
IGxpbmVfbnVtYmVyLCAnYnVpbGQvc3RvcmFnZV9jbGFzcycsIDUsCisgICAgICAgIGVycm9yKGxp
bmVfbnVtYmVyLCAnYnVpbGQvc3RvcmFnZV9jbGFzcycsIDUsCiAgICAgICAgICAgICAgICdTdG9y
YWdlIGNsYXNzIChzdGF0aWMsIGV4dGVybiwgdHlwZWRlZiwgZXRjKSBzaG91bGQgYmUgZmlyc3Qu
JykKIAogICAgIGlmIG1hdGNoKHInXHMqI1xzKmVuZGlmXHMqW14vXHNdKycsIGxpbmUpOgotICAg
ICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdidWlsZC9lbmRpZl9jb21tZW50Jywg
NSwKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdidWlsZC9lbmRpZl9jb21tZW50JywgNSwK
ICAgICAgICAgICAgICAgJ1VuY29tbWVudGVkIHRleHQgYWZ0ZXIgI2VuZGlmIGlzIG5vbi1zdGFu
ZGFyZC4gIFVzZSBhIGNvbW1lbnQuJykKIAogICAgIGlmIG1hdGNoKHInXHMqY2xhc3NccysoXHcr
XHMqOjpccyopK1x3K1xzKjsnLCBsaW5lKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVf
bnVtYmVyLCAnYnVpbGQvZm9yd2FyZF9kZWNsJywgNSwKKyAgICAgICAgZXJyb3IobGluZV9udW1i
ZXIsICdidWlsZC9mb3J3YXJkX2RlY2wnLCA1LAogICAgICAgICAgICAgICAnSW5uZXItc3R5bGUg
Zm9yd2FyZCBkZWNsYXJhdGlvbnMgYXJlIGludmFsaWQuICBSZW1vdmUgdGhpcyBsaW5lLicpCiAK
ICAgICBpZiBzZWFyY2gocicoXHcrfFsrLV0/XGQrKFwuXGQqKT8pXHMqKDx8PilcPz0/XHMqKFx3
K3xbKy1dP1xkKykoXC5cZCopPycsIGxpbmUpOgotICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGlu
ZV9udW1iZXIsICdidWlsZC9kZXByZWNhdGVkJywgMywKKyAgICAgICAgZXJyb3IobGluZV9udW1i
ZXIsICdidWlsZC9kZXByZWNhdGVkJywgMywKICAgICAgICAgICAgICAgJz4/IGFuZCA8PyAobWF4
IGFuZCBtaW4pIG9wZXJhdG9ycyBhcmUgbm9uLXN0YW5kYXJkIGFuZCBkZXByZWNhdGVkLicpCiAK
ICAgICAjIFRyYWNrIGNsYXNzIGVudHJ5IGFuZCBleGl0LCBhbmQgYXR0ZW1wdCB0byBmaW5kIGNh
c2VzIHdpdGhpbiB0aGUKQEAgLTk3MCw3ICs5NzAsNyBAQCBkZWYgY2hlY2tfZm9yX25vbl9zdGFu
ZGFyZF9jb25zdHJ1Y3RzKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsCiAgICAg
ICAgIGFuZCBhcmdzLmdyb3VwKDEpICE9ICd2b2lkJwogICAgICAgICBhbmQgbm90IG1hdGNoKHIn
KGNvbnN0XHMrKT8lc1xzKiYnICUgcmUuZXNjYXBlKGJhc2VfY2xhc3NuYW1lKSwKICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzLmdyb3VwKDEpLnN0cmlwKCkpKToKLSAgICAgICAgZXJyb3IoZmls
ZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGltZS9leHBsaWNpdCcsIDUsCisgICAgICAgIGVycm9y
KGxpbmVfbnVtYmVyLCAncnVudGltZS9leHBsaWNpdCcsIDUsCiAgICAgICAgICAgICAgICdTaW5n
bGUtYXJndW1lbnQgY29uc3RydWN0b3JzIHNob3VsZCBiZSBtYXJrZWQgZXhwbGljaXQuJykKIAog
ICAgICMgTG9vayBmb3IgbWV0aG9kcyBkZWNsYXJlZCB2aXJ0dWFsLgpAQCAtOTk1LDcgKzk5NSw3
IEBAIGRlZiBjaGVja19mb3Jfbm9uX3N0YW5kYXJkX2NvbnN0cnVjdHMoZmlsZW5hbWUsIGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwKICAgICAgICAgaWYgKChjbGFzc2luZm8udmlydHVhbF9tZXRo
b2RfbGluZV9udW1iZXIgaXMgbm90IE5vbmUpCiAgICAgICAgICAgICBhbmQgKG5vdCBjbGFzc2lu
Zm8uaGFzX3ZpcnR1YWxfZGVzdHJ1Y3RvcikKICAgICAgICAgICAgIGFuZCAobm90IGNsYXNzaW5m
by5pc19kZXJpdmVkKSk6ICAjIE9ubHkgd2FybiBmb3IgYmFzZSBjbGFzc2VzCi0gICAgICAgICAg
ICBlcnJvcihmaWxlbmFtZSwgY2xhc3NpbmZvLmxpbmVfbnVtYmVyLCAncnVudGltZS92aXJ0dWFs
JywgNCwKKyAgICAgICAgICAgIGVycm9yKGNsYXNzaW5mby5saW5lX251bWJlciwgJ3J1bnRpbWUv
dmlydHVhbCcsIDQsCiAgICAgICAgICAgICAgICAgICAnVGhlIGNsYXNzICVzIHByb2JhYmx5IG5l
ZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yIGR1ZSB0byAnCiAgICAgICAgICAgICAgICAgICAnaGF2
aW5nIHZpcnR1YWwgbWV0aG9kKHMpLCBvbmUgZGVjbGFyZWQgYXQgbGluZSAlZC4nCiAgICAgICAg
ICAgICAgICAgICAlIChjbGFzc2luZm8ubmFtZSwgY2xhc3NpbmZvLnZpcnR1YWxfbWV0aG9kX2xp
bmVfbnVtYmVyKSkKQEAgLTEwNDgsMTkgKzEwNDgsMTkgQEAgZGVmIGNoZWNrX3NwYWNpbmdfZm9y
X2Z1bmN0aW9uX2NhbGwoZmlsZW5hbWUsIGxpbmUsIGxpbmVfbnVtYmVyLCBlcnJvcik6CiAgICAg
ICAgICMgSWdub3JlIHBvaW50ZXJzL3JlZmVyZW5jZXMgdG8gYXJyYXlzLgogICAgICAgICBhbmQg
bm90IHNlYXJjaChyJyBcKFteKV0rXClcW1teXF1dK1xdJywgZnVuY3Rpb25fY2FsbCkpOgogICAg
ICAgICBpZiBzZWFyY2gocidcd1xzKlwoWyBcdF0oPyFccypcXCQpJywgZnVuY3Rpb25fY2FsbCk6
ICAgICAgIyBhICggdXNlZCBmb3IgYSBmbiBjYWxsCi0gICAgICAgICAgICBlcnJvcihmaWxlbmFt
ZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3BhcmVucycsIDQsCisgICAgICAgICAgICBlcnJv
cihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgNCwKICAgICAgICAgICAgICAgICAg
ICdFeHRyYSBzcGFjZSBhZnRlciAoIGluIGZ1bmN0aW9uIGNhbGwnKQogICAgICAgICBlbGlmIHNl
YXJjaChyJ1woWyBcdF0rKD8hKFxzKlxcKXxcKCknLCBmdW5jdGlvbl9jYWxsKToKLSAgICAgICAg
ICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgMiwK
KyAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9wYXJlbnMnLCAyLAog
ICAgICAgICAgICAgICAgICAgJ0V4dHJhIHNwYWNlIGFmdGVyICgnKQogICAgICAgICBpZiAoc2Vh
cmNoKHInXHdccytcKCcsIGZ1bmN0aW9uX2NhbGwpCiAgICAgICAgICAgICBhbmQgbm90IHNlYXJj
aChyJyNccypkZWZpbmV8dHlwZWRlZicsIGZ1bmN0aW9uX2NhbGwpKToKLSAgICAgICAgICAgIGVy
cm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgNCwKKyAgICAg
ICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9wYXJlbnMnLCA0LAogICAgICAg
ICAgICAgICAgICAgJ0V4dHJhIHNwYWNlIGJlZm9yZSAoIGluIGZ1bmN0aW9uIGNhbGwnKQogICAg
ICAgICAjIElmIHRoZSApIGlzIGZvbGxvd2VkIG9ubHkgYnkgYSBuZXdsaW5lIG9yIGEgeyArIG5l
d2xpbmUsIGFzc3VtZSBpdCdzCiAgICAgICAgICMgcGFydCBvZiBhIGNvbnRyb2wgc3RhdGVtZW50
IChpZi93aGlsZS9ldGMpLCBhbmQgZG9uJ3QgY29tcGxhaW4KICAgICAgICAgaWYgc2VhcmNoKHIn
W14pXHNdXHMrXCkoPyFccyokfHtccyokKScsIGZ1bmN0aW9uX2NhbGwpOgotICAgICAgICAgICAg
ZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9wYXJlbnMnLCAyLAorICAg
ICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3BhcmVucycsIDIsCiAgICAg
ICAgICAgICAgICAgICAnRXh0cmEgc3BhY2UgYmVmb3JlICknKQogCiAKQEAgLTExMzksNyArMTEz
OSw3IEBAIGRlZiBjaGVja19mb3JfZnVuY3Rpb25fbGVuZ3RocyhmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmVfbnVtYmVyLAogICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGlmIG5vdCBi
b2R5X2ZvdW5kOgogICAgICAgICAgICAgIyBObyBib2R5IGZvciB0aGUgZnVuY3Rpb24gKG9yIGV2
aWRlbmNlIG9mIGEgbm9uLWZ1bmN0aW9uKSB3YXMgZm91bmQuCi0gICAgICAgICAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9mbl9zaXplJywgNSwKKyAgICAgICAg
ICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvZm5fc2l6ZScsIDUsCiAgICAgICAg
ICAgICAgICAgICAnTGludCBmYWlsZWQgdG8gZmluZCBzdGFydCBvZiBmdW5jdGlvbiBib2R5Licp
CiAgICAgZWxpZiBtYXRjaChyJ15cfVxzKiQnLCBsaW5lKTogICMgZnVuY3Rpb24gZW5kCiAgICAg
ICAgIGlmIG5vdCBzZWFyY2gocidcYk5PTElOVFxiJywgcmF3X2xpbmUpOgpAQCAtMTIxMCw3ICsx
MjEwLDcgQEAgZGVmIGNoZWNrX3NwYWNpbmcoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251
bWJlciwgZXJyb3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBtYXRjaChyJyB7
NH06JywgcHJldmlvdXNfbGluZSkpCiAKICAgICAgICAgICAgIGlmIG5vdCBleGNlcHRpb246Ci0g
ICAgICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9i
bGFua19saW5lJywgMiwKKyAgICAgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRl
c3BhY2UvYmxhbmtfbGluZScsIDIsCiAgICAgICAgICAgICAgICAgICAgICAgJ0JsYW5rIGxpbmUg
YXQgdGhlIHN0YXJ0IG9mIGEgY29kZSBibG9jay4gIElzIHRoaXMgbmVlZGVkPycpCiAgICAgICAg
ICMgVGhpcyBkb2Vzbid0IGlnbm9yZSB3aGl0ZXNwYWNlIGF0IHRoZSBlbmQgb2YgYSBuYW1lc3Bh
Y2UgYmxvY2sKICAgICAgICAgIyBiZWNhdXNlIHRoYXQgaXMgdG9vIGhhcmQgd2l0aG91dCBwYWly
aW5nIG9wZW4vY2xvc2UgYnJhY2VzOwpAQCAtMTIzMSw3ICsxMjMxLDcgQEAgZGVmIGNoZWNrX3Nw
YWNpbmcoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgICAg
ICAgICAgICAgIGFuZCBtYXRjaChyJ1xzKn0nLCBuZXh0X2xpbmUpCiAgICAgICAgICAgICAgICAg
YW5kIG5leHRfbGluZS5maW5kKCduYW1lc3BhY2UnKSA9PSAtMQogICAgICAgICAgICAgICAgIGFu
ZCBuZXh0X2xpbmUuZmluZCgnfSBlbHNlICcpID09IC0xKToKLSAgICAgICAgICAgICAgICBlcnJv
cihmaWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2JsYW5rX2xpbmUnLCAzLAorICAg
ICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9ibGFua19saW5lJywg
MywKICAgICAgICAgICAgICAgICAgICAgICAnQmxhbmsgbGluZSBhdCB0aGUgZW5kIG9mIGEgY29k
ZSBibG9jay4gIElzIHRoaXMgbmVlZGVkPycpCiAKICAgICAjIE5leHQsIHdlIGNvbXBsYWluIGlm
IHRoZXJlJ3MgYSBjb21tZW50IHRvbyBuZWFyIHRoZSB0ZXh0CkBAIC0xMjQ2LDcgKzEyNDYsNyBA
QCBkZWYgY2hlY2tfc3BhY2luZyhmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBl
cnJvcik6CiAgICAgICAgICAgICAgICAgYW5kICgobGluZVtjb21tZW50X3Bvc2l0aW9uIC0gMV0g
bm90IGluIHN0cmluZy53aGl0ZXNwYWNlKQogICAgICAgICAgICAgICAgICAgICAgb3IgKGNvbW1l
bnRfcG9zaXRpb24gPj0gMgogICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsaW5lW2NvbW1l
bnRfcG9zaXRpb24gLSAyXSBpbiBzdHJpbmcud2hpdGVzcGFjZSkpKSk6Ci0gICAgICAgICAgICAg
ICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9jb21tZW50cycsIDUs
CisgICAgICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2NvbW1lbnRz
JywgNSwKICAgICAgICAgICAgICAgICAgICAgICAnT25lIHNwYWNlIGJlZm9yZSBlbmQgb2YgbGlu
ZSBjb21tZW50cycpCiAgICAgICAgICAgICAjIFRoZXJlIHNob3VsZCBhbHdheXMgYmUgYSBzcGFj
ZSBiZXR3ZWVuIHRoZSAvLyBhbmQgdGhlIGNvbW1lbnQKICAgICAgICAgICAgIGNvbW1lbnRlbmQg
PSBjb21tZW50X3Bvc2l0aW9uICsgMgpAQCAtMTI1OSw3ICsxMjU5LDcgQEAgZGVmIGNoZWNrX3Nw
YWNpbmcoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgICAg
ICAgICAgICAgIG1hdGNoZWQgPSAoc2VhcmNoKHInWz0vLV17NCx9XHMqJCcsIGxpbmVbY29tbWVu
dGVuZDpdKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Igc2VhcmNoKHInXi8rICcsIGxp
bmVbY29tbWVudGVuZDpdKSkKICAgICAgICAgICAgICAgICBpZiBub3QgbWF0Y2hlZDoKLSAgICAg
ICAgICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9j
b21tZW50cycsIDQsCisgICAgICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hp
dGVzcGFjZS9jb21tZW50cycsIDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdTaG91bGQg
aGF2ZSBhIHNwYWNlIGJldHdlZW4gLy8gYW5kIGNvbW1lbnQnKQogCiAgICAgbGluZSA9IGNsZWFu
X2xpbmVzLmVsaWRlZFtsaW5lX251bWJlcl0gICMgZ2V0IHJpZCBvZiBjb21tZW50cyBhbmQgc3Ry
aW5ncwpAQCAtMTI3MSw3ICsxMjcxLDcgQEAgZGVmIGNoZWNrX3NwYWNpbmcoZmlsZW5hbWUsIGNs
ZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgIGlmIG1hdGNoKHInXHMqI1xzKig/
OmluY2x1ZGV8aW1wb3J0KScsIGxpbmUpOgogICAgICAgICByZXR1cm4KICAgICBpZiBzZWFyY2go
cidbXHcuXT1bXHcuXScsIGxpbmUpOgotICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1i
ZXIsICd3aGl0ZXNwYWNlL29wZXJhdG9ycycsIDQsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVy
LCAnd2hpdGVzcGFjZS9vcGVyYXRvcnMnLCA0LAogICAgICAgICAgICAgICAnTWlzc2luZyBzcGFj
ZXMgYXJvdW5kID0nKQogCiAgICAgIyBGSVhNRTogSXQncyBub3Qgb2sgdG8gaGF2ZSBzcGFjZXMg
YXJvdW5kIGJpbmFyeSBvcGVyYXRvcnMgbGlrZSAuCkBAIC0xMjg5LDE5ICsxMjg5LDE5IEBAIGRl
ZiBjaGVja19zcGFjaW5nKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9y
KToKICAgICAgICAgaWYgbm90IHNlYXJjaChyJzxbXjxdKixccyokJywgbGluZSk6ICAjIHRlbXBs
YXRlIHBhcmFtcyBzcGlsbAogICAgICAgICAgICAgbWF0Y2hlZCA9IHNlYXJjaChyJ1tePD49IVxz
XSg8KVtePD49IVxzXShbXj5dfC0+KSokJywgbGluZSkKICAgICBpZiBtYXRjaGVkOgotICAgICAg
ICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL29wZXJhdG9ycycsIDMs
CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9vcGVyYXRvcnMnLCAzLAog
ICAgICAgICAgICAgICAnTWlzc2luZyBzcGFjZXMgYXJvdW5kICVzJyAlIG1hdGNoZWQuZ3JvdXAo
MSkpCiAKICAgICAjIFRoZXJlIHNob3VsZG4ndCBiZSBzcGFjZSBhcm91bmQgdW5hcnkgb3BlcmF0
b3JzCiAgICAgbWF0Y2hlZCA9IHNlYXJjaChyJyghXHN8flxzfFtcc10tLVtccztdfFtcc11cK1wr
W1xzO10pJywgbGluZSkKICAgICBpZiBtYXRjaGVkOgotICAgICAgICBlcnJvcihmaWxlbmFtZSwg
bGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL29wZXJhdG9ycycsIDQsCisgICAgICAgIGVycm9yKGxp
bmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9vcGVyYXRvcnMnLCA0LAogICAgICAgICAgICAgICAnRXh0
cmEgc3BhY2UgZm9yIG9wZXJhdG9yICVzJyAlIG1hdGNoZWQuZ3JvdXAoMSkpCiAKICAgICAjIEEg
cGV0IHBlZXZlIG9mIG1pbmU6IG5vIHNwYWNlcyBhZnRlciBhbiBpZiwgd2hpbGUsIHN3aXRjaCwg
b3IgZm9yCiAgICAgbWF0Y2hlZCA9IHNlYXJjaChyJyAoaWZcKHxmb3JcKHxmb3JlYWNoXCh8d2hp
bGVcKHxzd2l0Y2hcKCknLCBsaW5lKQogICAgIGlmIG1hdGNoZWQ6Ci0gICAgICAgIGVycm9yKGZp
bGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgNSwKKyAgICAgICAgZXJy
b3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3BhcmVucycsIDUsCiAgICAgICAgICAgICAgICdN
aXNzaW5nIHNwYWNlIGJlZm9yZSAoIGluICVzJyAlIG1hdGNoZWQuZ3JvdXAoMSkpCiAKICAgICAj
IEZvciBpZi9mb3IvZm9yZWFjaC93aGlsZS9zd2l0Y2gsIHRoZSBsZWZ0IGFuZCByaWdodCBwYXJl
bnMgc2hvdWxkIGJlCkBAIC0xMzE2LDMwICsxMzE2LDMwIEBAIGRlZiBjaGVja19zcGFjaW5nKGZp
bGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKICAgICAgICAgICAgIGlm
IG5vdCAobWF0Y2hlZC5ncm91cCgzKSA9PSAnOycKICAgICAgICAgICAgICAgICAgICAgYW5kIGxl
bihtYXRjaGVkLmdyb3VwKDIpKSA9PSAxICsgbGVuKG1hdGNoZWQuZ3JvdXAoNCkpCiAgICAgICAg
ICAgICAgICAgICAgIG9yIG5vdCBtYXRjaGVkLmdyb3VwKDIpIGFuZCBzZWFyY2gocidcYmZvclxz
KlwoLio7IFwpJywgbGluZSkpOgotICAgICAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5l
X251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgNSwKKyAgICAgICAgICAgICAgICBlcnJvcihs
aW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywgNSwKICAgICAgICAgICAgICAgICAgICAg
ICAnTWlzbWF0Y2hpbmcgc3BhY2VzIGluc2lkZSAoKSBpbiAlcycgJSBtYXRjaGVkLmdyb3VwKDEp
KQogICAgICAgICBpZiBub3QgbGVuKG1hdGNoZWQuZ3JvdXAoMikpIGluIFswLCAxXToKLSAgICAg
ICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvcGFyZW5zJywg
NSwKKyAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9wYXJlbnMnLCA1
LAogICAgICAgICAgICAgICAgICAgJ1Nob3VsZCBoYXZlIHplcm8gb3Igb25lIHNwYWNlcyBpbnNp
ZGUgKCBhbmQgKSBpbiAlcycgJQogICAgICAgICAgICAgICAgICAgbWF0Y2hlZC5ncm91cCgxKSkK
IAogICAgICMgWW91IHNob3VsZCBhbHdheXMgaGF2ZSBhIHNwYWNlIGFmdGVyIGEgY29tbWEgKGVp
dGhlciBhcyBmbiBhcmcgb3Igb3BlcmF0b3IpCiAgICAgaWYgc2VhcmNoKHInLFteXHNdJywgbGlu
ZSk6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvY29t
bWEnLCAzLAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvY29tbWEnLCAz
LAogICAgICAgICAgICAgICAnTWlzc2luZyBzcGFjZSBhZnRlciAsJykKIAogICAgIGlmIGZpbGVu
YW1lLmVuZHN3aXRoKCcuY3BwJyk6CiAgICAgICAgICMgQysrIHNob3VsZCBoYXZlIHRoZSAmIG9y
ICogYmVzaWRlIHRoZSB0eXBlIG5vdCB0aGUgdmFyaWFibGUgbmFtZS4KICAgICAgICAgbWF0Y2hl
ZCA9IG1hdGNoKHInXHMqXHcrKD88IVxicmV0dXJuKVxzKyg/UDxwb2ludGVyX29wZXJhdG9yPlwq
fFwmKVx3KycsIGxpbmUpCiAgICAgICAgIGlmIG1hdGNoZWQ6Ci0gICAgICAgICAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2RlY2xhcmF0aW9uJywgMywKKyAgICAg
ICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9kZWNsYXJhdGlvbicsIDMsCiAg
ICAgICAgICAgICAgICAgICAnRGVjbGFyYXRpb24gaGFzIHNwYWNlIGJldHdlZW4gdHlwZSBuYW1l
IGFuZCAlcyBpbiAlcycgJSAobWF0Y2hlZC5ncm91cCgncG9pbnRlcl9vcGVyYXRvcicpLCBtYXRj
aGVkLmdyb3VwKDApLnN0cmlwKCkpKQogCiAgICAgZWxpZiBmaWxlbmFtZS5lbmRzd2l0aCgnLmMn
KToKICAgICAgICAgIyBDIFBvaW50ZXIgZGVjbGFyYXRpb24gc2hvdWxkIGhhdmUgdGhlICogYmVz
aWRlIHRoZSB2YXJpYWJsZSBub3QgdGhlIHR5cGUgbmFtZS4KICAgICAgICAgbWF0Y2hlZCA9IHNl
YXJjaChyJ15ccypcdytcKlxzK1x3KycsIGxpbmUpCiAgICAgICAgIGlmIG1hdGNoZWQ6Ci0gICAg
ICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2RlY2xhcmF0
aW9uJywgMywKKyAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9kZWNs
YXJhdGlvbicsIDMsCiAgICAgICAgICAgICAgICAgICAnRGVjbGFyYXRpb24gaGFzIHNwYWNlIGJl
dHdlZW4gKiBhbmQgdmFyaWFibGUgbmFtZSBpbiAlcycgJSBtYXRjaGVkLmdyb3VwKDApLnN0cmlw
KCkpCiAKICAgICAjIE5leHQgd2Ugd2lsbCBsb29rIGZvciBpc3N1ZXMgd2l0aCBmdW5jdGlvbiBj
YWxscy4KQEAgLTEzNDksMzkgKzEzNDksMzkgQEAgZGVmIGNoZWNrX3NwYWNpbmcoZmlsZW5hbWUs
IGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgICMgQW5kIHNpbmNlIHlvdSBz
aG91bGQgbmV2ZXIgaGF2ZSBicmFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUsIHRoaXMg
aXMKICAgICAjIGFuIGVhc3kgdGVzdC4KICAgICBpZiBzZWFyY2gocidbXiAoe117JywgbGluZSk6
Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvYnJhY2Vz
JywgNSwKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2JyYWNlcycsIDUs
CiAgICAgICAgICAgICAgICdNaXNzaW5nIHNwYWNlIGJlZm9yZSB7JykKIAogICAgICMgTWFrZSBz
dXJlICd9IGVsc2UgeycgaGFzIHNwYWNlcy4KICAgICBpZiBzZWFyY2gocid9ZWxzZScsIGxpbmUp
OgotICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2JyYWNl
cycsIDUsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9icmFjZXMnLCA1
LAogICAgICAgICAgICAgICAnTWlzc2luZyBzcGFjZSBiZWZvcmUgZWxzZScpCiAKICAgICAjIFlv
dSBzaG91bGRuJ3QgaGF2ZSBzcGFjZXMgYmVmb3JlIHlvdXIgYnJhY2tldHMsIGV4Y2VwdCBtYXli
ZSBhZnRlcgogICAgICMgJ2RlbGV0ZSBbXScgb3IgJ25ldyBjaGFyICogW10nLgogICAgIGlmIHNl
YXJjaChyJ1x3XHMrXFsnLCBsaW5lKSBhbmQgbm90IHNlYXJjaChyJ2RlbGV0ZVxzK1xbJywgbGlu
ZSk6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvYnJh
Y2VzJywgNSwKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2JyYWNlcycs
IDUsCiAgICAgICAgICAgICAgICdFeHRyYSBzcGFjZSBiZWZvcmUgWycpCiAKICAgICAjIFlvdSBz
aG91bGRuJ3QgaGF2ZSBhIHNwYWNlIGJlZm9yZSBhIHNlbWljb2xvbiBhdCB0aGUgZW5kIG9mIHRo
ZSBsaW5lLgogICAgICMgVGhlcmUncyBhIHNwZWNpYWwgY2FzZSBmb3IgImZvciIgc2luY2UgdGhl
IHN0eWxlIGd1aWRlIGFsbG93cyBzcGFjZSBiZWZvcmUKICAgICAjIHRoZSBzZW1pY29sb24gdGhl
cmUuCiAgICAgaWYgc2VhcmNoKHInOlxzKjtccyokJywgbGluZSk6Ci0gICAgICAgIGVycm9yKGZp
bGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2Uvc2VtaWNvbG9uJywgNSwKKyAgICAgICAg
ZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3NlbWljb2xvbicsIDUsCiAgICAgICAgICAg
ICAgICdTZW1pY29sb24gZGVmaW5pbmcgZW1wdHkgc3RhdGVtZW50LiBVc2UgeyB9IGluc3RlYWQu
JykKICAgICBlbGlmIHNlYXJjaChyJ15ccyo7XHMqJCcsIGxpbmUpOgotICAgICAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3NlbWljb2xvbicsIDUsCisgICAgICAg
IGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9zZW1pY29sb24nLCA1LAogICAgICAgICAg
ICAgICAnTGluZSBjb250YWlucyBvbmx5IHNlbWljb2xvbi4gSWYgdGhpcyBzaG91bGQgYmUgYW4g
ZW1wdHkgc3RhdGVtZW50LCAnCiAgICAgICAgICAgICAgICd1c2UgeyB9IGluc3RlYWQuJykKICAg
ICBlbGlmIChzZWFyY2gocidccys7XHMqJCcsIGxpbmUpIGFuZCBub3Qgc2VhcmNoKHInXGJmb3Jc
YicsIGxpbmUpKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVz
cGFjZS9zZW1pY29sb24nLCA1LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3Bh
Y2Uvc2VtaWNvbG9uJywgNSwKICAgICAgICAgICAgICAgJ0V4dHJhIHNwYWNlIGJlZm9yZSBsYXN0
IHNlbWljb2xvbi4gSWYgdGhpcyBzaG91bGQgYmUgYW4gZW1wdHkgJwogICAgICAgICAgICAgICAn
c3RhdGVtZW50LCB1c2UgeyB9IGluc3RlYWQuJykKICAgICBlbGlmIChzZWFyY2gocidcYihmb3J8
d2hpbGUpXHMqXCguKlwpXHMqO1xzKiQnLCBsaW5lKQogICAgICAgICAgIGFuZCBsaW5lLmNvdW50
KCcoJykgPT0gbGluZS5jb3VudCgnKScpCiAgICAgICAgICAgIyBBbGxvdyBkbyB7fSB3aGlsZSgp
OwogICAgICAgICAgIGFuZCBub3Qgc2VhcmNoKHInfVxzKndoaWxlJywgbGluZSkpOgotICAgICAg
ICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3NlbWljb2xvbicsIDUs
CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9zZW1pY29sb24nLCA1LAog
ICAgICAgICAgICAgICAnU2VtaWNvbG9uIGRlZmluaW5nIGVtcHR5IHN0YXRlbWVudCBmb3IgdGhp
cyBsb29wLiBVc2UgeyB9IGluc3RlYWQuJykKIAogCkBAIC0xNDMxLDcgKzE0MzEsNyBAQCBkZWYg
Y2hlY2tfbmFtZXNwYWNlX2luZGVudGF0aW9uKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9u
dW1iZXIsIGZpbGVfZXh0ZW5zaQogICAgIGlmIGN1cnJlbnRfaW5kZW50YXRpb25fbGV2ZWwgPiAw
OgogICAgICAgICAjIERvbid0IHdhcm4gYWJvdXQgYW4gaW5kZW50ZWQgbmFtZXNwYWNlIGlmIHdl
IGFscmVhZHkgd2FybmVkIGFib3V0IGluZGVudGVkIGNvZGUuCiAgICAgICAgIGlmIG5vdCBmaWxl
X3N0YXRlLmRpZF9pbnNpZGVfbmFtZXNwYWNlX2luZGVudF93YXJuaW5nKCk6Ci0gICAgICAgICAg
ICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2luZGVudCcsIDQsCisg
ICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvaW5kZW50JywgNCwKICAg
ICAgICAgICAgICAgICAgICduYW1lc3BhY2Ugc2hvdWxkIG5ldmVyIGJlIGluZGVudGVkLicpCiAg
ICAgICAgIHJldHVybgogICAgIGxvb2tpbmdfZm9yX3NlbWljb2xvbiA9IEZhbHNlOwpAQCAtMTQ0
NSw3ICsxNDQ1LDcgQEAgZGVmIGNoZWNrX25hbWVzcGFjZV9pbmRlbnRhdGlvbihmaWxlbmFtZSwg
Y2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX2V4dGVuc2kKICAgICAgICAgICAgIGlmIG5v
dCAoaW5fcHJlcHJvY2Vzc29yX2RpcmVjdGl2ZSBvciBsb29raW5nX2Zvcl9zZW1pY29sb24pOgog
ICAgICAgICAgICAgICAgIGlmIG5vdCBtYXRjaChyJ1xTJywgY3VycmVudF9saW5lKSBhbmQgbm90
IGZpbGVfc3RhdGUuZGlkX2luc2lkZV9uYW1lc3BhY2VfaW5kZW50X3dhcm5pbmcoKToKICAgICAg
ICAgICAgICAgICAgICAgZmlsZV9zdGF0ZS5zZXRfZGlkX2luc2lkZV9uYW1lc3BhY2VfaW5kZW50
X3dhcm5pbmcoKQotICAgICAgICAgICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1i
ZXIgKyBsaW5lX29mZnNldCwgJ3doaXRlc3BhY2UvaW5kZW50JywgNCwKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3IobGluZV9udW1iZXIgKyBsaW5lX29mZnNldCwgJ3doaXRlc3BhY2UvaW5kZW50
JywgNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvZGUgaW5zaWRlIGEgbmFtZXNwYWNl
IHNob3VsZCBub3QgYmUgaW5kZW50ZWQuJykKICAgICAgICAgICAgIGlmIGluX3ByZXByb2Nlc3Nv
cl9kaXJlY3RpdmUgb3IgKGN1cnJlbnRfbGluZS5zdHJpcCgpWzBdID09ICcjJyk6ICMgVGhpcyB0
YWtlcyBjYXJlIG9mIHByZXByb2Nlc3NvciBkaXJlY3RpdmUgc3ludGF4LgogICAgICAgICAgICAg
ICAgIGluX3ByZXByb2Nlc3Nvcl9kaXJlY3RpdmUgPSBjdXJyZW50X2xpbmVbLTFdID09ICdcXCcK
QEAgLTE0NzgsNyArMTQ3OCw3IEBAIGRlZiBjaGVja191c2luZ19zdGQoZmlsZW5hbWUsIGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgICAgICByZXR1cm4KIAogICAgIG1ldGhv
ZF9uYW1lID0gdXNpbmdfc3RkX21hdGNoLmdyb3VwKCdtZXRob2RfbmFtZScpCi0gICAgZXJyb3Io
ZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnYnVpbGQvdXNpbmdfc3RkJywgNCwKKyAgICBlcnJvcihs
aW5lX251bWJlciwgJ2J1aWxkL3VzaW5nX3N0ZCcsIDQsCiAgICAgICAgICAgIlVzZSAndXNpbmcg
bmFtZXNwYWNlIHN0ZDsnIGluc3RlYWQgb2YgJ3VzaW5nIHN0ZDo6JXM7Jy4iICUgbWV0aG9kX25h
bWUpCiAKIApAQCAtMTUwNCw3ICsxNTA0LDcgQEAgZGVmIGNoZWNrX21heF9taW5fbWFjcm9zKGZp
bGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKIAogICAgIG1heF9taW5f
bWFjcm8gPSBtYXhfbWluX21hY3Jvc19zZWFyY2guZ3JvdXAoJ21heF9taW5fbWFjcm8nKQogICAg
IG1heF9taW5fbWFjcm9fbG93ZXIgPSBtYXhfbWluX21hY3JvLmxvd2VyKCkKLSAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICdydW50aW1lL21heF9taW5fbWFjcm9zJywgNCwKKyAgICBl
cnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvbWF4X21pbl9tYWNyb3MnLCA0LAogICAgICAgICAg
ICdVc2Ugc3RkOjolcygpIG9yIHN0ZDo6JXM8dHlwZT4oKSBpbnN0ZWFkIG9mIHRoZSAlcygpIG1h
Y3JvLicKICAgICAgICAgICAlIChtYXhfbWluX21hY3JvX2xvd2VyLCBtYXhfbWluX21hY3JvX2xv
d2VyLCBtYXhfbWluX21hY3JvKSkKIApAQCAtMTU1OSw3ICsxNTU5LDcgQEAgZGVmIGNoZWNrX3N3
aXRjaF9pbmRlbnRhdGlvbihmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJv
cik6CiAgICAgICAgICMgb24gc3R1ZmYgbGlrZSAiRG9jdW1lbnQ6OkZvbygpOyIuCiAgICAgICAg
IGVsaWYgbWF0Y2gocicoZGVmYXVsdHxjYXNlXHMrLiopXHMqOihbXjpdLiopPyQnLCByZW1haW5p
bmdfbGluZSk6CiAgICAgICAgICAgICBpZiBjdXJyZW50X2luZGVudGF0aW9uICE9IHN3aXRjaF9p
bmRlbnRhdGlvbjoKLSAgICAgICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIg
KyBsaW5lX29mZnNldCwgJ3doaXRlc3BhY2UvaW5kZW50JywgNCwKKyAgICAgICAgICAgICAgICBl
cnJvcihsaW5lX251bWJlciArIGxpbmVfb2Zmc2V0LCAnd2hpdGVzcGFjZS9pbmRlbnQnLCA0LAog
ICAgICAgICAgICAgICAgICAgICAgICdBIGNhc2UgbGFiZWwgc2hvdWxkIG5vdCBiZSBpbmRlbnRl
ZCwgYnV0IGxpbmUgdXAgd2l0aCBpdHMgc3dpdGNoIHN0YXRlbWVudC4nKQogICAgICAgICAgICAg
ICAgICMgRG9uJ3QgdGhyb3cgYW4gZXJyb3IgZm9yIG11bHRpcGxlIGJhZGx5IGluZGVudGVkIGxh
YmVscywKICAgICAgICAgICAgICAgICAjIG9uZSBzaG91bGQgYmUgZW5vdWdoIHRvIGZpZ3VyZSBv
dXQgdGhlIHByb2JsZW0uCkBAIC0xNTcwLDcgKzE1NzAsNyBAQCBkZWYgY2hlY2tfc3dpdGNoX2lu
ZGVudGF0aW9uKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKICAg
ICAgICAgIyBJdCdzIG5vdCBhIGdvdG8gbGFiZWwsIHNvIGNoZWNrIGlmIGl0J3MgaW5kZW50ZWQg
YXQgbGVhc3QgYXMgZmFyIGFzCiAgICAgICAgICMgdGhlIHN3aXRjaCBzdGF0ZW1lbnQgcGx1cyBv
bmUgbW9yZSBsZXZlbCBvZiBpbmRlbnRhdGlvbi4KICAgICAgICAgZWxpZiBub3QgY3VycmVudF9p
bmRlbnRhdGlvbi5zdGFydHN3aXRoKGlubmVyX2luZGVudGF0aW9uKToKLSAgICAgICAgICAgIGVy
cm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciArIGxpbmVfb2Zmc2V0LCAnd2hpdGVzcGFjZS9pbmRl
bnQnLCA0LAorICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIgKyBsaW5lX29mZnNldCwgJ3do
aXRlc3BhY2UvaW5kZW50JywgNCwKICAgICAgICAgICAgICAgICAgICdOb24tbGFiZWwgY29kZSBp
bnNpZGUgc3dpdGNoIHN0YXRlbWVudHMgc2hvdWxkIGJlIGluZGVudGVkLicpCiAgICAgICAgICAg
ICAjIERvbid0IHRocm93IGFuIGVycm9yIGZvciBtdWx0aXBsZSBiYWRseSBpbmRlbnRlZCBzdGF0
ZW1lbnRzLAogICAgICAgICAgICAgIyBvbmUgc2hvdWxkIGJlIGVub3VnaCB0byBmaWd1cmUgb3V0
IHRoZSBwcm9ibGVtLgpAQCAtMTYwNSwxMyArMTYwNSwxMyBAQCBkZWYgY2hlY2tfYnJhY2VzKGZp
bGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToKICAgICAgICAgaWYgKChu
b3Qgc2VhcmNoKHInWzs6fXspPV1ccyokfFwpXHMqY29uc3RccyokJywgcHJldmlvdXNfbGluZSkK
ICAgICAgICAgICAgICBvciBzZWFyY2gocidcYihpZnxmb3J8Zm9yZWFjaHx3aGlsZXxzd2l0Y2h8
ZWxzZSlcYicsIHByZXZpb3VzX2xpbmUpKQogICAgICAgICAgICAgYW5kIHByZXZpb3VzX2xpbmUu
ZmluZCgnIycpIDwgMCk6Ci0gICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIs
ICd3aGl0ZXNwYWNlL2JyYWNlcycsIDQsCisgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwg
J3doaXRlc3BhY2UvYnJhY2VzJywgNCwKICAgICAgICAgICAgICAgICAgICdUaGlzIHsgc2hvdWxk
IGJlIGF0IHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGxpbmUnKQogICAgIGVsaWYgKHNlYXJjaChy
J1wpXHMqKGNvbnN0XHMqKT97XHMqJCcsIGxpbmUpCiAgICAgICAgICAgYW5kIGxpbmUuY291bnQo
JygnKSA9PSBsaW5lLmNvdW50KCcpJykKICAgICAgICAgICBhbmQgbm90IHNlYXJjaChyJ1xiKGlm
fGZvcnxmb3JlYWNofHdoaWxlfHN3aXRjaClcYicsIGxpbmUpCiAgICAgICAgICAgYW5kIG5vdCBt
YXRjaChyJ1xzK1tBLVpfXVtBLVpfMC05XStcYicsIGxpbmUpKToKLSAgICAgICAgZXJyb3IoZmls
ZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9icmFjZXMnLCA0LAorICAgICAgICBlcnJv
cihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvYnJhY2VzJywgNCwKICAgICAgICAgICAgICAgJ1Bs
YWNlIGJyYWNlIG9uIGl0cyBvd24gbGluZSBmb3IgZnVuY3Rpb24gZGVmaW5pdGlvbnMuJykKIAog
ICAgIGlmIChtYXRjaChyJ1xzKn1ccyooZWxzZVxzKih7XHMqKT8pPyQnLCBsaW5lKSBhbmQgbGlu
ZV9udW1iZXIgPiAxKToKQEAgLTE2MjAsMjQgKzE2MjAsMjQgQEAgZGVmIGNoZWNrX2JyYWNlcyhm
aWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcik6CiAgICAgICAgIHByZXZp
b3VzX2xpbmUgPSBjbGVhbl9saW5lcy5lbGlkZWRbbGluZV9udW1iZXIgLSAyXQogICAgICAgICBp
ZiAocHJldmlvdXNfbGluZS5maW5kKCd7JykgPiAwCiAgICAgICAgICAgICBhbmQgc2VhcmNoKHIn
XGIoaWZ8Zm9yfGZvcmVhY2h8d2hpbGV8ZWxzZSlcYicsIHByZXZpb3VzX2xpbmUpKToKLSAgICAg
ICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvYnJhY2VzJywg
NCwKKyAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9icmFjZXMnLCA0
LAogICAgICAgICAgICAgICAgICAgJ09uZSBsaW5lIGNvbnRyb2wgY2xhdXNlcyBzaG91bGQgbm90
IHVzZSBicmFjZXMuJykKIAogICAgICMgQW4gZWxzZSBjbGF1c2Ugc2hvdWxkIGJlIG9uIHRoZSBz
YW1lIGxpbmUgYXMgdGhlIHByZWNlZGluZyBjbG9zaW5nIGJyYWNlLgogICAgIGlmIG1hdGNoKHIn
XHMqZWxzZVxzKicsIGxpbmUpOgogICAgICAgICBwcmV2aW91c19saW5lID0gZ2V0X3ByZXZpb3Vz
X25vbl9ibGFua19saW5lKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlcilbMF0KICAgICAgICAgaWYg
bWF0Y2gocidccyp9XHMqJCcsIHByZXZpb3VzX2xpbmUpOgotICAgICAgICAgICAgZXJyb3IoZmls
ZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9uZXdsaW5lJywgNCwKKyAgICAgICAgICAg
IGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9uZXdsaW5lJywgNCwKICAgICAgICAgICAg
ICAgICAgICdBbiBlbHNlIHNob3VsZCBhcHBlYXIgb24gdGhlIHNhbWUgbGluZSBhcyB0aGUgcHJl
Y2VkaW5nIH0nKQogCiAgICAgIyBMaWtld2lzZSwgYW4gZWxzZSBzaG91bGQgbmV2ZXIgaGF2ZSB0
aGUgZWxzZSBjbGF1c2Ugb24gdGhlIHNhbWUgbGluZQogICAgIGlmIHNlYXJjaChyJ1xiZWxzZSBb
Xlxze10nLCBsaW5lKSBhbmQgbm90IHNlYXJjaChyJ1xiZWxzZSBpZlxiJywgbGluZSk6Ci0gICAg
ICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvbmV3bGluZScsIDQs
CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9uZXdsaW5lJywgNCwKICAg
ICAgICAgICAgICAgJ0Vsc2UgY2xhdXNlIHNob3VsZCBuZXZlciBiZSBvbiBzYW1lIGxpbmUgYXMg
ZWxzZSAodXNlIDIgbGluZXMpJykKIAogICAgICMgSW4gdGhlIHNhbWUgd2F5LCBhIGRvL3doaWxl
IHNob3VsZCBuZXZlciBiZSBvbiBvbmUgbGluZQogICAgIGlmIG1hdGNoKHInXHMqZG8gW15cc3td
JywgbGluZSk6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3Bh
Y2UvbmV3bGluZScsIDQsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9u
ZXdsaW5lJywgNCwKICAgICAgICAgICAgICAgJ2RvL3doaWxlIGNsYXVzZXMgc2hvdWxkIG5vdCBi
ZSBvbiBhIHNpbmdsZSBsaW5lJykKIAogICAgICMgQnJhY2VzIHNob3VsZG4ndCBiZSBmb2xsb3dl
ZCBieSBhIDsgdW5sZXNzIHRoZXkncmUgZGVmaW5pbmcgYSBzdHJ1Y3QKQEAgLTE2NTMsNyArMTY1
Myw3IEBAIGRlZiBjaGVja19icmFjZXMoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJl
ciwgZXJyb3IpOgogICAgIGlmIChzZWFyY2gocid7Lip9XHMqOycsIGxpbmUpCiAgICAgICAgIGFu
ZCBsaW5lLmNvdW50KCd7JykgPT0gbGluZS5jb3VudCgnfScpCiAgICAgICAgIGFuZCBub3Qgc2Vh
cmNoKHInc3RydWN0fGNsYXNzfGVudW18XHMqPVxzKnsnLCBsaW5lKSk6Ci0gICAgICAgIGVycm9y
KGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L2JyYWNlcycsIDQsCisgICAgICAg
IGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvYnJhY2VzJywgNCwKICAgICAgICAgICAg
ICAgIllvdSBkb24ndCBuZWVkIGEgOyBhZnRlciBhIH0iKQogCiAKQEAgLTE3MzYsMTEgKzE3MzYs
MTEgQEAgZGVmIGNoZWNrX2V4aXRfc3RhdGVtZW50X3NpbXBsaWZpY2F0aW9ucyhmaWxlbmFtZSwg
Y2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnIKICAgICAgICAgIyBXaGF0ZXZlciB0aGUgb3V0
Y29tZSwgdGhpcyBpcyB0aGUgZW5kIG9mIG91ciBsb29wLgogICAgICAgICBpZiBtYXRjaChyJ2lm
XHMqXCgnLCByZW1haW5pbmdfbGluZSk6CiAgICAgICAgICAgICBpZiBlbHNlX21hdGNoLnN0YXJ0
KCdlbHNlJykgIT0gLTE6Ci0gICAgICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVt
YmVyICsgbGluZV9vZmZzZXQsICdyZWFkYWJpbGl0eS9jb250cm9sX2Zsb3cnLCA0LAorICAgICAg
ICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyICsgbGluZV9vZmZzZXQsICdyZWFkYWJpbGl0eS9j
b250cm9sX2Zsb3cnLCA0LAogICAgICAgICAgICAgICAgICAgICAgICdBbiBlbHNlIHN0YXRlbWVu
dCBjYW4gYmUgcmVtb3ZlZCB3aGVuIHRoZSBwcmlvciAiaWYiICcKICAgICAgICAgICAgICAgICAg
ICAgICAnY29uY2x1ZGVzIHdpdGggYSByZXR1cm4sIGJyZWFrLCBjb250aW51ZSBvciBnb3RvIHN0
YXRlbWVudC4nKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBlcnJvcihmaWxl
bmFtZSwgbGluZV9udW1iZXIgKyBsaW5lX29mZnNldCwgJ3JlYWRhYmlsaXR5L2NvbnRyb2xfZmxv
dycsIDQsCisgICAgICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIgKyBsaW5lX29mZnNldCwg
J3JlYWRhYmlsaXR5L2NvbnRyb2xfZmxvdycsIDQsCiAgICAgICAgICAgICAgICAgICAgICAgJ0Fu
IGVsc2UgaWYgc3RhdGVtZW50IHNob3VsZCBiZSB3cml0dGVuIGFzIGFuIGlmIHN0YXRlbWVudCAn
CiAgICAgICAgICAgICAgICAgICAgICAgJ3doZW4gdGhlIHByaW9yICJpZiIgY29uY2x1ZGVzIHdp
dGggYSByZXR1cm4sIGJyZWFrLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRpbnVlIG9y
IGdvdG8gc3RhdGVtZW50LicpCkBAIC0xODA4LDcgKzE4MDgsNyBAQCBkZWYgY2hlY2tfY2hlY2so
ZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgogICAgICMgRW5jb3Vy
YWdlIHJlcGxhY2luZyBwbGFpbiBDSEVDS3Mgd2l0aCBDSEVDS19FUS9DSEVDS19ORS9ldGMuCiAg
ICAgZm9yIG9wZXJhdG9yIGluIFsnPT0nLCAnIT0nLCAnPj0nLCAnPicsICc8PScsICc8J106CiAg
ICAgICAgIGlmIHJlcGxhY2VhYmxlX2NoZWNrKG9wZXJhdG9yLCBjdXJyZW50X21hY3JvLCBsaW5l
KToKLSAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5
L2NoZWNrJywgMiwKKyAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkv
Y2hlY2snLCAyLAogICAgICAgICAgICAgICAgICAgJ0NvbnNpZGVyIHVzaW5nICVzIGluc3RlYWQg
b2YgJXMoYSAlcyBiKScgJSAoCiAgICAgICAgICAgICAgICAgICAgICAgX0NIRUNLX1JFUExBQ0VN
RU5UW2N1cnJlbnRfbWFjcm9dW29wZXJhdG9yXSwKICAgICAgICAgICAgICAgICAgICAgICBjdXJy
ZW50X21hY3JvLCBvcGVyYXRvcikpCkBAIC0xODIxLDcgKzE4MjEsNyBAQCBkZWYgY2hlY2tfZm9y
X2NvbXBhcmlzb25zX3RvX3plcm8oZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwg
ZXJyb3IpOgogCiAgICAgIyBJbmNsdWRlIE5VTEwgaGVyZSBzbyB0aGF0IHVzZXJzIGRvbid0IGhh
dmUgdG8gY29udmVydCBOVUxMIHRvIDAgZmlyc3QgYW5kIHRoZW4gZ2V0IHRoaXMgZXJyb3IuCiAg
ICAgaWYgc2VhcmNoKHInWz0hXT1ccyooTlVMTHwwfHRydWV8ZmFsc2UpXFcnLCBsaW5lKSBvciBz
ZWFyY2gocidcVyhOVUxMfDB8dHJ1ZXxmYWxzZSlccypbPSFdPScsIGxpbmUpOgotICAgICAgICBl
cnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9jb21wYXJpc29uX3RvX3pl
cm8nLCA1LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L2NvbXBhcmlz
b25fdG9femVybycsIDUsCiAgICAgICAgICAgICAgICdUZXN0cyBmb3IgdHJ1ZS9mYWxzZSwgbnVs
bC9ub24tbnVsbCwgYW5kIHplcm8vbm9uLXplcm8gc2hvdWxkIGFsbCBiZSBkb25lIHdpdGhvdXQg
ZXF1YWxpdHkgY29tcGFyaXNvbnMuJykKIAogCkBAIC0xODM3LDcgKzE4MzcsNyBAQCBkZWYgY2hl
Y2tfZm9yX251bGwoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgog
ICAgICAgICByZXR1cm4KIAogICAgIGlmIHNlYXJjaChyJ1xiTlVMTFxiJywgbGluZSk6Ci0gICAg
ICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L251bGwnLCA1LCAn
VXNlIDAgaW5zdGVhZCBvZiBOVUxMLicpCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVh
ZGFiaWxpdHkvbnVsbCcsIDUsICdVc2UgMCBpbnN0ZWFkIG9mIE5VTEwuJykKICAgICAgICAgcmV0
dXJuCiAKICAgICBsaW5lID0gY2xlYW5fbGluZXMucmF3X2xpbmVzW2xpbmVfbnVtYmVyXQpAQCAt
MTg0NSw3ICsxODQ1LDcgQEAgZGVmIGNoZWNrX2Zvcl9udWxsKGZpbGVuYW1lLCBjbGVhbl9saW5l
cywgbGluZV9udW1iZXIsIGVycm9yKToKICAgICAjIG1hdGNoZXMsIHRoZW4gZG8gdGhlIGNoZWNr
IHdpdGggc3RyaW5ncyBjb2xsYXBzZWQgdG8gYXZvaWQgZ2l2aW5nIGVycm9ycyBmb3IKICAgICAj
IE5VTExzIG9jY3VycmluZyBpbiBzdHJpbmdzLgogICAgIGlmIHNlYXJjaChyJ1xiTlVMTFxiJywg
bGluZSkgYW5kIHNlYXJjaChyJ1xiTlVMTFxiJywgQ2xlYW5zZWRMaW5lcy5jb2xsYXBzZV9zdHJp
bmdzKGxpbmUpKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncmVhZGFi
aWxpdHkvbnVsbCcsIDQsICdVc2UgMCBpbnN0ZWFkIG9mIE5VTEwuJykKKyAgICAgICAgZXJyb3Io
bGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9udWxsJywgNCwgJ1VzZSAwIGluc3RlYWQgb2YgTlVM
TC4nKQogCiBkZWYgZ2V0X2xpbmVfd2lkdGgobGluZSk6CiAgICAgIiIiRGV0ZXJtaW5lcyB0aGUg
d2lkdGggb2YgdGhlIGxpbmUgaW4gY29sdW1uIHBvc2l0aW9ucy4KQEAgLTE4ODksNyArMTg4OSw3
IEBAIGRlZiBjaGVja19zdHlsZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBm
aWxlX2V4dGVuc2lvbiwgZmlsZV9zdGF0ZSwKICAgICBsaW5lID0gcmF3X2xpbmVzW2xpbmVfbnVt
YmVyXQogCiAgICAgaWYgbGluZS5maW5kKCdcdCcpICE9IC0xOgotICAgICAgICBlcnJvcihmaWxl
bmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL3RhYicsIDEsCisgICAgICAgIGVycm9yKGxp
bmVfbnVtYmVyLCAnd2hpdGVzcGFjZS90YWInLCAxLAogICAgICAgICAgICAgICAnVGFiIGZvdW5k
OyBiZXR0ZXIgdG8gdXNlIHNwYWNlcycpCiAKICAgICAjIE9uZSBvciB0aHJlZSBibGFuayBzcGFj
ZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBpcyB3ZWlyZDsgaXQncwpAQCAtMTkwOSwx
MiArMTkwOSwxMiBAQCBkZWYgY2hlY2tfc3R5bGUoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5l
X251bWJlciwgZmlsZV9leHRlbnNpb24sIGZpbGVfc3RhdGUsCiAgICAgd2hpbGUgaW5pdGlhbF9z
cGFjZXMgPCBsZW4obGluZSkgYW5kIGxpbmVbaW5pdGlhbF9zcGFjZXNdID09ICcgJzoKICAgICAg
ICAgaW5pdGlhbF9zcGFjZXMgKz0gMQogICAgIGlmIGxpbmUgYW5kIGxpbmVbLTFdLmlzc3BhY2Uo
KToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9lbmRf
b2ZfbGluZScsIDQsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9lbmRf
b2ZfbGluZScsIDQsCiAgICAgICAgICAgICAgICdMaW5lIGVuZHMgaW4gd2hpdGVzcGFjZS4gIENv
bnNpZGVyIGRlbGV0aW5nIHRoZXNlIGV4dHJhIHNwYWNlcy4nKQogICAgICMgVGhlcmUgYXJlIGNl
cnRhaW4gc2l0dWF0aW9ucyB3ZSBhbGxvdyBvbmUgc3BhY2UsIG5vdGFibHkgZm9yIGxhYmVscwog
ICAgIGVsaWYgKChpbml0aWFsX3NwYWNlcyA+PSAxIGFuZCBpbml0aWFsX3NwYWNlcyA8PSAzKQog
ICAgICAgICAgIGFuZCBub3QgbWF0Y2gocidccypcdytccyo6XHMqJCcsIGNsZWFuc2VkX2xpbmUp
KToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9pbmRl
bnQnLCAzLAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvaW5kZW50Jywg
MywKICAgICAgICAgICAgICAgJ1dlaXJkIG51bWJlciBvZiBzcGFjZXMgYXQgbGluZS1zdGFydC4g
ICcKICAgICAgICAgICAgICAgJ0FyZSB5b3UgdXNpbmcgYSA0LXNwYWNlIGluZGVudD8nKQogICAg
ICMgTGFiZWxzIHNob3VsZCBhbHdheXMgYmUgaW5kZW50ZWQgYXQgbGVhc3Qgb25lIHNwYWNlLgpA
QCAtMTkyNiw3ICsxOTI2LDcgQEAgZGVmIGNoZWNrX3N0eWxlKGZpbGVuYW1lLCBjbGVhbl9saW5l
cywgbGluZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBmaWxlX3N0YXRlLAogICAgICAgICAgICAg
IyBPbmx5IHRocm93IGVycm9ycyBmb3Igc3R1ZmYgdGhhdCBpcyBkZWZpbml0ZWx5IG5vdCBhIGdv
dG8gbGFiZWwsCiAgICAgICAgICAgICAjIGJlY2F1c2UgZ290byBsYWJlbHMgY2FuIGluIGZhY3Qg
b2NjdXIgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLgogICAgICAgICAgICAgaWYgbGFiZWwgaW4g
WydwdWJsaWMnLCAncHJpdmF0ZScsICdwcm90ZWN0ZWQnXSBvciBsYWJlbC5maW5kKCcgJykgIT0g
LTE6Ci0gICAgICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVz
cGFjZS9sYWJlbHMnLCA0LAorICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hp
dGVzcGFjZS9sYWJlbHMnLCA0LAogICAgICAgICAgICAgICAgICAgICAgICdMYWJlbHMgc2hvdWxk
IGFsd2F5cyBiZSBpbmRlbnRlZCBhdCBsZWFzdCBvbmUgc3BhY2UuICAnCiAgICAgICAgICAgICAg
ICAgICAgICAgJ0lmIHRoaXMgaXMgYSBtZW1iZXItaW5pdGlhbGl6ZXIgbGlzdCBpbiBhIGNvbnN0
cnVjdG9yLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBjb2xvbiBzaG91bGQgYmUgb24g
dGhlIGxpbmUgYWZ0ZXIgdGhlIGRlZmluaXRpb24gaGVhZGVyLicpCkBAIC0xOTQxLDExICsxOTQx
LDExIEBAIGRlZiBjaGVja19zdHlsZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVy
LCBmaWxlX2V4dGVuc2lvbiwgZmlsZV9zdGF0ZSwKICAgICAgICAgICAgICAgICAgIG9yIGNsZWFu
c2VkX2xpbmUuZmluZCgnZGVmYXVsdDonKSAhPSAtMSkKICAgICAgICAgICAgICAgICAgYW5kIGNs
ZWFuc2VkX2xpbmUuZmluZCgnYnJlYWs7JykgIT0gLTEpCiAgICAgICAgIGFuZCBub3QgY2xlYW5z
ZWRfbGluZS5zdGFydHN3aXRoKCcjZGVmaW5lICcpKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUs
IGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9uZXdsaW5lJywgNCwKKyAgICAgICAgZXJyb3IobGlu
ZV9udW1iZXIsICd3aGl0ZXNwYWNlL25ld2xpbmUnLCA0LAogICAgICAgICAgICAgICAnTW9yZSB0
aGFuIG9uZSBjb21tYW5kIG9uIHRoZSBzYW1lIGxpbmUnKQogCiAgICAgaWYgY2xlYW5zZWRfbGlu
ZS5zdHJpcCgpLmVuZHN3aXRoKCd8fCcpIG9yIGNsZWFuc2VkX2xpbmUuc3RyaXAoKS5lbmRzd2l0
aCgnJiYnKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFj
ZS9vcGVyYXRvcnMnLCA0LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2Uv
b3BlcmF0b3JzJywgNCwKICAgICAgICAgICAgICAgJ0Jvb2xlYW4gZXhwcmVzc2lvbnMgdGhhdCBz
cGFuIG11bHRpcGxlIGxpbmVzIHNob3VsZCBoYXZlIHRoZWlyICcKICAgICAgICAgICAgICAgJ29w
ZXJhdG9ycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsaW5lIGluc3RlYWQgb2YgdGhlIHJpZ2h0
IHNpZGUuJykKIApAQCAtMjExNSwxNyArMjExNSwxNyBAQCBkZWYgY2hlY2tfaW5jbHVkZV9saW5l
KGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGluY2x1ZGVfc3RhdGUsIGVycm9y
KQogICAgIGlmIG1hdGNoKHInKGZ8aW5kfGlvfGl8b3xwYXJzZXxwZnxzdGRpb3xzdHJ8KT9zdHJl
YW0kJywgaW5jbHVkZSk6CiAgICAgICAgICMgTWFueSB1bml0IHRlc3RzIHVzZSBjb3V0LCBzbyB3
ZSBleGVtcHQgdGhlbS4KICAgICAgICAgaWYgbm90IF9pc190ZXN0X2ZpbGVuYW1lKGZpbGVuYW1l
KToKLSAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3JlYWRhYmlsaXR5
L3N0cmVhbXMnLCAzLAorICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0
eS9zdHJlYW1zJywgMywKICAgICAgICAgICAgICAgICAgICdTdHJlYW1zIGFyZSBoaWdobHkgZGlz
Y291cmFnZWQuJykKIAogICAgICMgTG9vayBmb3Igc3BlY2lmaWMgaW5jbHVkZXMgdG8gZml4Lgog
ICAgIGlmIGluY2x1ZGUuc3RhcnRzd2l0aCgnd3RmLycpIGFuZCBub3QgaXNfc3lzdGVtOgotICAg
ICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdidWlsZC9pbmNsdWRlJywgNCwKKyAg
ICAgICAgZXJyb3IobGluZV9udW1iZXIsICdidWlsZC9pbmNsdWRlJywgNCwKICAgICAgICAgICAg
ICAgJ3d0ZiBpbmNsdWRlcyBzaG91bGQgYmUgPHd0Zi9maWxlLmg+IGluc3RlYWQgb2YgInd0Zi9m
aWxlLmgiLicpCiAKICAgICBkdXBsaWNhdGVfaGVhZGVyID0gaW5jbHVkZSBpbiBpbmNsdWRlX3N0
YXRlCiAgICAgaWYgZHVwbGljYXRlX2hlYWRlcjoKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxp
bmVfbnVtYmVyLCAnYnVpbGQvaW5jbHVkZScsIDQsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVy
LCAnYnVpbGQvaW5jbHVkZScsIDQsCiAgICAgICAgICAgICAgICciJXMiIGFscmVhZHkgaW5jbHVk
ZWQgYXQgJXM6JXMnICUKICAgICAgICAgICAgICAgKGluY2x1ZGUsIGZpbGVuYW1lLCBpbmNsdWRl
X3N0YXRlW2luY2x1ZGVdKSkKICAgICBlbHNlOgpAQCAtMjE0OSw3ICsyMTQ5LDcgQEAgZGVmIGNo
ZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBpbmNs
dWRlX3N0YXRlLCBlcnJvcikKICAgICBpZiBub3QgZXJyb3JfbWVzc2FnZSBhbmQgaGVhZGVyX3R5
cGUgPT0gX1BSSU1BUllfSEVBREVSOgogICAgICAgICAgbmV4dF9saW5lID0gY2xlYW5fbGluZXMu
cmF3X2xpbmVzW2xpbmVfbnVtYmVyICsgMV0KICAgICAgICAgIGlmIG5vdCBpc19ibGFua19saW5l
KG5leHRfbGluZSk6Ci0gICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdi
dWlsZC9pbmNsdWRlX29yZGVyJywgNCwKKyAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAn
YnVpbGQvaW5jbHVkZV9vcmRlcicsIDQsCiAgICAgICAgICAgICAgICAgICAnWW91IHNob3VsZCBh
ZGQgYSBibGFuayBsaW5lIGFmdGVyIGltcGxlbWVudGF0aW9uIGZpbGVcJ3Mgb3duIGhlYWRlci4n
KQogCiAgICAgIyBDaGVjayB0byBtYWtlIHN1cmUgYWxsIGhlYWRlcnMgYmVzaWRlcyBjb25maWcu
aCBhbmQgdGhlIHByaW1hcnkgaGVhZGVyIGFyZQpAQCAtMjE2NiwxNiArMjE2NiwxNiBAQCBkZWYg
Y2hlY2tfaW5jbHVkZV9saW5lKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGlu
Y2x1ZGVfc3RhdGUsIGVycm9yKQogICAgICAgICAgaWYgcHJldmlvdXNfbWF0Y2g6CiAgICAgICAg
ICAgICBwcmV2aW91c19oZWFkZXJfdHlwZSA9IGluY2x1ZGVfc3RhdGUuaGVhZGVyX3R5cGVzW3By
ZXZpb3VzX2xpbmVfbnVtYmVyXQogICAgICAgICAgICAgaWYgcHJldmlvdXNfaGVhZGVyX3R5cGUg
PT0gX09USEVSX0hFQURFUiBhbmQgcHJldmlvdXNfbGluZS5zdHJpcCgpID4gbGluZS5zdHJpcCgp
OgotICAgICAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ2J1aWxkL2lu
Y2x1ZGVfb3JkZXInLCA0LAorICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnYnVp
bGQvaW5jbHVkZV9vcmRlcicsIDQsCiAgICAgICAgICAgICAgICAgICAgICAgJ0FscGhhYmV0aWNh
bCBzb3J0aW5nIHByb2JsZW0uJykKIAogICAgIGlmIGVycm9yX21lc3NhZ2U6CiAgICAgICAgIGlm
IGZpbGVuYW1lLmVuZHN3aXRoKCcuaCcpOgotICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxp
bmVfbnVtYmVyLCAnYnVpbGQvaW5jbHVkZV9vcmRlcicsIDQsCisgICAgICAgICAgICBlcnJvcihs
aW5lX251bWJlciwgJ2J1aWxkL2luY2x1ZGVfb3JkZXInLCA0LAogICAgICAgICAgICAgICAgICAg
JyVzIFNob3VsZCBiZTogYWxwaGFiZXRpY2FsbHkgc29ydGVkLicgJQogICAgICAgICAgICAgICAg
ICAgZXJyb3JfbWVzc2FnZSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGVycm9yKGZpbGVu
YW1lLCBsaW5lX251bWJlciwgJ2J1aWxkL2luY2x1ZGVfb3JkZXInLCA0LAorICAgICAgICAgICAg
ZXJyb3IobGluZV9udW1iZXIsICdidWlsZC9pbmNsdWRlX29yZGVyJywgNCwKICAgICAgICAgICAg
ICAgICAgICclcyBTaG91bGQgYmU6IGNvbmZpZy5oLCBwcmltYXJ5IGhlYWRlciwgYmxhbmsgbGlu
ZSwgYW5kIHRoZW4gYWxwaGFiZXRpY2FsbHkgc29ydGVkLicgJQogICAgICAgICAgICAgICAgICAg
ZXJyb3JfbWVzc2FnZSkKIApAQCAtMjIxOSw3ICsyMjE5LDcgQEAgZGVmIGNoZWNrX2xhbmd1YWdl
KGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBpbmNs
dWRlX3MKICAgICAgICAgIyB3aGVyZSB0eXBlIG1heSBiZSBmbG9hdCgpLCBpbnQoc3RyaW5nKSwg
ZXRjLiAgV2l0aG91dCBjb250ZXh0IHRoZXkgYXJlCiAgICAgICAgICMgdmlydHVhbGx5IGluZGlz
dGluZ3Vpc2hhYmxlIGZyb20gaW50KHgpIGNhc3RzLgogICAgICAgICBpZiBub3QgbWF0Y2gocide
XHMqTU9DS18oQ09OU1RfKT9NRVRIT0RcZCsoX1QpP1woJywgbGluZSk6Ci0gICAgICAgICAgICBl
cnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9jYXN0aW5nJywgNCwKKyAg
ICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVhZGFiaWxpdHkvY2FzdGluZycsIDQsCiAg
ICAgICAgICAgICAgICAgICAnVXNpbmcgZGVwcmVjYXRlZCBjYXN0aW5nIHN0eWxlLiAgJwogICAg
ICAgICAgICAgICAgICAgJ1VzZSBzdGF0aWNfY2FzdDwlcz4oLi4uKSBpbnN0ZWFkJyAlCiAgICAg
ICAgICAgICAgICAgICBtYXRjaGVkLmdyb3VwKDEpKQpAQCAtMjIzNyw3ICsyMjM3LDcgQEAgZGVm
IGNoZWNrX2xhbmd1YWdlKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVf
ZXh0ZW5zaW9uLCBpbmNsdWRlX3MKICAgICAjIHBvaW50IHdoZXJlIHlvdSB0aGluay4KICAgICBp
ZiBzZWFyY2goCiAgICAgICAgIHInKCZcKFteKV0rXClbXHcoXSl8KCYoc3RhdGljfGR5bmFtaWN8
cmVpbnRlcnByZXQpX2Nhc3RcYiknLCBsaW5lKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxp
bmVfbnVtYmVyLCAncnVudGltZS9jYXN0aW5nJywgNCwKKyAgICAgICAgZXJyb3IobGluZV9udW1i
ZXIsICdydW50aW1lL2Nhc3RpbmcnLCA0LAogICAgICAgICAgICAgICAoJ0FyZSB5b3UgdGFraW5n
IGFuIGFkZHJlc3Mgb2YgYSBjYXN0PyAgJwogICAgICAgICAgICAgICAgJ1RoaXMgaXMgZGFuZ2Vy
b3VzOiBjb3VsZCBiZSBhIHRlbXAgdmFyLiAgJwogICAgICAgICAgICAgICAgJ1Rha2UgdGhlIGFk
ZHJlc3MgYmVmb3JlIGRvaW5nIHRoZSBjYXN0LCByYXRoZXIgdGhhbiBhZnRlcicpKQpAQCAtMjI1
MywyMCArMjI1MywyMCBAQCBkZWYgY2hlY2tfbGFuZ3VhZ2UoZmlsZW5hbWUsIGNsZWFuX2xpbmVz
LCBsaW5lX251bWJlciwgZmlsZV9leHRlbnNpb24sIGluY2x1ZGVfcwogICAgICMgQ2xhc3MgdGVt
cGxhdGUgZGVmaW5pdGlvbnMgbG9vayBsaWtlOiAic3RyaW5nIEZvbzxUeXBlPjo6TWV0aG9kKC4u
LiIuCiAgICAgaWYgbWF0Y2hlZCBhbmQgbm90IG1hdGNoKHInXHMqKDwuKj4pPyg6OlthLXpBLVow
LTlfXSspP1xzKlwoKFteIl18JCknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRj
aGVkLmdyb3VwKDMpKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVu
dGltZS9zdHJpbmcnLCA0LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvc3Ry
aW5nJywgNCwKICAgICAgICAgICAgICAgJ0ZvciBhIHN0YXRpYy9nbG9iYWwgc3RyaW5nIGNvbnN0
YW50LCB1c2UgYSBDIHN0eWxlIHN0cmluZyBpbnN0ZWFkOiAnCiAgICAgICAgICAgICAgICciJXNj
aGFyICVzW10iLicgJQogICAgICAgICAgICAgICAobWF0Y2hlZC5ncm91cCgxKSwgbWF0Y2hlZC5n
cm91cCgyKSkpCiAKICAgICAjIENoZWNrIHRoYXQgd2UncmUgbm90IHVzaW5nIFJUVEkgb3V0c2lk
ZSBvZiB0ZXN0aW5nIGNvZGUuCiAgICAgaWYgc2VhcmNoKHInXGJkeW5hbWljX2Nhc3Q8JywgbGlu
ZSkgYW5kIG5vdCBfaXNfdGVzdF9maWxlbmFtZShmaWxlbmFtZSk6Ci0gICAgICAgIGVycm9yKGZp
bGVuYW1lLCBsaW5lX251bWJlciwgJ3J1bnRpbWUvcnR0aScsIDUsCisgICAgICAgIGVycm9yKGxp
bmVfbnVtYmVyLCAncnVudGltZS9ydHRpJywgNSwKICAgICAgICAgICAgICAgJ0RvIG5vdCB1c2Ug
ZHluYW1pY19jYXN0PD4uICBJZiB5b3UgbmVlZCB0byBjYXN0IHdpdGhpbiBhIGNsYXNzICcKICAg
ICAgICAgICAgICAgImhpZXJhcmNoeSwgdXNlIHN0YXRpY19jYXN0PD4gdG8gdXBjYXN0LiAgR29v
Z2xlIGRvZXNuJ3Qgc3VwcG9ydCAiCiAgICAgICAgICAgICAgICdSVFRJLicpCiAKICAgICBpZiBz
ZWFyY2gocidcYihbQS1aYS16MC05X10qXylcKFwxXCknLCBsaW5lKToKLSAgICAgICAgZXJyb3Io
ZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGltZS9pbml0JywgNCwKKyAgICAgICAgZXJyb3Io
bGluZV9udW1iZXIsICdydW50aW1lL2luaXQnLCA0LAogICAgICAgICAgICAgICAnWW91IHNlZW0g
dG8gYmUgaW5pdGlhbGl6aW5nIGEgbWVtYmVyIHZhcmlhYmxlIHdpdGggaXRzZWxmLicpCiAKICAg
ICBpZiBmaWxlX2V4dGVuc2lvbiA9PSAnaCc6CkBAIC0yMjc5LDMzICsyMjc5LDMzIEBAIGRlZiBj
aGVja19sYW5ndWFnZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX2V4
dGVuc2lvbiwgaW5jbHVkZV9zCiAgICAgIyB3ZSByZWd1bGFybHkgYWxsb3cgaXMgInVuc2lnbmVk
IHNob3J0IHBvcnQiIGZvciBwb3J0LgogICAgIGlmIHNlYXJjaChyJ1xic2hvcnQgcG9ydFxiJywg
bGluZSk6CiAgICAgICAgIGlmIG5vdCBzZWFyY2gocidcYnVuc2lnbmVkIHNob3J0IHBvcnRcYics
IGxpbmUpOgotICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGlt
ZS9pbnQnLCA0LAorICAgICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL2ludCcs
IDQsCiAgICAgICAgICAgICAgICAgICAnVXNlICJ1bnNpZ25lZCBzaG9ydCIgZm9yIHBvcnRzLCBu
b3QgInNob3J0IicpCiAKICAgICAjIFdoZW4gc25wcmludGYgaXMgdXNlZCwgdGhlIHNlY29uZCBh
cmd1bWVudCBzaG91bGRuJ3QgYmUgYSBsaXRlcmFsLgogICAgIG1hdGNoZWQgPSBzZWFyY2gocidz
bnByaW50ZlxzKlwoKFteLF0qKSxccyooWzAtOV0qKVxzKiwnLCBsaW5lKQogICAgIGlmIG1hdGNo
ZWQ6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3J1bnRpbWUvcHJpbnRm
JywgMywKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL3ByaW50ZicsIDMsCiAg
ICAgICAgICAgICAgICdJZiB5b3UgY2FuLCB1c2Ugc2l6ZW9mKCVzKSBpbnN0ZWFkIG9mICVzIGFz
IHRoZSAybmQgYXJnICcKICAgICAgICAgICAgICAgJ3RvIHNucHJpbnRmLicgJSAobWF0Y2hlZC5n
cm91cCgxKSwgbWF0Y2hlZC5ncm91cCgyKSkpCiAKICAgICAjIENoZWNrIGlmIHNvbWUgdmVyYm90
ZW4gQyBmdW5jdGlvbnMgYXJlIGJlaW5nIHVzZWQuCiAgICAgaWYgc2VhcmNoKHInXGJzcHJpbnRm
XGInLCBsaW5lKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGlt
ZS9wcmludGYnLCA1LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvcHJpbnRm
JywgNSwKICAgICAgICAgICAgICAgJ05ldmVyIHVzZSBzcHJpbnRmLiAgVXNlIHNucHJpbnRmIGlu
c3RlYWQuJykKICAgICBtYXRjaGVkID0gc2VhcmNoKHInXGIoc3RyY3B5fHN0cmNhdClcYicsIGxp
bmUpCiAgICAgaWYgbWF0Y2hlZDoKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVy
LCAncnVudGltZS9wcmludGYnLCA0LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRp
bWUvcHJpbnRmJywgNCwKICAgICAgICAgICAgICAgJ0FsbW9zdCBhbHdheXMsIHNucHJpbnRmIGlz
IGJldHRlciB0aGFuICVzJyAlIG1hdGNoZWQuZ3JvdXAoMSkpCiAKICAgICBpZiBzZWFyY2gocidc
YnNzY2FuZlxiJywgbGluZSk6Ci0gICAgICAgIGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwg
J3J1bnRpbWUvcHJpbnRmJywgMSwKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1l
L3ByaW50ZicsIDEsCiAgICAgICAgICAgICAgICdzc2NhbmYgY2FuIGJlIG9rLCBidXQgaXMgc2xv
dyBhbmQgY2FuIG92ZXJmbG93IGJ1ZmZlcnMuJykKIAogICAgICMgQ2hlY2sgZm9yIHN1c3BpY2lv
dXMgdXNhZ2Ugb2YgImlmIiBsaWtlCiAgICAgIyB9IGlmIChhID09IGIpIHsKICAgICBpZiBzZWFy
Y2gocidcfVxzKmlmXHMqXCgnLCBsaW5lKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVf
bnVtYmVyLCAncmVhZGFiaWxpdHkvYnJhY2VzJywgNCwKKyAgICAgICAgZXJyb3IobGluZV9udW1i
ZXIsICdyZWFkYWJpbGl0eS9icmFjZXMnLCA0LAogICAgICAgICAgICAgICAnRGlkIHlvdSBtZWFu
ICJlbHNlIGlmIj8gSWYgbm90LCBzdGFydCBhIG5ldyBsaW5lIGZvciAiaWYiLicpCiAKICAgICAj
IENoZWNrIGZvciBwb3RlbnRpYWwgZm9ybWF0IHN0cmluZyBidWdzIGxpa2UgcHJpbnRmKGZvbyku
CkBAIC0yMzEzLDE0ICsyMzEzLDE0IEBAIGRlZiBjaGVja19sYW5ndWFnZShmaWxlbmFtZSwgY2xl
YW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX2V4dGVuc2lvbiwgaW5jbHVkZV9zCiAgICAgIyBO
b3QgcGVyZmVjdCBidXQgaXQgY2FuIGNhdGNoIHByaW50Zihmb28uY19zdHIoKSkgYW5kIHByaW50
Zihmb28tPmNfc3RyKCkpCiAgICAgbWF0Y2hlZCA9IHJlLnNlYXJjaChyJ1xiKCg/OnN0cmluZyk/
cHJpbnRmKVxzKlwoKFtcdy5cLT4oKV0rKVwpJywgbGluZSwgcmUuSSkKICAgICBpZiBtYXRjaGVk
OgotICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdydW50aW1lL3ByaW50Zics
IDQsCisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncnVudGltZS9wcmludGYnLCA0LAogICAg
ICAgICAgICAgICAnUG90ZW50aWFsIGZvcm1hdCBzdHJpbmcgYnVnLiBEbyAlcygiJSVzIiwgJXMp
IGluc3RlYWQuJwogICAgICAgICAgICAgICAlIChtYXRjaGVkLmdyb3VwKDEpLCBtYXRjaGVkLmdy
b3VwKDIpKSkKIAogICAgICMgQ2hlY2sgZm9yIHBvdGVudGlhbCBtZW1zZXQgYnVncyBsaWtlIG1l
bXNldChidWYsIHNpemVvZihidWYpLCAwKS4KICAgICBtYXRjaGVkID0gc2VhcmNoKHInbWVtc2V0
XHMqXCgoW14sXSopLFxzKihbXixdKiksXHMqMFxzKlwpJywgbGluZSkKICAgICBpZiBtYXRjaGVk
IGFuZCBub3QgbWF0Y2gociJeJyd8LT9bMC05XSt8MHhbMC05QS1GYS1mXSQiLCBtYXRjaGVkLmdy
b3VwKDIpKToKLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncnVudGltZS9t
ZW1zZXQnLCA0LAorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvbWVtc2V0Jywg
NCwKICAgICAgICAgICAgICAgJ0RpZCB5b3UgbWVhbiAibWVtc2V0KCVzLCAwLCAlcykiPycKICAg
ICAgICAgICAgICAgJSAobWF0Y2hlZC5ncm91cCgxKSwgbWF0Y2hlZC5ncm91cCgyKSkpCiAKQEAg
LTIzNjcsNyArMjM2Nyw3IEBAIGRlZiBjaGVja19sYW5ndWFnZShmaWxlbmFtZSwgY2xlYW5fbGlu
ZXMsIGxpbmVfbnVtYmVyLCBmaWxlX2V4dGVuc2lvbiwgaW5jbHVkZV9zCiAgICAgICAgICAgICBp
c19jb25zdCA9IEZhbHNlCiAgICAgICAgICAgICBicmVhawogICAgICAgICBpZiBub3QgaXNfY29u
c3Q6Ci0gICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGluZV9udW1iZXIsICdydW50aW1lL2Fy
cmF5cycsIDEsCisgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvYXJyYXlz
JywgMSwKICAgICAgICAgICAgICAgICAgICdEbyBub3QgdXNlIHZhcmlhYmxlLWxlbmd0aCBhcnJh
eXMuICBVc2UgYW4gYXBwcm9wcmlhdGVseSBuYW1lZCAnCiAgICAgICAgICAgICAgICAgICAiKCdr
JyBmb2xsb3dlZCBieSBDYW1lbENhc2UpIGNvbXBpbGUtdGltZSBjb25zdGFudCBmb3IgdGhlIHNp
emUuIikKIApAQCAtMjM3Nyw3ICsyMzc3LDcgQEAgZGVmIGNoZWNrX2xhbmd1YWdlKGZpbGVuYW1l
LCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBpbmNsdWRlX3MKICAg
ICBpZiAoZmlsZV9leHRlbnNpb24gPT0gJ2gnCiAgICAgICAgIGFuZCBzZWFyY2gocidcYm5hbWVz
cGFjZVxzKnsnLCBsaW5lKQogICAgICAgICBhbmQgbGluZVstMV0gIT0gJ1xcJyk6Ci0gICAgICAg
IGVycm9yKGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ2J1aWxkL25hbWVzcGFjZXMnLCA0LAorICAg
ICAgICBlcnJvcihsaW5lX251bWJlciwgJ2J1aWxkL25hbWVzcGFjZXMnLCA0LAogICAgICAgICAg
ICAgICAnRG8gbm90IHVzZSB1bm5hbWVkIG5hbWVzcGFjZXMgaW4gaGVhZGVyIGZpbGVzLiAgU2Vl
ICcKICAgICAgICAgICAgICAgJ2h0dHA6Ly9nb29nbGUtc3R5bGVndWlkZS5nb29nbGVjb2RlLmNv
bS9zdm4vdHJ1bmsvY3BwZ3VpZGUueG1sI05hbWVzcGFjZXMnCiAgICAgICAgICAgICAgICcgZm9y
IG1vcmUgaW5mb3JtYXRpb24uJykKQEAgLTI0NzYsNyArMjQ3Niw3IEBAIGRlZiBjaGVja19pZGVu
dGlmaWVyX25hbWVfaW5fZGVjbGFyYXRpb24oZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBsaW5lLCBl
cnJvcik6CiAgICAgICAgICAgICAgICAgYW5kIG5vdCBtb2RpZmllZF9pZGVudGlmaWVyLnN0YXJ0
c3dpdGgoJ3F0XycpCiAgICAgICAgICAgICAgICAgYW5kIG5vdCBtb2RpZmllZF9pZGVudGlmaWVy
LmZpbmQoJzo6cXRfJykgPj0gMAogICAgICAgICAgICAgICAgIGFuZCBub3QgbW9kaWZpZWRfaWRl
bnRpZmllciA9PSAiY29uc3RfaXRlcmF0b3IiKToKLSAgICAgICAgICAgICAgICBlcnJvcihmaWxl
bmFtZSwgbGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9uYW1pbmcnLCA0LCBpZGVudGlmaWVyICsg
IiBpcyBpbmNvcnJlY3RseSBuYW1lZC4gRG9uJ3QgdXNlIHVuZGVyc2NvcmVzIGluIHlvdXIgaWRl
bnRpZmllciBuYW1lcy4iKQorICAgICAgICAgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncmVh
ZGFiaWxpdHkvbmFtaW5nJywgNCwgaWRlbnRpZmllciArICIgaXMgaW5jb3JyZWN0bHkgbmFtZWQu
IERvbid0IHVzZSB1bmRlcnNjb3JlcyBpbiB5b3VyIGlkZW50aWZpZXIgbmFtZXMuIikKIAogICAg
ICAgICAjIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSBkZWNsYXJhdGlvbiBpbiBub24tZm9yLWNvbnRy
b2wgc3RhdGVtZW50cy4KICAgICAgICAgaWYgY29udHJvbF9zdGF0ZW1lbnQ6CkBAIC0yNTE0LDcg
KzI1MTQsNyBAQCBkZWYgY2hlY2tfY19zdHlsZV9jYXN0KGZpbGVuYW1lLCBsaW5lX251bWJlciwg
bGluZSwgcmF3X2xpbmUsIGNhc3RfdHlwZSwgcGF0dGVybgogICAgICMgZS5nLiwgc2l6ZW9mKGlu
dCkKICAgICBzaXplb2ZfbWF0Y2ggPSBtYXRjaChyJy4qc2l6ZW9mXHMqJCcsIGxpbmVbMDptYXRj
aGVkLnN0YXJ0KDEpIC0gMV0pCiAgICAgaWYgc2l6ZW9mX21hdGNoOgotICAgICAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICdydW50aW1lL3NpemVvZicsIDEsCisgICAgICAgIGVycm9y
KGxpbmVfbnVtYmVyLCAncnVudGltZS9zaXplb2YnLCAxLAogICAgICAgICAgICAgICAnVXNpbmcg
c2l6ZW9mKHR5cGUpLiAgVXNlIHNpemVvZih2YXJuYW1lKSBpbnN0ZWFkIGlmIHBvc3NpYmxlJykK
ICAgICAgICAgcmV0dXJuCiAKQEAgLTI1MzYsMTIgKzI1MzYsMTIgQEAgZGVmIGNoZWNrX2Nfc3R5
bGVfY2FzdChmaWxlbmFtZSwgbGluZV9udW1iZXIsIGxpbmUsIHJhd19saW5lLCBjYXN0X3R5cGUs
IHBhdHRlcm4KICAgICAgICAgaWYgKG5vdCBmdW5jdGlvbl9tYXRjaC5ncm91cCgzKQogICAgICAg
ICAgICAgb3IgZnVuY3Rpb25fbWF0Y2guZ3JvdXAoMykgPT0gJzsnCiAgICAgICAgICAgICBvciBy
YXdfbGluZS5maW5kKCcvKicpIDwgMCk6Ci0gICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwgbGlu
ZV9udW1iZXIsICdyZWFkYWJpbGl0eS9mdW5jdGlvbicsIDMsCisgICAgICAgICAgICBlcnJvcihs
aW5lX251bWJlciwgJ3JlYWRhYmlsaXR5L2Z1bmN0aW9uJywgMywKICAgICAgICAgICAgICAgICAg
ICdBbGwgcGFyYW1ldGVycyBzaG91bGQgYmUgbmFtZWQgaW4gYSBmdW5jdGlvbicpCiAgICAgICAg
IHJldHVybgogCiAgICAgIyBBdCB0aGlzIHBvaW50LCBhbGwgdGhhdCBzaG91bGQgYmUgbGVmdCBp
cyBhY3R1YWwgY2FzdHMuCi0gICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAncmVhZGFi
aWxpdHkvY2FzdGluZycsIDQsCisgICAgZXJyb3IobGluZV9udW1iZXIsICdyZWFkYWJpbGl0eS9j
YXN0aW5nJywgNCwKICAgICAgICAgICAnVXNpbmcgQy1zdHlsZSBjYXN0LiAgVXNlICVzPCVzPigu
Li4pIGluc3RlYWQnICUKICAgICAgICAgICAoY2FzdF90eXBlLCBtYXRjaGVkLmdyb3VwKDEpKSkK
IApAQCAtMjc4MSw3ICsyNzgxLDcgQEAgZGVmIGNoZWNrX2Zvcl9pbmNsdWRlX3doYXRfeW91X3Vz
ZShmaWxlbmFtZSwgY2xlYW5fbGluZXMsIGluY2x1ZGVfc3RhdGUsIGVycm9yLAogICAgICAgICAg
ICAgaWYgW1RydWUgZm9yIGhlYWRlciBpbiBoZWFkZXJzIGlmIGhlYWRlciBpbiBpbmNsdWRlX3N0
YXRlXToKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBpZiByZXF1aXJlZF9oZWFk
ZXJfdW5zdHJpcHBlZC5zdHJpcCgnPD4iJykgbm90IGluIGluY2x1ZGVfc3RhdGU6Ci0gICAgICAg
ICAgICBlcnJvcihmaWxlbmFtZSwgcmVxdWlyZWRbcmVxdWlyZWRfaGVhZGVyX3Vuc3RyaXBwZWRd
WzBdLAorICAgICAgICAgICAgZXJyb3IocmVxdWlyZWRbcmVxdWlyZWRfaGVhZGVyX3Vuc3RyaXBw
ZWRdWzBdLAogICAgICAgICAgICAgICAgICAgJ2J1aWxkL2luY2x1ZGVfd2hhdF95b3VfdXNlJywg
NCwKICAgICAgICAgICAgICAgICAgICdBZGQgI2luY2x1ZGUgJyArIHJlcXVpcmVkX2hlYWRlcl91
bnN0cmlwcGVkICsgJyBmb3IgJyArIHRlbXBsYXRlKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NwcF9zdHlsZV91bml0dGVzdC5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CmluZGV4IGMw
Mzk1OGMuLjBhNTYwNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CkBAIC02Miw4ICs2Miw3IEBAIGNsYXNz
IEVycm9yQ29sbGVjdG9yOgogICAgICAgICBzZWxmLl9hc3NlcnRfZm4gPSBhc3NlcnRfZm4KICAg
ICAgICAgc2VsZi5fZXJyb3JzID0gW10KIAotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB1bnVzZWRf
ZmlsZW5hbWUsIHVudXNlZF9saW5lbnVtLAotICAgICAgICAgICAgICAgICBjYXRlZ29yeSwgY29u
ZmlkZW5jZSwgbWVzc2FnZSk6CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHVudXNlZF9saW5lbnVt
LCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9m
bihjYXRlZ29yeSBpbiBzZWxmLl9hbGxfc3R5bGVfY2F0ZWdvcmllcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICdNZXNzYWdlICIlcyIgaGFzIGNhdGVnb3J5ICIlcyIsJwogICAgICAgICAgICAg
ICAgICAgICAgICAgJyB3aGljaCBpcyBub3QgaW4gU1RZTEVfQ0FURUdPUklFUycgJSAobWVzc2Fn
ZSwgY2F0ZWdvcnkpKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS90ZXh0X3N0eWxlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS90
ZXh0X3N0eWxlLnB5CmluZGV4IDRmODY5YWYuLjMwN2U1YjggMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvdGV4dF9zdHlsZS5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3RleHRfc3R5bGUucHkKQEAgLTQ0LDcgKzQ0LDcgQEAg
Y2xhc3MgVGV4dFByb2Nlc3NvcihvYmplY3QpOgogICAgICAgICAjIEZJWE1FOiBzaGFyZSB3aXRo
IGNwcF9zdHlsZS4KICAgICAgICAgZm9yIGxpbmVfbnVtYmVyLCBsaW5lIGluIGVudW1lcmF0ZShs
aW5lcyk6CiAgICAgICAgICAgICBpZiAiXHQiIGluIGxpbmU6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5oYW5kbGVfc3R5bGVfZXJyb3Ioc2VsZi5maWxlX3BhdGgsIGxpbmVfbnVtYmVyLAorICAgICAg
ICAgICAgICAgIHNlbGYuaGFuZGxlX3N0eWxlX2Vycm9yKGxpbmVfbnVtYmVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGl0ZXNwYWNlL3RhYiIsIDUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxpbmUgY29udGFpbnMgdGFiIGNo
YXJhY3Rlci4iKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL3RleHRfc3R5bGVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL3RleHRfc3R5bGVfdW5pdHRlc3QucHkKaW5kZXggMzliNDI1NC4uOWE1NTVjZSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS90ZXh0X3N0eWxlX3Vu
aXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvdGV4dF9z
dHlsZV91bml0dGVzdC5weQpAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBUZXh0U3R5bGVUZXN0Q2Fz
ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICIiIkFzc2VydHMgdGhhdCB0aGUgc3BlY2lm
aWVkIGxpbmVzIGhhcyBubyBlcnJvcnMuIiIiCiAgICAgICAgIHNlbGYuaGFkX2Vycm9yID0gRmFs
c2UKIAotICAgICAgICBkZWYgZXJyb3JfZm9yX3Rlc3QoZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCBj
YXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6CisgICAgICAgIGRlZiBlcnJvcl9mb3JfdGVz
dChsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICAg
ICAgIiIiUmVjb3JkcyBpZiBhbiBlcnJvciBvY2N1cnMuIiIiCiAgICAgICAgICAgICBzZWxmLmhh
ZF9lcnJvciA9IFRydWUKIApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBUZXh0U3R5bGVUZXN0Q2Fz
ZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICIiIkFzc2VydHMgdGhhdCB0aGUgc3BlY2lm
aWVkIGxpbmVzIGhhcyBhbiBlcnJvci4iIiIKICAgICAgICAgc2VsZi5oYWRfZXJyb3IgPSBGYWxz
ZQogCi0gICAgICAgIGRlZiBlcnJvcl9mb3JfdGVzdChmaWxlbmFtZSwgbGluZV9udW1iZXIsIGNh
dGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKToKKyAgICAgICAgZGVmIGVycm9yX2Zvcl90ZXN0
KGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6CiAgICAgICAgICAg
ICAiIiJDaGVja3MgaWYgdGhlIGV4cGVjdGVkIGVycm9yIG9jY3Vycy4iIiIKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkX2xpbmVfbnVtYmVyLCBsaW5lX251bWJlcikKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCd3aGl0ZXNwYWNlL3RhYicsIGNhdGVnb3J5KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>