<?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>199943</bug_id>
          
          <creation_ts>2019-07-19 07:42:17 -0700</creation_ts>
          <short_desc>[SOUP] WebSockets: add support for extensions when using web sockets libsoup API</short_desc>
          <delta_ts>2019-08-01 07:22:02 -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>WebKitGTK</component>
          <version>WebKit 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>
          
          <blocked>200162</blocked>
    
    <blocked>200165</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>csaavedra</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554200</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-19 07:42:17 -0700</bug_when>
    <thetext>This still requires new API in libsoup, see https://gitlab.gnome.org/GNOME/libsoup/merge_requests/76</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554201</commentid>
    <comment_count>1</comment_count>
      <attachid>374464</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-19 07:44:03 -0700</bug_when>
    <thetext>Created attachment 374464
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554209</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-19 08:20:00 -0700</bug_when>
    <thetext>Youenn, do we have a &quot;formal&quot; way of importing blink tests? I want to use the permessage-deflate tests from blink. Importing them in imported/blink would not work for websocket tests, so it would be easier to just copy them to our websocket tests directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554212</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-07-19 08:47:53 -0700</bug_when>
    <thetext>Ideally these would be WPT tests, is it something we could do?

Otherwise, I guess we could use http/tests/websockets/imported/blink.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554217</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-07-19 08:53:55 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Ideally these would be WPT tests, is it something we could do?

I don&apos;t see permessage-deflate tests in wpt

&gt; Otherwise, I guess we could use http/tests/websockets/imported/blink.

Good point, that will work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557579</commentid>
    <comment_count>5</comment_count>
      <attachid>375306</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 05:11:53 -0700</bug_when>
    <thetext>Created attachment 375306
Patch

Alex or Youenn, I need a review here, please, I&apos;m currently preparing a new release including the new WebSockets code path that I have to make tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557592</commentid>
    <comment_count>6</comment_count>
      <attachid>375306</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-01 07:07:52 -0700</bug_when>
    <thetext>Comment on attachment 375306
Patch

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

great

&gt; Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:79
&gt; +    return m_extensions.isNull() ? emptyString(): m_extensions;

space before colon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557593</commentid>
    <comment_count>7</comment_count>
      <attachid>375306</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-08-01 07:14:04 -0700</bug_when>
    <thetext>Comment on attachment 375306
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:87
&gt; +    m_channel.didConnect(protocol, { });

Actually, could you move the &quot;FIXME: support extensions.&quot; comment to here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557595</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 07:21:33 -0700</bug_when>
    <thetext>Committed r248102: &lt;https://trac.webkit.org/changeset/248102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557596</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-08-01 07:22:02 -0700</bug_when>
    <thetext>Thanks for the review, fixed both things.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374464</attachid>
            <date>2019-07-19 07:44:03 -0700</date>
            <delta_ts>2019-08-01 05:11:53 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wk2-libsoup-ws-extensions.diff</filename>
            <type>text/plain</type>
            <size>8535</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0
d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Nv
dXBOZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggNjEyNGY0NmMyNGQuLmEyZmMwYzgwYjY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291
cE5ldHdvcmtTZXNzaW9uLmNwcApAQCAtMTI5LDYgKzEyOSw5IEBAIFNvdXBOZXR3b3JrU2Vzc2lv
bjo6U291cE5ldHdvcmtTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU291cENvb2tp
ZUphcioKICAgICAgICAgU09VUF9TRVNTSU9OX0lETEVfVElNRU9VVCwgMCwKICAgICAgICAgU09V
UF9TRVNTSU9OX0FERF9GRUFUVVJFX0JZX1RZUEUsIFNPVVBfVFlQRV9DT05URU5UX1NOSUZGRVIs
CiAgICAgICAgIFNPVVBfU0VTU0lPTl9BRERfRkVBVFVSRSwgamFyLmdldCgpLAorI2lmIFNPVVBf
Q0hFQ0tfVkVSU0lPTigyLCA2NywgMykKKyAgICAgICAgU09VUF9TRVNTSU9OX0FERF9GRUFUVVJF
X0JZX1RZUEUsIFNPVVBfVFlQRV9XRUJTT0NLRVRfRVhURU5TSU9OX01BTkFHRVIsCisjZW5kaWYK
ICAgICAgICAgbnVsbHB0cik7CiAKICAgICBzZXR1cEN1c3RvbVByb3RvY29scygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNw
cAppbmRleCA1NjkzMGMzNjBmYi4uZjUxMzVmNjU1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC05Nyw5ICs5
Nyw5IEBAIHZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OmNsb3NlKGludDMyX3QgY29kZSwgY29u
c3QgU3RyaW5nJiByZWFzb24pCiAgICAgZmluaXNoQ2xvc2luZ0lmUG9zc2libGUoKTsKIH0KIAot
dm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChjb25zdCBTdHJpbmcmIHN1YnBy
b3RvY29sKQordm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChjb25zdCBTdHJp
bmcmIHN1YnByb3RvY29sLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbnMpCiB7Ci0gICAgc2VuZChN
ZXNzYWdlczo6V2ViU29ja2V0Q2hhbm5lbDo6RGlkQ29ubmVjdCB7IHN1YnByb3RvY29sIH0pOwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNvY2tldENoYW5uZWw6OkRpZENvbm5lY3QgeyBzdWJwcm90
b2NvbCwgZXh0ZW5zaW9ucyB9KTsKIH0KIAogdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlk
UmVjZWl2ZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmluZGV4IDQyN2YyN2I3YWI3Li4z
MWU1ZWVmZDQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgZnJpZW5k
IGNsYXNzIFdlYlNvY2tldFRhc2s7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkaWRDb25uZWN0KGNv
bnN0IFN0cmluZyYgc3VicHJvdG9jb2wpOworICAgIHZvaWQgZGlkQ29ubmVjdChjb25zdCBTdHJp
bmcmIHN1YnByb3RvY29sLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbnMpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0
YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKICAgICB2b2lkIGRpZENsb3Nl
KHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2Eu
bW0KaW5kZXggYWRjNWNmZWE5N2MuLjRiMmE5Njc4MDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpAQCAt
ODQsNyArODQsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OnJlc3VtZSgpCiAKIHZvaWQgV2ViU29j
a2V0VGFzazo6ZGlkQ29ubmVjdChjb25zdCBTdHJpbmcmIHByb3RvY29sKQogewotICAgIG1fY2hh
bm5lbC5kaWRDb25uZWN0KHByb3RvY29sKTsKKyAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChwcm90
b2NvbCwgeyB9KTsKIH0KIAogdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRDbG9zZSh1bnNpZ25lZCBz
aG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCmluZGV4IGVkZTQ0
M2ZmMTQzLi5mYzg4NzdmYWQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiTmV0d29ya1NvY2tldENoYW5uZWwuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQ
YXJzZXJzLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTY0LDYg
KzY1LDI4IEBAIFdlYlNvY2tldFRhc2s6On5XZWJTb2NrZXRUYXNrKCkKICAgICBjYW5jZWwoKTsK
IH0KIAorU3RyaW5nIFdlYlNvY2tldFRhc2s6OmFjY2VwdGVkRXh0ZW5zaW9ucygpIGNvbnN0Cit7
CisjaWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY3LCAzKQorICAgIFN0cmluZ0J1aWxkZXIgcmVz
dWx0OworICAgIEdMaXN0KiBleHRlbnNpb25zID0gc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9n
ZXRfZXh0ZW5zaW9ucyhtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIGZvciAoYXV0byogaXQgPSBl
eHRlbnNpb25zOyBpdDsgaXQgPSBnX2xpc3RfbmV4dChpdCkpIHsKKyAgICAgICAgYXV0byogZXh0
ZW5zaW9uID0gU09VUF9XRUJTT0NLRVRfRVhURU5TSU9OKGl0LT5kYXRhKTsKKworICAgICAgICBp
ZiAoIXJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KFNPVVBfV0VCU09D
S0VUX0VYVEVOU0lPTl9HRVRfQ0xBU1MoZXh0ZW5zaW9uKS0+bmFtZSkpOworCisgICAgICAgIEdV
bmlxdWVQdHI8Y2hhcj4gcGFyYW1zKHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9nZXRfcmVzcG9u
c2VfcGFyYW1zKGV4dGVuc2lvbikpOworICAgICAgICBpZiAocGFyYW1zKQorICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KHBhcmFtcy5nZXQoKSkpOworICAgIH0KKyAg
ICByZXR1cm4gcmVzdWx0LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworI2Vsc2UKKyAgICBy
ZXR1cm4geyB9OworI2VuZGlmCit9CisKIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkQ29ubmVjdChH
UmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAgICAgbV9j
b25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKQEAgLTc4LDcgKzEwMSw3IEBAIHZvaWQg
V2ViU29ja2V0VGFzazo6ZGlkQ29ubmVjdChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlv
bi5nZXQoKSwgImVycm9yIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZFJlY2VpdmVF
cnJvckNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29u
bmVjdGlvbi5nZXQoKSwgImNsb3NlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRD
bG9zZUNhbGxiYWNrKSwgdGhpcyk7CiAKLSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChzb3VwX3dl
YnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKTsKKyAg
ICBtX2NoYW5uZWwuZGlkQ29ubmVjdChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90
b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpLCBhY2NlcHRlZEV4dGVuc2lvbnMoKSk7CiB9CiAKIHZv
aWQgV2ViU29ja2V0VGFzazo6ZGlkUmVjZWl2ZU1lc3NhZ2VDYWxsYmFjayhXZWJTb2NrZXRUYXNr
KiB0YXNrLCBTb3VwV2Vic29ja2V0RGF0YVR5cGUgZGF0YVR5cGUsIEdCeXRlcyogbWVzc2FnZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRU
YXNrU291cC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRh
c2tTb3VwLmgKaW5kZXggMWVkZjc1ODEwNzAuLmRhODc2MTEwNjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaApAQCAt
NTIsNiArNTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmFpbChjb25zdCBTdHJpbmcmKTsK
ICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKTsKIAorICAgIFN0cmluZyBhY2NlcHRlZEV4dGVuc2lvbnMoKSBjb25zdDsKKwogICAgIHN0
YXRpYyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2soV2ViU29ja2V0VGFzayosIFNvdXBX
ZWJzb2NrZXREYXRhVHlwZSwgR0J5dGVzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUVy
cm9yQ2FsbGJhY2soV2ViU29ja2V0VGFzayosIEdFcnJvciopOwogICAgIHN0YXRpYyB2b2lkIGRp
ZENsb3NlQ2FsbGJhY2soV2ViU29ja2V0VGFzayopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkNDZiMzQ5YmZm
OC4uM2ZhMmZiNjM5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC03Niw4ICs3Niw3IEBAIFN0cmluZyBXZWJT
b2NrZXRDaGFubmVsOjpzdWJwcm90b2NvbCgpCiAKIFN0cmluZyBXZWJTb2NrZXRDaGFubmVsOjpl
eHRlbnNpb25zKCkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9ydCBleHRlbnNpb25zLgotICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2V4dGVuc2lvbnMuaXNOdWxsKCkgPyBl
bXB0eVN0cmluZygpOiBtX2V4dGVuc2lvbnM7CiB9CiAKIFdlYlNvY2tldENoYW5uZWw6OkNvbm5l
Y3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCkKQEAgLTMyMiw3ICszMjEsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpc2Nvbm5lY3QoKQogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtTb2NrZXRDaGFubmVsOjpDbG9zZSB7IDAsIHsgfSB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sKQordm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNp
b25zKQogewogICAgIGlmIChtX2lzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtMzMxLDEz
ICszMzAsMTQgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1
YnByb3RvY29sKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N1c3BlbmRlZCkgewot
ICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3Rv
Y29sKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRDb25uZWN0KFdURk1vdmUoc3VicHJv
dG9jb2wpKTsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHN1YnByb3RvY29sID0gV1RGTW92
ZShzdWJwcm90b2NvbCksIGV4dGVuc2lvbnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpXSAoKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIGRpZENvbm5lY3QoV1RGTW92ZShzdWJwcm90b2NvbCksIFdURk1v
dmUoZXh0ZW5zaW9ucykpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIG1fc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29sKTsKKyAgICBtX2V4dGVuc2lv
bnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpOwogICAgIG1fY2xpZW50LT5kaWRDb25uZWN0KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwuaAppbmRleCBmZjE2ZjllMDk0My4uNmNjNzEzNDVkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTc1LDcg
Kzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzCi0gICAg
dm9pZCBkaWRDb25uZWN0KFN0cmluZyYmKTsKKyAgICB2b2lkIGRpZENvbm5lY3QoU3RyaW5nJiYg
c3VicHJvdG9jb2wsIFN0cmluZyYmIGV4dGVuc2lvbnMpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRl
eHQoU3RyaW5nJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVm
ZXJlbmNlJiYpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5n
JiYpOwpAQCAtOTMsNiArOTMsNyBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViQ29yZTo6RG9j
dW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgV2Vha1B0cjxXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVs
Q2xpZW50PiBtX2NsaWVudDsKICAgICBTdHJpbmcgbV9zdWJwcm90b2NvbDsKKyAgICBTdHJpbmcg
bV9leHRlbnNpb25zOwogICAgIHNpemVfdCBtX2J1ZmZlcmVkQW1vdW50IHsgMCB9OwogICAgIGJv
b2wgbV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgppbmRleCA1OWMxYjg2NDhjNy4uNzBmNzdiOTJk
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJTb2NrZXRDaGFubmVsIHsKLSAgICBEaWRDb25uZWN0
KFN0cmluZyBzdWJwcm90b2NvbCkKKyAgICBEaWRDb25uZWN0KFN0cmluZyBzdWJwcm90b2NvbCwg
U3RyaW5nIGV4dGVuc2lvbnMpCiAgICAgRGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3Ry
aW5nIHJlYXNvbikKICAgICBEaWRSZWNlaXZlVGV4dChTdHJpbmcgbWVzc2FnZSkKICAgICBEaWRS
ZWNlaXZlQmluYXJ5RGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375306</attachid>
            <date>2019-08-01 05:11:53 -0700</date>
            <delta_ts>2019-08-01 07:07:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-websocket-extensions.diff</filename>
            <type>text/plain</type>
            <size>75507</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMDRhN2VhMGMyYS4uMWFjNGI4MjA1OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAor
