<?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>147752</bug_id>
          
          <creation_ts>2015-08-06 15:59:23 -0700</creation_ts>
          <short_desc>http_server_driver and benchmark_builder should not be in run-benchmark&apos;s plan files</short_desc>
          <delta_ts>2015-08-06 16:41:01 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>kling</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115509</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-06 15:59:23 -0700</bug_when>
    <thetext>Simplify the plan files further</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115512</commentid>
    <comment_count>1</comment_count>
      <attachid>258413</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-06 16:06:19 -0700</bug_when>
    <thetext>Created attachment 258413
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115517</commentid>
    <comment_count>2</comment_count>
      <attachid>258416</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-06 16:11:35 -0700</bug_when>
    <thetext>Created attachment 258416
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115518</commentid>
    <comment_count>3</comment_count>
      <attachid>258417</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-06 16:13:40 -0700</bug_when>
    <thetext>Created attachment 258417
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115523</commentid>
    <comment_count>4</comment_count>
      <attachid>258417</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-08-06 16:18:01 -0700</bug_when>
    <thetext>Comment on attachment 258417
Cleanup

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

rs=me with comment

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:20
&gt;      builder_name = &apos;GenericBenchmarkBuilder&apos;

Forgot to update the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115545</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-06 16:40:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 258417 [details]
&gt; Cleanup
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258417&amp;action=review
&gt; 
&gt; rs=me with comment
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py:20
&gt; &gt;      builder_name = &apos;GenericBenchmarkBuilder&apos;
&gt; 
&gt; Forgot to update the name.

Oh right, we don&apos;t even need this because we no longer use factory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115546</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-08-06 16:41:01 -0700</bug_when>
    <thetext>Committed r188092: &lt;http://trac.webkit.org/changeset/188092&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258413</attachid>
            <date>2015-08-06 16:06:19 -0700</date>
            <delta_ts>2015-08-06 16:11:32 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-147752-20150806160609.patch</filename>
            <type>text/plain</type>
            <size>32912</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODA3MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIGh0dHBfc2VydmVyX2RyaXZlciBhbmQgYmVuY2htYXJrX2J1aWxkZXIgc2hvdWxk
