<?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>237282</bug_id>
          
          <creation_ts>2022-02-28 11:07:38 -0800</creation_ts>
          <short_desc>Haiku port upstreaming: Webkitpy</short_desc>
          <delta_ts>2022-04-13 03:13:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220690</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pascal Abresch">nep-webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>kallisti5</cc>
    
    <cc>pulkomandy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846706</commentid>
    <comment_count>0</comment_count>
    <who name="Pascal Abresch">nep-webkit</who>
    <bug_when>2022-02-28 11:07:38 -0800</bug_when>
    <thetext>This ticket is for upstreaming the webkitpy portiong of the Haiku port to webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846711</commentid>
    <comment_count>1</comment_count>
      <attachid>453411</attachid>
    <who name="Pascal Abresch">nep-webkit</who>
    <bug_when>2022-02-28 11:15:49 -0800</bug_when>
    <thetext>Created attachment 453411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848840</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-07 11:08:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89918574&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849815</commentid>
    <comment_count>3</comment_count>
      <attachid>453411</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-03-09 13:32:32 -0800</bug_when>
    <thetext>Comment on attachment 453411
Patch

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

&gt; Tools/Scripts/webkitpy/port/haikudriver.py:1
&gt; +# Copyright (C) 2010 Google Inc. All rights reserved.

Feels like this copyright needs to be updated, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849952</commentid>
    <comment_count>4</comment_count>
    <who name="Pascal Abresch">nep-webkit</who>
    <bug_when>2022-03-09 20:27:02 -0800</bug_when>
    <thetext>Indeed.