MjAxOS0wOC0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1NPVVBdIFdlYlNvY2tldHM6IGFkZCBzdXBwb3J0IGZvciBleHRlbnNpb25zIHdo
ZW4gdXNpbmcgd2ViIHNvY2tldHMgbGlic291cCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMgZm9yIHBlcm1lc3NhZ2UtZGVm
bGF0ZSBpbXBvcnRlZCBmcm9tIGJsaW5rIGFuZCByZWJhc2VsaW5lIGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogU2tpcCBwZXJtZXNzYWdlLWRlZmxhdGUgdGVz
dHMgYnkgZGVmYXVsdC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1jb21wLWJpdC1vbm9mZi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVk
L2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1pbnZhbGlkLXBhcmFtZXRlci5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5r
L3Blcm1lc3NhZ2UtZGVmbGF0ZS1pbnZhbGlkLXBhcmFtZXRlcl93c2gucHk6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVy
bWVzc2FnZS1kZWZsYXRlLW1hbnVhbF93c2gucHk6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRl
LXBhcmFtZXRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zZXQtYmZpbmFsLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1w
b3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNwbGl0LWZyYW1lcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5r
L3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFtZXNfd3NoLnB5OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3Nh
Z2UtZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25zZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5r
L3Blcm1lc3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25zZV93c2gu
cHk6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1w
b3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXdpbmRvdy1iaXRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsv
cGVybWVzc2FnZS1kZWZsYXRlX3dzaC5weTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBwZXJtZXNzYWdlLWRlZmxhdGUgdGVzdHMuCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0
ZS1mcmFtZS1pbnZhbGlkLXBhcmFtZXRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJh
bWUtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1jb21wLWJpdC1vbm9mZi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1pbnZh
bGlkLXBhcmFtZXRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3Nh
Z2UtZGVmbGF0ZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9w
ZXJtZXNzYWdlLWRlZmxhdGUtc2V0LWJmaW5hbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVk
L2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtdW5zb2xpY2l0ZWQtbmVnb3RpYXRp
b24tcmVzcG9uc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdl
LWRlZmxhdGUtd2luZG93LWJpdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIHBlcm1lc3NhZ2UtZGVmbGF0ZSB0ZXN0
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9kZWZsYXRlLWZyYW1lLWludmFsaWQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVm
bGF0ZS1mcmFtZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9leHRlbnNpb25zLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLWNvbXAtYml0
LW9ub2ZmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZs
YXRlLWludmFsaWQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsv
cGVybWVzc2FnZS1kZWZsYXRlLXBhcmFtZXRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVk
L2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zZXQtYmZpbmFsLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNwbGl0LWZyYW1lcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRlZC1u
ZWdvdGlhdGlvbi1yZXNwb25zZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Bl
cm1lc3NhZ2UtZGVmbGF0ZS13aW5kb3ctYml0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDE5
LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbU09VUF0gU3dpdGNoIHRvIHVzZSBsaWJzb3VwIFdlYlNvY2tldHMgQVBJCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBkN2ZhYWYzMTMwZi4uNWFlNDJkYjFkNjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNjU3LDYgKzY1NywxNSBAQCBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1pbi10d28tcGFnZXMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9wb2ludGVyZXZlbnRzIFsgU2tpcCBdCiBwb2ludGVyZXZlbnRzIFsgU2tpcCBdCiAK
KyMgcGVybWVzc2FnZS1kZWZsYXRlIFdlYlNvY2tldCBleHRlbnNpb24gb25seSBzdXBwb3J0ZWQg
YnkgU291cCBiYXNlZCBwb3J0cworaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBv
cnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtY29tcC1iaXQtb25vZmYuaHRtbCBbIFNraXAg
XQoraHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNz
YWdlLWRlZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXIuaHRtbCBbIFNraXAgXQoraHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtcGFy
YW1ldGVyLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1w
b3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNldC1iZmluYWwuaHRtbCBbIFNraXAgXQor
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdl
LWRlZmxhdGUtc3BsaXQtZnJhbWVzLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXVuc29saWNpdGVk
LW5lZ290aWF0aW9uLXJlc3BvbnNlLmh0bWwgWyBTa2lwIF0KK2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXdpbmRvdy1iaXRz
Lmh0bWwgWyBTa2lwIF0KKwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBF
bmQgcGxhdGZvcm0tc3BlY2lmaWMgdGVzdHMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1jb21wLWJpdC1vbm9mZi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRl
ZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtY29tcC1iaXQtb25vZmYuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDUyYWRhOGY5YTcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVk
L2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1jb21wLWJpdC1vbm9mZi5odG1sCkBAIC0wLDAgKzEs
NTkgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGNvbXByZXNzaW9uIGVuYWJsZWQvZGlzYWJsZWQgZnJh
bWUgcmVjZWl2aW5nLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBj
bG9zZUV2ZW50OwordmFyIHdzOwordmFyIG1lc3NhZ2VJbmRleDsKKwordmFyIG1lc3NhZ2VzID0g
WworICAgICJIZWxsbyIsCisgICAgIkRpc2FibGVDb21wcmVzc2lvbiIsIC8vIFRoaXMgZGlzYWJs
ZXMgY29tcHJlc3Npb24KKyAgICAiV29ybGQiLAorICAgICJFbmFibGVDb21wcmVzc2lvbiIsIC8v
IFRoaXMgZW5hYmxlcyBjb21wcmVzc2lvbgorICAgICIiLAorICAgICIiLAorICAgICJHb29kYnll
IgorXTsKKword3MgPSBuZXcgV2ViU29ja2V0KCJ3czovL2xvY2FsaG9zdDo4ODgwL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZSIpOworCit3cy5v
bm9wZW4gPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBtZXNzYWdlSW5kZXggPSAwOworICAgIGRl
YnVnKCJTZW5kaW5nIG1lc3NhZ2U6IFwiIiArIG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0gKyAiXCIi
KTsKKyAgICB3cy5zZW5kKG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0pOworfTsKKword3Mub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgc2hvdWxkQmUoImV2ZW50LmRhdGEiLCAiJyIg
KyBtZXNzYWdlc1ttZXNzYWdlSW5kZXhdICsgIiciKTsKKyAgICBpZiAobWVzc2FnZUluZGV4ID09
PSBtZXNzYWdlcy5sZW5ndGggLSAxKQorICAgICAgICB3cy5jbG9zZSgpOworICAgIGVsc2Ugewor
ICAgICAgICBtZXNzYWdlSW5kZXggKz0gMTsKKyAgICAgICAgZGVidWcoIlNlbmRpbmcgbWVzc2Fn
ZTogXCIiICsgbWVzc2FnZXNbbWVzc2FnZUluZGV4XSArICJcIiIpOworICAgICAgICB3cy5zZW5k
KG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0pOworICAgIH0KK307CisKK3dzLm9uY2xvc2UgPSBmdW5j
dGlvbihldmVudCkKK3sKKyAgICBkZWJ1Zygib25jbG9zZSgpIHdhcyBjYWxsZWQuIik7CisgICAg
Y2xvc2VFdmVudCA9IGV2ZW50OworICAgIHNob3VsZEJlVHJ1ZSgiY2xvc2VFdmVudC53YXNDbGVh
biIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1pbnZhbGlkLXBhcmFtZXRlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRl
ZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWIzYjY1NTlmNDcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9y
dGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1pbnZhbGlkLXBhcmFtZXRlci5odG1sCkBAIC0w
LDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IHJlamVjdHMg
aW52YWxpZCBwZXJtZXNzYWdlLWRlZmxhdGUgcGFyYW1ldGVycy4iKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCit2YXIgY2xvc2VFdmVudDsKKwordmFyIHRlc3RDYXNlID0gWwor
ICAgICJ4LWZvbyIsCisgICAgImNsaWVudF9tYXhfd2luZG93X2JpdHM9NyIsCisgICAgImNsaWVu
dF9tYXhfd2luZG93X2JpdHM9MTYiLAorICAgICJjbGllbnRfbm9fY29udGV4dF90YWtlb3Zlcj1m
b28iLAorICAgICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTg7IGNsaWVudF9ub19jb250ZXh0X3Rh
a2VvdmVyOyB4LWZvbyIKK107CisKK2Z1bmN0aW9uIGRvVGVzdChpbmRleCkKK3sKKyAgICB2YXIg
cGFyYW1ldGVyID0gdGVzdENhc2VbaW5kZXhdOworICAgIHZhciB1cmwgPSAid3M6Ly9sb2NhbGhv
c3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRl
ZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXI/IiArIGVuY29kZVVSSShwYXJhbWV0ZXIpOworICAgIHZh
ciB3cyA9IG5ldyBXZWJTb2NrZXQodXJsKTsKKworICAgIGRlYnVnKCJUZXN0aW5nIHBhcmFtZXRl
cjogXCIiICsgcGFyYW1ldGVyICsgIlwiIik7CisKKyAgICB3cy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKKyAgICAg
ICAgdGVzdEZhaWxlZCgib25tZXNzYWdlKCkgd2FzIGNhbGxlZC4gKG1lc3NhZ2UgPSBcIiIgKyBt
ZXNzYWdlICsgIlwiKSIpOworICAgIH07CisKKyAgICB3cy5vbmNsb3NlID0gZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICBkZWJ1Zygib25jbG9zZSgpIHdhcyBjYWxsZWQuIik7CisgICAg
ICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICAgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VFdmVu
dC53YXNDbGVhbiIpOworICAgICAgICBpZiAoaW5kZXggPT09IHRlc3RDYXNlLmxlbmd0aCAtIDEp
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZG9UZXN0KGluZGV4ICsgMSk7CisgICAgfTsKKworICAgIHdzLm9uZXJyb3IgPSBmdW5jdGlvbihl
cnJvckV2ZW50KQorICAgIHsKKyAgICAgICAgdGVzdFBhc3NlZCgib25lcnJvcigpIHdhcyBjYWxs
ZWQiKTsKKyAgICB9OworfQorCitkb1Rlc3QoMCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXJf
d3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBv
cnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXJfd3NoLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xY2EyODNhNGUwYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLWludmFsaWQtcGFyYW1ldGVyX3dzaC5w
eQpAQCAtMCwwICsxLDU3IEBACisjIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0Ogor
IworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCB1cmxsaWIKK2Zyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKK2Zyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5oeWJpIGltcG9ydCBjb21wdXRlX2FjY2VwdAorCisKK2RlZiB3ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICByZXNvdXJjZXMgPSByZXF1ZXN0LndzX3Jl
c291cmNlLnNwbGl0KCc/JywgMSkKKyAgICBwYXJhbWV0ZXJzID0gTm9uZQorICAgIGlmIGxlbihy
ZXNvdXJjZXMpID09IDI6CisgICAgICAgIHBhcmFtZXRlcnMgPSB1cmxsaWIudW5xdW90ZShyZXNv
dXJjZXNbMV0pCisKKyAgICBtZXNzYWdlID0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9j
b2xzXHJcbicKKyAgICBtZXNzYWdlICs9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJworICAgIG1l
c3NhZ2UgKz0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgIG1lc3NhZ2UgKz0gJ1NlYy1X
ZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4nICUgY29tcHV0ZV9hY2NlcHQoCisgICAgICAgIHJlcXVl
c3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KKyAgICBtZXNzYWdlICs9ICdT
ZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6IHBlcm1lc3NhZ2UtZGVmbGF0ZScKKyAgICBpZiBwYXJh
bWV0ZXJzOgorICAgICAgICBtZXNzYWdlICs9ICc7ICVzXHJcbicgJSBwYXJhbWV0ZXJzCisgICAg
ZWxzZToKKyAgICAgICAgbWVzc2FnZSArPSAnXHJcbicKKyAgICBtZXNzYWdlICs9ICdcclxuJwor
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtZXNzYWdlKQorICAgICMgUHJldmVudHMgcHl3
ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2UuCisgICAgcmFp
c2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9u
JykKKworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHBhc3MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLW1hbnVhbF93c2gucHkgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1l
c3NhZ2UtZGVmbGF0ZS1tYW51YWxfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yYmY3ZjdlNWI2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1k
ZWZsYXRlLW1hbnVhbF93c2gucHkKQEAgLTAsMCArMSwxMTkgQEAKKyMgQ29weXJpZ2h0IDIwMTMs
IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
aW1wb3J0IHVybHBhcnNlCitpbXBvcnQgemxpYgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0
IGNvbW1vbiwgdXRpbAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmV4
dGVuc2lvbnMgaW1wb3J0IEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZQorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25QYXJhbWV0ZXIKKworX0dPT0RCWUVfTUVT
U0FHRSA9IHUnR29vZGJ5ZScKK19FTkFCTEVfTUVTU0FHRSA9IHUnRW5hYmxlQ29tcHJlc3Npb24n
CitfRElTQUJMRV9NRVNTQUdFID0gdSdEaXNhYmxlQ29tcHJlc3Npb24nCitfYmZpbmFsID0gRmFs
c2UKK19jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gMTUKKworCitkZWYgX2dldF9wZXJtZXNzYWdl
X2RlZmxhdGVfZXh0ZW5zaW9uX3Byb2Nlc3NvcihyZXF1ZXN0KToKKyAgICBmb3IgZXh0ZW5zaW9u
X3Byb2Nlc3NvciBpbiByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzOgorICAgICAgICBp
ZiBpc2luc3RhbmNlKGV4dGVuc2lvbl9wcm9jZXNzb3IsIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5z
aW9uUHJvY2Vzc29yKToKKyAgICAgICAgICAgIHJldHVybiBleHRlbnNpb25fcHJvY2Vzc29yCisg
ICAgcmV0dXJuIE5vbmUKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6CisgICAgZ2xvYmFsIF9iZmluYWwKKyAgICBnbG9iYWwgX2NsaWVudF9tYXhfd2luZG93
X2JpdHMKKyAgICBwcm9jZXNzb3IgPSBfZ2V0X3Blcm1lc3NhZ2VfZGVmbGF0ZV9leHRlbnNpb25f
cHJvY2Vzc29yKHJlcXVlc3QpCisgICAgIyBSZW1vdmUgZXh0ZW5zaW9uIHByb2Nlc3NvcnMgb3Ro
ZXIgdGhhbgorICAgICMgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IgdG8gYXZv
aWQgY29uZmxpY3QuCisgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtwcm9j
ZXNzb3JdCisgICAgaWYgbm90IHByb2Nlc3NvcjoKKyAgICAgICAgcmV0dXJuCisgICAgciA9IHJl
cXVlc3Qud3NfcmVzb3VyY2Uuc3BsaXQoJz8nLCAxKQorICAgIGlmIGxlbihyKSA9PSAxOgorICAg
ICAgICByZXR1cm4KKyAgICBwYXJhbWV0ZXJzID0gdXJscGFyc2UucGFyc2VfcXMoclsxXSwga2Vl
cF9ibGFua192YWx1ZXM9VHJ1ZSkKKyAgICBpZiAnY2xpZW50X21heF93aW5kb3dfYml0cycgaW4g
cGFyYW1ldGVyczoKKyAgICAgICAgd2luZG93X2JpdHMgPSBpbnQocGFyYW1ldGVyc1snY2xpZW50
X21heF93aW5kb3dfYml0cyddWzBdKQorICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhf
d2luZG93X2JpdHMod2luZG93X2JpdHMpCisgICAgICAgIF9jbGllbnRfbWF4X3dpbmRvd19iaXRz
ID0gd2luZG93X2JpdHMKKyAgICBpZiAnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInIGluIHBh
cmFtZXRlcnM6CisgICAgICAgIHByb2Nlc3Nvci5zZXRfY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXIoVHJ1ZSkKKyAgICBpZiAnc2V0X2JmaW5hbCcgaW4gcGFyYW1ldGVyczoKKyAgICAgICAgX2Jm
aW5hbCA9IFRydWUKKworCitkZWYgcmVjZWl2ZShyZXF1ZXN0KToKKyAgICBzdHJlYW0gPSByZXF1
ZXN0LndzX3N0cmVhbQorICAgIHBvc3NpYmx5X2NvbXByZXNzZWRfYm9keSA9IGInJworICAgIGNv
bXByZXNzID0gRmFsc2UKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBmcmFtZSA9IHN0cmVhbS5f
cmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3QoKQorICAgICAgICBpZiBmcmFtZS5vcGNvZGUg
PT0gY29tbW9uLk9QQ09ERV9DTE9TRToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHJlYW0uX2dl
dF9tZXNzYWdlX2Zyb21fZnJhbWUoZnJhbWUpCisgICAgICAgICAgICBzdHJlYW0uX3Byb2Nlc3Nf
Y2xvc2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIChGYWxzZSwgTm9uZSkK
KyAgICAgICAgY29tcHJlc3MgPSBjb21wcmVzcyBvciBmcmFtZS5yc3YxCisgICAgICAgIHBvc3Np
Ymx5X2NvbXByZXNzZWRfYm9keSArPSBmcmFtZS5wYXlsb2FkCisgICAgICAgIGlmIGZyYW1lLmZp
bjoKKyAgICAgICAgICAgIGJyZWFrCisgICAgaWYgY29tcHJlc3M6CisgICAgICAgIHJldHVybiAo
Y29tcHJlc3MsIHBvc3NpYmx5X2NvbXByZXNzZWRfYm9keSArIGInXHgwMFx4MDBceGZmXHhmZicp
CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIChjb21wcmVzcywgcG9zc2libHlfY29tcHJlc3Nl
ZF9ib2R5KQorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAg
cHJvY2Vzc29yID0gX2dldF9wZXJtZXNzYWdlX2RlZmxhdGVfZXh0ZW5zaW9uX3Byb2Nlc3Nvcihy
ZXF1ZXN0KQorICAgIHByb2Nlc3Nvci5zZXRfYmZpbmFsKF9iZmluYWwpCisgICAgaW5mbGF0ZXIg
PSB1dGlsLl9JbmZsYXRlcihfY2xpZW50X21heF93aW5kb3dfYml0cykKKyAgICB3aGlsZSBUcnVl
OgorICAgICAgICBjb21wcmVzcywgcG9zc2libHlfY29tcHJlc3NlZF9ib2R5ID0gcmVjZWl2ZShy
ZXF1ZXN0KQorICAgICAgICBib2R5ID0gTm9uZQorICAgICAgICBpZiBwb3NzaWJseV9jb21wcmVz
c2VkX2JvZHkgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBjb21wcmVz
czoKKyAgICAgICAgICAgIGluZmxhdGVyLmFwcGVuZChwb3NzaWJseV9jb21wcmVzc2VkX2JvZHkp
CisgICAgICAgICAgICBib2R5ID0gaW5mbGF0ZXIuZGVjb21wcmVzcygtMSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGJvZHkgPSBwb3NzaWJseV9jb21wcmVzc2VkX2JvZHkKKworICAgICAg
ICB0ZXh0ID0gYm9keS5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgaWYgcHJvY2Vzc29yOgorICAg
ICAgICAgICAgaWYgdGV4dCA9PSBfRU5BQkxFX01FU1NBR0U6CisgICAgICAgICAgICAgICAgcHJv
Y2Vzc29yLmVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCisgICAgICAgICAgICBlbGlmIHRl
eHQgPT0gX0RJU0FCTEVfTUVTU0FHRToKKyAgICAgICAgICAgICAgICBwcm9jZXNzb3IuZGlzYWJs
ZV9vdXRnb2luZ19jb21wcmVzc2lvbigpCisgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRf
bWVzc2FnZSh0ZXh0LCBiaW5hcnk9RmFsc2UpCisgICAgICAgIGlmIHRleHQgPT0gX0dPT0RCWUVf
TUVTU0FHRToKKyAgICAgICAgICAgIHJldHVybgorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBv
cnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtcGFyYW1ldGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3Nh
Z2UtZGVmbGF0ZS1wYXJhbWV0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMzljNjNkYTM3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVm
bGF0ZS1wYXJhbWV0ZXIuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBX
ZWJTb2NrZXQgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4iKTsKKword2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOworCit2YXIgY2xvc2VFdmVudDsKK3ZhciB3czsKK3ZhciBtZXNzYWdl
SW5kZXg7CisKK3ZhciBxdWVyaWVzID0gWworICAgICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgi
LAorICAgICJjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciIsCisgICAgImNsaWVudF9tYXhfd2lu
ZG93X2JpdHM9OCZjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciIKK107CisKKy8vIFRoZSBmaXJz
dCBtZXNzYWdlIGNvbnNpc3RzIG9mIGEgbG90IG9mICdiJyBhbmQgYSBmZXcgJ2EnIGF0IHRoZSBo
ZWFkIGFuZAorLy8gdGhlIHRhaWwsIHdoaWxlIHRoZSBzZWNvbmQgb25lIGNvbnNpc3RzIG9mICdh
Jy4KK3ZhciBmaXJzdE1lc3NhZ2UgPSAnJzsKK3ZhciBzZWNvbmRNZXNzYWdlID0gJyc7Citmb3Ig
KHZhciBpID0gMDsgaSA8IDE2OyArK2kpIHsKKyAgICBmaXJzdE1lc3NhZ2UgKz0gJ2EnOworICAg
IHNlY29uZE1lc3NhZ2UgKz0gJ2EnOworfQorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDI0OyArK2kp
IHsKKyAgICBmaXJzdE1lc3NhZ2UgKz0gJ2InOworICAgIHNlY29uZE1lc3NhZ2UgKz0gJ2EnOwor
fQorZm9yICh2YXIgaSA9IDA7IGkgPCAxNjsgKytpKSB7CisgICAgZmlyc3RNZXNzYWdlICs9ICdh
JzsKKyAgICBzZWNvbmRNZXNzYWdlICs9ICdhJzsKK30KKworZnVuY3Rpb24gZG9UZXN0KHF1ZXJ5
SW5kZXgpCit7CisgICAgdmFyIHF1ZXJ5ID0gcXVlcmllc1txdWVyeUluZGV4XTsKKyAgICBkZWJ1
ZygiVGVzdGluZyBxdWVyeTogXCIiICsgcXVlcnkgKyAiXCIiKTsKKworICAgIHZhciB1cmwgPSAi
d3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9w
ZXJtZXNzYWdlLWRlZmxhdGU/IiArIHF1ZXJ5OworICAgIHdzID0gbmV3IFdlYlNvY2tldCh1cmwp
OworICAgIG1lc3NhZ2VJbmRleCA9IDA7CisKKyAgICB3cy5vbm9wZW4gPSBmdW5jdGlvbihldmVu
dCkKKyAgICB7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgid3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScpICE9IC0xIik7CisgICAgICAgIHBhcmFtZXRlcnMgPSBxdWVyeS5z
cGxpdCgnJicpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBzaG91bGRCZVRydWUoIndzLmV4dGVuc2lvbnMuc2VhcmNoKCci
ICsgcGFyYW1ldGVyc1tpXSArICInKSAhPSAtMSIpOworICAgICAgICB3cy5zZW5kKGZpcnN0TWVz
c2FnZSk7CisgICAgfTsKKworICAgIHdzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQorICAg
IHsKKyAgICAgICAgaWYgKG1lc3NhZ2VJbmRleCA9PT0gMCkgeworICAgICAgICAgICAgc2hvdWxk
QmUoImV2ZW50LmRhdGEiLCAiZmlyc3RNZXNzYWdlIik7CisgICAgICAgICAgICBtZXNzYWdlSW5k
ZXggKz0gMQorICAgICAgICAgICAgd3Muc2VuZChzZWNvbmRNZXNzYWdlKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC5kYXRhIiwgInNlY29uZE1lc3NhZ2Ui
KTsKKyAgICAgICAgICAgIHdzLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgd3Mu
b25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgZGVidWcoIm9uY2xvc2Uo
KSB3YXMgY2FsbGVkLiIpOworICAgICAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgICAgICBpZiAocXVlcnlJbmRl
eCA9PT0gcXVlcmllcy5sZW5ndGggLSAxKQorICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRvVGVzdChxdWVyeUluZGV4ICsgMSk7CisgICAgfTsK
K30KKworZG9UZXN0KDApOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQv
YmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNldC1iZmluYWwuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1k
ZWZsYXRlLXNldC1iZmluYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMDUzOWZhNGVlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0
ZS1zZXQtYmZpbmFsLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2Pgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgcmVj
ZWl2aW5nIGNvbXByZXNzZWQgZnJhbWVzIHdpdGggQkZJTkFMID0gMS4iKTsKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgY2xvc2VFdmVudDsKK3ZhciB3czsKK3ZhciBtZXNz
YWdlSW5kZXg7CisKK3ZhciBtZXNzYWdlcyA9IFsKKyAgICAiSGVsbG8iLAorICAgICJXb3JsZCIs
CisgICAgIkdvb2RieWUiCitdOworCit3cyA9IG5ldyBXZWJTb2NrZXQoIndzOi8vbG9jYWxob3N0
Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZs
YXRlP3NldF9iZmluYWwiKTsKKword3Mub25vcGVuID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAg
bWVzc2FnZUluZGV4ID0gMDsKKyAgICBkZWJ1ZygiU2VuZGluZyBtZXNzYWdlOiBcIiIgKyBtZXNz
YWdlc1ttZXNzYWdlSW5kZXhdICsgIlwiIik7CisgICAgd3Muc2VuZChtZXNzYWdlc1ttZXNzYWdl
SW5kZXhdKTsKK307CisKK3dzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIHNo
b3VsZEJlKCJldmVudC5kYXRhIiwgIiciICsgbWVzc2FnZXNbbWVzc2FnZUluZGV4XSArICInIik7
CisgICAgaWYgKG1lc3NhZ2VJbmRleCA9PT0gbWVzc2FnZXMubGVuZ3RoIC0gMSkKKyAgICAgICAg
d3MuY2xvc2UoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbWVzc2FnZUluZGV4ICs9IDE7CisgICAg
ICAgIGRlYnVnKCJTZW5kaW5nIG1lc3NhZ2U6IFwiIiArIG1lc3NhZ2VzW21lc3NhZ2VJbmRleF0g
KyAiXCIiKTsKKyAgICAgICAgd3Muc2VuZChtZXNzYWdlc1ttZXNzYWdlSW5kZXhdKTsKKyAgICB9
Cit9OworCit3cy5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgZGVidWcoIm9uY2xv
c2UoKSB3YXMgY2FsbGVkLiIpOworICAgIGNsb3NlRXZlbnQgPSBldmVudDsKKyAgICBzaG91bGRC
ZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK307CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRl
ZmxhdGUtc3BsaXQtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFt
ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTgwMWRkY2Nl
NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFtZXMu
aHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorZGVzY3JpcHRpb24oIkRlZmxhdGVkIG1lc3NhZ2UgaXMgc3Bs
aXQgdG8gbXVsdGlwbGUgZnJhbWVzLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3ZhciB3cyA9IG5ldyBXZWJTb2NrZXQoJ3dzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNwbGl0LWZyYW1l
cycpOword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHdzLnNlbmQoJ2tpY2snKTsKK307
CisKK3dzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpCit7CisgICAgZGVidWcoJ29ubWVzc2FnZTog
JyArIGUuZGF0YSk7Cit9CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihlKQoreworICAgIGRlYnVn
KCdvbmNsb3NlJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9OworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNwbGl0LWZyYW1l
c193c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2lt
cG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFtZXNfd3NoLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYjM2ZjNiODZlMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1w
b3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNwbGl0LWZyYW1lc193c2gucHkKQEAgLTAs
MCArMSw1MyBAQAorIyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm
aWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCitmcm9tIG1vZF9weXdl
YnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBjcmVhdGVfaGVhZGVyCisK
KworZGVmIF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2V4dGVuc2lvbl9wcm9jZXNzb3IocmVxdWVz
dCk6CisgICAgZm9yIGV4dGVuc2lvbl9wcm9jZXNzb3IgaW4gcmVxdWVzdC53c19leHRlbnNpb25f
cHJvY2Vzc29yczoKKyAgICAgICAgaWYgaXNpbnN0YW5jZShleHRlbnNpb25fcHJvY2Vzc29yLCBQ
ZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvcik6CisgICAgICAgICAgICByZXR1cm4g
ZXh0ZW5zaW9uX3Byb2Nlc3NvcgorICAgIHJldHVybiBOb25lCisKKworZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIHByb2Nlc3NvciA9IF9nZXRfcGVybWVz
c2FnZV9kZWZsYXRlX2V4dGVuc2lvbl9wcm9jZXNzb3IocmVxdWVzdCkKKyAgICBhc3NlcnQgcHJv
Y2Vzc29yIGlzIG5vdCBOb25lCisgICAgIyBSZW1vdmUgZXh0ZW5zaW9uIHByb2Nlc3NvcnMgb3Ro
ZXIgdGhhbgorICAgICMgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IgdG8gYXZv
aWQgY29uZmxpY3QuCisgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtwcm9j
ZXNzb3JdCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICBs
aW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKKyAgICAjIEhlbGxvCisg
ICAgcGF5bG9hZCA9IGInXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMFx4MDBceDAwXHhmZlx4
ZmYnCisgICAgIyBTdHJpcCBceDAwXHgwMFx4ZmZceGZmCisgICAgc3RyaXBwZWQgPSBwYXlsb2Fk
WzotNF0KKworICAgIGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIoCisgICAgICAgIGNvbW1vbi5PUENP
REVfVEVYVCwKKyAgICAgICAgbGVuKHBheWxvYWQpLAorICAgICAgICBmaW49MCwKKyAgICAgICAg
cnN2MT0xLAorICAgICAgICByc3YyPTAsCisgICAgICAgIHJzdjM9MCwKKyAgICAgICAgbWFzaz1G
YWxzZSkKKyAgICByZXF1ZXN0LndzX3N0cmVhbS5fd3JpdGUoaGVhZGVyICsgcGF5bG9hZCkKKwor
ICAgIGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIoCisgICAgICAgIGNvbW1vbi5PUENPREVfQ09OVElO
VUFUSU9OLAorICAgICAgICBsZW4oc3RyaXBwZWQpLAorICAgICAgICBmaW49MSwKKyAgICAgICAg
cnN2MT0wLAorICAgICAgICByc3YyPTAsCisgICAgICAgIHJzdjM9MCwKKyAgICAgICAgbWFzaz1G
YWxzZSkKKyAgICByZXF1ZXN0LndzX3N0cmVhbS5fd3JpdGUoaGVhZGVyICsgc3RyaXBwZWQpCisK
KworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS11
bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25zZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxh
dGUtdW5zb2xpY2l0ZWQtbmVnb3RpYXRpb24tcmVzcG9uc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2EwZDQzYTgyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5r
L3Blcm1lc3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25zZS5odG1s
CkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGln
bm9yZXMgdW5zb2xpY2l0ZWQgbmVnb3RpYXRpb24gcmVzcG9uc2UuIik7CisKK3dpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGNsb3NlRXZlbnQ7CisKK3ZhciB1cmwgPSAid3M6Ly9s
b2NhbGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNz
YWdlLWRlZmxhdGUtdW5zb2xpY2l0ZWQtbmVnb3RpYXRpb24tcmVzcG9uc2UiOwordmFyIHdzID0g
bmV3IFdlYlNvY2tldCh1cmwpOworCit3cy5vbm9wZW4gPSBmdW5jdGlvbigpCit7CisgICAgZGVi
dWcoJ1BBU1Mgb25vcGVuJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3cy5leHRlbnNp
b25zJywgJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0xNTsgc2Vy
dmVyX25vX2NvbnRleHRfdGFrZW92ZXInKTsKKyAgICB3cy5jbG9zZSgpOworfQorCit3cy5vbmNs
b3NlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgd2luZG93LmV2ZW50ID0gZXZlbnQ7CisgICAg
c2hvdWxkQmVUcnVlKCdldmVudC53YXNDbGVhbicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2Ut
ZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25zZV93c2gucHkgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1l
c3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25zZV93c2gucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhjZDIzOTgyYzkzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9p
bXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtdW5zb2xpY2l0ZWQtbmVnb3RpYXRpb24t
cmVzcG9uc2Vfd3NoLnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMgQ29weXJpZ2h0IDIwMTMsIEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0
IHVybHBhcnNlCitmcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNz
YWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcgorCisKK2RlZiBfZ2V0X3Blcm1lc3NhZ2VfZGVm
bGF0ZV9leHRlbnNpb25fcHJvY2Vzc29yKHJlcXVlc3QpOgorICAgIGZvciBleHRlbnNpb25fcHJv
Y2Vzc29yIGluIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnM6CisgICAgICAgIGlmIGlz
aW5zdGFuY2UoZXh0ZW5zaW9uX3Byb2Nlc3NvciwgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3IpOgorICAgICAgICAgICAgcmV0dXJuIGV4dGVuc2lvbl9wcm9jZXNzb3IKKyAgICBy
ZXR1cm4gTm9uZQorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKKyAgICBwcm9jZXNzb3IgPSBfZ2V0X3Blcm1lc3NhZ2VfZGVmbGF0ZV9leHRlbnNpb25fcHJv
Y2Vzc29yKHJlcXVlc3QpCisgICAgIyBSZW1vdmUgZXh0ZW5zaW9uIHByb2Nlc3NvcnMgb3RoZXIg
dGhhbiBQZXJNZXNzYWdlRGVmbGF0ZVByb2Nlc3NvcgorICAgICMgdG8gYXZvaWQgY29uZmxpY3Qu
CisgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtwcm9jZXNzb3JdCisgICAg
aWYgbm90IHByb2Nlc3NvcjoKKyAgICAgICAgcmV0dXJuCisgICAgIyBJbnNlcnQgZmFrZSBzZXJ2
ZXJfLi4uIHBhcmFtZXRlcnMgdG8gbWFrZSB0aGUgc2VydmVyIGNyZWF0ZQorICAgICMgYSBuZWdv
dGlhdGlvbiByZXNwb25zZSBpbmNsdWRpbmcgdGhlIHBhcmFtZXRlcnMuCisgICAgcHJvY2Vzc29y
Ll9yZXF1ZXN0LmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9u
ZSkKKyAgICBwcm9jZXNzb3IuX3JlcXVlc3QuYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5k
b3dfYml0cycsICcxNScpCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0
KToKKyAgICBwYXNzCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1l
c3NhZ2UtZGVmbGF0ZS13aW5kb3ctYml0cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtd2lu
ZG93LWJpdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWEx
YWZjYThhNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS13aW5kb3ct
Yml0cy5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IFdlYlNvY2tldCBw
ZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uOiB3aW5kb3cgYml0cy4iKTsKKword2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgY2xvc2VFdmVudDsKK3ZhciB3czsKK3ZhciBtZXNz
YWdlSW5kZXg7CisKK3ZhciBxdWVyaWVzID0gWworICAgICJjbGllbnRfbWF4X3dpbmRvd19iaXRz
PTgiLAorICAgICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTE1IiwKKyAgICAiY2xpZW50X25vX2Nv
bnRleHRfdGFrZW92ZXIiLAorICAgICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgmY2xpZW50X25v
X2NvbnRleHRfdGFrZW92ZXIiCitdOworCisvLyBXZSBjb25zdHJ1Y3QgdGhpcyBtZXNzYWdlIHNv
IHRoYXQgdGhlIHRlc3Qgd2lsbCBmYWlsIGlmIHRoZSBjbGllbnQgZGVmbGF0ZXIKKy8vIGRvZXNu
J3QgY2FyZSBhYm91dCBjbGllbnRfbWF4X3dpbmRvd19iaXRzLgordmFyIGFscGhhID0gJ2FiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwordmFyIG1lc3NhZ2UgPSAnJzsKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMzAwMDA7ICsraSkgeworICAgIG1lc3NhZ2UgKz0gJy0nOworfQorbWVzc2FnZSA9IGFs
cGhhICsgbWVzc2FnZSArIGFscGhhOworCitmdW5jdGlvbiBkb1Rlc3QocXVlcnlJbmRleCkKK3sK
KyAgICB2YXIgcXVlcnkgPSBxdWVyaWVzW3F1ZXJ5SW5kZXhdOworICAgIGRlYnVnKCJUZXN0aW5n
IHF1ZXJ5OiBcIiIgKyBxdWVyeSArICJcIiIpOworCisgICAgdmFyIHVybCA9ICJ3czovL2xvY2Fs
aG9zdDo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2Ut
ZGVmbGF0ZS1tYW51YWw/IiArIHF1ZXJ5OworICAgIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwor
CisgICAgd3Mub25vcGVuID0gZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBzaG91bGRC
ZVRydWUoIndzLmV4dGVuc2lvbnMuc2VhcmNoKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSAhPSAtMSIp
OworICAgICAgICBwYXJhbWV0ZXJzID0gcXVlcnkuc3BsaXQoJyYnKTsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJ3cy5leHRlbnNpb25zLnNlYXJjaCgnIiArIHBhcmFtZXRlcnNbaV0gKyAiJykgIT0g
LTEiKTsKKyAgICAgICAgd3Muc2VuZChtZXNzYWdlKTsKKyAgICB9OworCisgICAgd3Mub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICAvLyBCZWNhdXNlIG1lc3NhZ2Ug
aXMgdG9vIGxvbmcgYW5kIHNob3VsZEJlIHRlbmRzIHRvIGJlIHRpbWVkIG91dCBvbiBmYWlsLAor
ICAgICAgICAvLyB3ZSB1c2UgY3VzdG9tIG91dHB1dCByYXRoZXIgdGhhbiBzaG91bGRCZS4KKyAg
ICAgICAgaWYgKGV2ZW50LmRhdGEgPT09IG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIGRlYnVnKCdQ
QVNTIGV2ZW50LmRhdGEgaXMgbWVzc2FnZScpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgZGVidWcoJ0ZBSUwgZXZlbnQuZGF0YSBzaG91bGQgYmUgbWVzc2FnZSBidXQgaXMgJyArIGV2
ZW50LmRhdGEpOworICAgICAgICB9CisgICAgICAgIHdzLmNsb3NlKCk7CisgICAgfTsKKworICAg
IHdzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGRlYnVnKCJvbmNs
b3NlKCkgd2FzIGNhbGxlZC4iKTsKKyAgICAgICAgY2xvc2VFdmVudCA9IGV2ZW50OworICAgICAg
ICBzaG91bGRCZVRydWUoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKKyAgICAgICAgaWYgKHF1ZXJ5
SW5kZXggPT09IHF1ZXJpZXMubGVuZ3RoIC0gMSkKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb1Rlc3QocXVlcnlJbmRleCArIDEpOworICAg
IH07Cit9CisKK2RvVGVzdCgwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9y
dGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZV93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0
ZV93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA1MGNjMjJk
MjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGVfd3NoLnB5CkBAIC0w
LDAgKzEsODggQEAKKyMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlz
dHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVybHBhcnNlCitmcm9tIG1vZF9w
eXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblBy
b2Nlc3NvcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgRXh0ZW5zaW9u
UHJvY2Vzc29ySW50ZXJmYWNlCitmcm9tIG1vZF9weXdlYnNvY2tldC5jb21tb24gaW1wb3J0IEV4
dGVuc2lvblBhcmFtZXRlcgorCitfR09PREJZRV9NRVNTQUdFID0gdSdHb29kYnllJworX0VOQUJM
RV9NRVNTQUdFID0gdSdFbmFibGVDb21wcmVzc2lvbicKK19ESVNBQkxFX01FU1NBR0UgPSB1J0Rp
c2FibGVDb21wcmVzc2lvbicKK19iZmluYWwgPSBGYWxzZQorCisKK2RlZiBfZ2V0X3Blcm1lc3Nh
Z2VfZGVmbGF0ZV9leHRlbnNpb25fcHJvY2Vzc29yKHJlcXVlc3QpOgorICAgIGZvciBleHRlbnNp
b25fcHJvY2Vzc29yIGluIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnM6CisgICAgICAg
IGlmIGlzaW5zdGFuY2UoZXh0ZW5zaW9uX3Byb2Nlc3NvciwgUGVyTWVzc2FnZURlZmxhdGVFeHRl
bnNpb25Qcm9jZXNzb3IpOgorICAgICAgICAgICAgcmV0dXJuIGV4dGVuc2lvbl9wcm9jZXNzb3IK
KyAgICByZXR1cm4gTm9uZQorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KToKKyAgICBnbG9iYWwgX2JmaW5hbAorICAgIHByb2Nlc3NvciA9IF9nZXRfcGVybWVz
c2FnZV9kZWZsYXRlX2V4dGVuc2lvbl9wcm9jZXNzb3IocmVxdWVzdCkKKyAgICAjIFJlbW92ZSBl
eHRlbnNpb24gcHJvY2Vzc29ycyBvdGhlciB0aGFuIFBlck1lc3NhZ2VEZWZsYXRlUHJvY2Vzc29y
CisgICAgIyB0byBhdm9pZCBjb25mbGljdC4KKyAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9j
ZXNzb3JzID0gW3Byb2Nlc3Nvcl0KKyAgICBpZiBub3QgcHJvY2Vzc29yOgorICAgICAgICByZXR1
cm4KKyAgICByID0gcmVxdWVzdC53c19yZXNvdXJjZS5zcGxpdCgnPycsIDEpCisgICAgaWYgbGVu
KHIpID09IDE6CisgICAgICAgIHJldHVybgorICAgIHBhcmFtZXRlcnMgPSB1cmxwYXJzZS5wYXJz
ZV9xcyhyWzFdLCBrZWVwX2JsYW5rX3ZhbHVlcz1UcnVlKQorICAgIGlmICdjbGllbnRfbWF4X3dp
bmRvd19iaXRzJyBpbiBwYXJhbWV0ZXJzOgorICAgICAgICB3aW5kb3dfYml0cyA9IGludChwYXJh
bWV0ZXJzWydjbGllbnRfbWF4X3dpbmRvd19iaXRzJ11bMF0pCisgICAgICAgIHByb2Nlc3Nvci5z
ZXRfY2xpZW50X21heF93aW5kb3dfYml0cyh3aW5kb3dfYml0cykKKyAgICBpZiAnY2xpZW50X25v
X2NvbnRleHRfdGFrZW92ZXInIGluIHBhcmFtZXRlcnM6CisgICAgICAgIHByb2Nlc3Nvci5zZXRf
Y2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIoVHJ1ZSkKKyAgICBpZiAnc2V0X2JmaW5hbCcgaW4g
cGFyYW1ldGVyczoKKyAgICAgICAgX2JmaW5hbCA9IFRydWUKKworCitkZWYgd2ViX3NvY2tldF90
cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHByb2Nlc3NvciA9IF9nZXRfcGVybWVzc2FnZV9k
ZWZsYXRlX2V4dGVuc2lvbl9wcm9jZXNzb3IocmVxdWVzdCkKKyAgICBwcm9jZXNzb3Iuc2V0X2Jm
aW5hbChfYmZpbmFsKQorICAgIHdoaWxlIFRydWU6CisgICAgICAgIGxpbmUgPSByZXF1ZXN0Lndz
X3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQorICAgICAgICBpZiBsaW5lIGlzIE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1bmljb2RlKToKKyAg
ICAgICAgICAgIGlmIHByb2Nlc3NvcjoKKyAgICAgICAgICAgICAgICBpZiBsaW5lID09IF9FTkFC
TEVfTUVTU0FHRToKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLmVuYWJsZV9vdXRnb2lu
Z19jb21wcmVzc2lvbigpCisgICAgICAgICAgICAgICAgZWxpZiBsaW5lID09IF9ESVNBQkxFX01F
U1NBR0U6CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5kaXNhYmxlX291dGdvaW5nX2Nv
bXByZXNzaW9uKCkKKyAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShs
aW5lLCBiaW5hcnk9RmFsc2UpCisgICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NB
R0U6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCisKKworIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDc3MmY0ZDYyYzg3Li5jNDMzY2IyMzBmNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNzUsMTEgKzExNzUsNiBAQCBmYXN0L2Zvcm1zL2Rh
dGFsaXN0L3VwZGF0ZS1yYW5nZS13aXRoLWRhdGFsaXN0Lmh0bWwgWyBTa2lwIF0KICMgSW5zcGVj
dG9yIHRlc3RzIGRvbid0IHdvcmsgd2l0aCBwbGF0Zm9ybSBXZWJTb2NrZXRzIEFQSQogd2Via2l0
Lm9yZy9iLzIwMDE2MiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci8g
WyBTa2lwIF0KIAotIyBFeHRlbnNpb25zIG5vdCBzdXBwb3J0ZWQgd2l0aCBwbGF0Zm9ybSBXZWJT
b2NrZXRzIEFQSQotd2Via2l0Lm9yZy9iLzE5OTk0MyBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2V4dGVuc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5OTk0MyBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJh
bWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5OTk0MyBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtcGFyYW1ldGVyLmh0bWwgWyBGYWlsdXJl
IF0KLQogIyBTZXJ2ZXIgY29va2llIG5vdCBoYW5kbGVkIHdpdGggcGxhdGZvcm0gV2ViU29ja2V0
cyBBUEkKIHdlYmtpdC5vcmcvYi8yMDAxNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJzb2NrZXRzL2Nvb2tpZXMvMDAyLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8y
MDAxNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMv
MDA3Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTM5NTIsNiArMzk0NywxNSBAQCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtbXVsdGljb2wvbXVsdGljb2wtd2lkdGgtY2gtMDAx
LnhodCBbIFBhcwogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9zdmctdGFyZ2V0LXJlZnRlc3QuaHR0cHMuaHRtbCBbIFBhc3Mg
XQogCisjIHBlcm1lc3NhZ2UtZGVmbGF0ZSBXZWJTb2NrZXQgZXh0ZW5zaW9uCitodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1j
b21wLWJpdC1vbm9mZi5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1pbnZhbGlkLXBhcmFtZXRlci5o
dG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2Js
aW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1wYXJhbWV0ZXIuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUt
c2V0LWJmaW5hbC5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFtZXMuaHRtbCBbIFBh
c3MgXQoraHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJt
ZXNzYWdlLWRlZmxhdGUtdW5zb2xpY2l0ZWQtbmVnb3RpYXRpb24tcmVzcG9uc2UuaHRtbCBbIFBh
c3MgXQoraHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJt
ZXNzYWdlLWRlZmxhdGUtd2luZG93LWJpdHMuaHRtbCBbIFBhc3MgXQorCiAjLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2YgUEFTU0lORyB0ZXN0cy4gU2VlIHRvcCBvZiBm
aWxlIHdoZXJlIHRvIHB1dCBuZXcgZXhwZWN0YXRpb25zLgogIy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1pbnZhbGlkLXBhcmFtZXRlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyNGE2ZTQ1MGZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1pbnZhbGlkLXBhcmFtZXRlci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGVzdCB3aGV0aGVyIFdlYlNvY2tldCByZWplY3RzIGlu
dmFsaWQgZGVmbGF0ZS1mcmFtZSBwYXJhbWV0ZXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKK1Rlc3RpbmcgcGFyYW1ldGVyOiAieC1mb28iCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4K
K1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBmYWxzZQorVGVzdGluZyBwYXJhbWV0ZXI6ICJt
YXhfd2luZG93X2JpdHM9NyIKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50
Lndhc0NsZWFuIGlzIGZhbHNlCitUZXN0aW5nIHBhcmFtZXRlcjogIm1heF93aW5kb3dfYml0cz0x
NiIKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIGZh
bHNlCitUZXN0aW5nIHBhcmFtZXRlcjogIm5vX2NvbnRleHRfdGFrZW92ZXI9Zm9vIgorb25jbG9z
ZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1Rlc3Rp
bmcgcGFyYW1ldGVyOiAibWF4X3dpbmRvd19iaXRzPTg7IG5vX2NvbnRleHRfdGFrZW92ZXI7IHgt
Zm9vIgorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLXBhcmFtZXRlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZs
YXRlLWZyYW1lLXBhcmFtZXRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjdlZTQ1NTUyODNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1m
cmFtZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1Rlc3QgV2ViU29j
a2V0IGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKK1Rlc3RpbmcgcXVlcnk6ICJtYXhfd2luZG93X2JpdHM9OCIKK0ZBSUwgd3MuZXh0ZW5zaW9u
cy5zZWFyY2goJ3gtd2Via2l0LWRlZmxhdGUtZnJhbWUnKSAhPSAtMSBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgorRkFJTCB3cy5leHRlbnNpb25zLnNlYXJjaCgnbWF4X3dpbmRvd19iaXRzPTgn
KSAhPSAtMSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBldmVudC5kYXRhIGlzIGZp
cnN0TWVzc2FnZQorUEFTUyBldmVudC5kYXRhIGlzIHNlY29uZE1lc3NhZ2UKK29uY2xvc2UoKSB3
YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK1Rlc3RpbmcgcXVl
cnk6ICJub19jb250ZXh0X3Rha2VvdmVyIgorRkFJTCB3cy5leHRlbnNpb25zLnNlYXJjaCgneC13
ZWJraXQtZGVmbGF0ZS1mcmFtZScpICE9IC0xIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitG
QUlMIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdub19jb250ZXh0X3Rha2VvdmVyJykgIT0gLTEgc2hv
dWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZXZlbnQuZGF0YSBpcyBmaXJzdE1lc3NhZ2UK
K1BBU1MgZXZlbnQuZGF0YSBpcyBzZWNvbmRNZXNzYWdlCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4K
K1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitUZXN0aW5nIHF1ZXJ5OiAibWF4X3dp
bmRvd19iaXRzPTgmbm9fY29udGV4dF90YWtlb3ZlciIKK0ZBSUwgd3MuZXh0ZW5zaW9ucy5zZWFy
Y2goJ3gtd2Via2l0LWRlZmxhdGUtZnJhbWUnKSAhPSAtMSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorRkFJTCB3cy5leHRlbnNpb25zLnNlYXJjaCgnbWF4X3dpbmRvd19iaXRzPTgnKSAhPSAt
MSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorRkFJTCB3cy5leHRlbnNpb25zLnNlYXJjaCgn
bm9fY29udGV4dF90YWtlb3ZlcicpICE9IC0xIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQ
QVNTIGV2ZW50LmRhdGEgaXMgZmlyc3RNZXNzYWdlCitQQVNTIGV2ZW50LmRhdGEgaXMgc2Vjb25k
TWVzc2FnZQorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4g
aXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2V4dGVuc2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZXh0ZW5zaW9ucy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0MzE4Yzky
OGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZXh0ZW5zaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNCBAQAorVGVzdCBXZWJTb2NrZXQuZXh0ZW5zaW9ucyBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworQ2hlY2sgdGhlIHZhbHVlIGJlZm9yZSBvcGVuaW5nIHRoZSBj
b25uZWN0aW9uOgorUEFTUyB3cy5leHRlbnNpb25zIGlzICIiCitDaGVjayBpZiB0aGUgdmFsdWUg
aXMgcmVhZCBvbmx5OgorUEFTUyB3cy5leHRlbnNpb25zID0gJ2Zvbyc7IHdzLmV4dGVuc2lvbnMg
aXMgIiIKK0NoZWNrIHRoZSB2YWx1ZSBhZnRlciB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hl
ZDoKK0ZBSUwgd3MuZXh0ZW5zaW9ucyBzaG91bGQgYmUgeC13ZWJraXQtZGVmbGF0ZS1mcmFtZS4g
V2FzIHBlcm1lc3NhZ2UtZGVmbGF0ZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdl
LWRlZmxhdGUtY29tcC1iaXQtb25vZmYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVy
bWVzc2FnZS1kZWZsYXRlLWNvbXAtYml0LW9ub2ZmLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDAxMDE5M2ViMWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtY29tcC1iaXQtb25vZmYtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK1Rlc3QgY29tcHJlc3Npb24gZW5hYmxlZC9kaXNhYmxl
ZCBmcmFtZSByZWNlaXZpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworU2VuZGlu
ZyBtZXNzYWdlOiAiSGVsbG8iCitQQVNTIGV2ZW50LmRhdGEgaXMgJ0hlbGxvJworU2VuZGluZyBt
ZXNzYWdlOiAiRGlzYWJsZUNvbXByZXNzaW9uIgorUEFTUyBldmVudC5kYXRhIGlzICdEaXNhYmxl
Q29tcHJlc3Npb24nCitTZW5kaW5nIG1lc3NhZ2U6ICJXb3JsZCIKK1BBU1MgZXZlbnQuZGF0YSBp
cyAnV29ybGQnCitTZW5kaW5nIG1lc3NhZ2U6ICJFbmFibGVDb21wcmVzc2lvbiIKK1BBU1MgZXZl
bnQuZGF0YSBpcyAnRW5hYmxlQ29tcHJlc3Npb24nCitTZW5kaW5nIG1lc3NhZ2U6ICIiCitQQVNT
IGV2ZW50LmRhdGEgaXMgJycKK1NlbmRpbmcgbWVzc2FnZTogIiIKK1BBU1MgZXZlbnQuZGF0YSBp
cyAnJworU2VuZGluZyBtZXNzYWdlOiAiR29vZGJ5ZSIKK1BBU1MgZXZlbnQuZGF0YSBpcyAnR29v
ZGJ5ZScKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1w
YXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRl
LWludmFsaWQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMTk0YWRjNjM5ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9i
bGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjggQEAKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgcmVqZWN0cyBpbnZhbGlkIHBl
cm1lc3NhZ2UtZGVmbGF0ZSBwYXJhbWV0ZXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKK1Rlc3RpbmcgcGFyYW1ldGVyOiAieC1mb28iCitQQVNTIG9uZXJyb3IoKSB3YXMgY2FsbGVk
CitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBmYWxz
ZQorVGVzdGluZyBwYXJhbWV0ZXI6ICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTciCitQQVNTIG9u
ZXJyb3IoKSB3YXMgY2FsbGVkCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVu
dC53YXNDbGVhbiBpcyBmYWxzZQorVGVzdGluZyBwYXJhbWV0ZXI6ICJjbGllbnRfbWF4X3dpbmRv
d19iaXRzPTE2IgorUEFTUyBvbmVycm9yKCkgd2FzIGNhbGxlZAorb25jbG9zZSgpIHdhcyBjYWxs
ZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1Rlc3RpbmcgcGFyYW1ldGVy
OiAiY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXI9Zm9vIgorUEFTUyBvbmVycm9yKCkgd2FzIGNh
bGxlZAorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMg
ZmFsc2UKK1Rlc3RpbmcgcGFyYW1ldGVyOiAiY2xpZW50X21heF93aW5kb3dfYml0cz04OyBjbGll
bnRfbm9fY29udGV4dF90YWtlb3ZlcjsgeC1mb28iCitQQVNTIG9uZXJyb3IoKSB3YXMgY2FsbGVk
CitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBmYWxz
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1wYXJhbWV0ZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXBhcmFtZXRlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAwNDZi
ODU1MjI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZs
YXRlLXBhcmFtZXRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCBXZWJTb2Nr
ZXQgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCitUZXN0aW5nIHF1ZXJ5OiAiY2xpZW50X21heF93aW5kb3dfYml0cz04IgorUEFTUyB3
cy5leHRlbnNpb25zLnNlYXJjaCgncGVybWVzc2FnZS1kZWZsYXRlJykgIT0gLTEgaXMgdHJ1ZQor
UEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgnY2xpZW50X21heF93aW5kb3dfYml0cz04JykgIT0g
LTEgaXMgdHJ1ZQorUEFTUyBldmVudC5kYXRhIGlzIGZpcnN0TWVzc2FnZQorUEFTUyBldmVudC5k
YXRhIGlzIHNlY29uZE1lc3NhZ2UKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2
ZW50Lndhc0NsZWFuIGlzIHRydWUKK1Rlc3RpbmcgcXVlcnk6ICJjbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlciIKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3Blcm1lc3NhZ2UtZGVmbGF0ZScp
ICE9IC0xIGlzIHRydWUKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2NsaWVudF9ub19jb250
ZXh0X3Rha2VvdmVyJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBldmVudC5kYXRhIGlzIGZpcnN0TWVz
c2FnZQorUEFTUyBldmVudC5kYXRhIGlzIHNlY29uZE1lc3NhZ2UKK29uY2xvc2UoKSB3YXMgY2Fs
bGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK1Rlc3RpbmcgcXVlcnk6ICJj
bGllbnRfbWF4X3dpbmRvd19iaXRzPTgmY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIiCitQQVNT
IHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSAhPSAtMSBpcyB0cnVl
CitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgnKSAh
PSAtMSBpcyB0cnVlCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdjbGllbnRfbm9fY29udGV4
dF90YWtlb3ZlcicpICE9IC0xIGlzIHRydWUKK1BBU1MgZXZlbnQuZGF0YSBpcyBmaXJzdE1lc3Nh
Z2UKK1BBU1MgZXZlbnQuZGF0YSBpcyBzZWNvbmRNZXNzYWdlCitvbmNsb3NlKCkgd2FzIGNhbGxl
ZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxp
bmsvcGVybWVzc2FnZS1kZWZsYXRlLXNldC1iZmluYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQv
YmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNldC1iZmluYWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NGYzMDgzMDBiNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zZXQtYmZpbmFsLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0IHJlY2VpdmluZyBjb21wcmVzc2VkIGZyYW1l
cyB3aXRoIEJGSU5BTCA9IDEuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworU2VuZGlu
ZyBtZXNzYWdlOiAiSGVsbG8iCitQQVNTIGV2ZW50LmRhdGEgaXMgJ0hlbGxvJworU2VuZGluZyBt
ZXNzYWdlOiAiV29ybGQiCitQQVNTIGV2ZW50LmRhdGEgaXMgJ1dvcmxkJworU2VuZGluZyBtZXNz
YWdlOiAiR29vZGJ5ZSIKK1BBU1MgZXZlbnQuZGF0YSBpcyAnR29vZGJ5ZScKK29uY2xvc2UoKSB3
YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBv
cnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtc3BsaXQtZnJhbWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxpdC1mcmFtZXMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMTEwZTcwN2JkNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zcGxp
dC1mcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0RlZmxhdGVkIG1lc3NhZ2Ug
aXMgc3BsaXQgdG8gbXVsdGlwbGUgZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworb25tZXNzYWdlOiBIZWxsb0hlbGxvCitvbmNsb3NlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxp
bmsvcGVybWVzc2FnZS1kZWZsYXRlLXVuc29saWNpdGVkLW5lZ290aWF0aW9uLXJlc3BvbnNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRl
ZC1uZWdvdGlhdGlvbi1yZXNwb25zZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjU5NDE5M2VkMWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0
ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXVuc29saWNpdGVkLW5lZ290aWF0aW9uLXJlc3Bv
bnNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IHdoZXRoZXIgV2ViU29ja2V0
IGlnbm9yZXMgdW5zb2xpY2l0ZWQgbmVnb3RpYXRpb24gcmVzcG9uc2UuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworUEFTUyBvbm9wZW4KK0ZBSUwgd3MuZXh0ZW5zaW9ucyBzaG91bGQg
YmUgcGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTE1OyBzZXJ2ZXJf
bm9fY29udGV4dF90YWtlb3Zlci4gV2FzIHBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX25vX2Nv
bnRleHRfdGFrZW92ZXI7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MTUuCitQQVNTIGV2ZW50Lndh
c0NsZWFuIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKK1NvbWUgdGVz
dHMgZmFpbGVkLgorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5r
L3Blcm1lc3NhZ2UtZGVmbGF0ZS13aW5kb3ctYml0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9i
bGluay9wZXJtZXNzYWdlLWRlZmxhdGUtd2luZG93LWJpdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNzQ4MDI5OGM3ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS13aW5kb3ctYml0cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAorVGVzdCBXZWJTb2NrZXQgcGVybWVzc2FnZS1kZWZs
YXRlIGV4dGVuc2lvbjogd2luZG93IGJpdHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworVGVzdGluZyBxdWVyeTogImNsaWVudF9tYXhfd2luZG93X2JpdHM9OCIKK1BBU1Mgd3MuZXh0
ZW5zaW9ucy5zZWFyY2goJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpICE9IC0xIGlzIHRydWUKK1BBU1Mg
d3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2NsaWVudF9tYXhfd2luZG93X2JpdHM9OCcpICE9IC0xIGlz
IHRydWUKK1BBU1MgZXZlbnQuZGF0YSBpcyBtZXNzYWdlCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4K
K1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitUZXN0aW5nIHF1ZXJ5OiAiY2xpZW50
X21heF93aW5kb3dfYml0cz0xNSIKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3Blcm1lc3Nh
Z2UtZGVmbGF0ZScpICE9IC0xIGlzIHRydWUKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2Ns
aWVudF9tYXhfd2luZG93X2JpdHM9MTUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIGV2ZW50LmRhdGEg
aXMgbWVzc2FnZQorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xl
YW4gaXMgdHJ1ZQorVGVzdGluZyBxdWVyeTogImNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIgor
UEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgncGVybWVzc2FnZS1kZWZsYXRlJykgIT0gLTEgaXMg
dHJ1ZQorUEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgnY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXInKSAhPSAtMSBpcyB0cnVlCitQQVNTIGV2ZW50LmRhdGEgaXMgbWVzc2FnZQorb25jbG9zZSgp
IHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQorVGVzdGluZyBx
dWVyeTogImNsaWVudF9tYXhfd2luZG93X2JpdHM9OCZjbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
ciIKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpICE9IC0x
IGlzIHRydWUKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2NsaWVudF9tYXhfd2luZG93X2Jp
dHM9OCcpICE9IC0xIGlzIHRydWUKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2NsaWVudF9u
b19jb250ZXh0X3Rha2VvdmVyJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBldmVudC5kYXRhIGlzIG1l
c3NhZ2UKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIwNTVlMDY4
MjViLi5mM2EwOGY0NmU1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTQ4NCwxMSArNDg0LDYgQEAgd2Via2l0Lm9yZy9iLzIwMDI5NSBmYXN0L3Zpc3Vh
bC12aWV3cG9ydC9jbGllbnQtcmVjdHMtcmVsYXRpdmUtdG8tbGF5b3V0LXZpZXdwb3IKICMgSW5z
cGVjdG9yIHRlc3RzIGRvbid0IHdvcmsgd2l0aCBwbGF0Zm9ybSBXZWJTb2NrZXRzIEFQSQogd2Vi
a2l0Lm9yZy9iLzIwMDE2MiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rv
ci8gWyBTa2lwIF0KIAotIyBFeHRlbnNpb25zIG5vdCBzdXBwb3J0ZWQgd2l0aCBwbGF0Zm9ybSBX
ZWJTb2NrZXRzIEFQSQotd2Via2l0Lm9yZy9iLzE5OTk0MyBodHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2V4dGVuc2lvbnMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5OTk0
MyBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1w
YXJhbWV0ZXIuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE5OTk0MyBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtcGFyYW1ldGVyLmh0bWwgWyBGYWls
dXJlIF0KLQogIyBTZXJ2ZXIgY29va2llIG5vdCBoYW5kbGVkIHdpdGggcGxhdGZvcm0gV2ViU29j
a2V0cyBBUEkKIHdlYmtpdC5vcmcvYi8yMDAxNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJzb2NrZXRzL2Nvb2tpZXMvMDAyLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi8yMDAxNjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nvb2tp
ZXMvMDA3Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTY3Niw2ICs2NzEsMTUgQEAgZmFzdC90ZXh0L3Zh
cmlhdGlvbnMgWyBQYXNzIF0KIGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMgWyBQYXNzIF0K
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvY29udGVudGV4dGVuc2lvbnMgWyBQYXNzIF0K
IAorIyBwZXJtZXNzYWdlLWRlZmxhdGUgV2ViU29ja2V0IGV4dGVuc2lvbgoraHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtY29t
cC1iaXQtb25vZmYuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1wYXJhbWV0ZXIuaHRt
bCBbIFBhc3MgXQoraHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGlu
ay9wZXJtZXNzYWdlLWRlZmxhdGUtcGFyYW1ldGVyLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNl
dC1iZmluYWwuaHRtbCBbIFBhc3MgXQoraHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9p
bXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtc3BsaXQtZnJhbWVzLmh0bWwgWyBQYXNz
IF0KK2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVz
c2FnZS1kZWZsYXRlLXVuc29saWNpdGVkLW5lZ290aWF0aW9uLXJlc3BvbnNlLmh0bWwgWyBQYXNz
IF0KK2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVz
c2FnZS1kZWZsYXRlLXdpbmRvdy1iaXRzLmh0bWwgWyBQYXNzIF0KKwogIy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8KICMgNS4gVEVTVFMgQ1JBU0hJTkcKICMvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9kZWZsYXRlLWZyYW1lLWludmFsaWQtcGFyYW1l
dGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjRhNmU0NTBm
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxhdGUtZnJhbWUtaW52YWxpZC1wYXJhbWV0ZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgcmVqZWN0
cyBpbnZhbGlkIGRlZmxhdGUtZnJhbWUgcGFyYW1ldGVycy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCitUZXN0aW5nIHBhcmFtZXRlcjogIngtZm9vIgorb25jbG9zZSgpIHdhcyBjYWxs
ZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1Rlc3RpbmcgcGFyYW1ldGVy
OiAibWF4X3dpbmRvd19iaXRzPTciCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VF
dmVudC53YXNDbGVhbiBpcyBmYWxzZQorVGVzdGluZyBwYXJhbWV0ZXI6ICJtYXhfd2luZG93X2Jp
dHM9MTYiCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBp
cyBmYWxzZQorVGVzdGluZyBwYXJhbWV0ZXI6ICJub19jb250ZXh0X3Rha2VvdmVyPWZvbyIKK29u
Y2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIGZhbHNlCitU
ZXN0aW5nIHBhcmFtZXRlcjogIm1heF93aW5kb3dfYml0cz04OyBub19jb250ZXh0X3Rha2VvdmVy
OyB4LWZvbyIKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFu
IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvZGVmbGF0ZS1mcmFtZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZGVmbGF0ZS1mcmFtZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi43ZWU0NTU1MjgzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2RlZmxh
dGUtZnJhbWUtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUZXN0IFdl
YlNvY2tldCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCitUZXN0aW5nIHF1ZXJ5OiAibWF4X3dpbmRvd19iaXRzPTgiCitGQUlMIHdzLmV4dGVu
c2lvbnMuc2VhcmNoKCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykgIT0gLTEgc2hvdWxkIGJlIHRy
dWUuIFdhcyBmYWxzZS4KK0ZBSUwgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ21heF93aW5kb3dfYml0
cz04JykgIT0gLTEgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgZXZlbnQuZGF0YSBp
cyBmaXJzdE1lc3NhZ2UKK1BBU1MgZXZlbnQuZGF0YSBpcyBzZWNvbmRNZXNzYWdlCitvbmNsb3Nl
KCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitUZXN0aW5n
IHF1ZXJ5OiAibm9fY29udGV4dF90YWtlb3ZlciIKK0ZBSUwgd3MuZXh0ZW5zaW9ucy5zZWFyY2go
J3gtd2Via2l0LWRlZmxhdGUtZnJhbWUnKSAhPSAtMSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgorRkFJTCB3cy5leHRlbnNpb25zLnNlYXJjaCgnbm9fY29udGV4dF90YWtlb3ZlcicpICE9IC0x
IHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGV2ZW50LmRhdGEgaXMgZmlyc3RNZXNz
YWdlCitQQVNTIGV2ZW50LmRhdGEgaXMgc2Vjb25kTWVzc2FnZQorb25jbG9zZSgpIHdhcyBjYWxs
ZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQorVGVzdGluZyBxdWVyeTogIm1h
eF93aW5kb3dfYml0cz04Jm5vX2NvbnRleHRfdGFrZW92ZXIiCitGQUlMIHdzLmV4dGVuc2lvbnMu
c2VhcmNoKCd4LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykgIT0gLTEgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KK0ZBSUwgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ21heF93aW5kb3dfYml0cz04Jykg
IT0gLTEgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgd3MuZXh0ZW5zaW9ucy5zZWFy
Y2goJ25vX2NvbnRleHRfdGFrZW92ZXInKSAhPSAtMSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNl
LgorUEFTUyBldmVudC5kYXRhIGlzIGZpcnN0TWVzc2FnZQorUEFTUyBldmVudC5kYXRhIGlzIHNl
Y29uZE1lc3NhZ2UKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0Ns
ZWFuIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9leHRlbnNpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2V4dGVuc2lvbnMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NDMx
OGM5MjhmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2V4dGVuc2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKK1Rlc3QgV2ViU29ja2V0LmV4dGVuc2lvbnMgYXR0cmlidXRlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKK0NoZWNrIHRoZSB2YWx1ZSBiZWZvcmUgb3BlbmluZyB0
aGUgY29ubmVjdGlvbjoKK1BBU1Mgd3MuZXh0ZW5zaW9ucyBpcyAiIgorQ2hlY2sgaWYgdGhlIHZh
bHVlIGlzIHJlYWQgb25seToKK1BBU1Mgd3MuZXh0ZW5zaW9ucyA9ICdmb28nOyB3cy5leHRlbnNp
b25zIGlzICIiCitDaGVjayB0aGUgdmFsdWUgYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJs
aXNoZWQ6CitGQUlMIHdzLmV4dGVuc2lvbnMgc2hvdWxkIGJlIHgtd2Via2l0LWRlZmxhdGUtZnJh
bWUuIFdhcyBwZXJtZXNzYWdlLWRlZmxhdGUuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVz
c2FnZS1kZWZsYXRlLWNvbXAtYml0LW9ub2ZmLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5r
L3Blcm1lc3NhZ2UtZGVmbGF0ZS1jb21wLWJpdC1vbm9mZi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwMTAxOTNlYjFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLWNvbXAtYml0LW9ub2ZmLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0IGNvbXByZXNzaW9uIGVuYWJsZWQvZGlz
YWJsZWQgZnJhbWUgcmVjZWl2aW5nLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1Nl
bmRpbmcgbWVzc2FnZTogIkhlbGxvIgorUEFTUyBldmVudC5kYXRhIGlzICdIZWxsbycKK1NlbmRp
bmcgbWVzc2FnZTogIkRpc2FibGVDb21wcmVzc2lvbiIKK1BBU1MgZXZlbnQuZGF0YSBpcyAnRGlz
YWJsZUNvbXByZXNzaW9uJworU2VuZGluZyBtZXNzYWdlOiAiV29ybGQiCitQQVNTIGV2ZW50LmRh
dGEgaXMgJ1dvcmxkJworU2VuZGluZyBtZXNzYWdlOiAiRW5hYmxlQ29tcHJlc3Npb24iCitQQVNT
IGV2ZW50LmRhdGEgaXMgJ0VuYWJsZUNvbXByZXNzaW9uJworU2VuZGluZyBtZXNzYWdlOiAiIgor
UEFTUyBldmVudC5kYXRhIGlzICcnCitTZW5kaW5nIG1lc3NhZ2U6ICIiCitQQVNTIGV2ZW50LmRh
dGEgaXMgJycKK1NlbmRpbmcgbWVzc2FnZTogIkdvb2RieWUiCitQQVNTIGV2ZW50LmRhdGEgaXMg
J0dvb2RieWUnCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVh
biBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLWludmFs
aWQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVm
bGF0ZS1pbnZhbGlkLXBhcmFtZXRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjE5NGFkYzYzOTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0
ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLWludmFsaWQtcGFyYW1ldGVyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDI4IEBACitUZXN0IHdoZXRoZXIgV2ViU29ja2V0IHJlamVjdHMgaW52YWxp
ZCBwZXJtZXNzYWdlLWRlZmxhdGUgcGFyYW1ldGVycy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCitUZXN0aW5nIHBhcmFtZXRlcjogIngtZm9vIgorUEFTUyBvbmVycm9yKCkgd2FzIGNh
bGxlZAorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMg
ZmFsc2UKK1Rlc3RpbmcgcGFyYW1ldGVyOiAiY2xpZW50X21heF93aW5kb3dfYml0cz03IgorUEFT
UyBvbmVycm9yKCkgd2FzIGNhbGxlZAorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3Nl
RXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1Rlc3RpbmcgcGFyYW1ldGVyOiAiY2xpZW50X21heF93
aW5kb3dfYml0cz0xNiIKK1BBU1Mgb25lcnJvcigpIHdhcyBjYWxsZWQKK29uY2xvc2UoKSB3YXMg
Y2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIGZhbHNlCitUZXN0aW5nIHBhcmFt
ZXRlcjogImNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyPWZvbyIKK1BBU1Mgb25lcnJvcigpIHdh
cyBjYWxsZWQKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFu
IGlzIGZhbHNlCitUZXN0aW5nIHBhcmFtZXRlcjogImNsaWVudF9tYXhfd2luZG93X2JpdHM9ODsg
Y2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXI7IHgtZm9vIgorUEFTUyBvbmVycm9yKCkgd2FzIGNh
bGxlZAorb25jbG9zZSgpIHdhcyBjYWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMg
ZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtcGFyYW1ldGVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1wYXJhbWV0
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4w
MDQ2Yjg1NTIyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2Ut
ZGVmbGF0ZS1wYXJhbWV0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1Rlc3QgV2Vi
U29ja2V0IHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworVGVzdGluZyBxdWVyeTogImNsaWVudF9tYXhfd2luZG93X2JpdHM9OCIKK1BB
U1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpICE9IC0xIGlzIHRy
dWUKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2NsaWVudF9tYXhfd2luZG93X2JpdHM9OCcp
ICE9IC0xIGlzIHRydWUKK1BBU1MgZXZlbnQuZGF0YSBpcyBmaXJzdE1lc3NhZ2UKK1BBU1MgZXZl
bnQuZGF0YSBpcyBzZWNvbmRNZXNzYWdlCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xv
c2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitUZXN0aW5nIHF1ZXJ5OiAiY2xpZW50X25vX2NvbnRl
eHRfdGFrZW92ZXIiCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdwZXJtZXNzYWdlLWRlZmxh
dGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdjbGllbnRfbm9f
Y29udGV4dF90YWtlb3ZlcicpICE9IC0xIGlzIHRydWUKK1BBU1MgZXZlbnQuZGF0YSBpcyBmaXJz
dE1lc3NhZ2UKK1BBU1MgZXZlbnQuZGF0YSBpcyBzZWNvbmRNZXNzYWdlCitvbmNsb3NlKCkgd2Fz
IGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitUZXN0aW5nIHF1ZXJ5
OiAiY2xpZW50X21heF93aW5kb3dfYml0cz04JmNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIgor
UEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgncGVybWVzc2FnZS1kZWZsYXRlJykgIT0gLTEgaXMg
dHJ1ZQorUEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgnY2xpZW50X21heF93aW5kb3dfYml0cz04
JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyB3cy5leHRlbnNpb25zLnNlYXJjaCgnY2xpZW50X25vX2Nv
bnRleHRfdGFrZW92ZXInKSAhPSAtMSBpcyB0cnVlCitQQVNTIGV2ZW50LmRhdGEgaXMgZmlyc3RN
ZXNzYWdlCitQQVNTIGV2ZW50LmRhdGEgaXMgc2Vjb25kTWVzc2FnZQorb25jbG9zZSgpIHdhcyBj
YWxsZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVk
L2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zZXQtYmZpbmFsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9y
dGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS1zZXQtYmZpbmFsLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODRmMzA4MzAwYjYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtc2V0LWJmaW5hbC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCByZWNlaXZpbmcgY29tcHJlc3NlZCBm
cmFtZXMgd2l0aCBCRklOQUwgPSAxLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1Nl
bmRpbmcgbWVzc2FnZTogIkhlbGxvIgorUEFTUyBldmVudC5kYXRhIGlzICdIZWxsbycKK1NlbmRp
bmcgbWVzc2FnZTogIldvcmxkIgorUEFTUyBldmVudC5kYXRhIGlzICdXb3JsZCcKK1NlbmRpbmcg
bWVzc2FnZTogIkdvb2RieWUiCitQQVNTIGV2ZW50LmRhdGEgaXMgJ0dvb2RieWUnCitvbmNsb3Nl
KCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXNwbGl0LWZyYW1lcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtc3BsaXQtZnJhbWVzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTExMGU3MDdi
ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUt
c3BsaXQtZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitEZWZsYXRlZCBtZXNz
YWdlIGlzIHNwbGl0IHRvIG11bHRpcGxlIGZyYW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK29ubWVzc2FnZTogSGVsbG9IZWxsbworb25jbG9zZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2ltcG9ydGVk
L2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1yZXNwb25z
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtdW5zb2xp
Y2l0ZWQtbmVnb3RpYXRpb24tcmVzcG9uc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41OTQxOTNlZDFhNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dwZS9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2lt
cG9ydGVkL2JsaW5rL3Blcm1lc3NhZ2UtZGVmbGF0ZS11bnNvbGljaXRlZC1uZWdvdGlhdGlvbi1y
ZXNwb25zZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCB3aGV0aGVyIFdlYlNv
Y2tldCBpZ25vcmVzIHVuc29saWNpdGVkIG5lZ290aWF0aW9uIHJlc3BvbnNlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1Mgb25vcGVuCitGQUlMIHdzLmV4dGVuc2lvbnMgc2hv
dWxkIGJlIHBlcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0cz0xNTsgc2Vy
dmVyX25vX2NvbnRleHRfdGFrZW92ZXIuIFdhcyBwZXJtZXNzYWdlLWRlZmxhdGU7IHNlcnZlcl9u
b19jb250ZXh0X3Rha2VvdmVyOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTE1LgorUEFTUyBldmVu
dC53YXNDbGVhbiBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitTb21l
IHRlc3RzIGZhaWxlZC4KKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9i
bGluay9wZXJtZXNzYWdlLWRlZmxhdGUtd2luZG93LWJpdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd3BlL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0
ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXdpbmRvdy1iaXRzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjc0ODAyOThjN2QKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtd2luZG93LWJpdHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK1Rlc3QgV2ViU29ja2V0IHBlcm1lc3NhZ2Ut
ZGVmbGF0ZSBleHRlbnNpb246IHdpbmRvdyBiaXRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKK1Rlc3RpbmcgcXVlcnk6ICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgiCitQQVNTIHdz
LmV4dGVuc2lvbnMuc2VhcmNoKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSAhPSAtMSBpcyB0cnVlCitQ
QVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgnKSAhPSAt
MSBpcyB0cnVlCitQQVNTIGV2ZW50LmRhdGEgaXMgbWVzc2FnZQorb25jbG9zZSgpIHdhcyBjYWxs
ZWQuCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgdHJ1ZQorVGVzdGluZyBxdWVyeTogImNs
aWVudF9tYXhfd2luZG93X2JpdHM9MTUiCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnKSAhPSAtMSBpcyB0cnVlCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNo
KCdjbGllbnRfbWF4X3dpbmRvd19iaXRzPTE1JykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBldmVudC5k
YXRhIGlzIG1lc3NhZ2UKK29uY2xvc2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndh
c0NsZWFuIGlzIHRydWUKK1Rlc3RpbmcgcXVlcnk6ICJjbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
ciIKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpICE9IC0x
IGlzIHRydWUKK1BBU1Mgd3MuZXh0ZW5zaW9ucy5zZWFyY2goJ2NsaWVudF9ub19jb250ZXh0X3Rh
a2VvdmVyJykgIT0gLTEgaXMgdHJ1ZQorUEFTUyBldmVudC5kYXRhIGlzIG1lc3NhZ2UKK29uY2xv
c2UoKSB3YXMgY2FsbGVkLgorUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIHRydWUKK1Rlc3Rp
bmcgcXVlcnk6ICJjbGllbnRfbWF4X3dpbmRvd19iaXRzPTgmY2xpZW50X25vX2NvbnRleHRfdGFr
ZW92ZXIiCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSAh
PSAtMSBpcyB0cnVlCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdjbGllbnRfbWF4X3dpbmRv
d19iaXRzPTgnKSAhPSAtMSBpcyB0cnVlCitQQVNTIHdzLmV4dGVuc2lvbnMuc2VhcmNoKCdjbGll
bnRfbm9fY29udGV4dF90YWtlb3ZlcicpICE9IC0xIGlzIHRydWUKK1BBU1MgZXZlbnQuZGF0YSBp
cyBtZXNzYWdlCitvbmNsb3NlKCkgd2FzIGNhbGxlZC4KK1BBU1MgY2xvc2VFdmVudC53YXNDbGVh
biBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDM5NDNmNGQyYzViLi4zZGNhNGMzZmI1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIzIEBACisyMDE5LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gV2ViU29ja2V0czogYWRkIHN1cHBvcnQg
Zm9yIGV4dGVuc2lvbnMgd2hlbiB1c2luZyB3ZWIgc29ja2V0cyBsaWJzb3VwIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFNPVVBfVFlQRV9X
RUJTT0NLRVRfRVhURU5TSU9OX01BTkFHRVIgZmVhdHVyZSB0byB0aGUgc291cCBzZXNzaW9uIHRv
IGVuYWJsZSBXZWJTb2NrZXQgZXh0ZW5zaW9ucy4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUt
Y29tcC1iaXQtb25vZmYuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtaW52YWxpZC1wYXJh
bWV0ZXIuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxhdGUtcGFyYW1ldGVyLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsv
cGVybWVzc2FnZS1kZWZsYXRlLXNldC1iZmluYWwuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9pbXBvcnRlZC9ibGluay9wZXJtZXNzYWdlLWRlZmxh
dGUtc3BsaXQtZnJhbWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXVuc29saWNpdGVk
LW5lZ290aWF0aW9uLXJlc3BvbnNlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaW1wb3J0ZWQvYmxpbmsvcGVybWVzc2FnZS1kZWZsYXRlLXdpbmRv
dy1iaXRzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cE5ldHdvcmtTZXNzaW9uOjpTb3Vw
TmV0d29ya1Nlc3Npb24pOgorCiAyMDE5LTA4LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gU3dpdGNoIHRvIHVzZSBsaWJzb3Vw
IFdlYlNvY2tldHMgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwCmluZGV4IDYxODk5OGYyNTFiLi4x
MjZiMDNlYjQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTEyMiw2ICsxMjIsOSBAQCBT
b3VwTmV0d29ya1Nlc3Npb246OlNvdXBOZXR3b3JrU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiAgICAgICAgIFNPVVBfU0VTU0lPTl9USU1FT1VULCAwLAogICAgICAgICBTT1VQX1NF
U1NJT05fSURMRV9USU1FT1VULCAwLAogICAgICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVf
QllfVFlQRSwgU09VUF9UWVBFX0NPTlRFTlRfU05JRkZFUiwKKyNpZiBTT1VQX0NIRUNLX1ZFUlNJ
T04oMiwgNjcsIDkwKQorICAgICAgICBTT1VQX1NFU1NJT05fQUREX0ZFQVRVUkVfQllfVFlQRSwg
U09VUF9UWVBFX1dFQlNPQ0tFVF9FWFRFTlNJT05fTUFOQUdFUiwKKyNlbmRpZgogICAgICAgICBu
dWxscHRyKTsKIAogICAgIHNldHVwQ3VzdG9tUHJvdG9jb2xzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdjYzU3
MTQ5YmM0Li42M2JhYzcxNzhmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0wOC0w
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAg
W1NPVVBdIFdlYlNvY2tldHM6IGFkZCBzdXBwb3J0IGZvciBleHRlbnNpb25zIHdoZW4gdXNpbmcg
d2ViIHNvY2tldHMgbGlic291cCBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5OTk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdCk6IEFk
ZCBleHRlbnNpb25zIHBhcmFtZXRlciBhbmQgcGFzcyBpdCB0byB0aGUgSVBDIG1lc3NhZ2UuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QpOiBQYXNzIGVtcHR5IGV4dGVuc2lvbnMg
c3RyaW5nLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjphY2NlcHRlZEV4dGVuc2lvbnMg
Y29uc3QpOiBCdWlsZCB0aGUgYWNjZXB0ZWQgZXh0ZW5zaW9ucyBzdHJpbmcuCisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldFRhc2s6OmRpZENvbm5lY3QpOiBQYXNzIGFjY2VwdGVkIGV4dGVuc2lv
bnMgdG8gTmV0d29ya1NvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoKS4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2Nr
ZXRDaGFubmVsOjpleHRlbnNpb25zKTogUmV0dXJuIHRoZSBleHRlbnNpb25zIHN0cmluZyByZWNl
aXZlZCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tl
dENoYW5uZWw6OmRpZENvbm5lY3QpOiBTYXZlIHRoZSBleHRlbnNpb25zIHN0cmluZy4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA4
LTAxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbU09VUF0gU3dpdGNoIHRvIHVzZSBsaWJzb3VwIFdlYlNvY2tldHMgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCmlu
ZGV4IGE5OGU5NmYxMDVjLi4wNGUzZDAyNTIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTk3LDkgKzk3LDkg
QEAgdm9pZCBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50MzJfdCBjb2RlLCBjb25zdCBT
dHJpbmcmIHJlYXNvbikKICAgICBmaW5pc2hDbG9zaW5nSWZQb3NzaWJsZSgpOwogfQogCi12b2lk
IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYgc3VicHJvdG9j
b2wpCit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYg
c3VicHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9ucykKIHsKLSAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTb2NrZXRDaGFubmVsOjpEaWRDb25uZWN0IHsgc3VicHJvdG9jb2wgfSk7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViU29ja2V0Q2hhbm5lbDo6RGlkQ29ubmVjdCB7IHN1YnByb3RvY29s
LCBleHRlbnNpb25zIH0pOwogfQogCiB2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNl
aXZlVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKaW5kZXggZjdjZDJhMTg0ZDcuLjY3MmIz
NzgxYTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
b2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xh
c3MgV2ViU29ja2V0VGFzazsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRpZENvbm5lY3QoY29uc3Qg
U3RyaW5nJiBzdWJwcm90b2NvbCk7CisgICAgdm9pZCBkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYg
c3VicHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKGNv
bnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5z
aWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpp
bmRleCBhZGM1Y2ZlYTk3Yy4uNGIyYTk2NzgwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLm1tCkBAIC04NCw3
ICs4NCw3IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6cmVzdW1lKCkKIAogdm9pZCBXZWJTb2NrZXRU
YXNrOjpkaWRDb25uZWN0KGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCiB7Ci0gICAgbV9jaGFubmVs
LmRpZENvbm5lY3QocHJvdG9jb2wpOworICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KHByb3RvY29s
LCB7IH0pOwogfQogCiB2b2lkIFdlYlNvY2tldFRhc2s6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0
IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggZWRlNDQzZmYx
NDMuLmU0MzRhMDg1MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJOZXR3b3JrU29ja2V0Q2hhbm5lbC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFBhcnNl
cnMuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNjQsNiArNjUs
MjggQEAgV2ViU29ja2V0VGFzazo6fldlYlNvY2tldFRhc2soKQogICAgIGNhbmNlbCgpOwogfQog
CitTdHJpbmcgV2ViU29ja2V0VGFzazo6YWNjZXB0ZWRFeHRlbnNpb25zKCkgY29uc3QKK3sKKyNp
ZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjcsIDkwKQorICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OworICAgIEdMaXN0KiBleHRlbnNpb25zID0gc291cF93ZWJzb2NrZXRfY29ubmVjdGlvbl9nZXRf
ZXh0ZW5zaW9ucyhtX2Nvbm5lY3Rpb24uZ2V0KCkpOworICAgIGZvciAoYXV0byogaXQgPSBleHRl
bnNpb25zOyBpdDsgaXQgPSBnX2xpc3RfbmV4dChpdCkpIHsKKyAgICAgICAgYXV0byogZXh0ZW5z
aW9uID0gU09VUF9XRUJTT0NLRVRfRVhURU5TSU9OKGl0LT5kYXRhKTsKKworICAgICAgICBpZiAo
IXJlc3VsdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiLCAi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KFNPVVBfV0VCU09DS0VU
X0VYVEVOU0lPTl9HRVRfQ0xBU1MoZXh0ZW5zaW9uKS0+bmFtZSkpOworCisgICAgICAgIEdVbmlx
dWVQdHI8Y2hhcj4gcGFyYW1zKHNvdXBfd2Vic29ja2V0X2V4dGVuc2lvbl9nZXRfcmVzcG9uc2Vf
cGFyYW1zKGV4dGVuc2lvbikpOworICAgICAgICBpZiAocGFyYW1zKQorICAgICAgICAgICAgcmVz
dWx0LmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KHBhcmFtcy5nZXQoKSkpOworICAgIH0KKyAgICBy
ZXR1cm4gcmVzdWx0LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworI2Vsc2UKKyAgICByZXR1
cm4geyB9OworI2VuZGlmCit9CisKIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkQ29ubmVjdChHUmVm
UHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7CiAgICAgbV9jb25u
ZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKQEAgLTc4LDcgKzEwMSw3IEBAIHZvaWQgV2Vi
U29ja2V0VGFzazo6ZGlkQ29ubmVjdChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVjdGlvbi5n
ZXQoKSwgImVycm9yIiwgcmVpbnRlcnByZXRfY2FzdDxHQ2FsbGJhY2s+KGRpZFJlY2VpdmVFcnJv
ckNhbGxiYWNrKSwgdGhpcyk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKG1fY29ubmVj
dGlvbi5nZXQoKSwgImNsb3NlZCIsIHJlaW50ZXJwcmV0X2Nhc3Q8R0NhbGxiYWNrPihkaWRDbG9z
ZUNhbGxiYWNrKSwgdGhpcyk7CiAKLSAgICBtX2NoYW5uZWwuZGlkQ29ubmVjdChzb3VwX3dlYnNv
Y2tldF9jb25uZWN0aW9uX2dldF9wcm90b2NvbChtX2Nvbm5lY3Rpb24uZ2V0KCkpKTsKKyAgICBt
X2NoYW5uZWwuZGlkQ29ubmVjdChzb3VwX3dlYnNvY2tldF9jb25uZWN0aW9uX2dldF9wcm90b2Nv
bChtX2Nvbm5lY3Rpb24uZ2V0KCkpLCBhY2NlcHRlZEV4dGVuc2lvbnMoKSk7CiB9CiAKIHZvaWQg
V2ViU29ja2V0VGFzazo6ZGlkUmVjZWl2ZU1lc3NhZ2VDYWxsYmFjayhXZWJTb2NrZXRUYXNrKiB0
YXNrLCBTb3VwV2Vic29ja2V0RGF0YVR5cGUgZGF0YVR5cGUsIEdCeXRlcyogbWVzc2FnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNr
U291cC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tT
b3VwLmgKaW5kZXggMWVkZjc1ODEwNzAuLmRhODc2MTEwNjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaApAQCAtNTIs
NiArNTIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmFpbChjb25zdCBTdHJpbmcmKTsKICAg
ICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KTsKIAorICAgIFN0cmluZyBhY2NlcHRlZEV4dGVuc2lvbnMoKSBjb25zdDsKKwogICAgIHN0YXRp
YyB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlQ2FsbGJhY2soV2ViU29ja2V0VGFzayosIFNvdXBXZWJz
b2NrZXREYXRhVHlwZSwgR0J5dGVzKik7CiAgICAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZUVycm9y
Q2FsbGJhY2soV2ViU29ja2V0VGFzayosIEdFcnJvciopOwogICAgIHN0YXRpYyB2b2lkIGRpZENs
b3NlQ2FsbGJhY2soV2ViU29ja2V0VGFzayopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAzZTZjYzkzOWVhNy4u
MmEyNjgxOTAxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC03Niw4ICs3Niw3IEBAIFN0cmluZyBXZWJTb2Nr
ZXRDaGFubmVsOjpzdWJwcm90b2NvbCgpCiAKIFN0cmluZyBXZWJTb2NrZXRDaGFubmVsOjpleHRl
bnNpb25zKCkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9ydCBleHRlbnNpb25zLgotICAgIHJldHVy
biBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2V4dGVuc2lvbnMuaXNOdWxsKCkgPyBlbXB0
eVN0cmluZygpOiBtX2V4dGVuc2lvbnM7CiB9CiAKIFdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RT
dGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCkKQEAgLTMyMiw3ICszMjEsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmRpc2Nvbm5lY3QoKQogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtT
b2NrZXRDaGFubmVsOjpDbG9zZSB7IDAsIHsgfSB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sKQordm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNpb25z
KQogewogICAgIGlmIChtX2lzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtMzMxLDEzICsz
MzAsMTQgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYmIHN1YnBy
b3RvY29sKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pc1N1c3BlbmRlZCkgewotICAg
ICAgICBlbnF1ZXVlVGFzayhbdGhpcywgc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29s
KV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBkaWRDb25uZWN0KFdURk1vdmUoc3VicHJvdG9j
b2wpKTsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHN1YnByb3RvY29sID0gV1RGTW92ZShz
dWJwcm90b2NvbCksIGV4dGVuc2lvbnMgPSBXVEZNb3ZlKGV4dGVuc2lvbnMpXSAoKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGRpZENvbm5lY3QoV1RGTW92ZShzdWJwcm90b2NvbCksIFdURk1vdmUo
ZXh0ZW5zaW9ucykpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IG1fc3VicHJvdG9jb2wgPSBXVEZNb3ZlKHN1YnByb3RvY29sKTsKKyAgICBtX2V4dGVuc2lvbnMg
PSBXVEZNb3ZlKGV4dGVuc2lvbnMpOwogICAgIG1fY2xpZW50LT5kaWRDb25uZWN0KCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5u
ZWwuaAppbmRleCBmZjE2ZjllMDk0My4uNmNjNzEzNDVkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwo
KSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIC8vIE1lc3NhZ2UgcmVjZWl2ZXJzCi0gICAgdm9p
ZCBkaWRDb25uZWN0KFN0cmluZyYmKTsKKyAgICB2b2lkIGRpZENvbm5lY3QoU3RyaW5nJiYgc3Vi
cHJvdG9jb2wsIFN0cmluZyYmIGV4dGVuc2lvbnMpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVRleHQo
U3RyaW5nJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVmZXJl
bmNlJiYpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5nJiYp
OwpAQCAtOTMsNiArOTMsNyBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViQ29yZTo6RG9jdW1l
bnQ+IG1fZG9jdW1lbnQ7CiAgICAgV2Vha1B0cjxXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50PiBtX2NsaWVudDsKICAgICBTdHJpbmcgbV9zdWJwcm90b2NvbDsKKyAgICBTdHJpbmcgbV9l
eHRlbnNpb25zOwogICAgIHNpemVfdCBtX2J1ZmZlcmVkQW1vdW50IHsgMCB9OwogICAgIGJvb2wg
bV9pc0Nsb3NpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRD
aGFubmVsLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgppbmRleCA1OWMxYjg2NDhjNy4uNzBmNzdiOTJkNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCiBtZXNzYWdlcyAtPiBXZWJTb2NrZXRDaGFubmVsIHsKLSAgICBEaWRDb25uZWN0KFN0
cmluZyBzdWJwcm90b2NvbCkKKyAgICBEaWRDb25uZWN0KFN0cmluZyBzdWJwcm90b2NvbCwgU3Ry
aW5nIGV4dGVuc2lvbnMpCiAgICAgRGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5n
IHJlYXNvbikKICAgICBEaWRSZWNlaXZlVGV4dChTdHJpbmcgbWVzc2FnZSkKICAgICBEaWRSZWNl
aXZlQmluYXJ5RGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkK
</data>
<flag name="review"
          id="391088"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>