IG5vdCBiZSBpbiBydW4tYmVuY2htYXJrJ3MgcGxhbiBmaWxlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBCZW5jaG1hcmtCdWlsZGVyRmFj
dG9yeSBzaW5jZSB3ZSBoYXZlIGV4YWN0bHkgb25lIHN1YmNsYXNzIG9mIEJlbmNobWFya0J1aWxk
ZXIuCisKKyAgICAgICAgQWxzbyBtYWRlIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5IGluc3RhbnRp
YXRlIHRoZSBhcHByb3ByaWF0ZSBIVFRQIHNlcnZlciBiYXNlZCBvbiB0aGUgcGxhdGZvcm0gbmFt
ZSBpbnN0ZWFkIG9mIEhUVFAgc2VydmVyIG5hbWUuCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRv
IHJlbW92ZSAtLWh0dHAtc2VydmVyLWRyaXZlciBvcHRpb24gZnJvbSBydW4tYmVuY2htYXJrLCB3
aGljaCB3YXMgYWRkZWQgdG8gc3VwcG9ydCB0aGUgSFRUUCBzZXJ2ZXIgZm9yIGlPUy4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
cjogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIucHk6IE1vdmVkIGZyb20gYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFya19idWlsZGVyLnB5LgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5w
eTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1
aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weTogTW92ZWQgdG8gYmVuY2htYXJrX3J1
bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weToKKyAgICAgICAgKEJlbmNobWFya1J1
bm5lci5fX2luaXRfXyk6IE5vIGxvbmdlciB0YWtlcyBodHRwX3NlcnZlcl9kcml2ZXJfb3ZlcnJp
ZGUgYXMgYW4gYXJndW1lbnQgc2luY2UgdGhpcyBpcyBub3QgaGFuZGxlZCBieQorICAgICAgICBI
VFRQU2VydmVyRHJpdmVyRmFjdG9yeSB0YWtpbmcgdGhlIHBsYXRmb3JtIG5hbWUgYXMgYW4gYXJn
dW1lbnQuCisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuZXhlY3V0ZSk6IERpcmVjdGx5IGluc3Rh
bnRpYXRlIEJlbmNobWFya0J1aWxkZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuOiBSZW1vdmVkIGh0
dHBfc2VydmVyX2RyaXZlciBhbmQgYmVuY2htYXJrX2J1aWxkZXIuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1kb20ucGxhbjog
RGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEv
cGxhbnMvZHJvbWFlby1qc2xpYi5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9qZXRzdHJlYW0ucGxhbjogRGl0dG8uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNi
ZW5jaC5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbjogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvb2N0YW5lLnBsYW46IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3Nw
ZWVkb21ldGVyLnBsYW46IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9kYXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5p
dF9fLnB5OgorICAgICAgICAoaHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcik6IFJlZ2lzdGVyIGh0
dHAgc2VydmVyIGRyaXZlcnMgdmlhIHN1cHBvcnRlZCBwbGF0Zm9ybSBuYW1lcyBpbnN0ZWFkIG9m
IGh0dHAgc2VydmVyIG5hbWVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAg
ICAoSFRUUFNlcnZlckRyaXZlcik6IFJlcGxhY2VkIG5hbWUgYnkgcGxhdGZvcm1zLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
c2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJE
cml2ZXIpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvcnVuX2JlbmNobWFyay5weToKKyAgICAgICAgKHBhcnNlX2FyZ3MpOiBSZW1vdmVkIC0taHR0
cC1zZXJ2ZXItZHJpdmVyIG9wdGlvbi4KKyAgICAgICAgKHN0YXJ0KTogRGl0dG8uCisKIDIwMTUt
MDgtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBUb2dnbGUg
R1BTIHN0YXRlIGJhc2VkIG9uIHBhZ2UgdmlzaWJpbGl0eSB0byBzYXZlIGJhdHRlcnkKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4ODA2
NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtf
YnVpbGRlci9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi0jIFJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUgZmls
ZXMKLQotIyBLZWVwIHRoaXMgZmlsZSBmcmVlIG9mIGFueSBjb2RlIG9yIGltcG9ydCBzdGF0ZW1l
bnRzIHRoYXQgY291bGQKLSMgY2F1c2UgZWl0aGVyIGFuIGVycm9yIHRvIG9jY3VyIG9yIGEgbG9n
IG1lc3NhZ2UgdG8gYmUgbG9nZ2VkLgotIyBUaGlzIGVuc3VyZXMgdGhhdCBjYWxsaW5nIGNvZGUg
Y2FuIGltcG9ydCBpbml0aWFsaXphdGlvbiBjb2RlIGZyb20KLSMgd2Via2l0cHkgYmVmb3JlIGFu
eSBlcnJvcnMgb3IgbG9nIG1lc3NhZ2VzIGR1ZSB0byBjb2RlIGluIHRoaXMgZmlsZS4KLSMgSW5p
dGlhbGl6YXRpb24gY29kZSBjYW4gaW5jbHVkZSB0aGluZ3MgbGlrZSB2ZXJzaW9uLWNoZWNraW5n
IGNvZGUgYW5kCi0jIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBjb2RlLgotIwotIyBXZSBkbyBub3Qg
ZXhlY3V0ZSBhbnkgdmVyc2lvbi1jaGVja2luZyBjb2RlIG9yIGxvZ2dpbmcgY29uZmlndXJhdGlv
bgotIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1pbiBhcyB0aGV5
IHdhbnQuICBUaGlzIGFsc28KLSMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRvIGNob29zZSBk
aWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKLSMgYXMgbmVjZXNzYXJ5LgotaW1wb3J0IG9z
Ci0KLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZF9zdWJj
bGFzc2VzCi1mcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFya0J1
aWxkZXJGYWN0b3J5Ci0KLQotZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihiZW5jaG1hcmtf
YnVpbGRlcl9jbGFzcyk6Ci0gICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRlcl9u
YW1lOgotICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2htYXJrX2J1aWxk
ZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykKLQotCi1sb2Fk
X3N1YmNsYXNzZXMoCi0gICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRo
KF9fZmlsZV9fKSksCi0gICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2htYXJrQnVpbGRl
cicsCi0gICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1h
cmtfYnVpbGRlcl9mYWN0b3J5LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9m
YWN0b3J5LnB5CShyZXZpc2lvbiAxODgwNjQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9y
eS5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLQotZnJvbSB3ZWJr
aXRweS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3Rv
cnkKLQotCi1jbGFzcyBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6Ci0K
LSAgICBwcm9kdWN0cyA9IHt9CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24gMTg4
MDY0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFy
a19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgb3MKLWltcG9ydCB1cmxsaWIKLWltcG9ydCBzaHV0aWwK
LWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGFyZmlsZQotCi1mcm9tIHppcGZpbGUgaW1wb3J0
IFppcEZpbGUKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgZ2V0
X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQotCi0KLV9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRlcihv
YmplY3QpOgotCi0gICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVyJwot
Ci0gICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6Ci0gICAgICAgIHNlbGYuX25hbWUg
PSBuYW1lCi0gICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAg
ICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25hbWUp
Ci0gICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgotICAgICAgICAgICAgc2VsZi5fY29w
eV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQotICAgICAgICBlbGlm
ICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNlbGYuX2ZldGNoX3JlbW90
ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCi0gICAgICAgIGVsaWYgJ3N2bl9zb3Vy
Y2UnIGluIHBsYW46Ci0gICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNpb24o
cGxhblsnc3ZuX3NvdXJjZSddKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKLQotICAg
ICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYuX2Rl
c3QpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBwbGFu
OgotICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0ZV9z
Y3JpcHQnXSkKLSAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10pCi0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKLSAgICAgICAgICAgIHNlbGYuY2xlYW4oKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRl
ZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6Ci0gICAgICAgIG9sZF93
b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCi0gICAgICAgIG9zLmNoZGlyKHNlbGYuX2Rl
c3QpCi0gICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9zY3Jp
cHQsIHNlbGYuX2Rlc3QpKQotICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNy
ZWF0ZV9zY3JpcHQpCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkKLSAg
ICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90
IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBk
ZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToKLSAg
ICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNobWFy
a19wYXRoKSwgc2VsZi5fZGVzdCkKLQotICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUoc2Vs
ZiwgYXJjaGl2ZV91cmwpOgotICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnppcCcp
OgotICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKLSAgICAgICAgZWxpZiBhcmNoaXZl
X3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6Ci0gICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAndGFy
Lmd6JwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBu
b3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3VybCkK
LQotICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsICdh
cmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCi0gICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRpbmcg
JXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQotICAgICAgICB1cmxsaWIu
dXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKLQotICAgICAgICBpZiBhcmNo
aXZlX3R5cGUgPT0gJ3ppcCc6Ci0gICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9wYXRo
LCAncicpIGFzIGFyY2hpdmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNl
bGYuX2Rlc3QpCi0gICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgotICAgICAg
ICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hpdmU6
Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCi0KLSAgICAg
ICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3RhcnRz
d2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQotICAgICAgICBpZiBsZW4odW5hcmNo
aXZlZF9maWxlcykgPT0gMToKLSAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpvaW4o
c2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKLSAgICAgICAgICAgIGlmIG9zLnBhdGgu
aXNkaXIoZmlyc3RfZmlsZSk6Ci0gICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3RfZmls
ZSwgc2VsZi5fd2ViX3Jvb3QpCi0gICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGguam9p
bihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCi0KLSAg
ICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6Ci0g
ICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9uX3Vy
bCwgc2VsZi5fZGVzdCkpCi0gICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwoWydz
dm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCi0gICAgICAgIGlm
IGVycm9yX2NvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVja291
dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBkZWYgX2Fw
cGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5ID0g
b3MuZ2V0Y3dkKCkKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKLSAgICAgICAgZXJyb3Jf
Y29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdldF9w
YXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3Jr
aW5nX2RpcmVjdG9yeSkKLSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5jaG1h
cmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQotCi0gICAgZGVmIGNsZWFuKHNlbGYp
OgotICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCi0gICAgICAgIGlmIHNl
bGYuX3dlYl9yb290OgotICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290KQpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19i
dWlsZGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24gMTg4MDY1KQkoZnJvbSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2Vu
ZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weToxODgwNjUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMDEgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgb3MKK2ltcG9ydCB1cmxsaWIKK2ltcG9ydCBzaHV0
aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgdGFyZmlsZQorCitmcm9tIHppcGZpbGUgaW1w
b3J0IFppcEZpbGUKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
Z2V0X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQorCisKK19sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRl
cihvYmplY3QpOgorCisgICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
JworCisgICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6CisgICAgICAgIHNlbGYuX25h
bWUgPSBuYW1lCisgICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCisg
ICAgICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25h
bWUpCisgICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgorICAgICAgICAgICAgc2VsZi5f
Y29weV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQorICAgICAgICBl
bGlmICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKKyAgICAgICAgICAgIHNlbGYuX2ZldGNoX3Jl
bW90ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCisgICAgICAgIGVsaWYgJ3N2bl9z
b3VyY2UnIGluIHBsYW46CisgICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNp
b24ocGxhblsnc3ZuX3NvdXJjZSddKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKKwor
ICAgICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYu
X2Rlc3QpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBw
bGFuOgorICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0
ZV9zY3JpcHQnXSkKKyAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Cisg
ICAgICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10p
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIHNlbGYuY2xlYW4oKQorICAgICAgICAgICAgcmFpc2UKKworICAg
IGRlZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6CisgICAgICAgIG9s
ZF93b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCisgICAgICAgIG9zLmNoZGlyKHNlbGYu
X2Rlc3QpCisgICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9z
Y3JpcHQsIHNlbGYuX2Rlc3QpKQorICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxs
KGNyZWF0ZV9zY3JpcHQpCisgICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkK
KyAgICAgICAgaWYgZXJyb3JfY29kZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fu
bm90IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCisKKyAg
ICBkZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToK
KyAgICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNo
bWFya19wYXRoKSwgc2VsZi5fZGVzdCkKKworICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUo
c2VsZiwgYXJjaGl2ZV91cmwpOgorICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnpp
cCcpOgorICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKKyAgICAgICAgZWxpZiBhcmNo
aXZlX3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6CisgICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAn
dGFyLmd6JworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3Vs
ZCBub3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3Vy
bCkKKworICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3Qs
ICdhcmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCisgICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRp
bmcgJXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQorICAgICAgICB1cmxs
aWIudXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKKworICAgICAgICBpZiBh
cmNoaXZlX3R5cGUgPT0gJ3ppcCc6CisgICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9w
YXRoLCAncicpIGFzIGFyY2hpdmU6CisgICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxs
KHNlbGYuX2Rlc3QpCisgICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgorICAg
ICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hp
dmU6CisgICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCisKKyAg
ICAgICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3Rh
cnRzd2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQorICAgICAgICBpZiBsZW4odW5h
cmNoaXZlZF9maWxlcykgPT0gMToKKyAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpv
aW4oc2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKKyAgICAgICAgICAgIGlmIG9zLnBh
dGguaXNkaXIoZmlyc3RfZmlsZSk6CisgICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3Rf
ZmlsZSwgc2VsZi5fd2ViX3Jvb3QpCisgICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGgu
am9pbihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCisK
KyAgICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6
CisgICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9u
X3VybCwgc2VsZi5fZGVzdCkpCisgICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwo
Wydzdm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCisgICAgICAg
IGlmIGVycm9yX2NvZGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVj
a291dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCisKKyAgICBkZWYg
X2FwcGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKKyAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5
ID0gb3MuZ2V0Y3dkKCkKKyAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKKyAgICAgICAgZXJy
b3JfY29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdl
dF9wYXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCisgICAgICAgIG9zLmNoZGlyKG9sZF93
b3JraW5nX2RpcmVjdG9yeSkKKyAgICAgICAgaWYgZXJyb3JfY29kZToKKyAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5j
aG1hcmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQorCisgICAgZGVmIGNsZWFuKHNl
bGYpOgorICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCisgICAgICAgIGlm
IHNlbGYuX3dlYl9yb290OgorICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290
KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFy
a19idWlsZGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQkod29ya2luZyBjb3B5KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBAIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1
bm5lci51dGlscyBpbXAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCi1j
bGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRlcihvYmplY3QpOgorY2xhc3MgQmVuY2htYXJrQnVp
bGRlcihvYmplY3QpOgogCiAgICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWls
ZGVyJwogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX3J1bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMTg4MDY0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgaW1wb3J0IHR5cGVzCiBpbXBvcnQg
b3MKIGltcG9ydCB1cmxwYXJzZQogCi1mcm9tIGJlbmNobWFya19idWlsZGVyLmJlbmNobWFya19i
dWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFya0J1aWxkZXJGYWN0b3J5Citmcm9tIGJlbmNo
bWFya19idWlsZGVyIGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyCiBmcm9tIGJlbmNobWFya19yZXN1
bHRzIGltcG9ydCBCZW5jaG1hcmtSZXN1bHRzCiBmcm9tIGJyb3dzZXJfZHJpdmVyLmJyb3dzZXJf
ZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CiBmcm9tIGh0dHBfc2Vy
dmVyX2RyaXZlci5odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRy
aXZlckZhY3RvcnkKQEAgLTI0LDcgKzI0LDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQogCiBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwbGFuX2ZpbGUsIGxvY2FsX2NvcHksIGNvdW50X292ZXJyaWRlLCBidWlsZF9k
aXIsIG91dHB1dF9maWxlLCBwbGF0Zm9ybSwgYnJvd3NlciwgaHR0cF9zZXJ2ZXJfZHJpdmVyX292
ZXJyaWRlPU5vbmUsIGRldmljZV9pZD1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGxh
bl9maWxlLCBsb2NhbF9jb3B5LCBjb3VudF9vdmVycmlkZSwgYnVpbGRfZGlyLCBvdXRwdXRfZmls
ZSwgcGxhdGZvcm0sIGJyb3dzZXIsIGRldmljZV9pZD1Ob25lKToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgcGxhbl9maWxlID0gc2VsZi5fZmluZF9wbGFuX2ZpbGUocGxhbl9maWxlKQogICAg
ICAgICAgICAgd2l0aCBvcGVuKHBsYW5fZmlsZSwgJ3InKSBhcyBmcDoKQEAgLTM0LDEwICszNCw4
IEBAIGNsYXNzIEJlbmNobWFya1J1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9wbGFuWydsb2NhbF9jb3B5J10gPSBsb2NhbF9jb3B5CiAgICAgICAgICAgICAgICAgaWYg
Y291bnRfb3ZlcnJpZGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BsYW5bJ2NvdW50J10g
PSBjb3VudF9vdmVycmlkZQotICAgICAgICAgICAgICAgIGlmIGh0dHBfc2VydmVyX2RyaXZlcl9v
dmVycmlkZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGxhblsnaHR0cF9zZXJ2ZXJfZHJp
dmVyJ10gPSBodHRwX3NlcnZlcl9kcml2ZXJfb3ZlcnJpZGUKICAgICAgICAgICAgICAgICBzZWxm
Ll9icm93c2VyX2RyaXZlciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShwbGF0Zm9ybSwg
YnJvd3NlcikKLSAgICAgICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlcl9kcml2ZXIgPSBIVFRQ
U2VydmVyRHJpdmVyRmFjdG9yeS5jcmVhdGUoc2VsZi5fcGxhblsnaHR0cF9zZXJ2ZXJfZHJpdmVy
J10pCisgICAgICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXJfZHJpdmVyID0gSFRUUFNlcnZl
ckRyaXZlckZhY3RvcnkuY3JlYXRlKHBsYXRmb3JtKQogICAgICAgICAgICAgICAgIHNlbGYuX2h0
dHBfc2VydmVyX2RyaXZlci5zZXRfZGV2aWNlX2lkKGRldmljZV9pZCkKICAgICAgICAgICAgICAg
ICBzZWxmLl9idWlsZF9kaXIgPSBvcy5wYXRoLmFic3BhdGgoYnVpbGRfZGlyKSBpZiBidWlsZF9k
aXIgZWxzZSBOb25lCiAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cHV0X2ZpbGUgPSBvdXRwdXRf
ZmlsZQpAQCAtNjQsNyArNjIsNyBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKICAg
ICAgICAgX2xvZy5pbmZvKCdTdGFydCB0byBleGVjdXRlIHRoZSBwbGFuJykKICAgICAgICAgX2xv
Zy5pbmZvKCdTdGFydCBhIG5ldyBiZW5jaG1hcmsnKQogICAgICAgICByZXN1bHRzID0gW10KLSAg
ICAgICAgc2VsZi5fYmVuY2htYXJrX2J1aWxkZXIgPSBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5j
cmVhdGUoc2VsZi5fcGxhblsnYmVuY2htYXJrX2J1aWxkZXInXSkKKyAgICAgICAgc2VsZi5fYmVu
Y2htYXJrX2J1aWxkZXIgPSBCZW5jaG1hcmtCdWlsZGVyKCkKIAogICAgICAgICB3ZWJfcm9vdCA9
IHNlbGYuX2JlbmNobWFya19idWlsZGVyLnByZXBhcmUoc2VsZi5fcGxhbl9uYW1lLCBzZWxmLl9w
bGFuKQogICAgICAgICBmb3IgeCBpbiB4cmFuZ2UoaW50KHNlbGYuX3BsYW5bJ2NvdW50J10pKToK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9ydW5fYmVuY2ht
YXJrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9ydW5fYmVuY2htYXJrLnB5CShyZXZpc2lvbiAxODgwNjQpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQkod29ya2luZyBjb3B5
KQpAQCAtMjMsNyArMjMsNiBAQCBkZWYgcGFyc2VfYXJncygpOgogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tZGVidWcnLCBhY3Rpb249J3N0b3JlX3RydWUnKQogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tbG9jYWwtY29weScsIGRlc3Q9J2xvY2FsQ29weScsIGhlbHA9J1BhdGggdG8gYSBs
b2NhbCBjb3B5IG9mIHRoZSBiZW5jaG1hcmsuIGUuZy4gUGVyZm9ybWFuY2VUZXN0cy9TdW5TcGlk
ZXIvJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWNvdW50JywgZGVzdD0nY291bnRPdmVy
cmlkZScsIHR5cGU9aW50LCBoZWxwPSdOdW1iZXIgb2YgdGltZXMgdG8gcnVuIHRoZSBiZW5jaG1h
cmsuIGUuZy4gNScpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1odHRwLXNlcnZlci1kcml2
ZXInLCBkZXN0PSdodHRwU2VydmVyRHJpdmVyT3ZlcnJpZGUnLCBkZWZhdWx0PU5vbmUsIGhlbHA9
J1NwZWNpZnkgd2hpY2ggSFRUUCBzZXJ2ZXIgeW91IHdhbnRzIHRvIHVzZScpCiAgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgnLS1kZXZpY2UtaWQnLCBkZXN0PSdkZXZpY2VfaWQnLCBkZWZhdWx0PU5v
bmUpCiAKICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQpAQCAtMzksNyArMzgsNyBAQCBk
ZWYgcGFyc2VfYXJncygpOgogCiAKIGRlZiBzdGFydChhcmdzKToKLSAgICBydW5uZXIgPSBCZW5j
aG1hcmtSdW5uZXIoYXJncy5wbGFuLCBhcmdzLmxvY2FsQ29weSwgYXJncy5jb3VudE92ZXJyaWRl
LCBhcmdzLmJ1aWxkRGlyLCBhcmdzLm91dHB1dCwgYXJncy5wbGF0Zm9ybSwgYXJncy5icm93c2Vy
LCBhcmdzLmh0dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZSwgYXJncy5kZXZpY2VfaWQpCisgICAgcnVu
bmVyID0gQmVuY2htYXJrUnVubmVyKGFyZ3MucGxhbiwgYXJncy5sb2NhbENvcHksIGFyZ3MuY291
bnRPdmVycmlkZSwgYXJncy5idWlsZERpciwgYXJncy5vdXRwdXQsIGFyZ3MucGxhdGZvcm0sIGFy
Z3MuYnJvd3NlciwgYXJncy5kZXZpY2VfaWQpCiAgICAgcnVubmVyLmV4ZWN1dGUoKQogCiAKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVp
bGRlci9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4
ODA2NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi0j
IFJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUg
ZmlsZXMKLQotIyBLZWVwIHRoaXMgZmlsZSBmcmVlIG9mIGFueSBjb2RlIG9yIGltcG9ydCBzdGF0
ZW1lbnRzIHRoYXQgY291bGQKLSMgY2F1c2UgZWl0aGVyIGFuIGVycm9yIHRvIG9jY3VyIG9yIGEg
bG9nIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkLgotIyBUaGlzIGVuc3VyZXMgdGhhdCBjYWxsaW5nIGNv
ZGUgY2FuIGltcG9ydCBpbml0aWFsaXphdGlvbiBjb2RlIGZyb20KLSMgd2Via2l0cHkgYmVmb3Jl
IGFueSBlcnJvcnMgb3IgbG9nIG1lc3NhZ2VzIGR1ZSB0byBjb2RlIGluIHRoaXMgZmlsZS4KLSMg
SW5pdGlhbGl6YXRpb24gY29kZSBjYW4gaW5jbHVkZSB0aGluZ3MgbGlrZSB2ZXJzaW9uLWNoZWNr
aW5nIGNvZGUgYW5kCi0jIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBjb2RlLgotIwotIyBXZSBkbyBu
b3QgZXhlY3V0ZSBhbnkgdmVyc2lvbi1jaGVja2luZyBjb2RlIG9yIGxvZ2dpbmcgY29uZmlndXJh
dGlvbgotIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1pbiBhcyB0
aGV5IHdhbnQuICBUaGlzIGFsc28KLSMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRvIGNob29z
ZSBkaWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKLSMgYXMgbmVjZXNzYXJ5LgotaW1wb3J0
IG9zCi0KLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZF9z
dWJjbGFzc2VzCi1mcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFy
a0J1aWxkZXJGYWN0b3J5Ci0KLQotZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihiZW5jaG1h
cmtfYnVpbGRlcl9jbGFzcyk6Ci0gICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRl
cl9uYW1lOgotICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2htYXJrX2J1
aWxkZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykKLQotCi1s
b2FkX3N1YmNsYXNzZXMoCi0gICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNw
YXRoKF9fZmlsZV9fKSksCi0gICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2htYXJrQnVp
bGRlcicsCi0gICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5j
aG1hcmtfYnVpbGRlcl9mYWN0b3J5LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRl
cl9mYWN0b3J5LnB5CShyZXZpc2lvbiAxODgwNjQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFj
dG9yeS5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi0jIS91c3IvYmluL2VudiBw
eXRob24KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLQotZnJvbSB3
ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0Zh
Y3RvcnkKLQotCi1jbGFzcyBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6
Ci0KLSAgICBwcm9kdWN0cyA9IHt9CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24g
MTg4MDY1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotCi1pbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgb3MKLWltcG9ydCB1cmxsaWIKLWltcG9ydCBzaHV0
aWwKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGFyZmlsZQotCi1mcm9tIHppcGZpbGUgaW1w
b3J0IFppcEZpbGUKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
Z2V0X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQotCi0KLV9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRl
cihvYmplY3QpOgotCi0gICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
JwotCi0gICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6Ci0gICAgICAgIHNlbGYuX25h
bWUgPSBuYW1lCi0gICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCi0g
ICAgICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25h
bWUpCi0gICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgotICAgICAgICAgICAgc2VsZi5f
Y29weV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQotICAgICAgICBl
bGlmICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNlbGYuX2ZldGNoX3Jl
bW90ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCi0gICAgICAgIGVsaWYgJ3N2bl9z
b3VyY2UnIGluIHBsYW46Ci0gICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNp
b24ocGxhblsnc3ZuX3NvdXJjZSddKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKLQot
ICAgICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYu
X2Rlc3QpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBw
bGFuOgotICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0
ZV9zY3JpcHQnXSkKLSAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10p
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKLSAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKLSAgICAgICAgICAgIHNlbGYuY2xlYW4oKQotICAgICAgICAgICAgcmFpc2UKLQotICAg
IGRlZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6Ci0gICAgICAgIG9s
ZF93b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCi0gICAgICAgIG9zLmNoZGlyKHNlbGYu
X2Rlc3QpCi0gICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9z
Y3JpcHQsIHNlbGYuX2Rlc3QpKQotICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxs
KGNyZWF0ZV9zY3JpcHQpCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkK
LSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fu
bm90IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAg
ICBkZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToK
LSAgICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNo
bWFya19wYXRoKSwgc2VsZi5fZGVzdCkKLQotICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUo
c2VsZiwgYXJjaGl2ZV91cmwpOgotICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnpp
cCcpOgotICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKLSAgICAgICAgZWxpZiBhcmNo
aXZlX3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6Ci0gICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAn
dGFyLmd6JwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3Vs
ZCBub3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3Vy
bCkKLQotICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3Qs
ICdhcmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCi0gICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRp
bmcgJXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQotICAgICAgICB1cmxs
aWIudXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKLQotICAgICAgICBpZiBh
cmNoaXZlX3R5cGUgPT0gJ3ppcCc6Ci0gICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9w
YXRoLCAncicpIGFzIGFyY2hpdmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxs
KHNlbGYuX2Rlc3QpCi0gICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgotICAg
ICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hp
dmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCi0KLSAg
ICAgICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3Rh
cnRzd2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQotICAgICAgICBpZiBsZW4odW5h
cmNoaXZlZF9maWxlcykgPT0gMToKLSAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpv
aW4oc2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKLSAgICAgICAgICAgIGlmIG9zLnBh
dGguaXNkaXIoZmlyc3RfZmlsZSk6Ci0gICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3Rf
ZmlsZSwgc2VsZi5fd2ViX3Jvb3QpCi0gICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGgu
am9pbihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCi0K
LSAgICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6
Ci0gICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9u
X3VybCwgc2VsZi5fZGVzdCkpCi0gICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwo
Wydzdm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCi0gICAgICAg
IGlmIGVycm9yX2NvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVj
a291dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBkZWYg
X2FwcGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5
ID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKLSAgICAgICAgZXJy
b3JfY29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdl
dF9wYXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCi0gICAgICAgIG9zLmNoZGlyKG9sZF93
b3JraW5nX2RpcmVjdG9yeSkKLSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5j
aG1hcmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQotCi0gICAgZGVmIGNsZWFuKHNl
bGYpOgotICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCi0gICAgICAgIGlm
IHNlbGYuX3dlYl9yb290OgotICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290
KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxh
bnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2Ryb21hZW8tY3NzcXVlcnkucGxhbgko
cmV2aXNpb24gMTg4MDY0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZl
ckRyaXZlciIsCiAgICAgInRpbWVvdXQiOiAxMjAwLAogICAgICJjb3VudCI6IDEsCi0gICAgImJl
bmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIiwKICAgICAicmVtb3Rl
X2FyY2hpdmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plcmVzaWcvZHJvbWFlby9hcmNoaXZlL2Vk
N2U2YThmMjVlYTcyZjQ1YzE5MWYzNGE2ODcyMmY4MGRjM2M1MTMuemlwIiwKICAgICAiYmVuY2ht
YXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9Ecm9tYWVvLnBhdGNoIiwKICAgICAiY3JlYXRlX3Nj
cmlwdCI6IFsibWFrZSIsICJ3ZWIiXSwKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2Ryb21hZW8tZG9tLnBsYW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFl
by1kb20ucGxhbgkocmV2aXNpb24gMTg4MDY0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1kb20ucGxhbgkod29ya2luZyBjb3B5
KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2ZXJfZHJpdmVyIjogIlNpbXBsZUhU
VFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMTIwMCwKICAgICAiY291bnQiOiAxLAot
ICAgICJiZW5jaG1hcmtfYnVpbGRlciI6ICJHZW5lcmljQmVuY2htYXJrQnVpbGRlciIsCiAgICAg
InJlbW90ZV9hcmNoaXZlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJlc2lnL2Ryb21hZW8vYXJj
aGl2ZS9lZDdlNmE4ZjI1ZWE3MmY0NWMxOTFmMzRhNjg3MjJmODBkYzNjNTEzLnppcCIsCiAgICAg
ImJlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMvRHJvbWFlby5wYXRjaCIsCiAgICAgImNy
ZWF0ZV9zY3JpcHQiOiBbIm1ha2UiLCAid2ViIl0sCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9kcm9tYWVvLWpzbGliLnBsYW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxh
bnMvZHJvbWFlby1qc2xpYi5wbGFuCShyZXZpc2lvbiAxODgwNjQpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9kcm9tYWVvLWpzbGliLnBsYW4J
KHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiB7Ci0gICAgImh0dHBfc2VydmVyX2RyaXZl
ciI6ICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIiwKICAgICAidGltZW91dCI6IDEyMDAsCiAgICAg
ImNvdW50IjogMSwKLSAgICAiYmVuY2htYXJrX2J1aWxkZXIiOiAiR2VuZXJpY0JlbmNobWFya0J1
aWxkZXIiLAogICAgICJyZW1vdGVfYXJjaGl2ZSI6ICJodHRwczovL2dpdGh1Yi5jb20vamVyZXNp
Zy9kcm9tYWVvL2FyY2hpdmUvZWQ3ZTZhOGYyNWVhNzJmNDVjMTkxZjM0YTY4NzIyZjgwZGMzYzUx
My56aXAiLAogICAgICJiZW5jaG1hcmtfcGF0Y2giOiAiZGF0YS9wYXRjaGVzL0Ryb21hZW8ucGF0
Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJtYWtlIiwgIndlYiJdLApJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvamV0c3RyZWFtLnBs
YW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2RhdGEvcGxhbnMvamV0c3RyZWFtLnBsYW4JKHJldmlzaW9uIDE4ODA2NSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2pldHN0cmVhbS5wbGFu
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2
ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAogICAgICJ0aW1lb3V0IjogNjAwLAogICAg
ICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtC
dWlsZGVyIiwKICAgICAic3ZuX3NvdXJjZSI6ICJodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9z
aXRvcnkvd2Via2l0L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvSmV0U3RyZWFtL0ByMTgzMDkxIiwK
ICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9KZXRTdHJlYW0ucGF0Y2giLAog
ICAgICJjcmVhdGVfc2NyaXB0IjogWyJydWJ5IiwgImNyZWF0ZS5yYiJdLApJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNiZW5jaC5wbGFu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9k
YXRhL3BsYW5zL2pzYmVuY2gucGxhbgkocmV2aXNpb24gMTg4MDY1KQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNiZW5jaC5wbGFuCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2ZXIiOiAi
U2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAogICAgICJ0aW1lb3V0IjogNjAwLAogICAgICJjb3Vu
dCI6IDEsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
IiwKICAgICAicmVtb3RlX2FyY2hpdmUiOiAiaHR0cDovL3BsZy51d2F0ZXJsb28uY2EvfmR5bmpz
L2pzYmVuY2gvc3VpdGUvanNiZW5jaC0yMDEzLjEudGFyLmd6IiwKICAgICAiYmVuY2htYXJrX3Bh
dGNoIjogImRhdGEvcGF0Y2hlcy9KU0JlbmNoLnBhdGNoIiwKICAgICAiZW50cnlfcG9pbnQiOiAi
aW5kZXguaHRtbCIsCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbgkocmV2aXNpb24g
MTg4MDY0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEv
cGxhbnMva3Jha2VuLnBsYW4JKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiB7Ci0gICAg
Imh0dHBfc2VydmVyX2RyaXZlciI6ICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIiwKICAgICAidGlt
ZW91dCI6IDMwMCwKICAgICAiY291bnQiOiA1LAotICAgICJiZW5jaG1hcmtfYnVpbGRlciI6ICJH
ZW5lcmljQmVuY2htYXJrQnVpbGRlciIsCiAgICAgInJlbW90ZV9hcmNoaXZlIjogImh0dHA6Ly9o
Zy5tb3ppbGxhLm9yZy9wcm9qZWN0cy9rcmFrZW4vYXJjaGl2ZS90aXAuemlwIiwKICAgICAiYmVu
Y2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9LcmFrZW4ucGF0Y2giLAogICAgICJjcmVhdGVf
c2NyaXB0IjogWyJweXRob24iLCAibWFrZS1ob3N0ZWQucHkiXSwKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL29jdGFuZS5wbGFuCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3Bs
YW5zL29jdGFuZS5wbGFuCShyZXZpc2lvbiAxODgwNjQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9vY3RhbmUucGxhbgkod29ya2luZyBjb3B5
KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2ZXJfZHJpdmVyIjogIlNpbXBsZUhU
VFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMzAwLAogICAgICJjb3VudCI6IDUsCi0g
ICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIiwKICAgICAi
cmVtb3RlX2FyY2hpdmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtL29jdGFuZS1iZW5j
aG1hcmsvYXJjaGl2ZS9mYWIwOWFlZjAxYzJhNTU2MGMyMmNkYzFjMWEyNDUxYzBkMGY0Y2RjLnpp
cCIsCiAgICAgImJlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMvT2N0YW5lLnBhdGNoIiwK
ICAgICAiZW50cnlfcG9pbnQiOiAiaW5kZXguaHRtbD9hdXRvPTEiLApJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvc3BlZWRvbWV0ZXIucGxh
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
ZGF0YS9wbGFucy9zcGVlZG9tZXRlci5wbGFuCShyZXZpc2lvbiAxODgwNjQpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9zcGVlZG9tZXRlci5w
bGFuCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9k
cml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsCiAgICAgInRpbWVvdXQiOiAzMDAsCiAg
ICAgImNvdW50IjogNSwKLSAgICAiYmVuY2htYXJrX2J1aWxkZXIiOiAiR2VuZXJpY0JlbmNobWFy
a0J1aWxkZXIiLAogICAgICJsb2NhbF9jb3B5IjogIi4uLy4uLy4uLy4uL1BlcmZvcm1hbmNlVGVz
dHMvU3BlZWRvbWV0ZXIiLAogICAgICJiZW5jaG1hcmtfcGF0Y2giOiAiZGF0YS9wYXRjaGVzL1Nw
ZWVkb21ldGVyLnBhdGNoIiwKICAgICAiZW50cnlfcG9pbnQiOiAiRnVsbC5odG1sIiwKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3N1bnNw
aWRlci5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9kYXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuCShyZXZpc2lvbiAxODgwNjQpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9zdW5zcGlk
ZXIucGxhbgkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2
ZXJfZHJpdmVyIjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMzAw
LAogICAgICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5j
aG1hcmtCdWlsZGVyIiwKICAgICAic3ZuX3NvdXJjZSI6ICJodHRwczovL3N2bi53ZWJraXQub3Jn
L3JlcG9zaXRvcnkvd2Via2l0L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvU3VuU3BpZGVyL0ByMTgy
MTcwIiwKICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9TdW5TcGlkZXIucGF0
Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJwZXJsIiwgIm1ha2UtaG9zdGVkIl0sCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4
ODA2NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3Nl
cnZlcl9kcml2ZXIvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDggQEAg
ZnJvbSBodHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSAogCiAKIGRlZiBodHRwX3Nl
cnZlcl9kcml2ZXJfbG9hZGVyKGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcyk6Ci0gICAgaWYgaHR0
cF9zZXJ2ZXJfZHJpdmVyX2NsYXNzLm5hbWU6Ci0gICAgICAgIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0
b3J5LmFkZChodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MubmFtZSwgaHR0cF9zZXJ2ZXJfZHJpdmVy
X2NsYXNzKQorICAgIGZvciBwbGF0Zm9ybSBpbiBodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MucGxh
dGZvcm1zOgorICAgICAgICBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5hZGQocGxhdGZvcm0sIGh0
dHBfc2VydmVyX2RyaXZlcl9jbGFzcykKIAogCiBsb2FkX3N1YmNsYXNzZXMoCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0
dHBfc2VydmVyX2RyaXZlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5w
eQkocmV2aXNpb24gMTg4MDY0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNyArNCw4IEBAIGZyb20gYWJjIGltcG9ydCBhYnN0cmFjdG1ldGhvZAogCiAK
IGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIob2JqZWN0KToKLSAgICBuYW1lID0gTm9uZQorICAgIHBs
YXRmb3JtcyA9IFtdCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgc2VydmUoc2VsZiwg
d2ViUm9vdCk6CiAgICAgICAgIHBhc3MKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZl
ci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkJKHJldmlz
aW9uIDE4ODA2NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQkod29ya2luZyBj
b3B5KQpAQCAtMTgsNyArMTgsOCBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBT
ZXJ2ZXJECiAKICAgICAiIiJUaGlzIGNsYXNzIGRlcGVuZHMgb24gdW5peCBlbnZpcm9ubWVudCwg
bmVlZCB0byBiZSBtb2RpZmllZCB0byBhY2hpZXZlIGNyb3NzcGxhdGZvcm0gY29tcGFiaWxpdHkK
ICAgICAiIiIKLSAgICBuYW1lID0gJ1NpbXBsZUhUVFBTZXJ2ZXJEcml2ZXInCisKKyAgICBwbGF0
Zm9ybXMgPSBbJ29zeCddCiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYu
X3NlcnZlcl9wcm9jZXNzID0gTm9uZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258416</attachid>
            <date>2015-08-06 16:11:35 -0700</date>
            <delta_ts>2015-08-06 16:13:40 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-147752-20150806161125.patch</filename>
            <type>text/plain</type>
            <size>32912</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODA3OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIGh0dHBfc2VydmVyX2RyaXZlciBhbmQgYmVuY2htYXJrX2J1aWxkZXIgc2hvdWxk