Pulkomandy: It looks like you added this file in 2013 (in https://github.com/haiku/webkit-old/commit/cd80529000af2ab10470c24197d1198b078b0257)
Do you have any particular opinion on changing the copyright header?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849983</commentid>
    <comment_count>5</comment_count>
    <who name="Adrien Destugues">pulkomandy</who>
    <bug_when>2022-03-10 00:01:38 -0800</bug_when>
    <thetext>The files were initially copied from other ports which explain the copyright.

You can add a copyright for 2013-2022 to Haiku, inc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850675</commentid>
    <comment_count>6</comment_count>
      <attachid>454528</attachid>
    <who name="Pascal Abresch">nep-webkit</who>
    <bug_when>2022-03-11 22:22:54 -0800</bug_when>
    <thetext>Created attachment 454528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850676</commentid>
    <comment_count>7</comment_count>
    <who name="Pascal Abresch">nep-webkit</who>
    <bug_when>2022-03-11 22:23:22 -0800</bug_when>
    <thetext>I have updated the copyright dates accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858155</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-04-04 17:01:29 -0700</bug_when>
    <thetext>No objection to this change, would like to understand the plan with Haiku upstreaming, though. Is there an intention to have bots at some point? This code is mostly used for running layout tests. Are the Haiku folks already doing this? Is there an intention to do this&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858269</commentid>
    <comment_count>9</comment_count>
    <who name="Adrien Destugues">pulkomandy</who>
    <bug_when>2022-04-05 00:13:48 -0700</bug_when>
    <thetext>Hello,

Haiku inc is willing to provide a machine to run the bots for Haiku as needed.

Until now I have run the tests locally on my machine only. Now that Pascal is helping me with the WebKit work, it&apos;s a bit more reasonable to work on upstreaming our changes (or at least some of it). There has been some discussions in https://bugs.webkit.org/show_bug.cgi?id=220690 about wether WebKit would accept all our port in upstream again, or only a subset.

So, yes, if we&apos;re allowed to submit our port upstream, we will of course provide the needed bots and have them run the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858457</commentid>
    <comment_count>10</comment_count>
      <attachid>454528</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-04-05 10:54:12 -0700</bug_when>
    <thetext>Comment on attachment 454528
Patch

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

&gt; Tools/Scripts/webkitpy/common/version_name_map.py:79
&gt; +            &apos;haiku&apos;: {&apos;&apos;: Version(1.4)},

Should be: `Version(1, 4)`

&gt; Tools/Scripts/webkitpy/port/haiku.py:47
&gt; +        self._version = &quot;1.4&quot;

Looking through our webkitpy code, it looks to me like the ApplePort doesn&apos;t use this variable, do things work without it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861067</commentid>
    <comment_count>11</comment_count>
    <who name="Pascal Abresch">nep-webkit</who>
    <bug_when>2022-04-13 03:13:04 -0700</bug_when>
    <thetext>Hey, sorry for the late response.
I don&apos;t know if the second variable is needed, I&apos;ll remove it locally and try to run the tests and resubmit it without it if it is uneccesary.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453411</attachid>
            <date>2022-02-28 11:15:49 -0800</date>
            <delta_ts>2022-03-11 22:22:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237282-20220228201546.patch</filename>
            <type>text/plain</type>
            <size>26041</size>
            <attacher name="Pascal Abresch">nep-webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjA2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWNjOGJmOTNmMWZhNDU0MGUyMDZjNjllYTU1MGVjMGI3
MzhiMWRjOS4uMjdkMjcyYzFiNGE2Y2NhYTczOGMwZDE5Yzk5ZGFhZWFjYTJlNmVmNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1
IEBACisyMDIyLTAyLTI4ICBQYXNjYWwgQWJyZXNjaCAgPG5lcEBwYWNrYWdlbG9zcy5ldT4KKwor
ICAgICAgICBIYWlrdSBwb3J0IHVwc3RyZWFtaW5nOiBXZWJraXRweQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBzdHJlYW0gSGFpa3UgcG9ydDogV2Vi
a2l0cHkKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnBvcnQpOgorICAgICAgICAoSGFpa3VQb3J0KToK
KyAgICAgICAgKEhhaWt1UG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCk6CisgICAgICAgIChIYWlr
dVBvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5OgorICAgICAgICAoUGxhdGZvcm1JbmZv
LmlzX2hhaWt1KToKKyAgICAgICAgKFBsYXRmb3JtSW5mby5fZGV0ZXJtaW5lX29zX25hbWUpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9j
ay5weToKKyAgICAgICAgKE1vY2tQbGF0Zm9ybUluZm8uaXNfaGFpa3UpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHk6Cisg
ICAgICAgIChUZXN0UGxhdGZvcm1JbmZvLnRlc3RfcmVhbF9jb2RlKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5OgorICAgICAgICAoVmVyc2lv
bk5hbWVNYXAuX19pbml0X18pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXIucHk6CisgICAgICAgIChMaWdodHRwZC5fcHJlcGFyZV9j
b25maWcpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAg
ICAoUG9ydC5fcGF0aF90b19saWdodHRwZF9lbnYpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAocGxhdGZvcm1fb3B0aW9ucyk6CisgICAgICAg
IChQb3J0RmFjdG9yeSk6CisgICAgICAgIChQb3J0RmFjdG9yeS5fZGVmYXVsdF9wb3J0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGFpa3UucHk6IEFkZGVkLgorICAgICAgICAo
SGFpa3VQb3J0KToKKyAgICAgICAgKEhhaWt1UG9ydC5fX2luaXRfXyk6CisgICAgICAgIChIYWlr
dVBvcnQuX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyk6CisgICAgICAgIChIYWlrdVBvcnQuc2V0dXBf
dGVzdF9ydW4pOgorICAgICAgICAoSGFpa3VQb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcik6
CisgICAgICAgIChIYWlrdVBvcnQuZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKEhhaWt1
UG9ydC5jbGVhbl91cF90ZXN0X3J1bik6CisgICAgICAgIChIYWlrdVBvcnQuX2dlbmVyYXRlX2Fs
bF90ZXN0X2NvbmZpZ3VyYXRpb25zKToKKyAgICAgICAgKEhhaWt1UG9ydC5fZHJpdmVyX2NsYXNz
KToKKyAgICAgICAgKEhhaWt1UG9ydC5fcGF0aF90b19kcml2ZXIpOgorICAgICAgICAoSGFpa3VQ
b3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYpOgorICAgICAgICAoSGFpa3VQb3J0Ll9pbWFnZV9kaWZm
X2NvbW1hbmQpOgorICAgICAgICAoSGFpa3VQb3J0Ll9wYXRoX3RvX3dlYmNvcmVfbGlicmFyeSk6
CisgICAgICAgIChIYWlrdVBvcnQuX3NlYXJjaF9wYXRocyk6CisgICAgICAgIChIYWlrdVBvcnQu
ZGVmYXVsdF9iYXNlbGluZV9zZWFyY2hfcGF0aCk6CisgICAgICAgIChIYWlrdVBvcnQuX3BvcnRf
c3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKEhhaWt1UG9ydC5zaG93X3Jl
c3VsdHNfaHRtbF9maWxlKToKKyAgICAgICAgKEhhaWt1UG9ydC5fdXNlc19hcGFjaGUpOgorICAg
ICAgICAoSGFpa3VQb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkKToKKyAgICAgICAgKEhhaWt1UG9ydC5f
cGF0aF90b19saWdodHRwZF9tb2R1bGVzKToKKyAgICAgICAgKEhhaWt1UG9ydC5fcGF0aF90b19s
aWdodHRwZF9waHApOgorICAgICAgICAoSGFpa3VQb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkX2Vudik6
CisgICAgICAgIChIYWlrdVBvcnQuY2hlY2tfc3lzX2RlcHMpOgorICAgICAgICAoSGFpa3VQb3J0
LmJ1aWxkX3dlYmtpdF9jb21tYW5kKToKKyAgICAgICAgKEhhaWt1UG9ydC5fZ2V0X2NyYXNoX2xv
Zyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2hhaWt1X2dldF9jcmFzaF9sb2cu
cHk6IEFkZGVkLgorICAgICAgICAoSGFpa3VDcmFzaExvZ0dlbmVyYXRvcik6CisgICAgICAgIChI
YWlrdUNyYXNoTG9nR2VuZXJhdG9yLl9faW5pdF9fKToKKyAgICAgICAgKEhhaWt1Q3Jhc2hMb2dH
ZW5lcmF0b3IuX2dldF9kZWJ1Z2dlcl9vdXRwdXQpOgorICAgICAgICAoSGFpa3VDcmFzaExvZ0dl
bmVyYXRvci5nZW5lcmF0ZV9jcmFzaF9sb2cpOgorICAgICAgICAoSGFpa3VDcmFzaExvZ0dlbmVy
YXRvci5nZW5lcmF0ZV9jcmFzaF9sb2cubWF0Y2hfZmlsZW5hbWUpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9oYWlrdWRyaXZlci5weTogQWRkZWQuCisgICAgICAgIChIYWlrdURy
aXZlcik6CisgICAgICAgIChIYWlrdURyaXZlci5jaGVja19kcml2ZXIpOgorICAgICAgICAoSGFp
a3VEcml2ZXIuX19pbml0X18pOgorICAgICAgICAoSGFpa3VEcml2ZXIuX25leHRfZnJlZV9kaXNw
bGF5KToKKyAgICAgICAgKEhhaWt1RHJpdmVyLl94dmZiX3NjcmVlbl9kZXB0aCk6CisgICAgICAg
IChIYWlrdURyaXZlci5fc3RhcnQpOgorICAgICAgICAoSGFpa3VEcml2ZXIuc3RvcCk6CisKIDIw
MjItMDItMjggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkwNTgzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGE4Y2NjNmE4YjMyNzI2YzIxYjRmZWMwOTc4
MTc3MjAxYjcyYzRmYTcuLjFmYWE4NGQ3ZDkwMzNjNmZkNDk1Y2JjYzMwYjg0MThiOGRmODRiZTkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKQEAg
LTcxLDExICs3MSwxMyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgICAgICAg
ICAgIm1hYy13azIiOiBNYWNXSzJQb3J0LAogICAgICAgICAgICAgIndpbiI6IFdpblBvcnQsCiAg
ICAgICAgICAgICAid2luY2Fpcm8iOiBXaW5DYWlyb1BvcnQsCisgICAgICAgICAgICAiaGFpa3Ui
OiBIYWlrdVBvcnQsCiAgICAgICAgICAgICAid3BlIjogV3BlUG9ydCwKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0X3BvcnQgPSB7CiAgICAgICAgICAgICAiV2luZG93cyI6IFdpblBvcnQsCiAg
ICAgICAgICAgICAiRGFyd2luIjogTWFjUG9ydCwKKyAgICAgICAgICAgICJIYWlrdSI6IEhhaWt1
UG9ydCwKICAgICAgICAgfQogICAgICAgICAjIERvIHdlIHJlYWxseSBuZWVkIE1hY1BvcnQgYXMg
dGhlIHVsdGltYXRlIGRlZmF1bHQ/CiAgICAgICAgIHJldHVybiBwb3J0cy5nZXQocG9ydF9uYW1l
LCBkZWZhdWx0X3BvcnQuZ2V0KHBsYXRmb3JtLnN5c3RlbSgpLCBNYWNQb3J0KSkoKQpAQCAtMjIy
LDYgKzIyNCwyMyBAQCBjbGFzcyBHdGtXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICAgICAg
cmV0dXJuIGNvbW1hbmQKIAogCitjbGFzcyBIYWlrdVBvcnQoRGVwcmVjYXRlZFBvcnQpOgorICAg
IHBvcnRfZmxhZ19uYW1lID0gImhhaWt1IgorCisgICAgZGVmIGJ1aWxkX3dlYmtpdF9jb21tYW5k
KHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc3VwZXIoSGFpa3VQ
b3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkK
KyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0taGFpa3UiKQorICAgICAgICBjb21tYW5kLmFwcGVu
ZCgiLS11cGRhdGUtaGFpa3UiKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQy
IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoSGFpa3VQb3J0LCBzZWxmKS5tYWtlQXJn
cygpKQorICAgICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHN1cGVy
KEhhaWt1UG9ydCwgc2VsZikucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKGJ1aWxkX3N0eWxlKQor
ICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1oYWlrdSIpCisgICAgICAgIHJldHVybiBjb21tYW5k
CisKKwogY2xhc3MgV3BlUG9ydChEZXByZWNhdGVkUG9ydCk6CiAgICAgcG9ydF9mbGFnX25hbWUg
PSAid3BlIgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vcGxhdGZvcm1pbmZvLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mby5weQppbmRleCA0NGM4M2FmYWIwYzdiOGQ0NjY5M2YzN2IyYTQzNzQ0OWVj
OGVlZTM3Li5hN2UyMTQxNGJmOTQwNmIwZDE0MjQ2NjI3NWFhMDQ2MzkxMWVlOGI1IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8u
cHkKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICBk
ZWYgaXNfY3lnd2luKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5faXNfY3lnd2luCiAKKyAg
ICBkZWYgaXNfaGFpa3Uoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm9zX25hbWUgPT0gJ2hh
aWt1JworCiAgICAgZGVmIGlzX2xpbnV4KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19u
YW1lID09ICdsaW51eCcKIApAQCAtMjMwLDYgKzIzMyw4IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhv
YmplY3QpOgogICAgICAgICAgICAgcmV0dXJuICdpb3MnCiAgICAgICAgIGlmIHN5c19wbGF0Zm9y
bS5zdGFydHN3aXRoKCdsaW51eCcpOgogICAgICAgICAgICAgcmV0dXJuICdsaW51eCcKKyAgICAg
ICAgaWYgc3lzX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2hhaWt1Jyk6CisgICAgICAgICAgICByZXR1
cm4gJ2hhaWt1JwogICAgICAgICBpZiBzeXNfcGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgb3Ig
c3lzX3BsYXRmb3JtID09ICdjeWd3aW4nOgogICAgICAgICAgICAgcmV0dXJuICd3aW4nCiAgICAg
ICAgIGlmIHN5c19wbGF0Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNkJyk6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2su
cHkKaW5kZXggZGZjYjg1MGQ1MmExYzFjODVkNDdiYzY1MGIwZGJhNTI3OGMyZWU2OC4uNzU0NGFj
MzgxZTQ2NGEwMDE3NWZjZTllOGY4Y2Q4MzhiNGFjMjE3NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQpA
QCAtNTIsNiArNTIsOSBAQCBjbGFzcyBNb2NrUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVm
IGlzX2xpbnV4KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdsaW51eCcK
IAorICAgIGRlZiBpc19oYWlrdShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYub3NfbmFtZSA9
PSAnaGFpa3UnCisKICAgICBkZWYgaXNfd2luKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5v
c19uYW1lID09ICd3aW4nCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDBmY2MzZWI2
NmMzODhhYWQzZTI5ZTRmOTlmODlmZDg3Yzk2ZDQ4NWYuLmRhNzI1M2E1N2VhMTIxZjQ0ZDA5Zjky
ODUzNGFmZDkzMDM3NGY1ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQpAQCAtODAsNyAr
ODAsNyBAQCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgaWYgaW5mby5pc19tYWMoKSBvciBpbmZvLmlzX3dpbigpOgogICAgICAgICAgICAgc2VsZi5h
c3NlcnRJc05vdE5vbmUoaW5mby5vc192ZXJzaW9uKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVx
dWFsKGluZm8uZGlzcGxheV9uYW1lKCksICcnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5m
by5pc19tYWMoKSBvciBpbmZvLmlzX3dpbigpIG9yIGluZm8uaXNfbGludXgoKSBvciBpbmZvLmlz
X2ZyZWVic2QoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGluZm8uaXNfbWFjKCkgb3IgaW5m
by5pc193aW4oKSBvciBpbmZvLmlzX2xpbnV4KCkgb3IgaW5mby5pc19mcmVlYnNkKCkgb3IgaW5m
by5pc19oYWlrdSgpKQogICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShpbmZvLnRlcm1pbmFs
X3dpZHRoKCkpCiAKICAgICAgICAgaWYgaW5mby5pc19tYWMoKToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25fbmFtZV9tYXAucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CmluZGV4IDIyNWIxYjM0OTI4
MDc2MTA4ODVkNDk4YzgzMmY5OGM3ODY1OWM3OTMuLmI4YTc2OTA2NWVmMjBmNDBkZDFhMDkxMmMz
ZTk4MzI1Y2U1ZWVlZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3ZlcnNpb25fbmFtZV9tYXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dmVyc2lvbl9uYW1lX21hcC5weQpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBWZXJzaW9uTmFtZU1h
cChvYmplY3QpOgogICAgICAgICAgICAgICAgICdWaXN0YSc6IFZlcnNpb24oNiksCiAgICAgICAg
ICAgICAgICAgJ1hQJzogVmVyc2lvbig1LCAxKSwKICAgICAgICAgICAgIH0sCi0KKyAgICAgICAg
ICAgICdoYWlrdSc6IHsnJzogVmVyc2lvbigxLjQpfSwKICAgICAgICAgICAgICMgVGhpcyBlbnRy
eSBhdm9pZHMgaGl0dGluZyB0aGUgYXNzZXJ0IGluIG1hcHBpbmdfZm9yX3BsYXRmb3JtKCkgb24g
TGludXgsCiAgICAgICAgICAgICAjIGJ1dCBvdGhlcndpc2Ugc2hvdWxkbid0IGNvbnRhaW4gYW55
IHVzZWZ1bCBrZXktdmFsdWUgcGFpcnMuCiAgICAgICAgICAgICAnbGludXgnOiB7fSwKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9z
ZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0
dHBfc2VydmVyLnB5CmluZGV4IGNlMGM3YmRjOGQ0NDFmMzA2NDc5ODQyOGY2ZGE4OTlkZThiMmVj
NzcuLjQzMmM5YzUyODQwOTU1Yzk3MzJmZDhkYTJlNDM4Y2MxMjVlZDZhNWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRw
X3NlcnZlci5weQpAQCAtODUsNyArODUsNyBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9i
YXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgYmFzZV9jb25mX2ZpbGUgPSBzZWxmLl9wb3J0
X29iai5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1Rvb2xzJywKICAgICAgICAgICAgICdTY3JpcHRz
JywgJ3dlYmtpdHB5JywgJ2xheW91dF90ZXN0cycsICdzZXJ2ZXJzJywgJ2xpZ2h0dHBkLmNvbmYn
KQogICAgICAgICBvdXRfY29uZl9maWxlID0gb3MucGF0aC5qb2luKHNlbGYuX291dHB1dF9kaXIs
ICdsaWdodHRwZC5jb25mJykKLSAgICAgICAgdGltZV9zdHIgPSB0aW1lLnN0cmZ0aW1lKCIlZCVi
JVktJUglTSVTIikKKyAgICAgICAgdGltZV9zdHIgPSB0aW1lLmFzY3RpbWUoKQogICAgICAgICBh
Y2Nlc3NfZmlsZV9uYW1lID0gImFjY2Vzcy5sb2ctIiArIHRpbWVfc3RyICsgIi50eHQiCiAgICAg
ICAgIGFjY2Vzc19sb2cgPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3V0cHV0X2RpciwgYWNjZXNzX2Zp
bGVfbmFtZSkKICAgICAgICAgbG9nX2ZpbGVfbmFtZSA9ICJlcnJvci5sb2ctIiArIHRpbWVfc3Ry
ICsgIi50eHQiCkBAIC0xMDgsMTAgKzEwOCwxMiBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZl
cl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgIyBXcml0ZSBvdXQgb3VyIGNnaSBoYW5k
bGVycy4gIFJ1biBwZXJsIHRocm91Z2ggZW52IHNvIHRoYXQgaXQKICAgICAgICAgIyBwcm9jZXNz
ZXMgdGhlICMhIGxpbmUgYW5kIHJ1bnMgcGVybCB3aXRoIHRoZSBwcm9wZXIgY29tbWFuZAogICAg
ICAgICAjIGxpbmUgYXJndW1lbnRzLiBFbXVsYXRlIGFwYWNoZSdzIG1vZF9hc2lzIHdpdGggYSBj
YXQgY2dpIGhhbmRsZXIuCi0gICAgICAgIGYud3JpdGUoJ2NnaS5hc3NpZ24gPSAoICIuY2dpIiAg
PT4gIi91c3IvYmluL2VudiIsXG4nCi0gICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAi
LnBsIiAgID0+ICIvdXNyL2Jpbi9lbnYiLFxuJworICAgICAgICBmLndyaXRlKCgnY2dpLmFzc2ln
biA9ICggIi5jZ2kiICA9PiAiJXMiLFxuJworICAgICAgICAgICAgICAgICAnICAgICAgICAgICAg
ICAgIi5wbCIgICA9PiAiJXMiLFxuJwogICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAg
Ii5hc2lzIiA9PiAiL2Jpbi9jYXQiLFxuJwotICAgICAgICAgICAgICAgICAnICAgICAgICAgICAg
ICAgIi5weSIgID0+ICIvYmluL3B5dGhvbjMiIClcblxuJykKKyAgICAgICAgICAgICAgICAgJyAg
ICAgICAgICAgICAgICIucHkiICA9PiAiL2Jpbi9weXRob24zIiApXG5cbicpICUKKyAgICAgICAg
ICAgICAgICAgKHNlbGYuX3BvcnRfb2JqLl9wYXRoX3RvX2xpZ2h0dHBkX2VudigpLAorICAgICAg
ICAgICAgICAgICAgc2VsZi5fcG9ydF9vYmouX3BhdGhfdG9fbGlnaHR0cGRfZW52KCkpKQogCiAg
ICAgICAgICMgU2V0dXAgbG9nIGZpbGVzCiAgICAgICAgIGYud3JpdGUoKCdzZXJ2ZXIuZXJyb3Js
b2cgPSAiJXMiXG4nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGJkNjRjMzc5
YjFjZWFkYzhjMjliZjVkODRiNmU2YjM4OGY1YTlkODUuLjQxNzUxOWMzOWRmYjJiMjJlZTg0NmUx
OTg5Y2E3OWVhNDM4NjQzYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC0x
Mjc3LDYgKzEyNzcsMTIgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBUaGlzIGlzIG5l
ZWRlZCBvbmx5IGJ5IHBvcnRzIHRoYXQgdXNlIHRoZSBodHRwX3NlcnZlci5weSBtb2R1bGUuIiIi
CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuX3BhdGhfdG9fbGlnaHR0
cGRfbW9kdWxlcycpCiAKKyAgICBkZWYgX3BhdGhfdG9fbGlnaHR0cGRfZW52KHNlbGYpOgorICAg
ICAgICAiIiJSZXR1cm5zIHBhdGggdG8gdGhlIGVudiBleGVjdXRhYmxlLgorCisgICAgICAgIFRo
aXMgaXMgdXNlZCB0byBydW4gQ0dJIHNjcmlwdHMgaW4gbGlnaHR0cGQuIiIiCisgICAgICAgIHJl
dHVybiAiL3Vzci9iaW4vZW52IgorCiAgICAgZGVmIF93ZWJraXRfYmFzZWxpbmVfcGF0aChzZWxm
LCBwbGF0Zm9ybSk6CiAgICAgICAgICIiIlJldHVybiB0aGUgIGZ1bGwgcGF0aCB0byB0aGUgdG9w
IG9mIHRoZSBiYXNlbGluZSB0cmVlIGZvciBhCiAgICAgICAgIGdpdmVuIHBsYXRmb3JtLiIiIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRleCAzMDVmM2YzMDcxMWRjOGFh
ZGU2NGI4YWE4MWM2ODg5NTM0MDBlZjcwLi43ZThlNDcxODk3MDBkODQyODEzYjY4NTk0NGU5NzYz
MGQ5YTBjMDRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9y
eS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAtNTks
NiArNTksOSBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAg
ICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVz
dD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMgZWxz
ZSAnZ3RrJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrKicg
aWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oJy0taGFpa3UnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVz
dD0ncGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCdoYWlrdSonIGlmIHVzZV9nbG9icyBl
bHNlICdoYWlrdScpLAorICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWhh
aWt1KicgaWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWhhaWt1JykpLAog
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0b3JlX2NvbnN0
JywgZGVzdD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBpZiB1c2VfZ2xv
YnMgZWxzZSAnd3BlJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09
d3BlJykpLApAQCAtMTA3LDYgKzExMCw3IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVjdCk6CiAg
ICAgIyBmaXJzdC4KICAgICBQT1JUX0NMQVNTRVMgPSAoCiAgICAgICAgICdndGsuR3RrUG9ydCcs
CisgICAgICAgICdoYWlrdS5IYWlrdVBvcnQnLAogICAgICAgICAnaW9zX3NpbXVsYXRvci5JT1NT
aW11bGF0b3JQb3J0JywKICAgICAgICAgJ2lvc19zaW11bGF0b3IuSVBob25lU2ltdWxhdG9yUG9y
dCcsCiAgICAgICAgICdpb3Nfc2ltdWxhdG9yLklQYWRTaW11bGF0b3JQb3J0JywKQEAgLTEzNCw2
ICsxMzgsOCBAQCBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJu
ICdtYWMnCiAgICAgICAgIGVsaWYgcGxhdGZvcm0uaXNfd2luKCk6CiAgICAgICAgICAgICByZXR1
cm4gJ3dpbicKKyAgICAgICAgZWxpZiBwbGF0Zm9ybS5pc19oYWlrdSgpOgorICAgICAgICAgICAg
cmV0dXJuICdoYWlrdScKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5rbm93
biBwbGF0Zm9ybTogJXMnICUgcGxhdGZvcm0pCiAKICAgICBkZWYgZ2V0KHNlbGYsIHBvcnRfbmFt
ZT1Ob25lLCBvcHRpb25zPU5vbmUsICoqa3dhcmdzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9oYWlrdS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9o
YWlrdS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYjZlYTEyY2Q2YjA3Y2NlYTNlYjJkNDA3MTk2OTViYjlhMDBj
MGI0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2hhaWt1
LnB5CkBAIC0wLDAgKzEsMTQzIEBACisjIENvcHlyaWdodCAoQykgMjAxMSBQcm9GVVNJT04gRW1i
ZWRkZWQgU3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEx
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIldlYktpdCBIYWlrdSBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCisKK2ltcG9ydCBvcworCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0gaW1wb3J0IHBhdGgKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVs
cy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9tIHdlYmtp
dHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmhhaWt1ZHJpdmVy
IGltcG9ydCBIYWlrdURyaXZlcgorZnJvbSB3ZWJraXRweS5wb3J0LmhhaWt1X2dldF9jcmFzaF9s
b2cgaW1wb3J0IEhhaWt1Q3Jhc2hMb2dHZW5lcmF0b3IKKworCitjbGFzcyBIYWlrdVBvcnQoUG9y
dCk6CisgICAgcG9ydF9uYW1lID0gJ2hhaWt1JworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhv
c3QsIHBvcnRfbmFtZSwgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihIYWlrdVBvcnQsIHNlbGYp
Ll9faW5pdF9fKGhvc3QsIHBvcnRfbmFtZSwgKiprd2FyZ3MpCisKKyAgICAgICAgc2VsZi53ZWJw
cm9jZXNzX2NtZF9wcmVmaXggPSBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3ByZWZp
eCcpCisgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAiMS40IgorCisgICAgZGVmIF9wb3J0X2ZsYWdf
Zm9yX3NjcmlwdHMoc2VsZik6CisgICAgICAgIHJldHVybiAiLS1oYWlrdSIKKworICAgIGRlZiBz
ZXR1cF90ZXN0X3J1bihzZWxmLCBkZXZpY2VfY2xhc3M9Tm9uZSk6CisgICAgICAgIHN1cGVyKEhh
aWt1UG9ydCwgc2VsZikuc2V0dXBfdGVzdF9ydW4oKQorCisgICAgZGVmIHNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52ID0gc3VwZXIo
SGFpa3VQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisK
KyAgICAgICAgaWYgc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXg6CisgICAgICAgICAgICBlbnZb
J1dFQl9QUk9DRVNTX0NNRF9QUkVGSVgnXSA9IHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4CisK
KyAgICAgICAgcmV0dXJuIGVudgorCisgICAgZGVmIGRlZmF1bHRfdGltZW91dF9tcyhzZWxmKToK
KyAgICAgICAgIyBUZXN0cyBydW4gY29uc2lkZXJhYmx5IHNsb3dlciB1bmRlciBnZGIKKyAgICAg
ICAgIyBvciB2YWxncmluZC4KKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJwcm9jZXNz
X2NtZF9wcmVmaXgnKToKKyAgICAgICAgICAgIHJldHVybiAzNTAgKiAxMDAwCisgICAgICAgIHJl
dHVybiA0NSAqIDEwMDAKKworICAgIGRlZiBjbGVhbl91cF90ZXN0X3J1bihzZWxmKToKKyAgICAg
ICAgc3VwZXIoSGFpa3VQb3J0LCBzZWxmKS5jbGVhbl91cF90ZXN0X3J1bigpCisKKyAgICBkZWYg
X2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAgICAgICByZXR1cm4g
W1Rlc3RDb25maWd1cmF0aW9uKHZlcnNpb249c2VsZi52ZXJzaW9uX25hbWUoKSwgYXJjaGl0ZWN0
dXJlPSd4ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpIGZvciBidWlsZF90eXBlIGluIHNlbGYu
QUxMX0JVSUxEX1RZUEVTXQorCisgICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6CisgICAgICAg
IHJldHVybiBIYWlrdURyaXZlcgorCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2JpbicsIHNlbGYuZHJpdmVyX25hbWUoKSkK
KworICAgIGRlZiBfcGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fYnVpbGRfcGF0aCgnYmluJywgJ0ltYWdlRGlmZicpCisKKyAgICBkZWYgX2ltYWdlX2RpZmZf
Y29tbWFuZChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc3VwZXIoSGFp
a3VQb3J0LCBzZWxmKS5faW1hZ2VfZGlmZl9jb21tYW5kKCphcmdzLCAqKmt3YXJncykKKworICAg
IGRlZiBfcGF0aF90b193ZWJjb3JlX2xpYnJhcnkoc2VsZik6CisgICAgICAgIHN0YXRpY19wYXRo
ID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYldlYkNvcmUuYScpCisgICAgICAgIGR5bl9w
YXRoID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYldlYkNvcmUuc28nKQorICAgICAgICBy
ZXR1cm4gc3RhdGljX3BhdGggaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc3RhdGljX3BhdGgp
IGVsc2UgZHluX3BhdGgKKworICAgIGRlZiBfc2VhcmNoX3BhdGhzKHNlbGYpOgorICAgICAgICBz
ZWFyY2hfcGF0aHMgPSBbXQorICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0
X3J1bm5lcicpOgorICAgICAgICAgICAgc2VhcmNoX3BhdGhzLmFwcGVuZChzZWxmLnBvcnRfbmFt
ZSArICctd2syJykKKyAgICAgICAgICAgIHNlYXJjaF9wYXRocy5hcHBlbmQoJ3drMicpCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBzZWFyY2hfcGF0aHMuYXBwZW5kKHNlbGYucG9ydF9uYW1l
ICsgJy13azEnKQorICAgICAgICBzZWFyY2hfcGF0aHMuYXBwZW5kKHNlbGYucG9ydF9uYW1lKQor
ICAgICAgICByZXR1cm4gc2VhcmNoX3BhdGhzCisKKyAgICBkZWYgZGVmYXVsdF9iYXNlbGluZV9z
ZWFyY2hfcGF0aChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBsaXN0KG1hcChzZWxm
Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwgc2VsZi5fc2VhcmNoX3BhdGhzKCkpKQorCisgICAgZGVm
IF9wb3J0X3NwZWNpZmljX2V4cGVjdGF0aW9uc19maWxlcyhzZWxmLCAqKmt3YXJncyk6CisgICAg
ICAgIHJldHVybiBbc2VsZi5fZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9w
YXRoKHApLCAnVGVzdEV4cGVjdGF0aW9ucycpIGZvciBwIGluIHJldmVyc2VkKHNlbGYuX3NlYXJj
aF9wYXRocygpKV0KKworICAgIGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3Vs
dHNfZmlsZW5hbWUpOgorICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCJydW4tbWluaWJyb3dzZXIi
LCBbcGF0aC5hYnNwYXRoX3RvX3VyaShzZWxmLmhvc3QucGxhdGZvcm0sIHJlc3VsdHNfZmlsZW5h
bWUpXSkKKworICAgIGRlZiBfdXNlc19hcGFjaGUoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxz
ZQorCisgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkKHNlbGYpOgorICAgICAgICByZXR1cm4gIi9z
eXN0ZW0vYmluL2xpZ2h0dHBkIgorCisgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX21vZHVsZXMo
c2VsZik6CisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKCIvc3lzdGVtL2xpYi9saWdodHRwZCIp
OgorICAgICAgICAgICAgcmV0dXJuICIvc3lzdGVtL2xpYi9saWdodHRwZCIKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJldHVybiAiL3N5c3RlbS9saWIveDg2L2xpZ2h0dHBkIgorCisgICAg
ZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX3BocChzZWxmKToKKyAgICAgICAgcmV0dXJuICIvc3lzdGVt
L2Jpbi9waHAtY2dpIgorCisgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX2VudihzZWxmKToKKyAg
ICAgICAgcmV0dXJuICIvc3lzdGVtL2Jpbi9lbnYiCisKKyAgICBkZWYgY2hlY2tfc3lzX2RlcHMo
c2VsZik6CisgICAgICAgIHJldHVybiBzdXBlcihIYWlrdVBvcnQsIHNlbGYpLmNoZWNrX3N5c19k
ZXBzKCkgYW5kIHNlbGYuX2RyaXZlcl9jbGFzcygpLmNoZWNrX2RyaXZlcihzZWxmKQorCisgICAg
ZGVmIGJ1aWxkX3dlYmtpdF9jb21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAg
ICBjb21tYW5kID0gc3VwZXIoSGFpa3VQb3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChi
dWlsZF9zdHlsZSkKKyAgICAgICAgY29tbWFuZC5leHRlbmQoWyItLWhhaWt1IiwgIi0tdXBkYXRl
LWhhaWt1Il0pCisgICAgICAgIGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVy
Jyk6CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQxIikKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtpdDIiKQorICAgICAg
ICBjb21tYW5kLmFwcGVuZChzdXBlcihIYWlrdVBvcnQsIHNlbGYpLm1ha2VfYXJncygpKQorICAg
ICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNlbGYsIG5hbWUs
IHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4sIHRhcmdldF9ob3N0PU5vbmUpOgorICAg
ICAgICByZXR1cm4gSGFpa3VDcmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4s
IHNlbGYuX2ZpbGVzeXN0ZW0sIHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9s
b2coc3Rkb3V0LCBzdGRlcnIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvaGFpa3VfZ2V0X2NyYXNoX2xvZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9o
YWlrdV9nZXRfY3Jhc2hfbG9nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2Nzg0MmZmZTY5NWQwYTdjMDk0YzRi
MDcwZjgwYjk5OTRmN2VjNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvaGFpa3VfZ2V0X2NyYXNoX2xvZy5weQpAQCAtMCwwICsxLDgzIEBACisjIENvcHly
aWdodCAoQykgMjAxMyBIYWlrdSwgaW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgb3MKKwor
CitjbGFzcyBIYWlrdUNyYXNoTG9nR2VuZXJhdG9yKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgZmlsZXN5c3RlbSwgcGF0aF90b19kcml2ZXIp
OgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYucGlkID0gcGlkCisgICAg
ICAgIHNlbGYubmV3ZXJfdGhhbiA9IG5ld2VyX3RoYW4KKyAgICAgICAgc2VsZi5fZmlsZXN5c3Rl
bSA9IGZpbGVzeXN0ZW0KKyAgICAgICAgc2VsZi5fcGF0aF90b19kcml2ZXIgPSBwYXRoX3RvX2Ry
aXZlcgorCisgICAgZGVmIF9nZXRfZGVidWdnZXJfb3V0cHV0KHNlbGYsIGNvcmVkdW1wX3BhdGgp
OgorICAgICAgICByZXN1bHQgPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGgg
b3Blbihjb3JlZHVtcF9wYXRoLCAncmInKSBhcyBjb3JlZmlsZToKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgPSBjb3JlZmlsZS5yZWFkKCkuZGVjb2RlKCd1dGY4JywgJ2lnbm9yZScpCisgICAgICAg
ICAgICBvcy51bmxpbmsoY29yZWR1bXBfcGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6Cisg
ICAgICAgICAgICByZXN1bHQgPSBOb25lCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRl
ZiBnZW5lcmF0ZV9jcmFzaF9sb2coc2VsZiwgc3Rkb3V0LCBzdGRlcnIpOgorICAgICAgICBwaWRf
cmVwcmVzZW50YXRpb24gPSBzdHIoc2VsZi5waWQgb3IgJzx1bmtub3duPicpCisgICAgICAgIGxv
Z19kaXJlY3RvcnkgPSBvcy5lbnZpcm9uLmdldCgiV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZ
IikKKyAgICAgICAgZXJyb3JzID0gW10KKyAgICAgICAgY3Jhc2hfbG9nID0gJycKKyAgICAgICAg
ZXhwZWN0ZWRfY3Jhc2hfZHVtcF9maWxlbmFtZSA9ICJEdW1wUmVuZGVyVHJlZS0lcy1kZWJ1ZyIg
JSAocGlkX3JlcHJlc2VudGF0aW9uKQorICAgICAgICBwcm9jX25hbWUgPSAiJXMiICUgKHNlbGYu
bmFtZSkKKworICAgICAgICBkZWYgbWF0Y2hfZmlsZW5hbWUoZmlsZXN5c3RlbSwgZGlyZWN0b3J5
LCBmaWxlbmFtZSk6CisgICAgICAgICAgICByZXR1cm4gZmlsZW5hbWUuZmluZChleHBlY3RlZF9j
cmFzaF9kdW1wX2ZpbGVuYW1lKSA+IC0xCisKKyAgICAgICAgaWYgbm90IGxvZ19kaXJlY3Rvcnk6
CisgICAgICAgICAgICBsb2dfZGlyZWN0b3J5ID0gIi9ib290L2hvbWUvRGVza3RvcCIKKworICAg
ICAgICBkdW1wcyA9IHNlbGYuX2ZpbGVzeXN0ZW0uZmlsZXNfdW5kZXIobG9nX2RpcmVjdG9yeSwg
ZmlsZV9maWx0ZXI9bWF0Y2hfZmlsZW5hbWUpCisgICAgICAgIGlmIGR1bXBzOgorICAgICAgICAg
ICAgIyBHZXQgdGhlIG1vc3QgcmVjZW50IGNvcmVkdW1wIG1hdGNoaW5nIHRoZSBwaWQgYW5kL29y
IHByb2Nlc3MgbmFtZS4KKyAgICAgICAgICAgIGNvcmVkdW1wX3BhdGggPSBsaXN0KHJldmVyc2Vk
KHNvcnRlZChkdW1wcykpKVswXQorICAgICAgICAgICAgaWYgbm90IHNlbGYubmV3ZXJfdGhhbiBv
ciBzZWxmLl9maWxlc3lzdGVtLm10aW1lKGNvcmVkdW1wX3BhdGgpID4gc2VsZi5uZXdlcl90aGFu
OgorICAgICAgICAgICAgICAgIGNyYXNoX2xvZyA9IHNlbGYuX2dldF9kZWJ1Z2dlcl9vdXRwdXQo
Y29yZWR1bXBfcGF0aCkKKyAgICAgICAgY29yZV9wYXR0ZXJuID0gb3MucGF0aC5qb2luKGxvZ19k
aXJlY3RvcnksIGV4cGVjdGVkX2NyYXNoX2R1bXBfZmlsZW5hbWUpCisKKyAgICAgICAgaWYgbm90
IGNyYXNoX2xvZzoKKyAgICAgICAgICAgIGNyYXNoX2xvZyA9ICIiIlwKK0NyYXNoIHJlcG9ydCAl
KGV4cGVjdGVkX2NyYXNoX2R1bXBfZmlsZW5hbWUpcyBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFz
aCBsb2dzLAorY3JlYXRlIHRoZSBmaWxlIH4vY29uZmlnL3NldHRpbmdzL3N5c3RlbS9kZWJ1Z19z
ZXJ2ZXIvc2V0dGluZ3Mgd2l0aCB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOgorCitleGVjdXRhYmxl
X2FjdGlvbnMgeworICAgIER1bXBSZW5kZXJUcmVlIGxvZworfQorIiIiICUgbG9jYWxzKCkKKwor
ICAgICAgICByZXR1cm4gKHN0ZGVyciwgIiIiXAorY3Jhc2ggbG9nIGZvciAlKHByb2NfbmFtZSlz
IChwaWQgJShwaWRfcmVwcmVzZW50YXRpb24pcyk6CisKKyUoY3Jhc2hfbG9nKXMiIiIgJSBsb2Nh
bHMoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9oYWlrdWRyaXZl
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9oYWlrdWRyaXZlci5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MWRlY2EyODFlMjdkYTVlZjZiMzc1MGVhNjE0NTM2MDJkOTA3Y2JlCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2hhaWt1ZHJpdmVyLnB5CkBAIC0w
LDAgKzEsODUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBk
aXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIEdvb2dsZSBuYW1lIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0
IHJlCitpbXBvcnQgdGltZQorCitmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1w
b3J0IFNlcnZlclByb2Nlc3MKK2Zyb20gd2Via2l0cHkucG9ydC5kcml2ZXIgaW1wb3J0IERyaXZl
cgorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgSGFpa3VE
cml2ZXIoRHJpdmVyKToKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGNoZWNrX2RyaXZlcihw
b3J0KToKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg
Kiprd2FyZ3MpOgorICAgICAgICBEcml2ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdz
KQorICAgICAgICBzZWxmLl9ndWFyZF9sb2NrID0gTm9uZQorICAgICAgICBzZWxmLl9zdGFydHVw
X2RlbGF5X3NlY3MgPSAxLjAKKworICAgIGRlZiBfbmV4dF9mcmVlX2Rpc3BsYXkoc2VsZik6Cisg
ICAgICAgIHJldHVybiAwCisKKyAgICBkZWYgX3h2ZmJfc2NyZWVuX2RlcHRoKHNlbGYpOgorICAg
ICAgICByZXR1cm4gMjQKKworICAgIGRlZiBfc3RhcnQoc2VsZiwgcGl4ZWxfdGVzdHMsIHBlcl90
ZXN0X2FyZ3MpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgICAgICMgVXNlIGV2ZW4gZGlz
cGxheXMgZm9yIHBpeGVsIHRlc3RzIGFuZCBvZGQgb25lcyBvdGhlcndpc2UuIFdoZW4gcGl4ZWwg
dGVzdHMgYXJlIGRpc2FibGVkLAorICAgICAgICAjIERyaXZlclByb3h5IGNyZWF0ZXMgdHdvIGRy
aXZlcnMsIG9uZSBmb3Igbm9ybWFsIGFuZCB0aGUgb3RoZXIgZm9yIHJlZiB0ZXN0cy4gQm90aCBo
YXZlCisgICAgICAgICMgdGhlIHNhbWUgd29ya2VyIG51bWJlciwgc28gdGhpcyBwcmV2ZW50cyB0
aGVtIGZyb20gdXNpbmcgdGhlIHNhbWUgWHZmYiBpbnN0YW5jZS4KKyAgICAgICAgZGlzcGxheV9p
ZCA9IHNlbGYuX25leHRfZnJlZV9kaXNwbGF5KCkKKworICAgICAgICBzZXJ2ZXJfbmFtZSA9ICJo
YWlrdSIKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9y
X3NlcnZlcihzZXJ2ZXJfbmFtZSkKKyAgICAgICAgc2VsZi5fZHJpdmVyX3RlbXBkaXIgPSBzZWxm
Ll9wb3J0Lmhvc3QuZmlsZXN5c3RlbS5ta2R0ZW1wKHByZWZpeD0nJXMtJyAlIHNlbGYuX3BvcnQu
ZHJpdmVyX25hbWUoKSkKKyAgICAgICAgZW52aXJvbm1lbnRbJ0RVTVBSRU5ERVJUUkVFX1RFTVAn
XSA9IHN0cihzZWxmLl9kcml2ZXJfdGVtcGRpcikKKyAgICAgICAgZW52aXJvbm1lbnRbJ0xPQ0FM
X1JFU09VUkNFX1JPT1QnXSA9IHNlbGYuX3BvcnQubGF5b3V0X3Rlc3RzX2RpcigpCisKKyAgICAg
ICAgIyBDdXJyZW50bHkgb24gV2ViS2l0MiwgdGhlcmUgaXMgbm8gQVBJIGZvciBzZXR0aW5nIHRo
ZSBhcHBsaWNhdGlvbgorICAgICAgICAjIGNhY2hlIGRpcmVjdG9yeS4gRWFjaCB3b3JrZXIgc2hv
dWxkIGhhdmUgaXQncyBvd24gYW5kIGl0IHNob3VsZCBiZQorICAgICAgICAjIGNsZWFuZWQgYWZ0
ZXJ3YXJkcywgc28gd2Ugc2V0IGl0IHRvIGluc2lkZSB0aGUgdGVtcG9yYXJ5IGZvbGRlciBieQor
ICAgICAgICAjIHByZXBlbmRpbmcgWERHX0NBQ0hFX0hPTUUgd2l0aCBEVU1QUkVOREVSVFJFRV9U
RU1QLgorICAgICAgICBlbnZpcm9ubWVudFsnWERHX0NBQ0hFX0hPTUUnXSA9IHNlbGYuX3BvcnQu
aG9zdC5maWxlc3lzdGVtLmpvaW4oc3RyKHNlbGYuX2RyaXZlcl90ZW1wZGlyKSwgJ2FwcGNhY2hl
JykKKworICAgICAgICBzZWxmLl9jcmFzaGVkX3Byb2Nlc3NfbmFtZSA9IE5vbmUKKyAgICAgICAg
c2VsZi5fY3Jhc2hlZF9waWQgPSBOb25lCisgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzID0g
c2VsZi5fcG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3Ioc2VsZi5fcG9ydCwgc2VydmVy
X25hbWUsIHNlbGYuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpLCBlbnZpcm9u
bWVudCkKKyAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nlc3Muc3RhcnQoKQorCisgICAgZGVmIHN0
b3Aoc2VsZik6CisgICAgICAgIHN1cGVyKEhhaWt1RHJpdmVyLCBzZWxmKS5zdG9wKCkKKyAgICAg
ICAgaWYgc2VsZi5fZ3VhcmRfbG9jazoKKyAgICAgICAgICAgIHNlbGYuX2d1YXJkX2xvY2sucmVs
ZWFzZV9sb2NrKCkKKyAgICAgICAgICAgIHNlbGYuX2d1YXJkX2xvY2sgPSBOb25lCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454528</attachid>
            <date>2022-03-11 22:22:54 -0800</date>
            <delta_ts>2022-03-12 04:46:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237282-20220312072249.patch</filename>
            <type>text/plain</type>
            <size>26119</size>
            <attacher name="Pascal Abresch">nep-webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjA2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWNjOGJmOTNmMWZhNDU0MGUyMDZjNjllYTU1MGVjMGI3
MzhiMWRjOS4uMjdkMjcyYzFiNGE2Y2NhYTczOGMwZDE5Yzk5ZGFhZWFjYTJlNmVmNCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1
IEBACisyMDIyLTAyLTI4ICBQYXNjYWwgQWJyZXNjaCAgPG5lcEBwYWNrYWdlbG9zcy5ldT4KKwor
ICAgICAgICBIYWlrdSBwb3J0IHVwc3RyZWFtaW5nOiBXZWJraXRweQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjgyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBzdHJlYW0gSGFpa3UgcG9ydDogV2Vi
a2l0cHkKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eToKKyAgICAgICAgKERlcHJlY2F0ZWRQb3J0LnBvcnQpOgorICAgICAgICAoSGFpa3VQb3J0KToK
KyAgICAgICAgKEhhaWt1UG9ydC5idWlsZF93ZWJraXRfY29tbWFuZCk6CisgICAgICAgIChIYWlr
dVBvcnQucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5OgorICAgICAgICAoUGxhdGZvcm1JbmZv
LmlzX2hhaWt1KToKKyAgICAgICAgKFBsYXRmb3JtSW5mby5fZGV0ZXJtaW5lX29zX25hbWUpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9j
ay5weToKKyAgICAgICAgKE1vY2tQbGF0Zm9ybUluZm8uaXNfaGFpa3UpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHk6Cisg
ICAgICAgIChUZXN0UGxhdGZvcm1JbmZvLnRlc3RfcmVhbF9jb2RlKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5OgorICAgICAgICAoVmVyc2lv
bk5hbWVNYXAuX19pbml0X18pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXIucHk6CisgICAgICAgIChMaWdodHRwZC5fcHJlcGFyZV9j
b25maWcpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAgICAg
ICAoUG9ydC5fcGF0aF90b19saWdodHRwZF9lbnYpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAocGxhdGZvcm1fb3B0aW9ucyk6CisgICAgICAg
IChQb3J0RmFjdG9yeSk6CisgICAgICAgIChQb3J0RmFjdG9yeS5fZGVmYXVsdF9wb3J0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGFpa3UucHk6IEFkZGVkLgorICAgICAgICAo
SGFpa3VQb3J0KToKKyAgICAgICAgKEhhaWt1UG9ydC5fX2luaXRfXyk6CisgICAgICAgIChIYWlr
dVBvcnQuX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyk6CisgICAgICAgIChIYWlrdVBvcnQuc2V0dXBf
dGVzdF9ydW4pOgorICAgICAgICAoSGFpa3VQb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcik6
CisgICAgICAgIChIYWlrdVBvcnQuZGVmYXVsdF90aW1lb3V0X21zKToKKyAgICAgICAgKEhhaWt1
UG9ydC5jbGVhbl91cF90ZXN0X3J1bik6CisgICAgICAgIChIYWlrdVBvcnQuX2dlbmVyYXRlX2Fs
bF90ZXN0X2NvbmZpZ3VyYXRpb25zKToKKyAgICAgICAgKEhhaWt1UG9ydC5fZHJpdmVyX2NsYXNz
KToKKyAgICAgICAgKEhhaWt1UG9ydC5fcGF0aF90b19kcml2ZXIpOgorICAgICAgICAoSGFpa3VQ
b3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYpOgorICAgICAgICAoSGFpa3VQb3J0Ll9pbWFnZV9kaWZm
X2NvbW1hbmQpOgorICAgICAgICAoSGFpa3VQb3J0Ll9wYXRoX3RvX3dlYmNvcmVfbGlicmFyeSk6
CisgICAgICAgIChIYWlrdVBvcnQuX3NlYXJjaF9wYXRocyk6CisgICAgICAgIChIYWlrdVBvcnQu
ZGVmYXVsdF9iYXNlbGluZV9zZWFyY2hfcGF0aCk6CisgICAgICAgIChIYWlrdVBvcnQuX3BvcnRf
c3BlY2lmaWNfZXhwZWN0YXRpb25zX2ZpbGVzKToKKyAgICAgICAgKEhhaWt1UG9ydC5zaG93X3Jl
c3VsdHNfaHRtbF9maWxlKToKKyAgICAgICAgKEhhaWt1UG9ydC5fdXNlc19hcGFjaGUpOgorICAg
ICAgICAoSGFpa3VQb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkKToKKyAgICAgICAgKEhhaWt1UG9ydC5f
cGF0aF90b19saWdodHRwZF9tb2R1bGVzKToKKyAgICAgICAgKEhhaWt1UG9ydC5fcGF0aF90b19s
aWdodHRwZF9waHApOgorICAgICAgICAoSGFpa3VQb3J0Ll9wYXRoX3RvX2xpZ2h0dHBkX2Vudik6
CisgICAgICAgIChIYWlrdVBvcnQuY2hlY2tfc3lzX2RlcHMpOgorICAgICAgICAoSGFpa3VQb3J0
LmJ1aWxkX3dlYmtpdF9jb21tYW5kKToKKyAgICAgICAgKEhhaWt1UG9ydC5fZ2V0X2NyYXNoX2xv
Zyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2hhaWt1X2dldF9jcmFzaF9sb2cu
cHk6IEFkZGVkLgorICAgICAgICAoSGFpa3VDcmFzaExvZ0dlbmVyYXRvcik6CisgICAgICAgIChI
YWlrdUNyYXNoTG9nR2VuZXJhdG9yLl9faW5pdF9fKToKKyAgICAgICAgKEhhaWt1Q3Jhc2hMb2dH
ZW5lcmF0b3IuX2dldF9kZWJ1Z2dlcl9vdXRwdXQpOgorICAgICAgICAoSGFpa3VDcmFzaExvZ0dl
bmVyYXRvci5nZW5lcmF0ZV9jcmFzaF9sb2cpOgorICAgICAgICAoSGFpa3VDcmFzaExvZ0dlbmVy
YXRvci5nZW5lcmF0ZV9jcmFzaF9sb2cubWF0Y2hfZmlsZW5hbWUpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9oYWlrdWRyaXZlci5weTogQWRkZWQuCisgICAgICAgIChIYWlrdURy
aXZlcik6CisgICAgICAgIChIYWlrdURyaXZlci5jaGVja19kcml2ZXIpOgorICAgICAgICAoSGFp
a3VEcml2ZXIuX19pbml0X18pOgorICAgICAgICAoSGFpa3VEcml2ZXIuX25leHRfZnJlZV9kaXNw
bGF5KToKKyAgICAgICAgKEhhaWt1RHJpdmVyLl94dmZiX3NjcmVlbl9kZXB0aCk6CisgICAgICAg
IChIYWlrdURyaXZlci5fc3RhcnQpOgorICAgICAgICAoSGFpa3VEcml2ZXIuc3RvcCk6CisKIDIw
MjItMDItMjggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkwNTgzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL3BvcnRzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY29uZmlnL3BvcnRzLnB5CmluZGV4IGE4Y2NjNmE4YjMyNzI2YzIxYjRmZWMwOTc4
MTc3MjAxYjcyYzRmYTcuLjFmYWE4NGQ3ZDkwMzNjNmZkNDk1Y2JjYzMwYjg0MThiOGRmODRiZTkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9wb3J0cy5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvcG9ydHMucHkKQEAg
LTcxLDExICs3MSwxMyBAQCBjbGFzcyBEZXByZWNhdGVkUG9ydChvYmplY3QpOgogICAgICAgICAg
ICAgIm1hYy13azIiOiBNYWNXSzJQb3J0LAogICAgICAgICAgICAgIndpbiI6IFdpblBvcnQsCiAg
ICAgICAgICAgICAid2luY2Fpcm8iOiBXaW5DYWlyb1BvcnQsCisgICAgICAgICAgICAiaGFpa3Ui
OiBIYWlrdVBvcnQsCiAgICAgICAgICAgICAid3BlIjogV3BlUG9ydCwKICAgICAgICAgfQogICAg
ICAgICBkZWZhdWx0X3BvcnQgPSB7CiAgICAgICAgICAgICAiV2luZG93cyI6IFdpblBvcnQsCiAg
ICAgICAgICAgICAiRGFyd2luIjogTWFjUG9ydCwKKyAgICAgICAgICAgICJIYWlrdSI6IEhhaWt1
UG9ydCwKICAgICAgICAgfQogICAgICAgICAjIERvIHdlIHJlYWxseSBuZWVkIE1hY1BvcnQgYXMg
dGhlIHVsdGltYXRlIGRlZmF1bHQ/CiAgICAgICAgIHJldHVybiBwb3J0cy5nZXQocG9ydF9uYW1l
LCBkZWZhdWx0X3BvcnQuZ2V0KHBsYXRmb3JtLnN5c3RlbSgpLCBNYWNQb3J0KSkoKQpAQCAtMjIy
LDYgKzIyNCwyMyBAQCBjbGFzcyBHdGtXSzJQb3J0KERlcHJlY2F0ZWRQb3J0KToKICAgICAgICAg
cmV0dXJuIGNvbW1hbmQKIAogCitjbGFzcyBIYWlrdVBvcnQoRGVwcmVjYXRlZFBvcnQpOgorICAg
IHBvcnRfZmxhZ19uYW1lID0gImhhaWt1IgorCisgICAgZGVmIGJ1aWxkX3dlYmtpdF9jb21tYW5k
KHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc3VwZXIoSGFpa3VQ
b3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZT1idWlsZF9zdHlsZSkK
KyAgICAgICAgY29tbWFuZC5hcHBlbmQoIi0taGFpa3UiKQorICAgICAgICBjb21tYW5kLmFwcGVu
ZCgiLS11cGRhdGUtaGFpa3UiKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQy
IikKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoc3VwZXIoSGFpa3VQb3J0LCBzZWxmKS5tYWtlQXJn
cygpKQorICAgICAgICByZXR1cm4gY29tbWFuZAorCisgICAgZGVmIHJ1bl93ZWJraXRfdGVzdHNf
Y29tbWFuZChzZWxmLCBidWlsZF9zdHlsZT1Ob25lKToKKyAgICAgICAgY29tbWFuZCA9IHN1cGVy
KEhhaWt1UG9ydCwgc2VsZikucnVuX3dlYmtpdF90ZXN0c19jb21tYW5kKGJ1aWxkX3N0eWxlKQor
ICAgICAgICBjb21tYW5kLmFwcGVuZCgiLS1oYWlrdSIpCisgICAgICAgIHJldHVybiBjb21tYW5k
CisKKwogY2xhc3MgV3BlUG9ydChEZXByZWNhdGVkUG9ydCk6CiAgICAgcG9ydF9mbGFnX25hbWUg
PSAid3BlIgogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vcGxhdGZvcm1pbmZvLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L3BsYXRmb3JtaW5mby5weQppbmRleCA0NGM4M2FmYWIwYzdiOGQ0NjY5M2YzN2IyYTQzNzQ0OWVj
OGVlZTM3Li5hN2UyMTQxNGJmOTQwNmIwZDE0MjQ2NjI3NWFhMDQ2MzkxMWVlOGI1IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8u
cHkKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICBk
ZWYgaXNfY3lnd2luKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5faXNfY3lnd2luCiAKKyAg
ICBkZWYgaXNfaGFpa3Uoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm9zX25hbWUgPT0gJ2hh
aWt1JworCiAgICAgZGVmIGlzX2xpbnV4KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19u
YW1lID09ICdsaW51eCcKIApAQCAtMjMwLDYgKzIzMyw4IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhv
YmplY3QpOgogICAgICAgICAgICAgcmV0dXJuICdpb3MnCiAgICAgICAgIGlmIHN5c19wbGF0Zm9y
bS5zdGFydHN3aXRoKCdsaW51eCcpOgogICAgICAgICAgICAgcmV0dXJuICdsaW51eCcKKyAgICAg
ICAgaWYgc3lzX3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ2hhaWt1Jyk6CisgICAgICAgICAgICByZXR1
cm4gJ2hhaWt1JwogICAgICAgICBpZiBzeXNfcGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgb3Ig
c3lzX3BsYXRmb3JtID09ICdjeWd3aW4nOgogICAgICAgICAgICAgcmV0dXJuICd3aW4nCiAgICAg
ICAgIGlmIHN5c19wbGF0Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNkJyk6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2su
cHkKaW5kZXggZGZjYjg1MGQ1MmExYzFjODVkNDdiYzY1MGIwZGJhNTI3OGMyZWU2OC4uNzU0NGFj
MzgxZTQ2NGEwMDE3NWZjZTllOGY4Y2Q4MzhiNGFjMjE3NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQpA
QCAtNTIsNiArNTIsOSBAQCBjbGFzcyBNb2NrUGxhdGZvcm1JbmZvKG9iamVjdCk6CiAgICAgZGVm
IGlzX2xpbnV4KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdsaW51eCcK
IAorICAgIGRlZiBpc19oYWlrdShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYub3NfbmFtZSA9
PSAnaGFpa3UnCisKICAgICBkZWYgaXNfd2luKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5v
c19uYW1lID09ICd3aW4nCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX3VuaXR0ZXN0LnB5CmluZGV4IDBmY2MzZWI2
NmMzODhhYWQzZTI5ZTRmOTlmODlmZDg3Yzk2ZDQ4NWYuLmRhNzI1M2E1N2VhMTIxZjQ0ZDA5Zjky
ODUzNGFmZDkzMDM3NGY1ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb191bml0dGVzdC5weQpAQCAtODAsNyAr
ODAsNyBAQCBjbGFzcyBUZXN0UGxhdGZvcm1JbmZvKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgaWYgaW5mby5pc19tYWMoKSBvciBpbmZvLmlzX3dpbigpOgogICAgICAgICAgICAgc2VsZi5h
c3NlcnRJc05vdE5vbmUoaW5mby5vc192ZXJzaW9uKQogICAgICAgICBzZWxmLmFzc2VydE5vdEVx
dWFsKGluZm8uZGlzcGxheV9uYW1lKCksICcnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5m
by5pc19tYWMoKSBvciBpbmZvLmlzX3dpbigpIG9yIGluZm8uaXNfbGludXgoKSBvciBpbmZvLmlz
X2ZyZWVic2QoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGluZm8uaXNfbWFjKCkgb3IgaW5m
by5pc193aW4oKSBvciBpbmZvLmlzX2xpbnV4KCkgb3IgaW5mby5pc19mcmVlYnNkKCkgb3IgaW5m
by5pc19oYWlrdSgpKQogICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShpbmZvLnRlcm1pbmFs
X3dpZHRoKCkpCiAKICAgICAgICAgaWYgaW5mby5pc19tYWMoKToKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25fbmFtZV9tYXAucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CmluZGV4IDIyNWIxYjM0OTI4
MDc2MTA4ODVkNDk4YzgzMmY5OGM3ODY1OWM3OTMuLmI4YTc2OTA2NWVmMjBmNDBkZDFhMDkxMmMz
ZTk4MzI1Y2U1ZWVlZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3ZlcnNpb25fbmFtZV9tYXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dmVyc2lvbl9uYW1lX21hcC5weQpAQCAtNzYsNyArNzYsNyBAQCBjbGFzcyBWZXJzaW9uTmFtZU1h
cChvYmplY3QpOgogICAgICAgICAgICAgICAgICdWaXN0YSc6IFZlcnNpb24oNiksCiAgICAgICAg
ICAgICAgICAgJ1hQJzogVmVyc2lvbig1LCAxKSwKICAgICAgICAgICAgIH0sCi0KKyAgICAgICAg
ICAgICdoYWlrdSc6IHsnJzogVmVyc2lvbigxLjQpfSwKICAgICAgICAgICAgICMgVGhpcyBlbnRy
eSBhdm9pZHMgaGl0dGluZyB0aGUgYXNzZXJ0IGluIG1hcHBpbmdfZm9yX3BsYXRmb3JtKCkgb24g
TGludXgsCiAgICAgICAgICAgICAjIGJ1dCBvdGhlcndpc2Ugc2hvdWxkbid0IGNvbnRhaW4gYW55
IHVzZWZ1bCBrZXktdmFsdWUgcGFpcnMuCiAgICAgICAgICAgICAnbGludXgnOiB7fSwKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9z
ZXJ2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL2h0
dHBfc2VydmVyLnB5CmluZGV4IGNlMGM3YmRjOGQ0NDFmMzA2NDc5ODQyOGY2ZGE4OTlkZThiMmVj
NzcuLjQzMmM5YzUyODQwOTU1Yzk3MzJmZDhkYTJlNDM4Y2MxMjVlZDZhNWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvaHR0cF9zZXJ2ZXIu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy9odHRw
X3NlcnZlci5weQpAQCAtODUsNyArODUsNyBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZlcl9i
YXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgYmFzZV9jb25mX2ZpbGUgPSBzZWxmLl9wb3J0
X29iai5wYXRoX2Zyb21fd2Via2l0X2Jhc2UoJ1Rvb2xzJywKICAgICAgICAgICAgICdTY3JpcHRz
JywgJ3dlYmtpdHB5JywgJ2xheW91dF90ZXN0cycsICdzZXJ2ZXJzJywgJ2xpZ2h0dHBkLmNvbmYn
KQogICAgICAgICBvdXRfY29uZl9maWxlID0gb3MucGF0aC5qb2luKHNlbGYuX291dHB1dF9kaXIs
ICdsaWdodHRwZC5jb25mJykKLSAgICAgICAgdGltZV9zdHIgPSB0aW1lLnN0cmZ0aW1lKCIlZCVi
JVktJUglTSVTIikKKyAgICAgICAgdGltZV9zdHIgPSB0aW1lLmFzY3RpbWUoKQogICAgICAgICBh
Y2Nlc3NfZmlsZV9uYW1lID0gImFjY2Vzcy5sb2ctIiArIHRpbWVfc3RyICsgIi50eHQiCiAgICAg
ICAgIGFjY2Vzc19sb2cgPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3V0cHV0X2RpciwgYWNjZXNzX2Zp
bGVfbmFtZSkKICAgICAgICAgbG9nX2ZpbGVfbmFtZSA9ICJlcnJvci5sb2ctIiArIHRpbWVfc3Ry
ICsgIi50eHQiCkBAIC0xMDgsMTAgKzEwOCwxMiBAQCBjbGFzcyBMaWdodHRwZChodHRwX3NlcnZl
cl9iYXNlLkh0dHBTZXJ2ZXJCYXNlKToKICAgICAgICAgIyBXcml0ZSBvdXQgb3VyIGNnaSBoYW5k
bGVycy4gIFJ1biBwZXJsIHRocm91Z2ggZW52IHNvIHRoYXQgaXQKICAgICAgICAgIyBwcm9jZXNz
ZXMgdGhlICMhIGxpbmUgYW5kIHJ1bnMgcGVybCB3aXRoIHRoZSBwcm9wZXIgY29tbWFuZAogICAg
ICAgICAjIGxpbmUgYXJndW1lbnRzLiBFbXVsYXRlIGFwYWNoZSdzIG1vZF9hc2lzIHdpdGggYSBj
YXQgY2dpIGhhbmRsZXIuCi0gICAgICAgIGYud3JpdGUoJ2NnaS5hc3NpZ24gPSAoICIuY2dpIiAg
PT4gIi91c3IvYmluL2VudiIsXG4nCi0gICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAi
LnBsIiAgID0+ICIvdXNyL2Jpbi9lbnYiLFxuJworICAgICAgICBmLndyaXRlKCgnY2dpLmFzc2ln
biA9ICggIi5jZ2kiICA9PiAiJXMiLFxuJworICAgICAgICAgICAgICAgICAnICAgICAgICAgICAg
ICAgIi5wbCIgICA9PiAiJXMiLFxuJwogICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAg
Ii5hc2lzIiA9PiAiL2Jpbi9jYXQiLFxuJwotICAgICAgICAgICAgICAgICAnICAgICAgICAgICAg
ICAgIi5weSIgID0+ICIvYmluL3B5dGhvbjMiIClcblxuJykKKyAgICAgICAgICAgICAgICAgJyAg
ICAgICAgICAgICAgICIucHkiICA9PiAiL2Jpbi9weXRob24zIiApXG5cbicpICUKKyAgICAgICAg
ICAgICAgICAgKHNlbGYuX3BvcnRfb2JqLl9wYXRoX3RvX2xpZ2h0dHBkX2VudigpLAorICAgICAg
ICAgICAgICAgICAgc2VsZi5fcG9ydF9vYmouX3BhdGhfdG9fbGlnaHR0cGRfZW52KCkpKQogCiAg
ICAgICAgICMgU2V0dXAgbG9nIGZpbGVzCiAgICAgICAgIGYud3JpdGUoKCdzZXJ2ZXIuZXJyb3Js
b2cgPSAiJXMiXG4nCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGJkNjRjMzc5
YjFjZWFkYzhjMjliZjVkODRiNmU2YjM4OGY1YTlkODUuLjQxNzUxOWMzOWRmYjJiMjJlZTg0NmUx
OTg5Y2E3OWVhNDM4NjQzYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC0x
Mjc3LDYgKzEyNzcsMTIgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBUaGlzIGlzIG5l
ZWRlZCBvbmx5IGJ5IHBvcnRzIHRoYXQgdXNlIHRoZSBodHRwX3NlcnZlci5weSBtb2R1bGUuIiIi
CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ1BvcnQuX3BhdGhfdG9fbGlnaHR0
cGRfbW9kdWxlcycpCiAKKyAgICBkZWYgX3BhdGhfdG9fbGlnaHR0cGRfZW52KHNlbGYpOgorICAg
ICAgICAiIiJSZXR1cm5zIHBhdGggdG8gdGhlIGVudiBleGVjdXRhYmxlLgorCisgICAgICAgIFRo
aXMgaXMgdXNlZCB0byBydW4gQ0dJIHNjcmlwdHMgaW4gbGlnaHR0cGQuIiIiCisgICAgICAgIHJl
dHVybiAiL3Vzci9iaW4vZW52IgorCiAgICAgZGVmIF93ZWJraXRfYmFzZWxpbmVfcGF0aChzZWxm
LCBwbGF0Zm9ybSk6CiAgICAgICAgICIiIlJldHVybiB0aGUgIGZ1bGwgcGF0aCB0byB0aGUgdG9w
IG9mIHRoZSBiYXNlbGluZSB0cmVlIGZvciBhCiAgICAgICAgIGdpdmVuIHBsYXRmb3JtLiIiIgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRleCAzMDVmM2YzMDcxMWRjOGFh
ZGU2NGI4YWE4MWM2ODg5NTM0MDBlZjcwLi43ZThlNDcxODk3MDBkODQyODEzYjY4NTk0NGU5NzYz
MGQ5YTBjMDRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9y
eS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAtNTks
NiArNTksOSBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAg
ICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVz
dD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMgZWxz
ZSAnZ3RrJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrKicg
aWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oJy0taGFpa3UnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVz
dD0ncGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCdoYWlrdSonIGlmIHVzZV9nbG9icyBl
bHNlICdoYWlrdScpLAorICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWhh
aWt1KicgaWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWhhaWt1JykpLAog
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0b3JlX2NvbnN0
JywgZGVzdD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBpZiB1c2VfZ2xv
YnMgZWxzZSAnd3BlJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09
d3BlJykpLApAQCAtMTA3LDYgKzExMCw3IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVjdCk6CiAg
ICAgIyBmaXJzdC4KICAgICBQT1JUX0NMQVNTRVMgPSAoCiAgICAgICAgICdndGsuR3RrUG9ydCcs
CisgICAgICAgICdoYWlrdS5IYWlrdVBvcnQnLAogICAgICAgICAnaW9zX3NpbXVsYXRvci5JT1NT
aW11bGF0b3JQb3J0JywKICAgICAgICAgJ2lvc19zaW11bGF0b3IuSVBob25lU2ltdWxhdG9yUG9y
dCcsCiAgICAgICAgICdpb3Nfc2ltdWxhdG9yLklQYWRTaW11bGF0b3JQb3J0JywKQEAgLTEzNCw2
ICsxMzgsOCBAQCBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJu
ICdtYWMnCiAgICAgICAgIGVsaWYgcGxhdGZvcm0uaXNfd2luKCk6CiAgICAgICAgICAgICByZXR1
cm4gJ3dpbicKKyAgICAgICAgZWxpZiBwbGF0Zm9ybS5pc19oYWlrdSgpOgorICAgICAgICAgICAg
cmV0dXJuICdoYWlrdScKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigndW5rbm93
biBwbGF0Zm9ybTogJXMnICUgcGxhdGZvcm0pCiAKICAgICBkZWYgZ2V0KHNlbGYsIHBvcnRfbmFt
ZT1Ob25lLCBvcHRpb25zPU5vbmUsICoqa3dhcmdzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9oYWlrdS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9o
YWlrdS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMzcwNTdkNzIzYWIxNjZiYjY0NGI5MjU2OTkzMGYzZGIzYjI2
ZTdhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2hhaWt1
LnB5CkBAIC0wLDAgKzEsMTQ0IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBQcm9GVVNJT04gRW1i
ZWRkZWQgU3lzdGVtcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEx
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMiBIYWlr
dSwgaW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyIiIldlYktpdCBIYWlrdSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZh
Y2UuIiIiCisKK2ltcG9ydCBvcworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0
IHBhdGgKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRp
b24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9tIHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBv
cnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmhhaWt1ZHJpdmVyIGltcG9ydCBIYWlrdURyaXZl
cgorZnJvbSB3ZWJraXRweS5wb3J0LmhhaWt1X2dldF9jcmFzaF9sb2cgaW1wb3J0IEhhaWt1Q3Jh
c2hMb2dHZW5lcmF0b3IKKworCitjbGFzcyBIYWlrdVBvcnQoUG9ydCk6CisgICAgcG9ydF9uYW1l
ID0gJ2hhaWt1JworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZSwgKipr
d2FyZ3MpOgorICAgICAgICBzdXBlcihIYWlrdVBvcnQsIHNlbGYpLl9faW5pdF9fKGhvc3QsIHBv
cnRfbmFtZSwgKiprd2FyZ3MpCisKKyAgICAgICAgc2VsZi53ZWJwcm9jZXNzX2NtZF9wcmVmaXgg
PSBzZWxmLmdldF9vcHRpb24oJ3dlYnByb2Nlc3NfY21kX3ByZWZpeCcpCisgICAgICAgIHNlbGYu
X3ZlcnNpb24gPSAiMS40IgorCisgICAgZGVmIF9wb3J0X2ZsYWdfZm9yX3NjcmlwdHMoc2VsZik6
CisgICAgICAgIHJldHVybiAiLS1oYWlrdSIKKworICAgIGRlZiBzZXR1cF90ZXN0X3J1bihzZWxm
LCBkZXZpY2VfY2xhc3M9Tm9uZSk6CisgICAgICAgIHN1cGVyKEhhaWt1UG9ydCwgc2VsZikuc2V0
dXBfdGVzdF9ydW4oKQorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLCBz
ZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52ID0gc3VwZXIoSGFpa3VQb3J0LCBzZWxmKS5z
ZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisKKyAgICAgICAgaWYgc2VsZi53
ZWJwcm9jZXNzX2NtZF9wcmVmaXg6CisgICAgICAgICAgICBlbnZbJ1dFQl9QUk9DRVNTX0NNRF9Q
UkVGSVgnXSA9IHNlbGYud2VicHJvY2Vzc19jbWRfcHJlZml4CisKKyAgICAgICAgcmV0dXJuIGVu
dgorCisgICAgZGVmIGRlZmF1bHRfdGltZW91dF9tcyhzZWxmKToKKyAgICAgICAgIyBUZXN0cyBy
dW4gY29uc2lkZXJhYmx5IHNsb3dlciB1bmRlciBnZGIKKyAgICAgICAgIyBvciB2YWxncmluZC4K
KyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJwcm9jZXNzX2NtZF9wcmVmaXgnKToKKyAg
ICAgICAgICAgIHJldHVybiAzNTAgKiAxMDAwCisgICAgICAgIHJldHVybiA0NSAqIDEwMDAKKwor
ICAgIGRlZiBjbGVhbl91cF90ZXN0X3J1bihzZWxmKToKKyAgICAgICAgc3VwZXIoSGFpa3VQb3J0
LCBzZWxmKS5jbGVhbl91cF90ZXN0X3J1bigpCisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0
X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAgICAgICByZXR1cm4gW1Rlc3RDb25maWd1cmF0aW9u
KHZlcnNpb249c2VsZi52ZXJzaW9uX25hbWUoKSwgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWlsZF90
eXBlPWJ1aWxkX3R5cGUpIGZvciBidWlsZF90eXBlIGluIHNlbGYuQUxMX0JVSUxEX1RZUEVTXQor
CisgICAgZGVmIF9kcml2ZXJfY2xhc3Moc2VsZik6CisgICAgICAgIHJldHVybiBIYWlrdURyaXZl
cgorCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2J1aWxkX3BhdGgoJ2JpbicsIHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBfcGF0aF90
b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgnYmlu
JywgJ0ltYWdlRGlmZicpCisKKyAgICBkZWYgX2ltYWdlX2RpZmZfY29tbWFuZChzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc3VwZXIoSGFpa3VQb3J0LCBzZWxmKS5faW1h
Z2VfZGlmZl9jb21tYW5kKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBfcGF0aF90b193ZWJj
b3JlX2xpYnJhcnkoc2VsZik6CisgICAgICAgIHN0YXRpY19wYXRoID0gc2VsZi5fYnVpbGRfcGF0
aCgnbGliJywgJ2xpYldlYkNvcmUuYScpCisgICAgICAgIGR5bl9wYXRoID0gc2VsZi5fYnVpbGRf
cGF0aCgnbGliJywgJ2xpYldlYkNvcmUuc28nKQorICAgICAgICByZXR1cm4gc3RhdGljX3BhdGgg
aWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHMoc3RhdGljX3BhdGgpIGVsc2UgZHluX3BhdGgKKwor
ICAgIGRlZiBfc2VhcmNoX3BhdGhzKHNlbGYpOgorICAgICAgICBzZWFyY2hfcGF0aHMgPSBbXQor
ICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ3dlYmtpdF90ZXN0X3J1bm5lcicpOgorICAgICAg
ICAgICAgc2VhcmNoX3BhdGhzLmFwcGVuZChzZWxmLnBvcnRfbmFtZSArICctd2syJykKKyAgICAg
ICAgICAgIHNlYXJjaF9wYXRocy5hcHBlbmQoJ3drMicpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzZWFyY2hfcGF0aHMuYXBwZW5kKHNlbGYucG9ydF9uYW1lICsgJy13azEnKQorICAgICAg
ICBzZWFyY2hfcGF0aHMuYXBwZW5kKHNlbGYucG9ydF9uYW1lKQorICAgICAgICByZXR1cm4gc2Vh
cmNoX3BhdGhzCisKKyAgICBkZWYgZGVmYXVsdF9iYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmLCAq
Kmt3YXJncyk6CisgICAgICAgIHJldHVybiBsaXN0KG1hcChzZWxmLl93ZWJraXRfYmFzZWxpbmVf
cGF0aCwgc2VsZi5fc2VhcmNoX3BhdGhzKCkpKQorCisgICAgZGVmIF9wb3J0X3NwZWNpZmljX2V4
cGVjdGF0aW9uc19maWxlcyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBbc2VsZi5f
ZmlsZXN5c3RlbS5qb2luKHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKHApLCAnVGVzdEV4cGVj
dGF0aW9ucycpIGZvciBwIGluIHJldmVyc2VkKHNlbGYuX3NlYXJjaF9wYXRocygpKV0KKworICAg
IGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3VsdHNfZmlsZW5hbWUpOgorICAg
ICAgICBzZWxmLl9ydW5fc2NyaXB0KCJydW4tbWluaWJyb3dzZXIiLCBbcGF0aC5hYnNwYXRoX3Rv
X3VyaShzZWxmLmhvc3QucGxhdGZvcm0sIHJlc3VsdHNfZmlsZW5hbWUpXSkKKworICAgIGRlZiBf
dXNlc19hcGFjaGUoc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9wYXRo
X3RvX2xpZ2h0dHBkKHNlbGYpOgorICAgICAgICByZXR1cm4gIi9zeXN0ZW0vYmluL2xpZ2h0dHBk
IgorCisgICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX21vZHVsZXMoc2VsZik6CisgICAgICAgIGlm
IG9zLnBhdGguZXhpc3RzKCIvc3lzdGVtL2xpYi9saWdodHRwZCIpOgorICAgICAgICAgICAgcmV0
dXJuICIvc3lzdGVtL2xpYi9saWdodHRwZCIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
dHVybiAiL3N5c3RlbS9saWIveDg2L2xpZ2h0dHBkIgorCisgICAgZGVmIF9wYXRoX3RvX2xpZ2h0
dHBkX3BocChzZWxmKToKKyAgICAgICAgcmV0dXJuICIvc3lzdGVtL2Jpbi9waHAtY2dpIgorCisg
ICAgZGVmIF9wYXRoX3RvX2xpZ2h0dHBkX2VudihzZWxmKToKKyAgICAgICAgcmV0dXJuICIvc3lz
dGVtL2Jpbi9lbnYiCisKKyAgICBkZWYgY2hlY2tfc3lzX2RlcHMoc2VsZik6CisgICAgICAgIHJl
dHVybiBzdXBlcihIYWlrdVBvcnQsIHNlbGYpLmNoZWNrX3N5c19kZXBzKCkgYW5kIHNlbGYuX2Ry
aXZlcl9jbGFzcygpLmNoZWNrX2RyaXZlcihzZWxmKQorCisgICAgZGVmIGJ1aWxkX3dlYmtpdF9j
b21tYW5kKHNlbGYsIGJ1aWxkX3N0eWxlPU5vbmUpOgorICAgICAgICBjb21tYW5kID0gc3VwZXIo
SGFpa3VQb3J0LCBzZWxmKS5idWlsZF93ZWJraXRfY29tbWFuZChidWlsZF9zdHlsZSkKKyAgICAg
ICAgY29tbWFuZC5leHRlbmQoWyItLWhhaWt1IiwgIi0tdXBkYXRlLWhhaWt1Il0pCisgICAgICAg
IGlmIHNlbGYuZ2V0X29wdGlvbignd2Via2l0X3Rlc3RfcnVubmVyJyk6CisgICAgICAgICAgICBj
b21tYW5kLmFwcGVuZCgiLS1uby13ZWJraXQxIikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGNvbW1hbmQuYXBwZW5kKCItLW5vLXdlYmtpdDIiKQorICAgICAgICBjb21tYW5kLmFwcGVuZChz
dXBlcihIYWlrdVBvcnQsIHNlbGYpLm1ha2VfYXJncygpKQorICAgICAgICByZXR1cm4gY29tbWFu
ZAorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRl
cnIsIG5ld2VyX3RoYW4sIHRhcmdldF9ob3N0PU5vbmUpOgorICAgICAgICByZXR1cm4gSGFpa3VD
cmFzaExvZ0dlbmVyYXRvcihuYW1lLCBwaWQsIG5ld2VyX3RoYW4sIHNlbGYuX2ZpbGVzeXN0ZW0s
IHNlbGYuX3BhdGhfdG9fZHJpdmVyKS5nZW5lcmF0ZV9jcmFzaF9sb2coc3Rkb3V0LCBzdGRlcnIp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGFpa3VfZ2V0X2NyYXNo
X2xvZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9oYWlrdV9nZXRfY3Jhc2hfbG9n
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE2Nzg0MmZmZTY5NWQwYTdjMDk0YzRiMDcwZjgwYjk5OTRmN2VjNzMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaGFpa3VfZ2V0
X2NyYXNoX2xvZy5weQpAQCAtMCwwICsxLDgzIEBACisjIENvcHlyaWdodCAoQykgMjAxMyBIYWlr
dSwgaW5jLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgb3MKKworCitjbGFzcyBIYWlrdUNyYXNo
TG9nR2VuZXJhdG9yKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBpZCwg
bmV3ZXJfdGhhbiwgZmlsZXN5c3RlbSwgcGF0aF90b19kcml2ZXIpOgorICAgICAgICBzZWxmLm5h
bWUgPSBuYW1lCisgICAgICAgIHNlbGYucGlkID0gcGlkCisgICAgICAgIHNlbGYubmV3ZXJfdGhh
biA9IG5ld2VyX3RoYW4KKyAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0KKyAg
ICAgICAgc2VsZi5fcGF0aF90b19kcml2ZXIgPSBwYXRoX3RvX2RyaXZlcgorCisgICAgZGVmIF9n
ZXRfZGVidWdnZXJfb3V0cHV0KHNlbGYsIGNvcmVkdW1wX3BhdGgpOgorICAgICAgICByZXN1bHQg
PSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggb3Blbihjb3JlZHVtcF9wYXRo
LCAncmInKSBhcyBjb3JlZmlsZToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBjb3JlZmlsZS5y
ZWFkKCkuZGVjb2RlKCd1dGY4JywgJ2lnbm9yZScpCisgICAgICAgICAgICBvcy51bmxpbmsoY29y
ZWR1bXBfcGF0aCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICByZXN1bHQg
PSBOb25lCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBnZW5lcmF0ZV9jcmFzaF9s
b2coc2VsZiwgc3Rkb3V0LCBzdGRlcnIpOgorICAgICAgICBwaWRfcmVwcmVzZW50YXRpb24gPSBz
dHIoc2VsZi5waWQgb3IgJzx1bmtub3duPicpCisgICAgICAgIGxvZ19kaXJlY3RvcnkgPSBvcy5l
bnZpcm9uLmdldCgiV0VCS0lUX0NPUkVfRFVNUFNfRElSRUNUT1JZIikKKyAgICAgICAgZXJyb3Jz
ID0gW10KKyAgICAgICAgY3Jhc2hfbG9nID0gJycKKyAgICAgICAgZXhwZWN0ZWRfY3Jhc2hfZHVt
cF9maWxlbmFtZSA9ICJEdW1wUmVuZGVyVHJlZS0lcy1kZWJ1ZyIgJSAocGlkX3JlcHJlc2VudGF0
aW9uKQorICAgICAgICBwcm9jX25hbWUgPSAiJXMiICUgKHNlbGYubmFtZSkKKworICAgICAgICBk
ZWYgbWF0Y2hfZmlsZW5hbWUoZmlsZXN5c3RlbSwgZGlyZWN0b3J5LCBmaWxlbmFtZSk6CisgICAg
ICAgICAgICByZXR1cm4gZmlsZW5hbWUuZmluZChleHBlY3RlZF9jcmFzaF9kdW1wX2ZpbGVuYW1l
KSA+IC0xCisKKyAgICAgICAgaWYgbm90IGxvZ19kaXJlY3Rvcnk6CisgICAgICAgICAgICBsb2df
ZGlyZWN0b3J5ID0gIi9ib290L2hvbWUvRGVza3RvcCIKKworICAgICAgICBkdW1wcyA9IHNlbGYu
X2ZpbGVzeXN0ZW0uZmlsZXNfdW5kZXIobG9nX2RpcmVjdG9yeSwgZmlsZV9maWx0ZXI9bWF0Y2hf
ZmlsZW5hbWUpCisgICAgICAgIGlmIGR1bXBzOgorICAgICAgICAgICAgIyBHZXQgdGhlIG1vc3Qg
cmVjZW50IGNvcmVkdW1wIG1hdGNoaW5nIHRoZSBwaWQgYW5kL29yIHByb2Nlc3MgbmFtZS4KKyAg
ICAgICAgICAgIGNvcmVkdW1wX3BhdGggPSBsaXN0KHJldmVyc2VkKHNvcnRlZChkdW1wcykpKVsw
XQorICAgICAgICAgICAgaWYgbm90IHNlbGYubmV3ZXJfdGhhbiBvciBzZWxmLl9maWxlc3lzdGVt
Lm10aW1lKGNvcmVkdW1wX3BhdGgpID4gc2VsZi5uZXdlcl90aGFuOgorICAgICAgICAgICAgICAg
IGNyYXNoX2xvZyA9IHNlbGYuX2dldF9kZWJ1Z2dlcl9vdXRwdXQoY29yZWR1bXBfcGF0aCkKKyAg
ICAgICAgY29yZV9wYXR0ZXJuID0gb3MucGF0aC5qb2luKGxvZ19kaXJlY3RvcnksIGV4cGVjdGVk
X2NyYXNoX2R1bXBfZmlsZW5hbWUpCisKKyAgICAgICAgaWYgbm90IGNyYXNoX2xvZzoKKyAgICAg
ICAgICAgIGNyYXNoX2xvZyA9ICIiIlwKK0NyYXNoIHJlcG9ydCAlKGV4cGVjdGVkX2NyYXNoX2R1
bXBfZmlsZW5hbWUpcyBub3QgZm91bmQuIFRvIGVuYWJsZSBjcmFzaCBsb2dzLAorY3JlYXRlIHRo
ZSBmaWxlIH4vY29uZmlnL3NldHRpbmdzL3N5c3RlbS9kZWJ1Z19zZXJ2ZXIvc2V0dGluZ3Mgd2l0
aCB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOgorCitleGVjdXRhYmxlX2FjdGlvbnMgeworICAgIER1
bXBSZW5kZXJUcmVlIGxvZworfQorIiIiICUgbG9jYWxzKCkKKworICAgICAgICByZXR1cm4gKHN0
ZGVyciwgIiIiXAorY3Jhc2ggbG9nIGZvciAlKHByb2NfbmFtZSlzIChwaWQgJShwaWRfcmVwcmVz
ZW50YXRpb24pcyk6CisKKyUoY3Jhc2hfbG9nKXMiIiIgJSBsb2NhbHMoKSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9oYWlrdWRyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9oYWlrdWRyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTk3MmNjNWFjNWQw
ZTk5ZGI3YTYwMDcwZDI2ZmIxN2Q0ODNiOWMyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2hhaWt1ZHJpdmVyLnB5CkBAIC0wLDAgKzEsODYgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMy0yMDIyIEhhaWt1LCBpbmMuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIEdv
b2dsZSBuYW1lIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGxvZ2dp
bmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgdGltZQorCitmcm9tIHdlYmtpdHB5LnBv
cnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKK2Zyb20gd2Via2l0cHkucG9y
dC5kcml2ZXIgaW1wb3J0IERyaXZlcgorCitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCisKKworY2xhc3MgSGFpa3VEcml2ZXIoRHJpdmVyKToKKyAgICBAc3RhdGljbWV0aG9kCisg
ICAgZGVmIGNoZWNrX2RyaXZlcihwb3J0KToKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBEcml2ZXIuX19pbml0X18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLl9ndWFyZF9sb2NrID0gTm9uZQor
ICAgICAgICBzZWxmLl9zdGFydHVwX2RlbGF5X3NlY3MgPSAxLjAKKworICAgIGRlZiBfbmV4dF9m
cmVlX2Rpc3BsYXkoc2VsZik6CisgICAgICAgIHJldHVybiAwCisKKyAgICBkZWYgX3h2ZmJfc2Ny
ZWVuX2RlcHRoKHNlbGYpOgorICAgICAgICByZXR1cm4gMjQKKworICAgIGRlZiBfc3RhcnQoc2Vs
ZiwgcGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisg
ICAgICAgICMgVXNlIGV2ZW4gZGlzcGxheXMgZm9yIHBpeGVsIHRlc3RzIGFuZCBvZGQgb25lcyBv
dGhlcndpc2UuIFdoZW4gcGl4ZWwgdGVzdHMgYXJlIGRpc2FibGVkLAorICAgICAgICAjIERyaXZl
clByb3h5IGNyZWF0ZXMgdHdvIGRyaXZlcnMsIG9uZSBmb3Igbm9ybWFsIGFuZCB0aGUgb3RoZXIg
Zm9yIHJlZiB0ZXN0cy4gQm90aCBoYXZlCisgICAgICAgICMgdGhlIHNhbWUgd29ya2VyIG51bWJl
ciwgc28gdGhpcyBwcmV2ZW50cyB0aGVtIGZyb20gdXNpbmcgdGhlIHNhbWUgWHZmYiBpbnN0YW5j
ZS4KKyAgICAgICAgZGlzcGxheV9pZCA9IHNlbGYuX25leHRfZnJlZV9kaXNwbGF5KCkKKworICAg
ICAgICBzZXJ2ZXJfbmFtZSA9ICJoYWlrdSIKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl9w
b3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkKKyAgICAgICAgc2VsZi5f
ZHJpdmVyX3RlbXBkaXIgPSBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3RlbS5ta2R0ZW1wKHByZWZp
eD0nJXMtJyAlIHNlbGYuX3BvcnQuZHJpdmVyX25hbWUoKSkKKyAgICAgICAgZW52aXJvbm1lbnRb
J0RVTVBSRU5ERVJUUkVFX1RFTVAnXSA9IHN0cihzZWxmLl9kcml2ZXJfdGVtcGRpcikKKyAgICAg
ICAgZW52aXJvbm1lbnRbJ0xPQ0FMX1JFU09VUkNFX1JPT1QnXSA9IHNlbGYuX3BvcnQubGF5b3V0
X3Rlc3RzX2RpcigpCisKKyAgICAgICAgIyBDdXJyZW50bHkgb24gV2ViS2l0MiwgdGhlcmUgaXMg
bm8gQVBJIGZvciBzZXR0aW5nIHRoZSBhcHBsaWNhdGlvbgorICAgICAgICAjIGNhY2hlIGRpcmVj
dG9yeS4gRWFjaCB3b3JrZXIgc2hvdWxkIGhhdmUgaXQncyBvd24gYW5kIGl0IHNob3VsZCBiZQor
ICAgICAgICAjIGNsZWFuZWQgYWZ0ZXJ3YXJkcywgc28gd2Ugc2V0IGl0IHRvIGluc2lkZSB0aGUg
dGVtcG9yYXJ5IGZvbGRlciBieQorICAgICAgICAjIHByZXBlbmRpbmcgWERHX0NBQ0hFX0hPTUUg
d2l0aCBEVU1QUkVOREVSVFJFRV9URU1QLgorICAgICAgICBlbnZpcm9ubWVudFsnWERHX0NBQ0hF
X0hPTUUnXSA9IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtLmpvaW4oc3RyKHNlbGYuX2RyaXZl
cl90ZW1wZGlyKSwgJ2FwcGNhY2hlJykKKworICAgICAgICBzZWxmLl9jcmFzaGVkX3Byb2Nlc3Nf
bmFtZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fY3Jhc2hlZF9waWQgPSBOb25lCisgICAgICAgIHNl
bGYuX3NlcnZlcl9wcm9jZXNzID0gc2VsZi5fcG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0
b3Ioc2VsZi5fcG9ydCwgc2VydmVyX25hbWUsIHNlbGYuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBl
cl90ZXN0X2FyZ3MpLCBlbnZpcm9ubWVudCkKKyAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nlc3Mu
c3RhcnQoKQorCisgICAgZGVmIHN0b3Aoc2VsZik6CisgICAgICAgIHN1cGVyKEhhaWt1RHJpdmVy
LCBzZWxmKS5zdG9wKCkKKyAgICAgICAgaWYgc2VsZi5fZ3VhcmRfbG9jazoKKyAgICAgICAgICAg
IHNlbGYuX2d1YXJkX2xvY2sucmVsZWFzZV9sb2NrKCkKKyAgICAgICAgICAgIHNlbGYuX2d1YXJk
X2xvY2sgPSBOb25lCg==
</data>
<flag name="review"
          id="482196"
          type_id="1"
          status="?"
          setter="nep-webkit"
    />
    <flag name="commit-queue"
          id="482203"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>