IG5vdCBiZSBpbiBydW4tYmVuY2htYXJrJ3MgcGxhbiBmaWxlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBCZW5jaG1hcmtCdWlsZGVyRmFj
dG9yeSBzaW5jZSB3ZSBoYXZlIGV4YWN0bHkgb25lIHN1YmNsYXNzIG9mIEJlbmNobWFya0J1aWxk
ZXIuCisKKyAgICAgICAgQWxzbyBtYWRlIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5IGluc3RhbnRp
YXRlIHRoZSBhcHByb3ByaWF0ZSBIVFRQIHNlcnZlciBiYXNlZCBvbiB0aGUgcGxhdGZvcm0gbmFt
ZSBpbnN0ZWFkIG9mIEhUVFAgc2VydmVyIG5hbWUuCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRv
IHJlbW92ZSAtLWh0dHAtc2VydmVyLWRyaXZlciBvcHRpb24gZnJvbSBydW4tYmVuY2htYXJrLCB3
aGljaCB3YXMgYWRkZWQgdG8gc3VwcG9ydCB0aGUgSFRUUCBzZXJ2ZXIgZm9yIGlPUy4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
cjogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIucHk6IE1vdmVkIGZyb20gYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFya19idWlsZGVyLnB5LgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5w
eTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1
aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weTogTW92ZWQgdG8gYmVuY2htYXJrX3J1
bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weToKKyAgICAgICAgKEJlbmNobWFya1J1
bm5lci5fX2luaXRfXyk6IE5vIGxvbmdlciB0YWtlcyBodHRwX3NlcnZlcl9kcml2ZXJfb3ZlcnJp
ZGUgYXMgYW4gYXJndW1lbnQgc2luY2UgdGhpcyBpcyBub3QgaGFuZGxlZCBieQorICAgICAgICBI
VFRQU2VydmVyRHJpdmVyRmFjdG9yeSB0YWtpbmcgdGhlIHBsYXRmb3JtIG5hbWUgYXMgYW4gYXJn
dW1lbnQuCisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuZXhlY3V0ZSk6IERpcmVjdGx5IGluc3Rh
bnRpYXRlIEJlbmNobWFya0J1aWxkZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuOiBSZW1vdmVkIGh0
dHBfc2VydmVyX2RyaXZlciBhbmQgYmVuY2htYXJrX2J1aWxkZXIuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1kb20ucGxhbjog
RGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEv
cGxhbnMvZHJvbWFlby1qc2xpYi5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9qZXRzdHJlYW0ucGxhbjogRGl0dG8uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNi
ZW5jaC5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbjogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvb2N0YW5lLnBsYW46IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3Nw
ZWVkb21ldGVyLnBsYW46IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9kYXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5p
dF9fLnB5OgorICAgICAgICAoaHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcik6IFJlZ2lzdGVyIGh0
dHAgc2VydmVyIGRyaXZlcnMgdmlhIHN1cHBvcnRlZCBwbGF0Zm9ybSBuYW1lcyBpbnN0ZWFkIG9m
IGh0dHAgc2VydmVyIG5hbWVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAg
ICAoSFRUUFNlcnZlckRyaXZlcik6IFJlcGxhY2VkIG5hbWUgYnkgcGxhdGZvcm1zLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
c2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJE
cml2ZXIpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvcnVuX2JlbmNobWFyay5weToKKyAgICAgICAgKHBhcnNlX2FyZ3MpOiBSZW1vdmVkIC0taHR0
cC1zZXJ2ZXItZHJpdmVyIG9wdGlvbi4KKyAgICAgICAgKHN0YXJ0KTogRGl0dG8uCisKIDIwMTUt
MDgtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBUb2dnbGUg
R1BTIHN0YXRlIGJhc2VkIG9uIHBhZ2UgdmlzaWJpbGl0eSB0byBzYXZlIGJhdHRlcnkKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4ODA3
OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtf
YnVpbGRlci9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi0jIFJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUgZmls
ZXMKLQotIyBLZWVwIHRoaXMgZmlsZSBmcmVlIG9mIGFueSBjb2RlIG9yIGltcG9ydCBzdGF0ZW1l
bnRzIHRoYXQgY291bGQKLSMgY2F1c2UgZWl0aGVyIGFuIGVycm9yIHRvIG9jY3VyIG9yIGEgbG9n
IG1lc3NhZ2UgdG8gYmUgbG9nZ2VkLgotIyBUaGlzIGVuc3VyZXMgdGhhdCBjYWxsaW5nIGNvZGUg
Y2FuIGltcG9ydCBpbml0aWFsaXphdGlvbiBjb2RlIGZyb20KLSMgd2Via2l0cHkgYmVmb3JlIGFu
eSBlcnJvcnMgb3IgbG9nIG1lc3NhZ2VzIGR1ZSB0byBjb2RlIGluIHRoaXMgZmlsZS4KLSMgSW5p
dGlhbGl6YXRpb24gY29kZSBjYW4gaW5jbHVkZSB0aGluZ3MgbGlrZSB2ZXJzaW9uLWNoZWNraW5n
IGNvZGUgYW5kCi0jIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBjb2RlLgotIwotIyBXZSBkbyBub3Qg
ZXhlY3V0ZSBhbnkgdmVyc2lvbi1jaGVja2luZyBjb2RlIG9yIGxvZ2dpbmcgY29uZmlndXJhdGlv
bgotIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1pbiBhcyB0aGV5
IHdhbnQuICBUaGlzIGFsc28KLSMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRvIGNob29zZSBk
aWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKLSMgYXMgbmVjZXNzYXJ5LgotaW1wb3J0IG9z
Ci0KLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZF9zdWJj
bGFzc2VzCi1mcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFya0J1
aWxkZXJGYWN0b3J5Ci0KLQotZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihiZW5jaG1hcmtf
YnVpbGRlcl9jbGFzcyk6Ci0gICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRlcl9u
YW1lOgotICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2htYXJrX2J1aWxk
ZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykKLQotCi1sb2Fk
X3N1YmNsYXNzZXMoCi0gICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRo
KF9fZmlsZV9fKSksCi0gICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2htYXJrQnVpbGRl
cicsCi0gICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1h
cmtfYnVpbGRlcl9mYWN0b3J5LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9m
YWN0b3J5LnB5CShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9y
eS5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLQotZnJvbSB3ZWJr
aXRweS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3Rv
cnkKLQotCi1jbGFzcyBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6Ci0K
LSAgICBwcm9kdWN0cyA9IHt9CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24gMTg4
MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFy
a19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgb3MKLWltcG9ydCB1cmxsaWIKLWltcG9ydCBzaHV0aWwK
LWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGFyZmlsZQotCi1mcm9tIHppcGZpbGUgaW1wb3J0
IFppcEZpbGUKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgZ2V0
X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQotCi0KLV9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRlcihv
YmplY3QpOgotCi0gICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVyJwot
Ci0gICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6Ci0gICAgICAgIHNlbGYuX25hbWUg
PSBuYW1lCi0gICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAg
ICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25hbWUp
Ci0gICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgotICAgICAgICAgICAgc2VsZi5fY29w
eV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQotICAgICAgICBlbGlm
ICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNlbGYuX2ZldGNoX3JlbW90
ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCi0gICAgICAgIGVsaWYgJ3N2bl9zb3Vy
Y2UnIGluIHBsYW46Ci0gICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNpb24o
cGxhblsnc3ZuX3NvdXJjZSddKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKLQotICAg
ICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYuX2Rl
c3QpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBwbGFu
OgotICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0ZV9z
Y3JpcHQnXSkKLSAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10pCi0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKLSAgICAgICAgICAgIHNlbGYuY2xlYW4oKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRl
ZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6Ci0gICAgICAgIG9sZF93
b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCi0gICAgICAgIG9zLmNoZGlyKHNlbGYuX2Rl
c3QpCi0gICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9zY3Jp
cHQsIHNlbGYuX2Rlc3QpKQotICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNy
ZWF0ZV9zY3JpcHQpCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkKLSAg
ICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90
IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBk
ZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToKLSAg
ICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNobWFy
a19wYXRoKSwgc2VsZi5fZGVzdCkKLQotICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUoc2Vs
ZiwgYXJjaGl2ZV91cmwpOgotICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnppcCcp
OgotICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKLSAgICAgICAgZWxpZiBhcmNoaXZl
X3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6Ci0gICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAndGFy
Lmd6JwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBu
b3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3VybCkK
LQotICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsICdh
cmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCi0gICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRpbmcg
JXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQotICAgICAgICB1cmxsaWIu
dXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKLQotICAgICAgICBpZiBhcmNo
aXZlX3R5cGUgPT0gJ3ppcCc6Ci0gICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9wYXRo
LCAncicpIGFzIGFyY2hpdmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNl
bGYuX2Rlc3QpCi0gICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgotICAgICAg
ICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hpdmU6
Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCi0KLSAgICAg
ICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3RhcnRz
d2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQotICAgICAgICBpZiBsZW4odW5hcmNo
aXZlZF9maWxlcykgPT0gMToKLSAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpvaW4o
c2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKLSAgICAgICAgICAgIGlmIG9zLnBhdGgu
aXNkaXIoZmlyc3RfZmlsZSk6Ci0gICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3RfZmls
ZSwgc2VsZi5fd2ViX3Jvb3QpCi0gICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGguam9p
bihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCi0KLSAg
ICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6Ci0g
ICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9uX3Vy
bCwgc2VsZi5fZGVzdCkpCi0gICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwoWydz
dm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCi0gICAgICAgIGlm
IGVycm9yX2NvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVja291
dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBkZWYgX2Fw
cGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5ID0g
b3MuZ2V0Y3dkKCkKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKLSAgICAgICAgZXJyb3Jf
Y29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdldF9w
YXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3Jr
aW5nX2RpcmVjdG9yeSkKLSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5jaG1h
cmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQotCi0gICAgZGVmIGNsZWFuKHNlbGYp
OgotICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCi0gICAgICAgIGlmIHNl
bGYuX3dlYl9yb290OgotICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290KQpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19i
dWlsZGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24gMTg4MDY1KQkoZnJvbSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2Vu
ZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weToxODgwNjUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMDEgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgb3MKK2ltcG9ydCB1cmxsaWIKK2ltcG9ydCBzaHV0
aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgdGFyZmlsZQorCitmcm9tIHppcGZpbGUgaW1w
b3J0IFppcEZpbGUKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
Z2V0X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQorCisKK19sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRl
cihvYmplY3QpOgorCisgICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
JworCisgICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6CisgICAgICAgIHNlbGYuX25h
bWUgPSBuYW1lCisgICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCisg
ICAgICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25h
bWUpCisgICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgorICAgICAgICAgICAgc2VsZi5f
Y29weV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQorICAgICAgICBl
bGlmICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKKyAgICAgICAgICAgIHNlbGYuX2ZldGNoX3Jl
bW90ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCisgICAgICAgIGVsaWYgJ3N2bl9z
b3VyY2UnIGluIHBsYW46CisgICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNp
b24ocGxhblsnc3ZuX3NvdXJjZSddKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKKwor
ICAgICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYu
X2Rlc3QpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBw
bGFuOgorICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0
ZV9zY3JpcHQnXSkKKyAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Cisg
ICAgICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10p
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgIHNlbGYuY2xlYW4oKQorICAgICAgICAgICAgcmFpc2UKKworICAg
IGRlZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6CisgICAgICAgIG9s
ZF93b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCisgICAgICAgIG9zLmNoZGlyKHNlbGYu
X2Rlc3QpCisgICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9z
Y3JpcHQsIHNlbGYuX2Rlc3QpKQorICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxs
KGNyZWF0ZV9zY3JpcHQpCisgICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkK
KyAgICAgICAgaWYgZXJyb3JfY29kZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fu
bm90IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCisKKyAg
ICBkZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToK
KyAgICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNo
bWFya19wYXRoKSwgc2VsZi5fZGVzdCkKKworICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUo
c2VsZiwgYXJjaGl2ZV91cmwpOgorICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnpp
cCcpOgorICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKKyAgICAgICAgZWxpZiBhcmNo
aXZlX3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6CisgICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAn
dGFyLmd6JworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3Vs
ZCBub3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3Vy
bCkKKworICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3Qs
ICdhcmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCisgICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRp
bmcgJXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQorICAgICAgICB1cmxs
aWIudXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKKworICAgICAgICBpZiBh
cmNoaXZlX3R5cGUgPT0gJ3ppcCc6CisgICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9w
YXRoLCAncicpIGFzIGFyY2hpdmU6CisgICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxs
KHNlbGYuX2Rlc3QpCisgICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgorICAg
ICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hp
dmU6CisgICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCisKKyAg
ICAgICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3Rh
cnRzd2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQorICAgICAgICBpZiBsZW4odW5h
cmNoaXZlZF9maWxlcykgPT0gMToKKyAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpv
aW4oc2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKKyAgICAgICAgICAgIGlmIG9zLnBh
dGguaXNkaXIoZmlyc3RfZmlsZSk6CisgICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3Rf
ZmlsZSwgc2VsZi5fd2ViX3Jvb3QpCisgICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGgu
am9pbihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCisK
KyAgICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6
CisgICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9u
X3VybCwgc2VsZi5fZGVzdCkpCisgICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwo
Wydzdm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCisgICAgICAg
IGlmIGVycm9yX2NvZGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVj
a291dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCisKKyAgICBkZWYg
X2FwcGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKKyAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5
ID0gb3MuZ2V0Y3dkKCkKKyAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKKyAgICAgICAgZXJy
b3JfY29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdl
dF9wYXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCisgICAgICAgIG9zLmNoZGlyKG9sZF93
b3JraW5nX2RpcmVjdG9yeSkKKyAgICAgICAgaWYgZXJyb3JfY29kZToKKyAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5j
aG1hcmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQorCisgICAgZGVmIGNsZWFuKHNl
bGYpOgorICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCisgICAgICAgIGlm
IHNlbGYuX3dlYl9yb290OgorICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290
KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFy
a19idWlsZGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQkod29ya2luZyBjb3B5KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBAIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1
bm5lci51dGlscyBpbXAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCi1j
bGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRlcihvYmplY3QpOgorY2xhc3MgQmVuY2htYXJrQnVp
bGRlcihvYmplY3QpOgogCiAgICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWls
ZGVyJwogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX3J1bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMTg4MDc5KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDcgQEAgaW1wb3J0IHR5cGVzCiBpbXBvcnQg
b3MKIGltcG9ydCB1cmxwYXJzZQogCi1mcm9tIGJlbmNobWFya19idWlsZGVyLmJlbmNobWFya19i
dWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFya0J1aWxkZXJGYWN0b3J5Citmcm9tIGJlbmNo
bWFya19idWlsZGVyIGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyCiBmcm9tIGJlbmNobWFya19yZXN1
bHRzIGltcG9ydCBCZW5jaG1hcmtSZXN1bHRzCiBmcm9tIGJyb3dzZXJfZHJpdmVyLmJyb3dzZXJf
ZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CiBmcm9tIGh0dHBfc2Vy
dmVyX2RyaXZlci5odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRy
aXZlckZhY3RvcnkKQEAgLTI0LDcgKzI0LDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQogCiBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwbGFuX2ZpbGUsIGxvY2FsX2NvcHksIGNvdW50X292ZXJyaWRlLCBidWlsZF9k
aXIsIG91dHB1dF9maWxlLCBwbGF0Zm9ybSwgYnJvd3NlciwgaHR0cF9zZXJ2ZXJfZHJpdmVyX292
ZXJyaWRlPU5vbmUsIGRldmljZV9pZD1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGxh
bl9maWxlLCBsb2NhbF9jb3B5LCBjb3VudF9vdmVycmlkZSwgYnVpbGRfZGlyLCBvdXRwdXRfZmls
ZSwgcGxhdGZvcm0sIGJyb3dzZXIsIGRldmljZV9pZD1Ob25lKToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgcGxhbl9maWxlID0gc2VsZi5fZmluZF9wbGFuX2ZpbGUocGxhbl9maWxlKQogICAg
ICAgICAgICAgd2l0aCBvcGVuKHBsYW5fZmlsZSwgJ3InKSBhcyBmcDoKQEAgLTM0LDEwICszNCw4
IEBAIGNsYXNzIEJlbmNobWFya1J1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9wbGFuWydsb2NhbF9jb3B5J10gPSBsb2NhbF9jb3B5CiAgICAgICAgICAgICAgICAgaWYg
Y291bnRfb3ZlcnJpZGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BsYW5bJ2NvdW50J10g
PSBjb3VudF9vdmVycmlkZQotICAgICAgICAgICAgICAgIGlmIGh0dHBfc2VydmVyX2RyaXZlcl9v
dmVycmlkZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGxhblsnaHR0cF9zZXJ2ZXJfZHJp
dmVyJ10gPSBodHRwX3NlcnZlcl9kcml2ZXJfb3ZlcnJpZGUKICAgICAgICAgICAgICAgICBzZWxm
Ll9icm93c2VyX2RyaXZlciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShwbGF0Zm9ybSwg
YnJvd3NlcikKLSAgICAgICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlcl9kcml2ZXIgPSBIVFRQ
U2VydmVyRHJpdmVyRmFjdG9yeS5jcmVhdGUoc2VsZi5fcGxhblsnaHR0cF9zZXJ2ZXJfZHJpdmVy
J10pCisgICAgICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXJfZHJpdmVyID0gSFRUUFNlcnZl
ckRyaXZlckZhY3RvcnkuY3JlYXRlKHBsYXRmb3JtKQogICAgICAgICAgICAgICAgIHNlbGYuX2h0
dHBfc2VydmVyX2RyaXZlci5zZXRfZGV2aWNlX2lkKGRldmljZV9pZCkKICAgICAgICAgICAgICAg
ICBzZWxmLl9idWlsZF9kaXIgPSBvcy5wYXRoLmFic3BhdGgoYnVpbGRfZGlyKSBpZiBidWlsZF9k
aXIgZWxzZSBOb25lCiAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cHV0X2ZpbGUgPSBvdXRwdXRf
ZmlsZQpAQCAtNjQsNyArNjIsNyBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKICAg
ICAgICAgX2xvZy5pbmZvKCdTdGFydCB0byBleGVjdXRlIHRoZSBwbGFuJykKICAgICAgICAgX2xv
Zy5pbmZvKCdTdGFydCBhIG5ldyBiZW5jaG1hcmsnKQogICAgICAgICByZXN1bHRzID0gW10KLSAg
ICAgICAgc2VsZi5fYmVuY2htYXJrX2J1aWxkZXIgPSBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5j
cmVhdGUoc2VsZi5fcGxhblsnYmVuY2htYXJrX2J1aWxkZXInXSkKKyAgICAgICAgc2VsZi5fYmVu
Y2htYXJrX2J1aWxkZXIgPSBCZW5jaG1hcmtCdWlsZGVyKCkKIAogICAgICAgICB3ZWJfcm9vdCA9
IHNlbGYuX2JlbmNobWFya19idWlsZGVyLnByZXBhcmUoc2VsZi5fcGxhbl9uYW1lLCBzZWxmLl9w
bGFuKQogICAgICAgICBmb3IgeCBpbiB4cmFuZ2UoaW50KHNlbGYuX3BsYW5bJ2NvdW50J10pKToK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9ydW5fYmVuY2ht
YXJrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9ydW5fYmVuY2htYXJrLnB5CShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQkod29ya2luZyBjb3B5
KQpAQCAtMjMsNyArMjMsNiBAQCBkZWYgcGFyc2VfYXJncygpOgogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tZGVidWcnLCBhY3Rpb249J3N0b3JlX3RydWUnKQogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tbG9jYWwtY29weScsIGRlc3Q9J2xvY2FsQ29weScsIGhlbHA9J1BhdGggdG8gYSBs
b2NhbCBjb3B5IG9mIHRoZSBiZW5jaG1hcmsuIGUuZy4gUGVyZm9ybWFuY2VUZXN0cy9TdW5TcGlk
ZXIvJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWNvdW50JywgZGVzdD0nY291bnRPdmVy
cmlkZScsIHR5cGU9aW50LCBoZWxwPSdOdW1iZXIgb2YgdGltZXMgdG8gcnVuIHRoZSBiZW5jaG1h
cmsuIGUuZy4gNScpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1odHRwLXNlcnZlci1kcml2
ZXInLCBkZXN0PSdodHRwU2VydmVyRHJpdmVyT3ZlcnJpZGUnLCBkZWZhdWx0PU5vbmUsIGhlbHA9
J1NwZWNpZnkgd2hpY2ggSFRUUCBzZXJ2ZXIgeW91IHdhbnRzIHRvIHVzZScpCiAgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgnLS1kZXZpY2UtaWQnLCBkZXN0PSdkZXZpY2VfaWQnLCBkZWZhdWx0PU5v
bmUpCiAKICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQpAQCAtMzksNyArMzgsNyBAQCBk
ZWYgcGFyc2VfYXJncygpOgogCiAKIGRlZiBzdGFydChhcmdzKToKLSAgICBydW5uZXIgPSBCZW5j
aG1hcmtSdW5uZXIoYXJncy5wbGFuLCBhcmdzLmxvY2FsQ29weSwgYXJncy5jb3VudE92ZXJyaWRl
LCBhcmdzLmJ1aWxkRGlyLCBhcmdzLm91dHB1dCwgYXJncy5wbGF0Zm9ybSwgYXJncy5icm93c2Vy
LCBhcmdzLmh0dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZSwgYXJncy5kZXZpY2VfaWQpCisgICAgcnVu
bmVyID0gQmVuY2htYXJrUnVubmVyKGFyZ3MucGxhbiwgYXJncy5sb2NhbENvcHksIGFyZ3MuY291
bnRPdmVycmlkZSwgYXJncy5idWlsZERpciwgYXJncy5vdXRwdXQsIGFyZ3MucGxhdGZvcm0sIGFy
Z3MuYnJvd3NlciwgYXJncy5kZXZpY2VfaWQpCiAgICAgcnVubmVyLmV4ZWN1dGUoKQogCiAKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVp
bGRlci9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4
ODA3OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi0j
IFJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUg
ZmlsZXMKLQotIyBLZWVwIHRoaXMgZmlsZSBmcmVlIG9mIGFueSBjb2RlIG9yIGltcG9ydCBzdGF0
ZW1lbnRzIHRoYXQgY291bGQKLSMgY2F1c2UgZWl0aGVyIGFuIGVycm9yIHRvIG9jY3VyIG9yIGEg
bG9nIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkLgotIyBUaGlzIGVuc3VyZXMgdGhhdCBjYWxsaW5nIGNv
ZGUgY2FuIGltcG9ydCBpbml0aWFsaXphdGlvbiBjb2RlIGZyb20KLSMgd2Via2l0cHkgYmVmb3Jl
IGFueSBlcnJvcnMgb3IgbG9nIG1lc3NhZ2VzIGR1ZSB0byBjb2RlIGluIHRoaXMgZmlsZS4KLSMg
SW5pdGlhbGl6YXRpb24gY29kZSBjYW4gaW5jbHVkZSB0aGluZ3MgbGlrZSB2ZXJzaW9uLWNoZWNr
aW5nIGNvZGUgYW5kCi0jIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBjb2RlLgotIwotIyBXZSBkbyBu
b3QgZXhlY3V0ZSBhbnkgdmVyc2lvbi1jaGVja2luZyBjb2RlIG9yIGxvZ2dpbmcgY29uZmlndXJh
dGlvbgotIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1pbiBhcyB0
aGV5IHdhbnQuICBUaGlzIGFsc28KLSMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRvIGNob29z
ZSBkaWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKLSMgYXMgbmVjZXNzYXJ5LgotaW1wb3J0
IG9zCi0KLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZF9z
dWJjbGFzc2VzCi1mcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFy
a0J1aWxkZXJGYWN0b3J5Ci0KLQotZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihiZW5jaG1h
cmtfYnVpbGRlcl9jbGFzcyk6Ci0gICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRl
cl9uYW1lOgotICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2htYXJrX2J1
aWxkZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykKLQotCi1s
b2FkX3N1YmNsYXNzZXMoCi0gICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNw
YXRoKF9fZmlsZV9fKSksCi0gICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2htYXJrQnVp
bGRlcicsCi0gICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5j
aG1hcmtfYnVpbGRlcl9mYWN0b3J5LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRl
cl9mYWN0b3J5LnB5CShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFj
dG9yeS5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi0jIS91c3IvYmluL2VudiBw
eXRob24KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLQotZnJvbSB3
ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0Zh
Y3RvcnkKLQotCi1jbGFzcyBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6
Ci0KLSAgICBwcm9kdWN0cyA9IHt9CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24g
MTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotCi1pbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgb3MKLWltcG9ydCB1cmxsaWIKLWltcG9ydCBzaHV0
aWwKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGFyZmlsZQotCi1mcm9tIHppcGZpbGUgaW1w
b3J0IFppcEZpbGUKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
Z2V0X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQotCi0KLV9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRl
cihvYmplY3QpOgotCi0gICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
JwotCi0gICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6Ci0gICAgICAgIHNlbGYuX25h
bWUgPSBuYW1lCi0gICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCi0g
ICAgICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25h
bWUpCi0gICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgotICAgICAgICAgICAgc2VsZi5f
Y29weV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQotICAgICAgICBl
bGlmICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNlbGYuX2ZldGNoX3Jl
bW90ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCi0gICAgICAgIGVsaWYgJ3N2bl9z
b3VyY2UnIGluIHBsYW46Ci0gICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNp
b24ocGxhblsnc3ZuX3NvdXJjZSddKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKLQot
ICAgICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYu
X2Rlc3QpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBw
bGFuOgotICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0
ZV9zY3JpcHQnXSkKLSAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10p
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKLSAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKLSAgICAgICAgICAgIHNlbGYuY2xlYW4oKQotICAgICAgICAgICAgcmFpc2UKLQotICAg
IGRlZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6Ci0gICAgICAgIG9s
ZF93b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCi0gICAgICAgIG9zLmNoZGlyKHNlbGYu
X2Rlc3QpCi0gICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9z
Y3JpcHQsIHNlbGYuX2Rlc3QpKQotICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxs
KGNyZWF0ZV9zY3JpcHQpCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkK
LSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fu
bm90IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAg
ICBkZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToK
LSAgICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNo
bWFya19wYXRoKSwgc2VsZi5fZGVzdCkKLQotICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUo
c2VsZiwgYXJjaGl2ZV91cmwpOgotICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnpp
cCcpOgotICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKLSAgICAgICAgZWxpZiBhcmNo
aXZlX3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6Ci0gICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAn
dGFyLmd6JwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3Vs
ZCBub3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3Vy
bCkKLQotICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3Qs
ICdhcmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCi0gICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRp
bmcgJXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQotICAgICAgICB1cmxs
aWIudXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKLQotICAgICAgICBpZiBh
cmNoaXZlX3R5cGUgPT0gJ3ppcCc6Ci0gICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9w
YXRoLCAncicpIGFzIGFyY2hpdmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxs
KHNlbGYuX2Rlc3QpCi0gICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgotICAg
ICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hp
dmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCi0KLSAg
ICAgICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3Rh
cnRzd2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQotICAgICAgICBpZiBsZW4odW5h
cmNoaXZlZF9maWxlcykgPT0gMToKLSAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpv
aW4oc2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKLSAgICAgICAgICAgIGlmIG9zLnBh
dGguaXNkaXIoZmlyc3RfZmlsZSk6Ci0gICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3Rf
ZmlsZSwgc2VsZi5fd2ViX3Jvb3QpCi0gICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGgu
am9pbihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCi0K
LSAgICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6
Ci0gICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9u
X3VybCwgc2VsZi5fZGVzdCkpCi0gICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwo
Wydzdm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCi0gICAgICAg
IGlmIGVycm9yX2NvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVj
a291dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBkZWYg
X2FwcGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5
ID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKLSAgICAgICAgZXJy
b3JfY29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdl
dF9wYXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCi0gICAgICAgIG9zLmNoZGlyKG9sZF93
b3JraW5nX2RpcmVjdG9yeSkKLSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5j
aG1hcmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQotCi0gICAgZGVmIGNsZWFuKHNl
bGYpOgotICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCi0gICAgICAgIGlm
IHNlbGYuX3dlYl9yb290OgotICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290
KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxh
bnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2Ryb21hZW8tY3NzcXVlcnkucGxhbgko
cmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZl
ckRyaXZlciIsCiAgICAgInRpbWVvdXQiOiAxMjAwLAogICAgICJjb3VudCI6IDEsCi0gICAgImJl
bmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIiwKICAgICAicmVtb3Rl
X2FyY2hpdmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plcmVzaWcvZHJvbWFlby9hcmNoaXZlL2Vk
N2U2YThmMjVlYTcyZjQ1YzE5MWYzNGE2ODcyMmY4MGRjM2M1MTMuemlwIiwKICAgICAiYmVuY2ht
YXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9Ecm9tYWVvLnBhdGNoIiwKICAgICAiY3JlYXRlX3Nj
cmlwdCI6IFsibWFrZSIsICJ3ZWIiXSwKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2Ryb21hZW8tZG9tLnBsYW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFl
by1kb20ucGxhbgkocmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1kb20ucGxhbgkod29ya2luZyBjb3B5
KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2ZXJfZHJpdmVyIjogIlNpbXBsZUhU
VFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMTIwMCwKICAgICAiY291bnQiOiAxLAot
ICAgICJiZW5jaG1hcmtfYnVpbGRlciI6ICJHZW5lcmljQmVuY2htYXJrQnVpbGRlciIsCiAgICAg
InJlbW90ZV9hcmNoaXZlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJlc2lnL2Ryb21hZW8vYXJj
aGl2ZS9lZDdlNmE4ZjI1ZWE3MmY0NWMxOTFmMzRhNjg3MjJmODBkYzNjNTEzLnppcCIsCiAgICAg
ImJlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMvRHJvbWFlby5wYXRjaCIsCiAgICAgImNy
ZWF0ZV9zY3JpcHQiOiBbIm1ha2UiLCAid2ViIl0sCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9kcm9tYWVvLWpzbGliLnBsYW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxh
bnMvZHJvbWFlby1qc2xpYi5wbGFuCShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9kcm9tYWVvLWpzbGliLnBsYW4J
KHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiB7Ci0gICAgImh0dHBfc2VydmVyX2RyaXZl
ciI6ICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIiwKICAgICAidGltZW91dCI6IDEyMDAsCiAgICAg
ImNvdW50IjogMSwKLSAgICAiYmVuY2htYXJrX2J1aWxkZXIiOiAiR2VuZXJpY0JlbmNobWFya0J1
aWxkZXIiLAogICAgICJyZW1vdGVfYXJjaGl2ZSI6ICJodHRwczovL2dpdGh1Yi5jb20vamVyZXNp
Zy9kcm9tYWVvL2FyY2hpdmUvZWQ3ZTZhOGYyNWVhNzJmNDVjMTkxZjM0YTY4NzIyZjgwZGMzYzUx
My56aXAiLAogICAgICJiZW5jaG1hcmtfcGF0Y2giOiAiZGF0YS9wYXRjaGVzL0Ryb21hZW8ucGF0
Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJtYWtlIiwgIndlYiJdLApJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvamV0c3RyZWFtLnBs
YW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2RhdGEvcGxhbnMvamV0c3RyZWFtLnBsYW4JKHJldmlzaW9uIDE4ODA3OSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2pldHN0cmVhbS5wbGFu
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2
ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAogICAgICJ0aW1lb3V0IjogNjAwLAogICAg
ICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtC
dWlsZGVyIiwKICAgICAic3ZuX3NvdXJjZSI6ICJodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9z
aXRvcnkvd2Via2l0L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvSmV0U3RyZWFtL0ByMTgzMDkxIiwK
ICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9KZXRTdHJlYW0ucGF0Y2giLAog
ICAgICJjcmVhdGVfc2NyaXB0IjogWyJydWJ5IiwgImNyZWF0ZS5yYiJdLApJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNiZW5jaC5wbGFu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9k
YXRhL3BsYW5zL2pzYmVuY2gucGxhbgkocmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNiZW5jaC5wbGFuCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2ZXIiOiAi
U2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAogICAgICJ0aW1lb3V0IjogNjAwLAogICAgICJjb3Vu
dCI6IDEsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
IiwKICAgICAicmVtb3RlX2FyY2hpdmUiOiAiaHR0cDovL3BsZy51d2F0ZXJsb28uY2EvfmR5bmpz
L2pzYmVuY2gvc3VpdGUvanNiZW5jaC0yMDEzLjEudGFyLmd6IiwKICAgICAiYmVuY2htYXJrX3Bh
dGNoIjogImRhdGEvcGF0Y2hlcy9KU0JlbmNoLnBhdGNoIiwKICAgICAiZW50cnlfcG9pbnQiOiAi
aW5kZXguaHRtbCIsCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbgkocmV2aXNpb24g
MTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEv
cGxhbnMva3Jha2VuLnBsYW4JKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiB7Ci0gICAg
Imh0dHBfc2VydmVyX2RyaXZlciI6ICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIiwKICAgICAidGlt
ZW91dCI6IDMwMCwKICAgICAiY291bnQiOiA1LAotICAgICJiZW5jaG1hcmtfYnVpbGRlciI6ICJH
ZW5lcmljQmVuY2htYXJrQnVpbGRlciIsCiAgICAgInJlbW90ZV9hcmNoaXZlIjogImh0dHA6Ly9o
Zy5tb3ppbGxhLm9yZy9wcm9qZWN0cy9rcmFrZW4vYXJjaGl2ZS90aXAuemlwIiwKICAgICAiYmVu
Y2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9LcmFrZW4ucGF0Y2giLAogICAgICJjcmVhdGVf
c2NyaXB0IjogWyJweXRob24iLCAibWFrZS1ob3N0ZWQucHkiXSwKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL29jdGFuZS5wbGFuCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3Bs
YW5zL29jdGFuZS5wbGFuCShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9vY3RhbmUucGxhbgkod29ya2luZyBjb3B5
KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2ZXJfZHJpdmVyIjogIlNpbXBsZUhU
VFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMzAwLAogICAgICJjb3VudCI6IDUsCi0g
ICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIiwKICAgICAi
cmVtb3RlX2FyY2hpdmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtL29jdGFuZS1iZW5j
aG1hcmsvYXJjaGl2ZS9mYWIwOWFlZjAxYzJhNTU2MGMyMmNkYzFjMWEyNDUxYzBkMGY0Y2RjLnpp
cCIsCiAgICAgImJlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMvT2N0YW5lLnBhdGNoIiwK
ICAgICAiZW50cnlfcG9pbnQiOiAiaW5kZXguaHRtbD9hdXRvPTEiLApJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvc3BlZWRvbWV0ZXIucGxh
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
ZGF0YS9wbGFucy9zcGVlZG9tZXRlci5wbGFuCShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9zcGVlZG9tZXRlci5w
bGFuCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9k
cml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsCiAgICAgInRpbWVvdXQiOiAzMDAsCiAg
ICAgImNvdW50IjogNSwKLSAgICAiYmVuY2htYXJrX2J1aWxkZXIiOiAiR2VuZXJpY0JlbmNobWFy
a0J1aWxkZXIiLAogICAgICJsb2NhbF9jb3B5IjogIi4uLy4uLy4uLy4uL1BlcmZvcm1hbmNlVGVz
dHMvU3BlZWRvbWV0ZXIiLAogICAgICJiZW5jaG1hcmtfcGF0Y2giOiAiZGF0YS9wYXRjaGVzL1Nw
ZWVkb21ldGVyLnBhdGNoIiwKICAgICAiZW50cnlfcG9pbnQiOiAiRnVsbC5odG1sIiwKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3N1bnNw
aWRlci5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9kYXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuCShyZXZpc2lvbiAxODgwNzkpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9zdW5zcGlk
ZXIucGxhbgkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2
ZXJfZHJpdmVyIjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMzAw
LAogICAgICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5j
aG1hcmtCdWlsZGVyIiwKICAgICAic3ZuX3NvdXJjZSI6ICJodHRwczovL3N2bi53ZWJraXQub3Jn
L3JlcG9zaXRvcnkvd2Via2l0L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvU3VuU3BpZGVyL0ByMTgy
MTcwIiwKICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9TdW5TcGlkZXIucGF0
Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJwZXJsIiwgIm1ha2UtaG9zdGVkIl0sCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4
ODA3OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3Nl
cnZlcl9kcml2ZXIvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDggQEAg
ZnJvbSBodHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSAogCiAKIGRlZiBodHRwX3Nl
cnZlcl9kcml2ZXJfbG9hZGVyKGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcyk6Ci0gICAgaWYgaHR0
cF9zZXJ2ZXJfZHJpdmVyX2NsYXNzLm5hbWU6Ci0gICAgICAgIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0
b3J5LmFkZChodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MubmFtZSwgaHR0cF9zZXJ2ZXJfZHJpdmVy
X2NsYXNzKQorICAgIGZvciBwbGF0Zm9ybSBpbiBodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MucGxh
dGZvcm1zOgorICAgICAgICBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5hZGQocGxhdGZvcm0sIGh0
dHBfc2VydmVyX2RyaXZlcl9jbGFzcykKIAogCiBsb2FkX3N1YmNsYXNzZXMoCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0
dHBfc2VydmVyX2RyaXZlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5w
eQkocmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNyArNCw4IEBAIGZyb20gYWJjIGltcG9ydCBhYnN0cmFjdG1ldGhvZAogCiAK
IGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIob2JqZWN0KToKLSAgICBuYW1lID0gTm9uZQorICAgIHBs
YXRmb3JtcyA9IFtdCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgc2VydmUoc2VsZiwg
d2ViUm9vdCk6CiAgICAgICAgIHBhc3MKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZl
ci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkJKHJldmlz
aW9uIDE4ODA3OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQkod29ya2luZyBj
b3B5KQpAQCAtMTgsNyArMTgsOCBAQCBjbGFzcyBTaW1wbGVIVFRQU2VydmVyRHJpdmVyKEhUVFBT
ZXJ2ZXJECiAKICAgICAiIiJUaGlzIGNsYXNzIGRlcGVuZHMgb24gdW5peCBlbnZpcm9ubWVudCwg
bmVlZCB0byBiZSBtb2RpZmllZCB0byBhY2hpZXZlIGNyb3NzcGxhdGZvcm0gY29tcGFiaWxpdHkK
ICAgICAiIiIKLSAgICBuYW1lID0gJ1NpbXBsZUhUVFBTZXJ2ZXJEcml2ZXInCisKKyAgICBwbGF0
Zm9ybXMgPSBbJ29zeCddCiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYu
X3NlcnZlcl9wcm9jZXNzID0gTm9uZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258417</attachid>
            <date>2015-08-06 16:13:40 -0700</date>
            <delta_ts>2015-08-06 16:18:01 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>fix147752c</filename>
            <type>text/plain</type>
            <size>21748</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE4ODA3OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDE1LTA4LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIGh0dHBfc2VydmVyX2RyaXZlciBhbmQgYmVuY2htYXJrX2J1aWxkZXIgc2hvdWxk
IG5vdCBiZSBpbiBydW4tYmVuY2htYXJrJ3MgcGxhbiBmaWxlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBCZW5jaG1hcmtCdWlsZGVyRmFj
dG9yeSBzaW5jZSB3ZSBoYXZlIGV4YWN0bHkgb25lIHN1YmNsYXNzIG9mIEJlbmNobWFya0J1aWxk
ZXIuCisKKyAgICAgICAgQWxzbyBtYWRlIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5IGluc3RhbnRp
YXRlIHRoZSBhcHByb3ByaWF0ZSBIVFRQIHNlcnZlciBiYXNlZCBvbiB0aGUgcGxhdGZvcm0gbmFt
ZSBpbnN0ZWFkIG9mIEhUVFAgc2VydmVyIG5hbWUuCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRv
IHJlbW92ZSAtLWh0dHAtc2VydmVyLWRyaXZlciBvcHRpb24gZnJvbSBydW4tYmVuY2htYXJrLCB3
aGljaCB3YXMgYWRkZWQgdG8gc3VwcG9ydCB0aGUgSFRUUCBzZXJ2ZXIgZm9yIGlPUy4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
cjogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIucHk6IE1vdmVkIGZyb20gYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFya19idWlsZGVyLnB5LgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5w
eTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weTogUmVtb3ZlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1
aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weTogTW92ZWQgdG8gYmVuY2htYXJrX3J1
bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weToKKyAgICAgICAgKEJlbmNobWFya1J1
bm5lci5fX2luaXRfXyk6IE5vIGxvbmdlciB0YWtlcyBodHRwX3NlcnZlcl9kcml2ZXJfb3ZlcnJp
ZGUgYXMgYW4gYXJndW1lbnQgc2luY2UgdGhpcyBpcyBub3QgaGFuZGxlZCBieQorICAgICAgICBI
VFRQU2VydmVyRHJpdmVyRmFjdG9yeSB0YWtpbmcgdGhlIHBsYXRmb3JtIG5hbWUgYXMgYW4gYXJn
dW1lbnQuCisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIuZXhlY3V0ZSk6IERpcmVjdGx5IGluc3Rh
bnRpYXRlIEJlbmNobWFya0J1aWxkZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuOiBSZW1vdmVkIGh0
dHBfc2VydmVyX2RyaXZlciBhbmQgYmVuY2htYXJrX2J1aWxkZXIuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1kb20ucGxhbjog
RGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEv
cGxhbnMvZHJvbWFlby1qc2xpYi5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9qZXRzdHJlYW0ucGxhbjogRGl0dG8uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNi
ZW5jaC5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbjogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvb2N0YW5lLnBsYW46IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3Nw
ZWVkb21ldGVyLnBsYW46IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9kYXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuOiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5p
dF9fLnB5OgorICAgICAgICAoaHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcik6IFJlZ2lzdGVyIGh0
dHAgc2VydmVyIGRyaXZlcnMgdmlhIHN1cHBvcnRlZCBwbGF0Zm9ybSBuYW1lcyBpbnN0ZWFkIG9m
IGh0dHAgc2VydmVyIG5hbWVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAg
ICAoSFRUUFNlcnZlckRyaXZlcik6IFJlcGxhY2VkIG5hbWUgYnkgcGxhdGZvcm1zLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
c2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJE
cml2ZXIpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvcnVuX2JlbmNobWFyay5weToKKyAgICAgICAgKHBhcnNlX2FyZ3MpOiBSZW1vdmVkIC0taHR0
cC1zZXJ2ZXItZHJpdmVyIG9wdGlvbi4KKyAgICAgICAgKHN0YXJ0KTogRGl0dG8uCisKIDIwMTUt
MDgtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBUb2dnbGUg
R1BTIHN0YXRlIGJhc2VkIG9uIHBhZ2UgdmlzaWJpbGl0eSB0byBzYXZlIGJhdHRlcnkKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkJKHJldmlzaW9uIDE4ODA3
OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtf
YnVpbGRlci9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBACi0jIFJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUgZmls
ZXMKLQotIyBLZWVwIHRoaXMgZmlsZSBmcmVlIG9mIGFueSBjb2RlIG9yIGltcG9ydCBzdGF0ZW1l
bnRzIHRoYXQgY291bGQKLSMgY2F1c2UgZWl0aGVyIGFuIGVycm9yIHRvIG9jY3VyIG9yIGEgbG9n
IG1lc3NhZ2UgdG8gYmUgbG9nZ2VkLgotIyBUaGlzIGVuc3VyZXMgdGhhdCBjYWxsaW5nIGNvZGUg
Y2FuIGltcG9ydCBpbml0aWFsaXphdGlvbiBjb2RlIGZyb20KLSMgd2Via2l0cHkgYmVmb3JlIGFu
eSBlcnJvcnMgb3IgbG9nIG1lc3NhZ2VzIGR1ZSB0byBjb2RlIGluIHRoaXMgZmlsZS4KLSMgSW5p
dGlhbGl6YXRpb24gY29kZSBjYW4gaW5jbHVkZSB0aGluZ3MgbGlrZSB2ZXJzaW9uLWNoZWNraW5n
IGNvZGUgYW5kCi0jIGxvZ2dpbmcgY29uZmlndXJhdGlvbiBjb2RlLgotIwotIyBXZSBkbyBub3Qg
ZXhlY3V0ZSBhbnkgdmVyc2lvbi1jaGVja2luZyBjb2RlIG9yIGxvZ2dpbmcgY29uZmlndXJhdGlv
bgotIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1pbiBhcyB0aGV5
IHdhbnQuICBUaGlzIGFsc28KLSMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRvIGNob29zZSBk
aWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKLSMgYXMgbmVjZXNzYXJ5LgotaW1wb3J0IG9z
Ci0KLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZF9zdWJj
bGFzc2VzCi1mcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFya0J1
aWxkZXJGYWN0b3J5Ci0KLQotZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihiZW5jaG1hcmtf
YnVpbGRlcl9jbGFzcyk6Ci0gICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRlcl9u
YW1lOgotICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2htYXJrX2J1aWxk
ZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykKLQotCi1sb2Fk
X3N1YmNsYXNzZXMoCi0gICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRo
KF9fZmlsZV9fKSksCi0gICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2htYXJrQnVpbGRl
cicsCi0gICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1h
cmtfYnVpbGRlcl9mYWN0b3J5LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9m
YWN0b3J5LnB5CShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9y
eS5weQkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLQotZnJvbSB3ZWJr
aXRweS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3Rv
cnkKLQotCi1jbGFzcyBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6Ci0K
LSAgICBwcm9kdWN0cyA9IHt9CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQkocmV2aXNpb24gMTg4
MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFy
a19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTAxICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgb3MKLWltcG9ydCB1cmxsaWIKLWltcG9ydCBzaHV0aWwK
LWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgdGFyZmlsZQotCi1mcm9tIHppcGZpbGUgaW1wb3J0
IFppcEZpbGUKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgZ2V0
X3BhdGhfZnJvbV9wcm9qZWN0X3Jvb3QsIGZvcmNlX3JlbW92ZQotCi0KLV9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBHZW5lcmljQmVuY2htYXJrQnVpbGRlcihv
YmplY3QpOgotCi0gICAgYnVpbGRlcl9uYW1lID0gJ0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVyJwot
Ci0gICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwgcGxhbik6Ci0gICAgICAgIHNlbGYuX25hbWUg
PSBuYW1lCi0gICAgICAgIHNlbGYuX3dlYl9yb290ID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAg
ICAgIHNlbGYuX2Rlc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsIHNlbGYuX25hbWUp
Ci0gICAgICAgIGlmICdsb2NhbF9jb3B5JyBpbiBwbGFuOgotICAgICAgICAgICAgc2VsZi5fY29w
eV9iZW5jaG1hcmtfdG9fdGVtcF9kaXIocGxhblsnbG9jYWxfY29weSddKQotICAgICAgICBlbGlm
ICdyZW1vdGVfYXJjaGl2ZScgaW4gcGxhbjoKLSAgICAgICAgICAgIHNlbGYuX2ZldGNoX3JlbW90
ZV9hcmNoaXZlKHBsYW5bJ3JlbW90ZV9hcmNoaXZlJ10pCi0gICAgICAgIGVsaWYgJ3N2bl9zb3Vy
Y2UnIGluIHBsYW46Ci0gICAgICAgICAgICBzZWxmLl9jaGVja291dF93aXRoX3N1YnZlcnNpb24o
cGxhblsnc3ZuX3NvdXJjZSddKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdUaGUgYmVuY2htYXJrIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkJykKLQotICAg
ICAgICBfbG9nLmluZm8oJ0NvcGllZCB0aGUgYmVuY2htYXJrIGludG86ICVzJyAlIHNlbGYuX2Rl
c3QpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmICdjcmVhdGVfc2NyaXB0JyBpbiBwbGFu
OgotICAgICAgICAgICAgICAgIHNlbGYuX3J1bl9jcmVhdGVfc2NyaXB0KHBsYW5bJ2NyZWF0ZV9z
Y3JpcHQnXSkKLSAgICAgICAgICAgIGlmICdiZW5jaG1hcmtfcGF0Y2gnIGluIHBsYW46Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fYXBwbHlfcGF0Y2gocGxhblsnYmVuY2htYXJrX3BhdGNoJ10pCi0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5fd2ViX3Jvb3QKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKLSAgICAgICAgICAgIHNlbGYuY2xlYW4oKQotICAgICAgICAgICAgcmFpc2UKLQotICAgIGRl
ZiBfcnVuX2NyZWF0ZV9zY3JpcHQoc2VsZiwgY3JlYXRlX3NjcmlwdCk6Ci0gICAgICAgIG9sZF93
b3JraW5nX2RpcmVjdG9yeSA9IG9zLmdldGN3ZCgpCi0gICAgICAgIG9zLmNoZGlyKHNlbGYuX2Rl
c3QpCi0gICAgICAgIF9sb2cuZGVidWcoJ1J1bm5pbmcgJXMgaW4gJXMnICUgKGNyZWF0ZV9zY3Jp
cHQsIHNlbGYuX2Rlc3QpKQotICAgICAgICBlcnJvcl9jb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNy
ZWF0ZV9zY3JpcHQpCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3JraW5nX2RpcmVjdG9yeSkKLSAg
ICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90
IGNyZWF0ZSB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBk
ZWYgX2NvcHlfYmVuY2htYXJrX3RvX3RlbXBfZGlyKHNlbGYsIGJlbmNobWFya19wYXRoKToKLSAg
ICAgICAgc2h1dGlsLmNvcHl0cmVlKGdldF9wYXRoX2Zyb21fcHJvamVjdF9yb290KGJlbmNobWFy
a19wYXRoKSwgc2VsZi5fZGVzdCkKLQotICAgIGRlZiBfZmV0Y2hfcmVtb3RlX2FyY2hpdmUoc2Vs
ZiwgYXJjaGl2ZV91cmwpOgotICAgICAgICBpZiBhcmNoaXZlX3VybC5lbmRzd2l0aCgnLnppcCcp
OgotICAgICAgICAgICAgYXJjaGl2ZV90eXBlID0gJ3ppcCcKLSAgICAgICAgZWxpZiBhcmNoaXZl
X3VybC5lbmRzd2l0aCgndGFyLmd6Jyk6Ci0gICAgICAgICAgICBhcmNoaXZlX3R5cGUgPSAndGFy
Lmd6JwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBu
b3QgaW5mZXIgdGhlIGZpbGUgZXh0ZW50aW9uIGZyb20gVVJMOiAlcycgJSBhcmNoaXZlX3VybCkK
LQotICAgICAgICBhcmNoaXZlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fd2ViX3Jvb3QsICdh
cmNoaXZlLicgKyBhcmNoaXZlX3R5cGUpCi0gICAgICAgIF9sb2cuaW5mbygnRG93bmxvYWRpbmcg
JXMgdG8gJXMnICUgKGFyY2hpdmVfdXJsLCBhcmNoaXZlX3BhdGgpKQotICAgICAgICB1cmxsaWIu
dXJscmV0cmlldmUoYXJjaGl2ZV91cmwsIGFyY2hpdmVfcGF0aCkKLQotICAgICAgICBpZiBhcmNo
aXZlX3R5cGUgPT0gJ3ppcCc6Ci0gICAgICAgICAgICB3aXRoIFppcEZpbGUoYXJjaGl2ZV9wYXRo
LCAncicpIGFzIGFyY2hpdmU6Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNl
bGYuX2Rlc3QpCi0gICAgICAgIGVsaWYgYXJjaGl2ZV90eXBlID09ICd0YXIuZ3onOgotICAgICAg
ICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oYXJjaGl2ZV9wYXRoLCAncjpneicpIGFzIGFyY2hpdmU6
Ci0gICAgICAgICAgICAgICAgYXJjaGl2ZS5leHRyYWN0YWxsKHNlbGYuX2Rlc3QpCi0KLSAgICAg
ICAgdW5hcmNoaXZlZF9maWxlcyA9IGZpbHRlcihsYW1iZGEgbmFtZTogbm90IG5hbWUuc3RhcnRz
d2l0aCgnLicpLCBvcy5saXN0ZGlyKHNlbGYuX2Rlc3QpKQotICAgICAgICBpZiBsZW4odW5hcmNo
aXZlZF9maWxlcykgPT0gMToKLSAgICAgICAgICAgIGZpcnN0X2ZpbGUgPSBvcy5wYXRoLmpvaW4o
c2VsZi5fZGVzdCwgdW5hcmNoaXZlZF9maWxlc1swXSkKLSAgICAgICAgICAgIGlmIG9zLnBhdGgu
aXNkaXIoZmlyc3RfZmlsZSk6Ci0gICAgICAgICAgICAgICAgc2h1dGlsLm1vdmUoZmlyc3RfZmls
ZSwgc2VsZi5fd2ViX3Jvb3QpCi0gICAgICAgICAgICAgICAgb3MucmVuYW1lKG9zLnBhdGguam9p
bihzZWxmLl93ZWJfcm9vdCwgdW5hcmNoaXZlZF9maWxlc1swXSksIHNlbGYuX2Rlc3QpCi0KLSAg
ICBkZWYgX2NoZWNrb3V0X3dpdGhfc3VidmVyc2lvbihzZWxmLCBzdWJ2ZXJzaW9uX3VybCk6Ci0g
ICAgICAgIF9sb2cuaW5mbygnQ2hlY2tpbmcgb3V0ICVzIHRvICVzJyAlIChzdWJ2ZXJzaW9uX3Vy
bCwgc2VsZi5fZGVzdCkpCi0gICAgICAgIGVycm9yX2NvZGUgPSBzdWJwcm9jZXNzLmNhbGwoWydz
dm4nLCAnY2hlY2tvdXQnLCBzdWJ2ZXJzaW9uX3VybCwgc2VsZi5fZGVzdF0pCi0gICAgICAgIGlm
IGVycm9yX2NvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBjaGVja291
dCB0aGUgYmVuY2htYXJrIC0gRXJyb3I6ICVzJyAlIGVycm9yX2NvZGUpCi0KLSAgICBkZWYgX2Fw
cGx5X3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgb2xkX3dvcmtpbmdfZGlyZWN0b3J5ID0g
b3MuZ2V0Y3dkKCkKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5fZGVzdCkKLSAgICAgICAgZXJyb3Jf
Y29kZSA9IHN1YnByb2Nlc3MuY2FsbChbJ3BhdGNoJywgJy1wMScsICctZicsICctaScsIGdldF9w
YXRoX2Zyb21fcHJvamVjdF9yb290KHBhdGNoKV0pCi0gICAgICAgIG9zLmNoZGlyKG9sZF93b3Jr
aW5nX2RpcmVjdG9yeSkKLSAgICAgICAgaWYgZXJyb3JfY29kZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignQ2Fubm90IGFwcGx5IHBhdGNoLCB3aWxsIHNraXAgY3VycmVudCBiZW5jaG1h
cmtfcGF0aCAtIEVycm9yOiAlcycgJSBlcnJvcl9jb2RlKQotCi0gICAgZGVmIGNsZWFuKHNlbGYp
OgotICAgICAgICBfbG9nLmluZm8oJ0NsZWFuaW5nIEJlbmNobWFyaycpCi0gICAgICAgIGlmIHNl
bGYuX3dlYl9yb290OgotICAgICAgICAgICAgZm9yY2VfcmVtb3ZlKHNlbGYuX3dlYl9yb290KQpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19i
dWlsZGVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci5weQkod29ya2luZyBjb3B5KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBACiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19u
YW1lX18pCiAKIAotY2xhc3MgR2VuZXJpY0JlbmNobWFya0J1aWxkZXIob2JqZWN0KToKK2NsYXNz
IEJlbmNobWFya0J1aWxkZXIob2JqZWN0KToKIAogICAgIGJ1aWxkZXJfbmFtZSA9ICdHZW5lcmlj
QmVuY2htYXJrQnVpbGRlcicKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkJKHJldmlzaW9u
IDE4ODA3OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5j
aG1hcmtfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBACiBpbXBvcnQg
b3MKIGltcG9ydCB1cmxwYXJzZQogCi1mcm9tIGJlbmNobWFya19idWlsZGVyLmJlbmNobWFya19i
dWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNobWFya0J1aWxkZXJGYWN0b3J5Citmcm9tIGJlbmNo
bWFya19idWlsZGVyIGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyCiBmcm9tIGJlbmNobWFya19yZXN1
bHRzIGltcG9ydCBCZW5jaG1hcmtSZXN1bHRzCiBmcm9tIGJyb3dzZXJfZHJpdmVyLmJyb3dzZXJf
ZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CiBmcm9tIGh0dHBfc2Vy
dmVyX2RyaXZlci5odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRy
aXZlckZhY3RvcnkKQEAgLTI0LDcgKzI0LDcgQEAKIAogY2xhc3MgQmVuY2htYXJrUnVubmVyKG9i
amVjdCk6CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGxhbl9maWxlLCBsb2NhbF9jb3B5LCBj
b3VudF9vdmVycmlkZSwgYnVpbGRfZGlyLCBvdXRwdXRfZmlsZSwgcGxhdGZvcm0sIGJyb3dzZXIs
IGh0dHBfc2VydmVyX2RyaXZlcl9vdmVycmlkZT1Ob25lLCBkZXZpY2VfaWQ9Tm9uZSk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBsYW5fZmlsZSwgbG9jYWxfY29weSwgY291bnRfb3ZlcnJpZGUs
IGJ1aWxkX2Rpciwgb3V0cHV0X2ZpbGUsIHBsYXRmb3JtLCBicm93c2VyLCBkZXZpY2VfaWQ9Tm9u
ZSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHBsYW5fZmlsZSA9IHNlbGYuX2ZpbmRfcGxh
bl9maWxlKHBsYW5fZmlsZSkKICAgICAgICAgICAgIHdpdGggb3BlbihwbGFuX2ZpbGUsICdyJykg
YXMgZnA6CkBAIC0zNCwxMCArMzQsOCBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLl9wbGFu
Wydsb2NhbF9jb3B5J10gPSBsb2NhbF9jb3B5CiAgICAgICAgICAgICAgICAgaWYgY291bnRfb3Zl
cnJpZGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BsYW5bJ2NvdW50J10gPSBjb3VudF9v
dmVycmlkZQotICAgICAgICAgICAgICAgIGlmIGh0dHBfc2VydmVyX2RyaXZlcl9vdmVycmlkZToK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGxhblsnaHR0cF9zZXJ2ZXJfZHJpdmVyJ10gPSBo
dHRwX3NlcnZlcl9kcml2ZXJfb3ZlcnJpZGUKICAgICAgICAgICAgICAgICBzZWxmLl9icm93c2Vy
X2RyaXZlciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShwbGF0Zm9ybSwgYnJvd3NlcikK
LSAgICAgICAgICAgICAgICBzZWxmLl9odHRwX3NlcnZlcl9kcml2ZXIgPSBIVFRQU2VydmVyRHJp
dmVyRmFjdG9yeS5jcmVhdGUoc2VsZi5fcGxhblsnaHR0cF9zZXJ2ZXJfZHJpdmVyJ10pCisgICAg
ICAgICAgICAgICAgc2VsZi5faHR0cF9zZXJ2ZXJfZHJpdmVyID0gSFRUUFNlcnZlckRyaXZlckZh
Y3RvcnkuY3JlYXRlKHBsYXRmb3JtKQogICAgICAgICAgICAgICAgIHNlbGYuX2h0dHBfc2VydmVy
X2RyaXZlci5zZXRfZGV2aWNlX2lkKGRldmljZV9pZCkKICAgICAgICAgICAgICAgICBzZWxmLl9i
dWlsZF9kaXIgPSBvcy5wYXRoLmFic3BhdGgoYnVpbGRfZGlyKSBpZiBidWlsZF9kaXIgZWxzZSBO
b25lCiAgICAgICAgICAgICAgICAgc2VsZi5fb3V0cHV0X2ZpbGUgPSBvdXRwdXRfZmlsZQpAQCAt
NjQsNyArNjIsNyBAQAogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IHRvIGV4ZWN1dGUgdGhlIHBs
YW4nKQogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IGEgbmV3IGJlbmNobWFyaycpCiAgICAgICAg
IHJlc3VsdHMgPSBbXQotICAgICAgICBzZWxmLl9iZW5jaG1hcmtfYnVpbGRlciA9IEJlbmNobWFy
a0J1aWxkZXJGYWN0b3J5LmNyZWF0ZShzZWxmLl9wbGFuWydiZW5jaG1hcmtfYnVpbGRlciddKQor
ICAgICAgICBzZWxmLl9iZW5jaG1hcmtfYnVpbGRlciA9IEJlbmNobWFya0J1aWxkZXIoKQogCiAg
ICAgICAgIHdlYl9yb290ID0gc2VsZi5fYmVuY2htYXJrX2J1aWxkZXIucHJlcGFyZShzZWxmLl9w
bGFuX25hbWUsIHNlbGYuX3BsYW4pCiAgICAgICAgIGZvciB4IGluIHhyYW5nZShpbnQoc2VsZi5f
cGxhblsnY291bnQnXSkpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2Ryb21hZW8t
Y3NzcXVlcnkucGxhbgkocmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1jc3NxdWVyeS5wbGFuCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3NlcnZlcl9kcml2ZXIiOiAi
U2ltcGxlSFRUUFNlcnZlckRyaXZlciIsCiAgICAgInRpbWVvdXQiOiAxMjAwLAogICAgICJjb3Vu
dCI6IDEsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
IiwKICAgICAicmVtb3RlX2FyY2hpdmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plcmVzaWcvZHJv
bWFlby9hcmNoaXZlL2VkN2U2YThmMjVlYTcyZjQ1YzE5MWYzNGE2ODcyMmY4MGRjM2M1MTMuemlw
IiwKICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9Ecm9tYWVvLnBhdGNoIiwK
ICAgICAiY3JlYXRlX3NjcmlwdCI6IFsibWFrZSIsICJ3ZWIiXSwKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2Ryb21hZW8tZG9tLnBsYW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Rh
dGEvcGxhbnMvZHJvbWFlby1kb20ucGxhbgkocmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1kb20ucGxh
bgkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2ZXJfZHJp
dmVyIjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMTIwMCwKICAg
ICAiY291bnQiOiAxLAotICAgICJiZW5jaG1hcmtfYnVpbGRlciI6ICJHZW5lcmljQmVuY2htYXJr
QnVpbGRlciIsCiAgICAgInJlbW90ZV9hcmNoaXZlIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZXJl
c2lnL2Ryb21hZW8vYXJjaGl2ZS9lZDdlNmE4ZjI1ZWE3MmY0NWMxOTFmMzRhNjg3MjJmODBkYzNj
NTEzLnppcCIsCiAgICAgImJlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMvRHJvbWFlby5w
YXRjaCIsCiAgICAgImNyZWF0ZV9zY3JpcHQiOiBbIm1ha2UiLCAid2ViIl0sCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9kcm9tYWVvLWpz
bGliLnBsYW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2RhdGEvcGxhbnMvZHJvbWFlby1qc2xpYi5wbGFuCShyZXZpc2lvbiAxODgwNzkpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9kcm9t
YWVvLWpzbGliLnBsYW4JKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiB7Ci0gICAgImh0
dHBfc2VydmVyX2RyaXZlciI6ICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIiwKICAgICAidGltZW91
dCI6IDEyMDAsCiAgICAgImNvdW50IjogMSwKLSAgICAiYmVuY2htYXJrX2J1aWxkZXIiOiAiR2Vu
ZXJpY0JlbmNobWFya0J1aWxkZXIiLAogICAgICJyZW1vdGVfYXJjaGl2ZSI6ICJodHRwczovL2dp
dGh1Yi5jb20vamVyZXNpZy9kcm9tYWVvL2FyY2hpdmUvZWQ3ZTZhOGYyNWVhNzJmNDVjMTkxZjM0
YTY4NzIyZjgwZGMzYzUxMy56aXAiLAogICAgICJiZW5jaG1hcmtfcGF0Y2giOiAiZGF0YS9wYXRj
aGVzL0Ryb21hZW8ucGF0Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJtYWtlIiwgIndlYiJd
LApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxh
bnMvamV0c3RyZWFtLnBsYW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvamV0c3RyZWFtLnBsYW4JKHJldmlzaW9uIDE4ODA3
OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5z
L2pldHN0cmVhbS5wbGFuCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJo
dHRwX3NlcnZlcl9kcml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAogICAgICJ0aW1l
b3V0IjogNjAwLAogICAgICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdl
bmVyaWNCZW5jaG1hcmtCdWlsZGVyIiwKICAgICAic3ZuX3NvdXJjZSI6ICJodHRwczovL3N2bi53
ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMvSmV0U3Ry
ZWFtL0ByMTgzMDkxIiwKICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9KZXRT
dHJlYW0ucGF0Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJydWJ5IiwgImNyZWF0ZS5yYiJd
LApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxh
bnMvanNiZW5jaC5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL2pzYmVuY2gucGxhbgkocmV2aXNpb24gMTg4MDc5KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMvanNi
ZW5jaC5wbGFuCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAgICJodHRwX3Nl
cnZlcl9kcml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAogICAgICJ0aW1lb3V0Ijog
NjAwLAogICAgICJjb3VudCI6IDEsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNC
ZW5jaG1hcmtCdWlsZGVyIiwKICAgICAicmVtb3RlX2FyY2hpdmUiOiAiaHR0cDovL3BsZy51d2F0
ZXJsb28uY2EvfmR5bmpzL2pzYmVuY2gvc3VpdGUvanNiZW5jaC0yMDEzLjEudGFyLmd6IiwKICAg
ICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9KU0JlbmNoLnBhdGNoIiwKICAgICAi
ZW50cnlfcG9pbnQiOiAiaW5kZXguaHRtbCIsCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9rcmFrZW4ucGxhbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9rcmFrZW4u
cGxhbgkocmV2aXNpb24gMTg4MDc5KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2RhdGEvcGxhbnMva3Jha2VuLnBsYW4JKHdvcmtpbmcgY29weSkKQEAgLTEsOCAr
MSw2IEBACiB7Ci0gICAgImh0dHBfc2VydmVyX2RyaXZlciI6ICJTaW1wbGVIVFRQU2VydmVyRHJp
dmVyIiwKICAgICAidGltZW91dCI6IDMwMCwKICAgICAiY291bnQiOiA1LAotICAgICJiZW5jaG1h
cmtfYnVpbGRlciI6ICJHZW5lcmljQmVuY2htYXJrQnVpbGRlciIsCiAgICAgInJlbW90ZV9hcmNo
aXZlIjogImh0dHA6Ly9oZy5tb3ppbGxhLm9yZy9wcm9qZWN0cy9rcmFrZW4vYXJjaGl2ZS90aXAu
emlwIiwKICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hlcy9LcmFrZW4ucGF0Y2gi
LAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJweXRob24iLCAibWFrZS1ob3N0ZWQucHkiXSwKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL29j
dGFuZS5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9kYXRhL3BsYW5zL29jdGFuZS5wbGFuCShyZXZpc2lvbiAxODgwNzkpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9vY3RhbmUucGxh
bgkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIHsKLSAgICAiaHR0cF9zZXJ2ZXJfZHJp
dmVyIjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLAogICAgICJ0aW1lb3V0IjogMzAwLAogICAg
ICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVyIjogIkdlbmVyaWNCZW5jaG1hcmtC
dWlsZGVyIiwKICAgICAicmVtb3RlX2FyY2hpdmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nocm9t
aXVtL29jdGFuZS1iZW5jaG1hcmsvYXJjaGl2ZS9mYWIwOWFlZjAxYzJhNTU2MGMyMmNkYzFjMWEy
NDUxYzBkMGY0Y2RjLnppcCIsCiAgICAgImJlbmNobWFya19wYXRjaCI6ICJkYXRhL3BhdGNoZXMv
T2N0YW5lLnBhdGNoIiwKICAgICAiZW50cnlfcG9pbnQiOiAiaW5kZXguaHRtbD9hdXRvPTEiLApJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2RhdGEvcGxhbnMv
c3BlZWRvbWV0ZXIucGxhbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvZGF0YS9wbGFucy9zcGVlZG9tZXRlci5wbGFuCShyZXZpc2lvbiAxODgw
NzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0YS9wbGFu
cy9zcGVlZG9tZXRlci5wbGFuCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogewotICAg
ICJodHRwX3NlcnZlcl9kcml2ZXIiOiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsCiAgICAgInRp
bWVvdXQiOiAzMDAsCiAgICAgImNvdW50IjogNSwKLSAgICAiYmVuY2htYXJrX2J1aWxkZXIiOiAi
R2VuZXJpY0JlbmNobWFya0J1aWxkZXIiLAogICAgICJsb2NhbF9jb3B5IjogIi4uLy4uLy4uLy4u
L1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIiLAogICAgICJiZW5jaG1hcmtfcGF0Y2giOiAi
ZGF0YS9wYXRjaGVzL1NwZWVkb21ldGVyLnBhdGNoIiwKICAgICAiZW50cnlfcG9pbnQiOiAiRnVs
bC5odG1sIiwKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9k
YXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9kYXRhL3BsYW5zL3N1bnNwaWRlci5wbGFuCShyZXZpc2lv
biAxODgwNzkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZGF0
YS9wbGFucy9zdW5zcGlkZXIucGxhbgkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIHsK
LSAgICAiaHR0cF9zZXJ2ZXJfZHJpdmVyIjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLAogICAg
ICJ0aW1lb3V0IjogMzAwLAogICAgICJjb3VudCI6IDUsCi0gICAgImJlbmNobWFya19idWlsZGVy
IjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIiwKICAgICAic3ZuX3NvdXJjZSI6ICJodHRwczov
L3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0L3RydW5rL1BlcmZvcm1hbmNlVGVzdHMv
U3VuU3BpZGVyL0ByMTgyMTcwIiwKICAgICAiYmVuY2htYXJrX3BhdGNoIjogImRhdGEvcGF0Y2hl
cy9TdW5TcGlkZXIucGF0Y2giLAogICAgICJjcmVhdGVfc2NyaXB0IjogWyJwZXJsIiwgIm1ha2Ut
aG9zdGVkIl0sCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18u
cHkJKHJldmlzaW9uIDE4ODA3OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAg
LTE5LDggKzE5LDggQEAKIAogCiBkZWYgaHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcihodHRwX3Nl
cnZlcl9kcml2ZXJfY2xhc3MpOgotICAgIGlmIGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcy5uYW1l
OgotICAgICAgICBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5hZGQoaHR0cF9zZXJ2ZXJfZHJpdmVy
X2NsYXNzLm5hbWUsIGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcykKKyAgICBmb3IgcGxhdGZvcm0g
aW4gaHR0cF9zZXJ2ZXJfZHJpdmVyX2NsYXNzLnBsYXRmb3JtczoKKyAgICAgICAgSFRUUFNlcnZl
ckRyaXZlckZhY3RvcnkuYWRkKHBsYXRmb3JtLCBodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MpCiAK
IAogbG9hZF9zdWJjbGFzc2VzKApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2Vy
dmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkJKHJldmlzaW9uIDE4ODA3OSkKKysrIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsOCBAQAogCiAK
IGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIob2JqZWN0KToKLSAgICBuYW1lID0gTm9uZQorICAgIHBs
YXRmb3JtcyA9IFtdCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgc2VydmUoc2VsZiwg
d2ViUm9vdCk6CiAgICAgICAgIHBhc3MKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZl
ci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkJKHJldmlz
aW9uIDE4ODA3OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQkod29ya2luZyBj
b3B5KQpAQCAtMTgsOCArMTgsOSBAQAogCiAgICAgIiIiVGhpcyBjbGFzcyBkZXBlbmRzIG9uIHVu
aXggZW52aXJvbm1lbnQsIG5lZWQgdG8gYmUgbW9kaWZpZWQgdG8gYWNoaWV2ZSBjcm9zc3BsYXRm
b3JtIGNvbXBhYmlsaXR5CiAgICAgIiIiCi0gICAgbmFtZSA9ICdTaW1wbGVIVFRQU2VydmVyRHJp
dmVyJwogCisgICAgcGxhdGZvcm1zID0gWydvc3gnXQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYp
OgogICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJvY2VzcyA9IE5vbmUKICAgICAgICAgc2VsZi5fc2Vy
dmVyX3BvcnQgPSAwCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvcnVuX2JlbmNobWFyay5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvcnVuX2JlbmNobWFyay5weQkocmV2aXNpb24gMTg4MDc5KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLWRlYnVnJywgYWN0aW9uPSdzdG9yZV90cnVlJykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCctLWxvY2FsLWNvcHknLCBkZXN0PSdsb2NhbENvcHknLCBoZWxwPSdQYXRoIHRvIGEgbG9jYWwg
Y29weSBvZiB0aGUgYmVuY2htYXJrLiBlLmcuIFBlcmZvcm1hbmNlVGVzdHMvU3VuU3BpZGVyLycp
CiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1jb3VudCcsIGRlc3Q9J2NvdW50T3ZlcnJpZGUn
LCB0eXBlPWludCwgaGVscD0nTnVtYmVyIG9mIHRpbWVzIHRvIHJ1biB0aGUgYmVuY2htYXJrLiBl
LmcuIDUnKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0taHR0cC1zZXJ2ZXItZHJpdmVyJywg
ZGVzdD0naHR0cFNlcnZlckRyaXZlck92ZXJyaWRlJywgZGVmYXVsdD1Ob25lLCBoZWxwPSdTcGVj
aWZ5IHdoaWNoIEhUVFAgc2VydmVyIHlvdSB3YW50cyB0byB1c2UnKQogICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoJy0tZGV2aWNlLWlkJywgZGVzdD0nZGV2aWNlX2lkJywgZGVmYXVsdD1Ob25lKQog
CiAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKQEAgLTM5LDcgKzM4LDcgQEAKIAogCiBk
ZWYgc3RhcnQoYXJncyk6Ci0gICAgcnVubmVyID0gQmVuY2htYXJrUnVubmVyKGFyZ3MucGxhbiwg
YXJncy5sb2NhbENvcHksIGFyZ3MuY291bnRPdmVycmlkZSwgYXJncy5idWlsZERpciwgYXJncy5v
dXRwdXQsIGFyZ3MucGxhdGZvcm0sIGFyZ3MuYnJvd3NlciwgYXJncy5odHRwU2VydmVyRHJpdmVy
T3ZlcnJpZGUsIGFyZ3MuZGV2aWNlX2lkKQorICAgIHJ1bm5lciA9IEJlbmNobWFya1J1bm5lcihh
cmdzLnBsYW4sIGFyZ3MubG9jYWxDb3B5LCBhcmdzLmNvdW50T3ZlcnJpZGUsIGFyZ3MuYnVpbGRE
aXIsIGFyZ3Mub3V0cHV0LCBhcmdzLnBsYXRmb3JtLCBhcmdzLmJyb3dzZXIsIGFyZ3MuZGV2aWNl
X2lkKQogICAgIHJ1bm5lci5leGVjdXRlKCkKIAogCg==
</data>
<flag name="review"
          id="283598"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>