<?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>64344</bug_id>
          
          <creation_ts>2011-07-11 23:33:56 -0700</creation_ts>
          <short_desc>WebSocket: Implement hybi handshake</short_desc>
          <delta_ts>2011-07-13 22:33:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50099</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>435497</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-11 23:33:56 -0700</bug_when>
    <thetext>Implement hybi WebSocket handshake.

http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10#section-5.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435515</commentid>
    <comment_count>1</comment_count>
      <attachid>100447</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-12 00:58:36 -0700</bug_when>
    <thetext>Created attachment 100447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435554</commentid>
    <comment_count>2</comment_count>
      <attachid>100447</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-12 03:43:11 -0700</bug_when>
    <thetext>Comment on attachment 100447
Patch

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

&gt; LayoutTests/http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header_wsh.py:5
&gt; +    # message += &apos;Sec-WebSocket-Accept: %s\r\n&apos; % compute_accept(request.headers_in[&apos;Sec-WebSocket-Key&apos;])[0]

Is this line needed? If not, please remove instead of comment-out.

&gt; Source/WebCore/websockets/WebSocketHandshake.cpp:169
&gt; +    unsigned char key[16];
&gt; +    cryptographicallyRandomValues(key, 16);
&gt; +    return base64Encode(reinterpret_cast&lt;char*&gt;(key), 16);

Please define const variable for the magic number &apos;16&apos;.

&gt; Source/WebCore/websockets/WebSocketHandshake.cpp:180
&gt; +    Vector&lt;uint8_t, 20&gt; hash;
&gt; +    sha1.computeHash(hash);
&gt; +    return base64Encode(reinterpret_cast&lt;const char*&gt;(hash.data()), 20);

We had better have
   const size_t Sha1HashSize = 20;
here or SHA1.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435571</commentid>
    <comment_count>3</comment_count>
      <attachid>100467</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-12 04:48:55 -0700</bug_when>
    <thetext>Created attachment 100467
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435572</commentid>
    <comment_count>4</comment_count>
      <attachid>100467</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-12 04:49:38 -0700</bug_when>
    <thetext>Comment on attachment 100467
Patch v2

Oops, I forgot to address the first comment. Ignore this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435573</commentid>
    <comment_count>5</comment_count>
      <attachid>100468</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-12 04:52:07 -0700</bug_when>
    <thetext>Created attachment 100468
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435574</commentid>
    <comment_count>6</comment_count>
      <attachid>100447</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-12 04:54:40 -0700</bug_when>
    <thetext>Comment on attachment 100447
Patch

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

&gt;&gt; LayoutTests/http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header_wsh.py:5
&gt;&gt; +    # message += &apos;Sec-WebSocket-Accept: %s\r\n&apos; % compute_accept(request.headers_in[&apos;Sec-WebSocket-Key&apos;])[0]
&gt; 
&gt; Is this line needed? If not, please remove instead of comment-out.

Removed.

&gt;&gt; Source/WebCore/websockets/WebSocketHandshake.cpp:169
&gt;&gt; +    return base64Encode(reinterpret_cast&lt;char*&gt;(key), 16);
&gt; 
&gt; Please define const variable for the magic number &apos;16&apos;.

Defined &quot;nonceSize&quot;.

&gt;&gt; Source/WebCore/websockets/WebSocketHandshake.cpp:180
&gt;&gt; +    return base64Encode(reinterpret_cast&lt;const char*&gt;(hash.data()), 20);
&gt; 
&gt; We had better have
&gt;    const size_t Sha1HashSize = 20;
&gt; here or SHA1.h.

Defined a constant inside this function for now. Added a FIXME comment to tell it really should be moved to SHA1.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436299</commentid>
    <comment_count>7</comment_count>
      <attachid>100640</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-07-13 01:06:46 -0700</bug_when>
    <thetext>Created attachment 100640
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436921</commentid>
    <comment_count>8</comment_count>
      <attachid>100640</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-07-13 21:32:34 -0700</bug_when>
    <thetext>Comment on attachment 100640
Patch v4

Looks ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436933</commentid>
    <comment_count>9</comment_count>
      <attachid>100640</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-13 22:32:59 -0700</bug_when>
    <thetext>Comment on attachment 100640
Patch v4

Clearing flags on attachment: 100640

Committed r90979: &lt;http://trac.webkit.org/changeset/90979&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436934</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-13 22:33:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100447</attachid>
            <date>2011-07-12 00:58:36 -0700</date>
            <delta_ts>2011-07-12 04:54:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64344-20110712165834.patch</filename>
            <type>text/plain</type>
            <size>43979</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMDlkZWZiYTQ2OTU5YWNlN2RmM2U1
ODAzZTIwMWJkMmRhYTc2N2Q1Li45M2FiNmJjZTY1ZmY2Mjg0NzcxNTM4ZWViMGMxYjY5NTUwOTk4
NTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDctMTEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgaHliaSBo
YW5kc2hha2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY0MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGV4aXN0aW5nIHRlc3RzIHNvIHRoZXkgbWF0Y2ggdGhlIG5ldyBoYW5kc2hha2UgZm9ybWF0
LCBhbmQgYWRkIHRlc3RzIGZvciBuZXcgaGVhZGVyIGZpZWxkcy4KKworICAgICAgICBUaGVyZSBh
cmUgc2V2ZXJhbCBjaGFuZ2VzIGluIHRoZSBmb3JtYXQgb2YgaGFuZHNoYWtlIHJlc3BvbnNlLCBz
dWNoIGFzOgorICAgICAgICAtIFJlYXNvbiBzdHJpbmcgaW4gSFRUUCBzdGF0dXMgbGluZSBoYXMg
YmVlbiBjaGFuZ2VkIHRvICJTd2l0Y2hpbmcgUHJvdG9jb2xzIi4KKyAgICAgICAgLSBUaGUgdmFs
dWUgb2YgIlVwZ3JhZGUiIGhlYWRlciBoYXMgYmVlbiBjaGFuZ2VkIHRvICJ3ZWJzb2NrZXQiIChs
b3dlci1jYXNlIG9ubHkpLgorICAgICAgICAtIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5kIFNl
Yy1XZWJTb2NrZXQtT3JpZ2luIGFyZSBnb25lLgorICAgICAgICAtICJDaGFsbGVuZ2UgcmVzcG9u
c2UiIHZhbHVlICgxNi1ieXRlIGRhdGEgYWZ0ZXIgdGhlIHJlc3BvbnNlIGhlYWRlciBmaWVsZHMp
IGlzIHJlbW92ZWQsIGFuZAorICAgICAgICAgIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBp
cyBhZGRlZCBpbnN0ZWFkLgorCisgICAgICAgIFRoZSB2YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFj
Y2VwdCBoZWFkZXIgaXMgY29tcHV0ZWQgdXNpbmcgY29tcHV0ZV9hY2NlcHQoKSBmdW5jdGlvbgor
ICAgICAgICBsb2NhdGVkIGluIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IG1vZHVs
ZS4gQWx0aG91Z2ggdGhlIG1vZHVsZSBuYW1lIGNvbnRhaW5zCisgICAgICAgICJoeWJpMDYiLCB0
aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgU2VjLVdl
YlNvY2tldC1BY2NlcHQgaGVhZGVyCisgICAgICAgIGZvciBoeWJpLTEwIChjYWxjdWxhdGlvbiBt
ZXRob2QgaGFzIG5vdCBiZWVuIGNoYW5nZWQgc2luY2UgaHliaS0wNikuCisKKyAgICAgICAgTm90
ZTogVGVzdHMgdW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNsdWRpbmcgdGhlIG5ldyBvbmVzKSBh
cmUgc2tpcHBlZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAgICAgICAgeWV0LCBiZWNhdXNlIHB5
d2Vic29ja2V0IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBmcm9tIGhhbGYtYmFrZWQgY2xpZW50
IGltcGxlbWVudGF0aW9uCisgICAgICAgIChpLmUuIGh5YmkgaGFuZHNoYWtlICsgaGl4aWUtNzYg
ZnJhbWluZykuIFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hlbiBoeWJpIGZyYW1pbmcgaXMgbGFu
ZGVkCisgICAgICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oYW5kbGVyX21hcC50eHQ6CisgICAgICAgIFRoZXJlIG11c3QgYmUgb25seSBvbmUg
aGFuZGxlciB0aGF0IGNhbiBoYW5kbGUgcmVxdWVzdHMgdG8gIi8iLiBoeWJpL2VjaG8tbG9jYXRp
b25fd3NoLnB5CisgICAgICAgIGlzIG1vZGlmaWVkIHRvIGFjY2VwdCByZXF1ZXN0cyBvZiBib3Ro
IHByb3RvY29sIHZlcnNpb25zLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHk6CisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weToKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMt
aGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weTogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhf
d3NoLnB5OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8t
YWNjZXB0LWhlYWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXJfd3NoLnB5OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXByZXBlbmRlZC1udWxsX3dzaC5weToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LXdyb25nLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFj
Y2VwdC1oZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyX3dzaC5weTog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWlu
dmFsaWQtaGVhZGVyX3dzaC5weToKKwogMjAxMS0wNy0xMSAgWWkgU2hlbiAgPHlpLjQuc2hlbkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBBU1NFUlRJT04gRkFJTEVEIGluIFJlc291cmNlSGFu
ZGxlOjpzZXREZWZlcnNMb2FkaW5nIGNhdXNlcyBjcmFzaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0CmluZGV4IDk4ZmJh
YThiOWE2NzFhN2UzODgwZWM4ZWRmZTFhNDZiNmI5ZThlNjYuLmM2YjBiYTEwYmZjMDFmNjVmYzI2
OTIyNzlkODFlMzhkMjYwM2ZkYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hhbmRsZXJfbWFwLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oYW5kbGVyX21hcC50eHQKQEAgLTEsMyArMSw0IEBACiAjIHdl
YnNvY2tldCBoYW5kbGVyIG1hcCBmaWxlLgogIyByZXF1ZXN0IHRvICcvJyB3aWxsIGJlIGhhbmRs
ZWQgYnkgZWNoby1sb2NhdGlvbl93c2gucHkKLS8gL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Vj
aG8tbG9jYXRpb24KKyMgaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weSBjYW4gaGFuZGxlIGJvdGgg
aGl4aWUtNzYgYW5kIGh5YmktMTAgcHJvdG9jb2xzLgorLyAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5weSBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHkK
aW5kZXggN2I0MjViYzcxNjZmNTNkZmMyNjY5Y2RlZjkwMzM1MTIwN2E0NGQ0MC4uYTRkNDg4MjJi
YTA0MWY1OTUzY2QyZDY2ZTgxNjRhOTVjYTQ1OWY5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JhZC1o
YW5kc2hha2UtY3Jhc2hfd3NoLnB5CkBAIC0xLDEyICsxLDEzIEBACitmcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRlX2FjY2VwdAorCisKIGRlZiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBtc2cgPSAiSFRUUC8xLjEg
MTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuIgotICAgIG1zZyArPSAiVXBncmFk
ZTogV2ViU29ja2V0XHJcbiIKKyAgICBtc2cgPSAiSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90
b2NvbHNcclxuIgorICAgIG1zZyArPSAiVXBncmFkZTogd2Vic29ja2V0XHJcbiIKICAgICBtc2cg
Kz0gIkNvbm5lY3Rpb246IFVwZ3JhZGVcclxuIgotICAgIG1zZyArPSAiU2VjLVdlYlNvY2tldC1M
b2NhdGlvbjogIiArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAiXHJcbiIKLSAgICBtc2cgKz0gIlNl
Yy1XZWJTb2NrZXQtT3JpZ2luOiAiICsgcmVxdWVzdC53c19vcmlnaW4gKyAiXHJcbiIKKyAgICBt
c2cgKz0gIlNlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4iICUgY29tcHV0ZV9hY2NlcHQocmVx
dWVzdC5oZWFkZXJzX2luWyJTZWMtV2ViU29ja2V0LUtleSJdKVswXQogICAgIG1zZyArPSAiXHhh
NTpcclxuIgogICAgIG1zZyArPSAiXHJcbiIKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVu
Z2VfbWQ1CiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cK
ICAgICByYWlzZSBFeGNlcHRpb24oIkFib3J0IHRoZSBjb25uZWN0aW9uIikgIyBQcmV2ZW50cyBw
eXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNoby1s
b2NhdGlvbl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2VjaG8tbG9jYXRpb25fd3NoLnB5CmluZGV4IDMzOTA1NzBhYmFjODFiNTg1OTJjZmI0YmMw
ZGNhNWVlMDFiZDBiMjkuLjAzYzRhYTkyODNkMjA2MTJlNjVkZjQ4NmNkOGJmNmQ4NDk4MjgxYzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1sb2NhdGlvbl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjgsNyBAQAogCiAKIGZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2Uu
X2Jhc2UgaW1wb3J0IGJ1aWxkX2xvY2F0aW9uCiAKIAogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKHJlcXVlc3QpOgpAQCAtMzUsNSArMzYsMTQgQEAgZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgogCiAKIGRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCk6Ci0gICAgcHJpbnQgcmVxdWVzdC53c19sb2NhdGlvbgotICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsIHJlcXVlc3Qud3NfbG9jYXRpb24pCisgICAgaWYgaGFzYXR0
cihyZXF1ZXN0LCAnd3NfbG9jYXRpb24nKToKKyAgICAgICAgbG9jYXRpb24gPSByZXF1ZXN0Lndz
X2xvY2F0aW9uCisgICAgZWxzZToKKyAgICAgICAgIyBXaGVuIGh5YmkgcHJvdG9jb2wgaXMgdXNl
ZCwgcHl3ZWJzb2NrZXQgZG9lcyBub3QgcHJvdmlkZQorICAgICAgICAjIHdzX2xvY2F0aW9uIGF0
dHJpYnV0ZSBiZWNhdXNlIHNlcnZlcnMgYXJlIG5vdCByZXF1aXJlZCB0byBzZW5kCisgICAgICAg
ICMgU2VjLVdlYlNvY2tldC1Mb2NhdGlvbiBoZWFkZXIgYWNjb3JkaW5nIHRvIHRoZSBwcm90b2Nv
bAorICAgICAgICAjIHNwZWNpZmljYXRpb24uIElmIHdzX2xvY2F0aW9uIGF0dHJpYnV0ZSBpcyBu
b3QgYXZhaWxhYmxlLAorICAgICAgICAjIHdlIHVzZSBweXdlYnNvY2tldCdzIGludGVybmFsIGZ1
bmN0aW9uICJidWlsZF9mdW5jdGlvbiIKKyAgICAgICAgIyB0byBvYnRhaW4gdGhlIGlkZW50aWNh
bCB2YWx1ZS4KKyAgICAgICAgbG9jYXRpb24gPSBidWlsZF9sb2NhdGlvbihyZXF1ZXN0KQorICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIGxvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1leHRlbnNpb25zLWhlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGVkYWQxOTRjYjRhMmJmMzE0MjRiYWNiMDY5MzRj
ZWJjMzY4ZDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEVycm9y
IGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVh
ZGVyIGlzIGludmFsaWQKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgaGFuZHNoYWtlIGZhaWxzIGlm
IHRoZSBzZXJ2ZXIgc2VuZHMgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hh
bmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMt
aGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRjNmM1OGUxNWQ1ZjQ3NmUwMzg3MWQxOTUyYTYzYTFk
ZmQ5NjQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktZXh0ZW5zaW9ucy1oZWFkZXIuaHRtbApA
QCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUg
c2VydmVyIHNlbmRzIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIuIik7CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhp
ZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK3ZhciB1cmwgPSAid3M6Ly9sb2Nh
bGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNp
b25zLWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xvc2VFdmVu
dDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rp
b24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xvc2UgPSBm
dW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVG
YWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlcl93c2gu
cHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGEzZDc3MTU4
YTFhMWQyNzBlNGFlMjQ2NzZlM2Q1N2I1NGEwOWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1l
eHRlbnNpb25zLWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwxNiBAQAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCitkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgbWVzc2FnZSA9ICdIVFRQ
LzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCisgICAgbWVzc2FnZSArPSAnVXBncmFk
ZTogd2Vic29ja2V0XHJcbicKKyAgICBtZXNzYWdlICs9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKKyAgICBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1
dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KKyAg
ICBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6IHgtZm9vXHJcbicKKyAgICBt
ZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtZXNzYWdlKQor
ICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5
d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgorCisKK2Rl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5CmluZGV4IGMw
MzlmYjM4ZTkzMzEwMmEwMDVlYjFiYThjMjA4YzI1OTQ4N2Q1MTMuLjY3Njg3OTlkODU2MjRkMmFk
NzE3NzQyZGJhNGE3Nzg3M2NiYzliNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbWF4bGVuZ3RoX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LW1heGxlbmd0aF93c2gucHkKQEAgLTIwLDE3ICsyMCwxOCBAQAogIyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRl
X2FjY2VwdAorCisKIGRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToK
ICAgICAjIFRoaXMgd2lsbCBjYXVzZSB0aGUgaGFuZHNoYWtlIHRvIGZhaWwgYmVjYXVzZSBpdCBw
dXNoZXMgdGhlIGxlbmd0aCBvZiB0aGUKICAgICAjIHN0YXR1cyBsaW5lIHBhc3QgMTAyNCBjaGFy
YWN0ZXJzCiAgICAgbXNnID0gJy4nICogMTAyNAotICAgIG1zZyArPSAnSFRUUC8xLjEgMTAxIFdl
YlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgIG1zZyArPSAnVXBncmFkZTogV2Vi
U29ja2V0XHJcbicKKyAgICBtc2cgKz0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xz
XHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9ICdD
b25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRp
b246ICcgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMtV2Vi
U29ja2V0LU9yaWdpbjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNnICs9
ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3Qu
aGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4nCi0g
ICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZShtc2cpCiAgICAgcmFpc2UgRXhjZXB0aW9uKCdhYm9ydCB0aGUgY29ubmVjdGlvbicp
ICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1l
c3NhZ2UuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYzU4MDhh
ZmYyM2U0MTkwYWRjYzg5MmRkYjMyNGM1ZjA2ZjhhNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAwOiBFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1X
ZWJTb2NrZXQtQWNjZXB0JyBoZWFkZXIgaXMgbWlzc2luZworVGVzdCB3aGV0aGVyIFdlYlNvY2tl
dCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNlcnZlciBkb2VzIG5vdCBzZW5kIFNlYy1XZWJTb2Nr
ZXQtQWNjZXB0IGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNs
b3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYWY0NWQ4ODJk
Yjg5NWFiZjEwMDZmZTZkMGQ1NTg2NjAwYzNjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5v
LWFjY2VwdC1oZWFkZXIuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhh
bmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIGRvZXMgbm90IHNlbmQgU2VjLVdlYlNvY2tldC1B
Y2NlcHQgaGVhZGVyLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDAp
OworCit2YXIgdXJsID0gIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29j
a2V0KHVybCk7Cit2YXIgY2xvc2VFdmVudDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQorewor
ICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rpb24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2Uo
KTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50
ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby1hY2NlcHQtaGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOThlN2M2MDFkNDk2OGM4MjNiMGVhODZkNzIxYzFkZTUxMzlhMTYzNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwx
MiBAQAorZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIG1l
c3NhZ2UgPSAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJworICAgIG1lc3Nh
Z2UgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCisgICAgbWVzc2FnZSArPSAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCisgICAgIyBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDog
JXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tl
dC1LZXknXSlbMF0KKyAgICBtZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZShtZXNzYWdlKQorICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rp
b24nKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFr
ZSBtZXNzYWdlLgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Cisg
ICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRlcl93c2gucHkgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weQppbmRleCA3ZWZjODdhNTBkNjZkZTg3NGM4
YTFkYzM4NmYyZGI2Y2VmMDNhNDM3Li5mOTk2NTE4M2U1MDA3NDY5MTFiYjNiZThmNjE1NzEyZmQ4
Yzg4MDVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weQorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weQpAQCAtMSwxMSArMSwxMiBAQAorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQK
KworCiBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNn
ID0gJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICBt
c2cgKz0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgbXNnID0gJ0hUVFAvMS4xIDEwMSBT
d2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxy
XG4nCiAjICAgTWlzc2luZyAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgbXNnICs9ICdT
ZWMtV2ViU29ja2V0LUxvY2F0aW9uOiAnICsgcmVxdWVzdC53c19sb2NhdGlvbiArICdcclxuJwot
ICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1PcmlnaW46ICcgKyByZXF1ZXN0LndzX29yaWdpbiAr
ICdcclxuJworICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICVzXHJcbicgJSBjb21w
dXRlX2FjY2VwdChyZXF1ZXN0LmhlYWRlcnNfaW5bJ1NlYy1XZWJTb2NrZXQtS2V5J10pWzBdCiAg
ICAgbXNnICs9ICdcclxuJwotICAgIG1zZyArPSByZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUKICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobXNnKQogICAgIHByaW50IG1zZwogICAgIHJhaXNl
IEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0
IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby1jcl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weQppbmRleCA5Nzg5MjRhYjZlYjE4Yjk1
NmZmNDU1OWQ1YjkzZGJlZGU4M2I5MzMyLi41YzRiOWUzOTQyNjgwNDJmMTAyZGYxN2IxMGEwYmQz
ODdmZDIxMDhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weQorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNy
X3dzaC5weQpAQCAtMSwxMSArMSwxMiBAQAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Lmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCiBkZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNnID0gJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQg
UHJvdG9jb2wgSGFuZHNoYWtlXG4nICMgRG9lcyBub3QgZW5kIHdpdGggIlxyXG4iLgotICAgIG1z
ZyArPSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAgICBtc2cgPSAnSFRUUC8xLjEgMTAxIFN3
aXRjaGluZyBQcm90b2NvbHNcbicgIyBEb2VzIG5vdCBlbmQgd2l0aCAiXHJcbiIuCisgICAgbXNn
ICs9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwogICAgIG1zZyArPSAnQ29ubmVjdGlvbjogVXBn
cmFkZVxyXG4nCi0gICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiAnICsgcmVxdWVz
dC53c19sb2NhdGlvbiArICdcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1PcmlnaW46
ICcgKyByZXF1ZXN0LndzX29yaWdpbiArICdcclxuJworICAgIG1zZyArPSAnU2VjLVdlYlNvY2tl
dC1BY2NlcHQ6ICVzXHJcbicgJSBjb21wdXRlX2FjY2VwdChyZXF1ZXN0LmhlYWRlcnNfaW5bJ1Nl
Yy1XZWJTb2NrZXQtS2V5J10pWzBdCiAgICAgbXNnICs9ICdcclxuJwotICAgIG1zZyArPSByZXF1
ZXN0LndzX2NoYWxsZW5nZV9tZDUKICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobXNnKQog
ICAgIHByaW50IG1zZwogICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24n
KSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBt
ZXNzYWdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlcl93c2gucHkgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weQppbmRleCAxMTRkZTc1ZTE5MzdhYzViZWU1ZTcxYTU4
ZGNjZDlkZjZiMGFmNzhjLi5mODhkNTAwMTA4ODZlMjA1MWEwOTQwNDcwNzU1OGQ5OWIyZTAxN2Mz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weQorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5v
LXVwZ3JhZGUtaGVhZGVyX3dzaC5weQpAQCAtMSwxMSArMSwxMiBAQAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCiBkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNnID0gJ0hUVFAvMS4x
IDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSMgICBNaXNzaW5nICdVcGdy
YWRlOiBXZWJTb2NrZXRcclxuJworICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFBy
b3RvY29sc1xyXG4nCisjICAgTWlzc2luZyAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKICAgICBt
c2cgKz0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tl
dC1Mb2NhdGlvbjogJyArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAnXHJcbicKLSAgICBtc2cgKz0g
J1NlYy1XZWJTb2NrZXQtT3JpZ2luOiAnICsgcmVxdWVzdC53c19vcmlnaW4gKyAnXHJcbicKKyAg
ICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4nICUgY29tcHV0ZV9hY2NlcHQo
cmVxdWVzdC5oZWFkZXJzX2luWydTZWMtV2ViU29ja2V0LUtleSddKVswXQogICAgIG1zZyArPSAn
XHJcbicKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1CiAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cKICAgICByYWlzZSBFeGNlcHRpb24o
J0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNlbmRp
bmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVk
LW51bGxfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbF93c2gucHkKaW5kZXggMDczNTE4NDk4
MTQxOWY5YzJhMzYyZmI4Njk1MzYzNDExZjMwNWFhNS4uMjhhZGFiNGIwYmU3Y2YwNzc5NjMzYzE1
NjdiMmQ3ZmU2ZTkzM2MwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbF93c2gucHkK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hh
a2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbF93c2gucHkKQEAgLTE5LDcgKzE5LDEwIEBACiAjIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKKwogaW1wb3J0IHRpbWUKK2Zyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5oeWJpMDYgaW1wb3J0IGNvbXB1dGVfYWNjZXB0CiAKIAogZGVmIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgpAQCAtMjgsMTYgKzMxLDE0IEBAIGRlZiB3ZWJfc29ja2V0
X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKICAgICAjIGhhcHBlbnMgdGhlIGNsaWVudCBk
b2VzIG5vdCBidWZmZXIgYWxsIHRoZSBmcmFtZXMgYXMgdGhlIHNlcnZlciBjb250aW51ZXMKICAg
ICAjIHRvIHNlbmQgbW9yZSBkYXRhIC0gaXQgc2hvdWxkIGFib3J0IGFmdGVyIHJlYWRpbmcgYSBy
ZWFzb25hYmxlIG51bWJlciBvZgogICAgICMgYnl0ZXMgKHNldCBhcmJpdHJhcmlseSB0byAxMDI0
KS4KLSAgICBmcmFtZSA9ICdcMEZyYW1lLWNvbnRhaW5zLXRoaXJ0eS10d28tYnl0ZXMnCisgICAg
ZnJhbWUgPSBzdHJlYW0uY3JlYXRlX3RleHRfZnJhbWUoJ1wwRnJhbWUtY29udGFpbnMtdGhpcnR5
LXR3by1ieXRlcycpCiAKICAgICBtc2cgPSBmcmFtZQotICAgIG1zZyArPSAnSFRUUC8xLjEgMTAx
IFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgIG1zZyArPSAnVXBncmFkZTog
V2ViU29ja2V0XHJcbicKKyAgICBtc2cgKz0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9j
b2xzXHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9
ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9j
YXRpb246ICcgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMt
V2ViU29ja2V0LU9yaWdpbjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNn
ICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVl
c3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4n
Ci0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0ZShtc2cpCiAgICAgIyBjb250aW51ZSB3cml0aW5nIGRhdGEgdW50aWwgdGhlIGNs
aWVudCBkaXNjb25uZWN0cwogICAgIHdoaWxlIFRydWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25n
LWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjYyNzU0MGIzMmYzZjRhYzc5NTA1ZGVmN2ZlNjY5ZTcz
N2ZlZjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogRXJyb3Ig
ZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IFNlYy1XZWJTb2NrZXQtQWNjZXB0IG1pc21hdGNo
CitUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIHNl
bmRzIGluY29ycmVjdCBTZWMtV2ViU29ja2V0LUFjY2VwdCBoZWFkZXIuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFk
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NjIzNjA4YWIzMjViYjBmNzNjYjU4MzE3ZmYyMjlmYjAwNDFm
OTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCB3aGV0aGVyIFdlYlNvY2tldCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNl
cnZlciBzZW5kcyBpbmNvcnJlY3QgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyLiIpOworCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCit2YXIgdXJsID0gIndzOi8v
bG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3Jv
bmctYWNjZXB0LWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xv
c2VFdmVudDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHRlc3RGYWlsZWQoIkNv
bm5lY3Rpb24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xv
c2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hv
dWxkQmVGYWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVh
ZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlcl93c2gucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDRhMDI4YmMxZmYzZjY2MjkzNWE4NGJiYzdiYzU0OTBmNjgxMjMyZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwxMiBAQAorZGVm
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIG1lc3NhZ2UgPSAn
SFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJworICAgIG1lc3NhZ2UgKz0gJ1Vw
Z3JhZGU6IHdlYnNvY2tldFxyXG4nCisgICAgbWVzc2FnZSArPSAnQ29ubmVjdGlvbjogVXBncmFk
ZVxyXG4nCisgICAgbWVzc2FnZSArPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IFhYWFh0aGlzaXN3
cm9uZ1hYWFhcclxuJworICAgIG1lc3NhZ2UgKz0gJ1xyXG4nCisgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKG1lc3NhZ2UpCisgICAgcmFpc2UgRXhjZXB0aW9uKCdBYm9ydCB0aGUgY29ubmVj
dGlvbicpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNo
YWtlIG1lc3NhZ2UuCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToK
KyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2xvbmctaW52YWxpZC1oZWFkZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWludmFsaWQtaGVhZGVyX3dzaC5weQppbmRl
eCA0YTE2OWYzZGEwYTk1OWVkM2Y0ODZkODE3N2VjMTMwNmY1OGQ0NjBlLi4yNmQ2YWY5OTQ1MGI1
N2E0NTUwOGRkNjY2OTcxZDA0ODJlZjdmMzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2xvbmctaW52YWxpZC1oZWFkZXJfd3NoLnB5Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbG9uZy1pbnZh
bGlkLWhlYWRlcl93c2gucHkKQEAgLTIsNyArMiw2IEBAIGRlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKICAgICBtc2cgPSAiSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQ
cm90b2NvbCBIYW5kc2hha2VcclxuIgogICAgIG1zZyArPSAoInAiICogMTAyNCkgKyAiXHJcbiIK
ICAgICBtc2cgKz0gIlxyXG4iCi0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQog
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtc2cpCiAgICAgcmFpc2UgRXhjZXB0aW9uKCJB
Ym9ydCB0aGUgY29ubmVjdGlvbiIpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5n
IGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2UuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMGRiMWJhZjM4NDFm
NzY0NDFhYzUwMzg2NjM1MTIxZjJlOWViNGFhLi42NWU2MzYzY2U4ODJkYjBjMjlmNDMyNmJjMmZl
NjcwMTFmNjIxYTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDctMTEgIFl1
dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJ
bXBsZW1lbnQgaHliaSBoYW5kc2hha2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IFdlYlNvY2tldCBoYW5kc2hha2Ugd2hpY2ggaXMgZGVz
Y3JpYmVkIGF0CisgICAgICAgIDxodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRm
LWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMTAjc2VjdGlvbi01LjE+LgorCisgICAgICAgIE5v
dGFibGUgZGlmZmVyZW5jZXMgZnJvbSBoaXhpZS03NiBwcm90b2NvbCBhcmU6CisgICAgICAgIC0g
Q2hhbGxlbmdlLXJlc3BvbnNlIHNjaGVtZSBoYXMgYmVlbiBjaGFuZ2VkIGRyYW1hdGljYWxseS4K
KyAgICAgICAgLSBTZXJ2ZXJzIGRvIG5vdCBzZW5kIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5k
IFNlYy1XZWJTb2NrZXQtT3JpZ2luIGFueW1vcmUuCisgICAgICAgIC0gVGhlIHZhbHVlIG9mICJV
cGdyYWRlIiBoZWFkZXIgaGFzIGJlZW4gY2hhbmdlZCB0byAid2Vic29ja2V0IiAobG93ZXItY2Fz
ZSBvbmx5KS4KKyAgICAgICAgLSAiT3JpZ2luIiBoZWFkZXIgaW4gY2xpZW50J3MgcmVxdWVzdCBp
cyByZW5hbWVkIHRvICJTZWMtV2ViU29ja2V0LU9yaWdpbiIuCisKKyAgICAgICAgTmV3IHRlc3Rz
OiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVu
c2lvbnMtaGVhZGVyLmh0bWwKKyAgICAgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIuaHRtbAorICAg
ICAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci5odG1sCisKKyAgICAgICAgTm90ZTogVGVzdHMg
dW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNsdWRpbmcgdGhlIG5ldyBvbmVzKSBhcmUgc2tpcHBl
ZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAgICAgICAgeWV0LCBiZWNhdXNlIHB5d2Vic29ja2V0
IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBmcm9tIGhhbGYtYmFrZWQgY2xpZW50IGltcGxlbWVu
dGF0aW9uCisgICAgICAgIChpLmUuIGh5YmkgaGFuZHNoYWtlICsgaGl4aWUtNzYgZnJhbWluZyku
IFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hlbiBoeWJpIGZyYW1pbmcgaXMgbGFuZGVkCisgICAg
ICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5jcHA6CisgICAgICAgIEZ1bmN0aW9ucyBhbmQgbWVtYmVycyBvbmx5IHVzZWQgZm9yIGhpeGll
LTc2IGhhbmRzaGFrZSBhcmUgcmVuYW1lZCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBjb25mdXNlZAor
ICAgICAgICB3aXRoIGh5YmktMTAncyBvbmVzLgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVI
aXhpZTc2U2VjV2ViU29ja2V0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlSGl4aWU3
NktleTMpOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVu
Z2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVNlY1dlYlNvY2tldEtleSk6
CisgICAgICAgIEdlbmVyYXRlcyBhIHZhbHVlIGZvciBTZWMtV2ViU29ja2V0LUtleSBhcyBzdGF0
ZWQgaW4gaHliaS0xMC4KKyAgICAgICAgKFdlYkNvcmU6OmdldEV4cGVjdGVkV2ViU29ja2V0QWNj
ZXB0KToKKyAgICAgICAgQ2FsY3VsYXRlcyB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgU2VjLVdlYlNv
Y2tldC1BY2NlcHQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OldlYlNv
Y2tldEhhbmRzaGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNs
aWVudEhhbmRzaGFrZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNo
YWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dEhhbmRzaGFrZTo6cmVhZFNlcnZlckhhbmRzaGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNvY2tldEFjY2VwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNvY2tldEV4dGVuc2lvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycyk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaDoKKwogMjAxMS0wNy0xMSAg
QnJhZGxleSBOZWxzb24gIDxicmFkbmVsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggMjEwYzMwZWU2ZWZhYThkNWY0OTgwNTE0N2Q0ODI4
MDhjYjI3YWUyMC4uNDMyNTI5ODFhOTJmMzczYzc5ZmQ3ZjFhNDk0ZDY3NDk5MzE4Y2YwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSAiV2ViU29ja2V0SGFuZHNoYWtlLmgiCiAKKyNp
bmNsdWRlICJCYXNlNjQuaCIKICNpbmNsdWRlICJDb29raWUuaCIKICNpbmNsdWRlICJDb29raWVK
YXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01ENS5oPgorI2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Nyw2ICs1OSw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBjaGFyIHJhbmRvbUNoYXJhY3RlckluU2VjV2ViU29j
a2V0S2V5W10gPSAiIVwiIyQlJicoKSorLC0uLzo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVW
V1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX4iOworc3RhdGljIGNvbnN0
IGNoYXIqIHdlYlNvY2tldEtleUdVSUQgPSAiMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0EtQzVBQjBE
Qzg1QjExIjsKIAogc3RhdGljIFN0cmluZyByZXNvdXJjZU5hbWUoY29uc3QgS1VSTCYgdXJsKQog
ewpAQCAtMTA2LDcgKzEwOSw3IEBAIHN0YXRpYyB1aW50MzJfdCByYW5kb21OdW1iZXJMZXNzVGhh
bih1aW50MzJfdCBuKQogICAgIHJldHVybiB2ICUgbjsKIH0KIAotc3RhdGljIHZvaWQgZ2VuZXJh
dGVTZWNXZWJTb2NrZXRLZXkodWludDMyX3QmIG51bWJlciwgU3RyaW5nJiBrZXkpCitzdGF0aWMg
dm9pZCBnZW5lcmF0ZUhpeGllNzZTZWNXZWJTb2NrZXRLZXkodWludDMyX3QmIG51bWJlciwgU3Ry
aW5nJiBrZXkpCiB7CiAgICAgdWludDMyX3Qgc3BhY2UgPSByYW5kb21OdW1iZXJMZXNzVGhhbigx
MikgKyAxOwogICAgIHVpbnQzMl90IG1heCA9IDQyOTQ5NjcyOTVVIC8gc3BhY2U7CkBAIC0xMzEs
NyArMTM0LDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkodWludDMyX3Qm
IG51bWJlciwgU3RyaW5nJiBrZXkpCiAgICAga2V5ID0gczsKIH0KIAotc3RhdGljIHZvaWQgZ2Vu
ZXJhdGVLZXkzKHVuc2lnbmVkIGNoYXIga2V5M1s4XSkKK3N0YXRpYyB2b2lkIGdlbmVyYXRlSGl4
aWU3NktleTModW5zaWduZWQgY2hhciBrZXkzWzhdKQogewogICAgIGNyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tVmFsdWVzKGtleTMsIDgpOwogfQpAQCAtMTQ2LDcgKzE0OSw3IEBAIHN0YXRpYyB2b2lk
IHNldENoYWxsZW5nZU51bWJlcih1bnNpZ25lZCBjaGFyKiBidWYsIHVpbnQzMl90IG51bWJlcikK
ICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGdlbmVyYXRlRXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25z
ZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyLCB1bnNpZ25lZCBjaGFyIGtleTNb
OF0sIHVuc2lnbmVkIGNoYXIgZXhwZWN0ZWRDaGFsbGVuZ2VbMTZdKQorc3RhdGljIHZvaWQgZ2Vu
ZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1
aW50MzJfdCBudW1iZXIyLCB1bnNpZ25lZCBjaGFyIGtleTNbOF0sIHVuc2lnbmVkIGNoYXIgZXhw
ZWN0ZWRDaGFsbGVuZ2VbMTZdKQogewogICAgIHVuc2lnbmVkIGNoYXIgY2hhbGxlbmdlWzE2XTsK
ICAgICBzZXRDaGFsbGVuZ2VOdW1iZXIoJmNoYWxsZW5nZVswXSwgbnVtYmVyMSk7CkBAIC0xNTks
NiArMTYyLDI0IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlRXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25z
ZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyCiAgICAgbWVtY3B5KGV4cGVjdGVk
Q2hhbGxlbmdlLCBkaWdlc3QuZGF0YSgpLCAxNik7CiB9CiAKK3N0YXRpYyBTdHJpbmcgZ2VuZXJh
dGVTZWNXZWJTb2NrZXRLZXkoKQoreworICAgIHVuc2lnbmVkIGNoYXIga2V5WzE2XTsKKyAgICBj
cnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyhrZXksIDE2KTsKKyAgICByZXR1cm4gYmFzZTY0
RW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGtleSksIDE2KTsKK30KKworc3RhdGljIFN0
cmluZyBnZXRFeHBlY3RlZFdlYlNvY2tldEFjY2VwdChjb25zdCBTdHJpbmcmIHNlY1dlYlNvY2tl
dEtleSkKK3sKKyAgICBTSEExIHNoYTE7CisgICAgQ1N0cmluZyBrZXlEYXRhID0gc2VjV2ViU29j
a2V0S2V5LmFzY2lpKCk7CisgICAgc2hhMS5hZGRCeXRlcyhyZWludGVycHJldF9jYXN0PGNvbnN0
IHVpbnQ4X3QqPihrZXlEYXRhLmRhdGEoKSksIGtleURhdGEubGVuZ3RoKCkpOworICAgIHNoYTEu
YWRkQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4od2ViU29ja2V0S2V5R1VJ
RCksIHN0cmxlbih3ZWJTb2NrZXRLZXlHVUlEKSk7CisgICAgVmVjdG9yPHVpbnQ4X3QsIDIwPiBo
YXNoOworICAgIHNoYTEuY29tcHV0ZUhhc2goaGFzaCk7CisgICAgcmV0dXJuIGJhc2U2NEVuY29k
ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihoYXNoLmRhdGEoKSksIDIwKTsKK30KKwog
V2ViU29ja2V0SGFuZHNoYWtlOjpXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHByb3RvY29sLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBi
b29sIHVzZUhpeGllNzZQcm90b2NvbCkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1fY2xpZW50
UHJvdG9jb2wocHJvdG9jb2wpCkBAIC0xNjcsMTIgKzE4OCwxNyBAQCBXZWJTb2NrZXRIYW5kc2hh
a2U6OldlYlNvY2tldEhhbmRzaGFrZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wsCiAgICAgLCBtX3VzZUhpeGllNzZQcm90b2NvbCh1c2VIaXhpZTc2UHJvdG9jb2wpCiAg
ICAgLCBtX21vZGUoSW5jb21wbGV0ZSkKIHsKLSAgICB1aW50MzJfdCBudW1iZXIxOwotICAgIHVp
bnQzMl90IG51bWJlcjI7Ci0gICAgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkobnVtYmVyMSwgbV9z
ZWNXZWJTb2NrZXRLZXkxKTsKLSAgICBnZW5lcmF0ZVNlY1dlYlNvY2tldEtleShudW1iZXIyLCBt
X3NlY1dlYlNvY2tldEtleTIpOwotICAgIGdlbmVyYXRlS2V5MyhtX2tleTMpOwotICAgIGdlbmVy
YXRlRXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZShudW1iZXIxLCBudW1iZXIyLCBtX2tleTMsIG1f
ZXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29s
KSB7CisgICAgICAgIHVpbnQzMl90IG51bWJlcjE7CisgICAgICAgIHVpbnQzMl90IG51bWJlcjI7
CisgICAgICAgIGdlbmVyYXRlSGl4aWU3NlNlY1dlYlNvY2tldEtleShudW1iZXIxLCBtX2hpeGll
NzZTZWNXZWJTb2NrZXRLZXkxKTsKKyAgICAgICAgZ2VuZXJhdGVIaXhpZTc2U2VjV2ViU29ja2V0
S2V5KG51bWJlcjIsIG1faGl4aWU3NlNlY1dlYlNvY2tldEtleTIpOworICAgICAgICBnZW5lcmF0
ZUhpeGllNzZLZXkzKG1faGl4aWU3NktleTMpOworICAgICAgICBnZW5lcmF0ZUhpeGllNzZFeHBl
Y3RlZENoYWxsZW5nZVJlc3BvbnNlKG51bWJlcjEsIG51bWJlcjIsIG1faGl4aWU3NktleTMsIG1f
aGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpOworICAgIH0gZWxzZSB7CisgICAgICAg
IG1fc2VjV2ViU29ja2V0S2V5ID0gZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKTsKKyAgICAgICAg
bV9leHBlY3RlZEFjY2VwdCA9IGdldEV4cGVjdGVkV2ViU29ja2V0QWNjZXB0KG1fc2VjV2ViU29j
a2V0S2V5KTsKKyAgICB9CiB9CiAKIFdlYlNvY2tldEhhbmRzaGFrZTo6fldlYlNvY2tldEhhbmRz
aGFrZSgpCkBAIC0yMzQsMTAgKzI2MCwxNiBAQCBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6
Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoIiBIVFRQ
LzEuMVxyXG4iKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGZpZWxkczsKLSAgICBmaWVsZHMuYXBw
ZW5kKCJVcGdyYWRlOiBXZWJTb2NrZXQiKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wp
CisgICAgICAgIGZpZWxkcy5hcHBlbmQoIlVwZ3JhZGU6IFdlYlNvY2tldCIpOworICAgIGVsc2UK
KyAgICAgICAgZmllbGRzLmFwcGVuZCgiVXBncmFkZTogd2Vic29ja2V0Iik7CiAgICAgZmllbGRz
LmFwcGVuZCgiQ29ubmVjdGlvbjogVXBncmFkZSIpOwogICAgIGZpZWxkcy5hcHBlbmQoIkhvc3Q6
ICIgKyBob3N0TmFtZShtX3VybCwgbV9zZWN1cmUpKTsKLSAgICBmaWVsZHMuYXBwZW5kKCJPcmln
aW46ICIgKyBjbGllbnRPcmlnaW4oKSk7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQor
ICAgICAgICBmaWVsZHMuYXBwZW5kKCJPcmlnaW46ICIgKyBjbGllbnRPcmlnaW4oKSk7CisgICAg
ZWxzZQorICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LU9yaWdpbjogIiArIGNs
aWVudE9yaWdpbigpKTsKICAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgpKQogICAg
ICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVByb3RvY29sOiAiICsgbV9jbGllbnRQ
cm90b2NvbCk7CiAKQEAgLTI1MCw4ICsyODIsMTYgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hh
a2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogICAgICAgICAvLyBTZXQgIkNvb2tp
ZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhpc3RzIGZvciB1cmw/CiAgICAgfQogCi0gICAg
ZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1LZXkxOiAiICsgbV9zZWNXZWJTb2NrZXRLZXkx
KTsKLSAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LUtleTI6ICIgKyBtX3NlY1dlYlNv
Y2tldEtleTIpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgeworICAgICAgICBmaWVs
ZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LUtleTE6ICIgKyBtX2hpeGllNzZTZWNXZWJTb2NrZXRL
ZXkxKTsKKyAgICAgICAgZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1LZXkyOiAiICsgbV9o
aXhpZTc2U2VjV2ViU29ja2V0S2V5Mik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZmllbGRzLmFw
cGVuZCgiU2VjLVdlYlNvY2tldC1LZXk6ICIgKyBtX3NlY1dlYlNvY2tldEtleSk7CisgICAgICAg
IC8vIEZJWE1FOiBDdXJyZW50IHZlcnNpb24gb2YgcHl3ZWJzb2NrZXQgb25seSBhY2NlcHRzIHZl
cnNpb24gdmFsdWUgb2YgNywKKyAgICAgICAgLy8gd2hpbGUgaHliaS0xMCByZXF1aXJlcyB0aGlz
IHZhbHVlIHRvIGJlIDguIFNob3VsZCBiZSBmaXhlZCB3aGVuCisgICAgICAgIC8vIGEgbmV3IHZl
cnNpb24gb2YgcHl3ZWJzb2NrZXQgaXMgcmVsZWFzZWQuCisgICAgICAgIGZpZWxkcy5hcHBlbmQo
IlNlYy1XZWJTb2NrZXQtVmVyc2lvbjogNyIpOworICAgIH0KIAogICAgIC8vIEZpZWxkcyBpbiB0
aGUgaGFuZHNoYWtlIGFyZSBzZW50IGJ5IHRoZSBjbGllbnQgaW4gYSByYW5kb20gb3JkZXI7IHRo
ZQogICAgIC8vIG9yZGVyIGlzIG5vdCBtZWFuaW5nZnVsLiAgVGh1cywgaXQncyBvayB0byBzZW5k
IHRoZSBvcmRlciB3ZSBjb25zdHJ1Y3RlZApAQCAtMjY1LDEwICszMDUsMTQgQEAgQ1N0cmluZyBX
ZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogICAgIGJ1
aWxkZXIuYXBwZW5kKCJcclxuIik7CiAKICAgICBDU3RyaW5nIGhhbmRzaGFrZUhlYWRlciA9IGJ1
aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgLy8gSHliaS0xMCBoYW5kc2hha2UgaXMgY29t
cGxldGUgYXQgdGhpcyBwb2ludC4KKyAgICBpZiAoIW1fdXNlSGl4aWU3NlByb3RvY29sKQorICAg
ICAgICByZXR1cm4gaGFuZHNoYWtlSGVhZGVyOworICAgIC8vIEhpeGllLTc2IHByb3RvY29sIHJl
cXVpcmVzIHNlbmRpbmcgZWlnaHQtYnl0ZSBkYXRhIChzby1jYWxsZWQgImtleTMiKSBhZnRlciB0
aGUgcmVxdWVzdCBoZWFkZXIgZmllbGRzLgogICAgIGNoYXIqIGNoYXJhY3RlckJ1ZmZlciA9IDA7
Ci0gICAgQ1N0cmluZyBtc2cgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKGhhbmRzaGFrZUhl
YWRlci5sZW5ndGgoKSArIHNpemVvZihtX2tleTMpLCBjaGFyYWN0ZXJCdWZmZXIpOworICAgIENT
dHJpbmcgbXNnID0gQ1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChoYW5kc2hha2VIZWFkZXIubGVu
Z3RoKCkgKyBzaXplb2YobV9oaXhpZTc2S2V5MyksIGNoYXJhY3RlckJ1ZmZlcik7CiAgICAgbWVt
Y3B5KGNoYXJhY3RlckJ1ZmZlciwgaGFuZHNoYWtlSGVhZGVyLmRhdGEoKSwgaGFuZHNoYWtlSGVh
ZGVyLmxlbmd0aCgpKTsKLSAgICBtZW1jcHkoY2hhcmFjdGVyQnVmZmVyICsgaGFuZHNoYWtlSGVh
ZGVyLmxlbmd0aCgpLCBtX2tleTMsIHNpemVvZihtX2tleTMpKTsKKyAgICBtZW1jcHkoY2hhcmFj
dGVyQnVmZmVyICsgaGFuZHNoYWtlSGVhZGVyLmxlbmd0aCgpLCBtX2hpeGllNzZLZXkzLCBzaXpl
b2YobV9oaXhpZTc2S2V5MykpOwogICAgIHJldHVybiBtc2c7CiB9CiAKQEAgLTI3OCwxMCArMzIy
LDE2IEBAIFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGll
bnRIYW5kc2hha2VSZXF1ZXN0KCkgY29uc3QKICAgICAvLyBGSVhNRTogZG8gd2UgbmVlZCB0byBz
dG9yZSBtX3NlY1dlYlNvY2tldEtleTEsIG1fc2VjV2ViU29ja2V0S2V5MiBhbmQKICAgICAvLyBt
X2tleTMgaW4gV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdD8KICAgICBXZWJTb2NrZXRIYW5kc2hh
a2VSZXF1ZXN0IHJlcXVlc3QoIkdFVCIsIG1fdXJsKTsKLSAgICByZXF1ZXN0LmFkZEhlYWRlckZp
ZWxkKCJVcGdyYWRlIiwgIldlYlNvY2tldCIpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2Nv
bCkKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiVXBncmFkZSIsICJXZWJTb2NrZXQi
KTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlVwZ3JhZGUiLCAi
d2Vic29ja2V0Iik7CiAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiQ29ubmVjdGlvbiIsICJV
cGdyYWRlIik7CiAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiSG9zdCIsIGhvc3ROYW1lKG1f
dXJsLCBtX3NlY3VyZSkpOwotICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIk9yaWdpbiIsIGNs
aWVudE9yaWdpbigpKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCisgICAgICAgIHJl
cXVlc3QuYWRkSGVhZGVyRmllbGQoIk9yaWdpbiIsIGNsaWVudE9yaWdpbigpKTsKKyAgICBlbHNl
CisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtT3JpZ2luIiwg
Y2xpZW50T3JpZ2luKCkpOwogICAgIGlmICghbV9jbGllbnRQcm90b2NvbC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6Iiwg
bV9jbGllbnRQcm90b2NvbCk7CiAKQEAgLTI5NCw5ICszNDQsMTQgQEAgV2ViU29ja2V0SGFuZHNo
YWtlUmVxdWVzdCBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QoKSBj
b25zdAogICAgICAgICAvLyBTZXQgIkNvb2tpZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhp
c3RzIGZvciB1cmw/CiAgICAgfQogCi0gICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdl
YlNvY2tldC1LZXkxIiwgbV9zZWNXZWJTb2NrZXRLZXkxKTsKLSAgICByZXF1ZXN0LmFkZEhlYWRl
ckZpZWxkKCJTZWMtV2ViU29ja2V0LUtleTIiLCBtX3NlY1dlYlNvY2tldEtleTIpOwotICAgIHJl
cXVlc3Quc2V0S2V5MyhtX2tleTMpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgewor
ICAgICAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LUtleTEiLCBtX2hp
eGllNzZTZWNXZWJTb2NrZXRLZXkxKTsKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgi
U2VjLVdlYlNvY2tldC1LZXkyIiwgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5Mik7CisgICAgICAg
IHJlcXVlc3Quc2V0S2V5MyhtX2hpeGllNzZLZXkzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBy
ZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LUtleSIsIG1fc2VjV2ViU29ja2V0
S2V5KTsKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tldC1WZXJz
aW9uIiwgIjciKTsgLy8gRklYTUU6IFNlZSBGSVhNRSBpbiBjbGllbnRIYW5kc2hha2VNZXNzYWdl
KCkuCisgICAgfQogCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0zNDgsMTggKzQwMywyNyBA
QCBpbnQgV2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU2VydmVySGFuZHNoYWtlKGNvbnN0IGNoYXIq
IGhlYWRlciwgc2l6ZV90IGxlbikKICAgICAgICAgbV9tb2RlID0gRmFpbGVkOwogICAgICAgICBy
ZXR1cm4gcCAtIGhlYWRlcjsKICAgICB9Ci0gICAgaWYgKGxlbiA8IHN0YXRpY19jYXN0PHNpemVf
dD4ocCAtIGhlYWRlciArIHNpemVvZihtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkgewor
CisgICAgaWYgKCFtX3VzZUhpeGllNzZQcm90b2NvbCkgeyAvLyBIeWJpLTEwIGhhbmRzaGFrZSBp
cyBjb21wbGV0ZSBhdCB0aGlzIHBvaW50LgorICAgICAgICBtX21vZGUgPSBDb25uZWN0ZWQ7Cisg
ICAgICAgIHJldHVybiBwIC0gaGVhZGVyOworICAgIH0KKworICAgIC8vIEluIGhpeGllLTc2IHBy
b3RvY29sLCBzZXJ2ZXIncyBoYW5kc2hha2UgY29udGFpbnMgc2l4dGVlbi1ieXRlIGRhdGEgKGNh
bGxlZCAiY2hhbGxlbmdlIHJlc3BvbnNlIikKKyAgICAvLyBhZnRlciB0aGUgaGVhZGVyIGZpZWxk
cy4KKyAgICBpZiAobGVuIDwgc3RhdGljX2Nhc3Q8c2l6ZV90PihwIC0gaGVhZGVyICsgc2l6ZW9m
KG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkgewogICAgICAgICAvLyBKdXN0
IGhhc24ndCBiZWVuIHJlY2VpdmVkIC9leHBlY3RlZC8geWV0LgogICAgICAgICBtX21vZGUgPSBJ
bmNvbXBsZXRlOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorCiAgICAgbV9yZXNwb25zZS5z
ZXRDaGFsbGVuZ2VSZXNwb25zZShzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oc3Rh
dGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KHApKSk7Ci0gICAgaWYgKG1lbWNtcChwLCBtX2V4cGVjdGVk
Q2hhbGxlbmdlUmVzcG9uc2UsIHNpemVvZihtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkg
eworICAgIGlmIChtZW1jbXAocCwgbV9oaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSwg
c2l6ZW9mKG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkgewogICAgICAgICBt
X21vZGUgPSBGYWlsZWQ7Ci0gICAgICAgIHJldHVybiAocCAtIGhlYWRlcikgKyBzaXplb2YobV9l
eHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuIChwIC0gaGVhZGVyKSAr
IHNpemVvZihtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKICAgICB9CiAgICAg
bV9tb2RlID0gQ29ubmVjdGVkOwotICAgIHJldHVybiAocCAtIGhlYWRlcikgKyBzaXplb2YobV9l
eHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKKyAgICByZXR1cm4gKHAgLSBoZWFkZXIpICsgc2l6
ZW9mKG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpOwogfQogCiBXZWJTb2NrZXRI
YW5kc2hha2U6Ok1vZGUgV2ViU29ja2V0SGFuZHNoYWtlOjptb2RlKCkgY29uc3QKQEAgLTQwNyw2
ICs0NzEsMTYgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6c2VydmVyQ29ubmVjdGlvbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcmVzcG9uc2UuaGVhZGVyRmllbGRzKCkuZ2V0KCJjb25uZWN0
aW9uIik7CiB9CiAKK1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNvY2tldEFj
Y2VwdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzcG9uc2UuaGVhZGVyRmllbGRzKCkuZ2V0
KCJzZWMtd2Vic29ja2V0LWFjY2VwdCIpOworfQorCitTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtl
OjpzZXJ2ZXJXZWJTb2NrZXRFeHRlbnNpb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNw
b25zZS5oZWFkZXJGaWVsZHMoKS5nZXQoInNlYy13ZWJzb2NrZXQtZXh0ZW5zaW9ucyIpOworfQor
CiBjb25zdCBXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSYgV2ViU29ja2V0SGFuZHNoYWtlOjpz
ZXJ2ZXJIYW5kc2hha2VSZXNwb25zZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmVzcG9uc2U7
CkBAIC01NzEsNiArNjQ1LDggQEAgYm9vbCBXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9u
c2VIZWFkZXJzKCkKICAgICBjb25zdCBTdHJpbmcmIHNlcnZlcldlYlNvY2tldFByb3RvY29sID0g
dGhpcy0+c2VydmVyV2ViU29ja2V0UHJvdG9jb2woKTsKICAgICBjb25zdCBTdHJpbmcmIHNlcnZl
clVwZ3JhZGUgPSB0aGlzLT5zZXJ2ZXJVcGdyYWRlKCk7CiAgICAgY29uc3QgU3RyaW5nJiBzZXJ2
ZXJDb25uZWN0aW9uID0gdGhpcy0+c2VydmVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IFN0cmlu
ZyYgc2VydmVyV2ViU29ja2V0QWNjZXB0ID0gdGhpcy0+c2VydmVyV2ViU29ja2V0QWNjZXB0KCk7
CisgICAgY29uc3QgU3RyaW5nJiBzZXJ2ZXJXZWJTb2NrZXRFeHRlbnNpb25zID0gdGhpcy0+c2Vy
dmVyV2ViU29ja2V0RXh0ZW5zaW9ucygpOwogCiAgICAgaWYgKHNlcnZlclVwZ3JhZGUuaXNOdWxs
KCkpIHsKICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiAnVXBncmFkZScgaGVhZGVyIGlzIG1pc3NpbmciOwpAQCAtNTgwLDEzICs2NTYs
MjAgQEAgYm9vbCBXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9uc2VIZWFkZXJzKCkKICAg
ICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtl
OiAnQ29ubmVjdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQotICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRPcmlnaW4uaXNOdWxsKCkpIHsKLSAgICAg
ICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAn
U2VjLVdlYlNvY2tldC1PcmlnaW4nIGhlYWRlciBpcyBtaXNzaW5nIjsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoc2VydmVyV2ViU29ja2V0TG9jYXRpb24uaXNOdWxsKCkp
IHsKLSAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFu
ZHNoYWtlOiAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciOwotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CisgICAg
ICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRPcmlnaW4uaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1f
ZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1X
ZWJTb2NrZXQtT3JpZ2luJyBoZWFkZXIgaXMgbWlzc2luZyI7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcnZlcldlYlNvY2tldExvY2F0aW9uLmlz
TnVsbCgpKSB7CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdl
YlNvY2tldCBoYW5kc2hha2U6ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uJyBoZWFkZXIgaXMgbWlz
c2luZyI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoc2VydmVyV2ViU29ja2V0QWNjZXB0LmlzTnVsbCgpKSB7CisgICAgICAg
ICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6
ICdTZWMtV2ViU29ja2V0LUFjY2VwdCcgaGVhZGVyIGlzIG1pc3NpbmciOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFlcXVhbElnbm9yaW5n
Q2FzZShzZXJ2ZXJVcGdyYWRlLCAid2Vic29ja2V0IikpIHsKQEAgLTU5OCwxNyArNjgxLDMxIEBA
IGJvb2wgV2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycygpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoY2xpZW50T3JpZ2luKCkgIT0gc2VydmVy
V2ViU29ja2V0T3JpZ2luKSB7Ci0gICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJp
bmcgV2ViU29ja2V0IGhhbmRzaGFrZTogb3JpZ2luIG1pc21hdGNoOiAiICsgY2xpZW50T3JpZ2lu
KCkgKyAiICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRPcmlnaW47Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gICAgaWYgKGNsaWVudExvY2F0aW9uKCkgIT0gc2VydmVyV2ViU29ja2V0TG9j
YXRpb24pIHsKLSAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2Nr
ZXQgaGFuZHNoYWtlOiBsb2NhdGlvbiBtaXNtYXRjaDogIiArIGNsaWVudExvY2F0aW9uKCkgKyAi
ICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgpICYmIG1fY2xpZW50UHJv
dG9jb2wgIT0gc2VydmVyV2ViU29ja2V0UHJvdG9jb2wpIHsKLSAgICAgICAgbV9mYWlsdXJlUmVh
c29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBwcm90b2NvbCBtaXNtYXRj
aDogIiArIG1fY2xpZW50UHJvdG9jb2wgKyAiICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRQcm90b2Nv
bDsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkg
eworICAgICAgICBpZiAoY2xpZW50T3JpZ2luKCkgIT0gc2VydmVyV2ViU29ja2V0T3JpZ2luKSB7
CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBo
YW5kc2hha2U6IG9yaWdpbiBtaXNtYXRjaDogIiArIGNsaWVudE9yaWdpbigpICsgIiAhPSAiICsg
c2VydmVyV2ViU29ja2V0T3JpZ2luOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgICAgIGlmIChjbGllbnRMb2NhdGlvbigpICE9IHNlcnZlcldlYlNvY2tldExvY2F0
aW9uKSB7CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNv
Y2tldCBoYW5kc2hha2U6IGxvY2F0aW9uIG1pc21hdGNoOiAiICsgY2xpZW50TG9jYXRpb24oKSAr
ICIgIT0gIiArIHNlcnZlcldlYlNvY2tldExvY2F0aW9uOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgICAgIGlmICghbV9jbGllbnRQcm90b2NvbC5pc0VtcHR5KCkg
JiYgbV9jbGllbnRQcm90b2NvbCAhPSBzZXJ2ZXJXZWJTb2NrZXRQcm90b2NvbCkgeworICAgICAg
ICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtl
OiBwcm90b2NvbCBtaXNtYXRjaDogIiArIG1fY2xpZW50UHJvdG9jb2wgKyAiICE9ICIgKyBzZXJ2
ZXJXZWJTb2NrZXRQcm90b2NvbDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRBY2NlcHQgIT0gbV9l
eHBlY3RlZEFjY2VwdCkgeworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1
cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUFjY2VwdCBtaXNtYXRjaCI7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzZXJ2
ZXJXZWJTb2NrZXRFeHRlbnNpb25zLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAvLyBXZWJTb2Nr
ZXQgcHJvdG9jb2wgZXh0ZW5zaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuCisgICAgICAgICAg
ICAvLyBXZSBkbyBub3Qgc2VuZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGluIG91
ciByZXF1ZXN0LCB0aHVzCisgICAgICAgICAgICAvLyBzZXJ2ZXJzIHNob3VsZCBub3QgcmV0dXJu
IHRoaXMgaGVhZGVyLCBlaXRoZXIuCisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJy
b3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBo
ZWFkZXIgaXMgaW52YWxpZCI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
ICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2UuaAppbmRleCAzODA4ZTYxMWY2MDYwODI3MmFjYTJiYTU1ODk4
OTIzYWI4MjU0MDYyLi4wY2NlNWFmYmVkYjIzNmE0OTEyZjMwYjNmYjgxNWJiYTMyNzE0MDBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NzMsMTMgKzczLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTW9kZSBtb2RlKCkg
Y29uc3Q7CiAgICAgICAgIFN0cmluZyBmYWlsdXJlUmVhc29uKCkgY29uc3Q7IC8vIFJldHVybnMg
YSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgcmVhc29uIG9mIGZhaWx1cmUgaWYgbW9kZSgpID09IEZh
aWxlZC4KIAotICAgICAgICBTdHJpbmcgc2VydmVyV2ViU29ja2V0T3JpZ2luKCkgY29uc3Q7Ci0g
ICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbigpIGNvbnN0OworICAgICAgICBT
dHJpbmcgc2VydmVyV2ViU29ja2V0T3JpZ2luKCkgY29uc3Q7IC8vIE9ubHkgZm9yIGhpeGllLTc2
IGhhbmRzaGFrZS4KKyAgICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldExvY2F0aW9uKCkgY29u
c3Q7IC8vIE9ubHkgZm9yIGhpeGllLTc2IGhhbmRzaGFrZS4KICAgICAgICAgU3RyaW5nIHNlcnZl
cldlYlNvY2tldFByb3RvY29sKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBzZXJ2ZXJTZXRDb29r
aWUoKSBjb25zdDsKICAgICAgICAgU3RyaW5nIHNlcnZlclNldENvb2tpZTIoKSBjb25zdDsKICAg
ICAgICAgU3RyaW5nIHNlcnZlclVwZ3JhZGUoKSBjb25zdDsKICAgICAgICAgU3RyaW5nIHNlcnZl
ckNvbm5lY3Rpb24oKSBjb25zdDsKKyAgICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldEFjY2Vw
dCgpIGNvbnN0OyAvLyBPbmx5IGZvciBoeWJpLTEwIGhhbmRzaGFrZS4KKyAgICAgICAgU3RyaW5n
IHNlcnZlcldlYlNvY2tldEV4dGVuc2lvbnMoKSBjb25zdDsgLy8gT25seSBmb3IgaHliaS0xMCBo
YW5kc2hha2UuCiAKICAgICAgICAgY29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UmIHNl
cnZlckhhbmRzaGFrZVJlc3BvbnNlKCkgY29uc3Q7CiAKQEAgLTEwMSwxNCArMTAzLDE5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBNb2RlIG1fbW9kZTsKIAotICAgICAgICBTdHJp
bmcgbV9zZWNXZWJTb2NrZXRLZXkxOwotICAgICAgICBTdHJpbmcgbV9zZWNXZWJTb2NrZXRLZXky
OwotICAgICAgICB1bnNpZ25lZCBjaGFyIG1fa2V5M1s4XTsKLSAgICAgICAgdW5zaWduZWQgY2hh
ciBtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2VbMTZdOwotCiAgICAgICAgIFdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICAgICAgU3RyaW5nIG1fZmFpbHVyZVJl
YXNvbjsKKworICAgICAgICAvLyBGb3IgaGl4aWUtNzYgaGFuZHNoYWtlLgorICAgICAgICBTdHJp
bmcgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5MTsKKyAgICAgICAgU3RyaW5nIG1faGl4aWU3NlNl
Y1dlYlNvY2tldEtleTI7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgbV9oaXhpZTc2S2V5M1s4XTsK
KyAgICAgICAgdW5zaWduZWQgY2hhciBtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNl
WzE2XTsKKworICAgICAgICAvLyBGb3IgaHliaS0xMCBoYW5kc2hha2UuCisgICAgICAgIFN0cmlu
ZyBtX3NlY1dlYlNvY2tldEtleTsKKyAgICAgICAgU3RyaW5nIG1fZXhwZWN0ZWRBY2NlcHQ7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100467</attachid>
            <date>2011-07-12 04:48:55 -0700</date>
            <delta_ts>2011-07-12 04:52:01 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-64344-20110712204852.patch</filename>
            <type>text/plain</type>
            <size>43922</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMDlkZWZiYTQ2OTU5YWNlN2RmM2U1
ODAzZTIwMWJkMmRhYTc2N2Q1Li45M2FiNmJjZTY1ZmY2Mjg0NzcxNTM4ZWViMGMxYjY5NTUwOTk4
NTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDctMTEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgaHliaSBo
YW5kc2hha2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY0MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGV4aXN0aW5nIHRlc3RzIHNvIHRoZXkgbWF0Y2ggdGhlIG5ldyBoYW5kc2hha2UgZm9ybWF0
LCBhbmQgYWRkIHRlc3RzIGZvciBuZXcgaGVhZGVyIGZpZWxkcy4KKworICAgICAgICBUaGVyZSBh
cmUgc2V2ZXJhbCBjaGFuZ2VzIGluIHRoZSBmb3JtYXQgb2YgaGFuZHNoYWtlIHJlc3BvbnNlLCBz
dWNoIGFzOgorICAgICAgICAtIFJlYXNvbiBzdHJpbmcgaW4gSFRUUCBzdGF0dXMgbGluZSBoYXMg
YmVlbiBjaGFuZ2VkIHRvICJTd2l0Y2hpbmcgUHJvdG9jb2xzIi4KKyAgICAgICAgLSBUaGUgdmFs
dWUgb2YgIlVwZ3JhZGUiIGhlYWRlciBoYXMgYmVlbiBjaGFuZ2VkIHRvICJ3ZWJzb2NrZXQiIChs
b3dlci1jYXNlIG9ubHkpLgorICAgICAgICAtIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5kIFNl
Yy1XZWJTb2NrZXQtT3JpZ2luIGFyZSBnb25lLgorICAgICAgICAtICJDaGFsbGVuZ2UgcmVzcG9u
c2UiIHZhbHVlICgxNi1ieXRlIGRhdGEgYWZ0ZXIgdGhlIHJlc3BvbnNlIGhlYWRlciBmaWVsZHMp
IGlzIHJlbW92ZWQsIGFuZAorICAgICAgICAgIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBp
cyBhZGRlZCBpbnN0ZWFkLgorCisgICAgICAgIFRoZSB2YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFj
Y2VwdCBoZWFkZXIgaXMgY29tcHV0ZWQgdXNpbmcgY29tcHV0ZV9hY2NlcHQoKSBmdW5jdGlvbgor
ICAgICAgICBsb2NhdGVkIGluIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IG1vZHVs
ZS4gQWx0aG91Z2ggdGhlIG1vZHVsZSBuYW1lIGNvbnRhaW5zCisgICAgICAgICJoeWJpMDYiLCB0
aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgU2VjLVdl
YlNvY2tldC1BY2NlcHQgaGVhZGVyCisgICAgICAgIGZvciBoeWJpLTEwIChjYWxjdWxhdGlvbiBt
ZXRob2QgaGFzIG5vdCBiZWVuIGNoYW5nZWQgc2luY2UgaHliaS0wNikuCisKKyAgICAgICAgTm90
ZTogVGVzdHMgdW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNsdWRpbmcgdGhlIG5ldyBvbmVzKSBh
cmUgc2tpcHBlZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAgICAgICAgeWV0LCBiZWNhdXNlIHB5
d2Vic29ja2V0IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBmcm9tIGhhbGYtYmFrZWQgY2xpZW50
IGltcGxlbWVudGF0aW9uCisgICAgICAgIChpLmUuIGh5YmkgaGFuZHNoYWtlICsgaGl4aWUtNzYg
ZnJhbWluZykuIFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hlbiBoeWJpIGZyYW1pbmcgaXMgbGFu
ZGVkCisgICAgICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oYW5kbGVyX21hcC50eHQ6CisgICAgICAgIFRoZXJlIG11c3QgYmUgb25seSBvbmUg
aGFuZGxlciB0aGF0IGNhbiBoYW5kbGUgcmVxdWVzdHMgdG8gIi8iLiBoeWJpL2VjaG8tbG9jYXRp
b25fd3NoLnB5CisgICAgICAgIGlzIG1vZGlmaWVkIHRvIGFjY2VwdCByZXF1ZXN0cyBvZiBib3Ro
IHByb3RvY29sIHZlcnNpb25zLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHk6CisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weToKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMt
aGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weTogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhf
d3NoLnB5OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8t
YWNjZXB0LWhlYWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXJfd3NoLnB5OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXByZXBlbmRlZC1udWxsX3dzaC5weToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LXdyb25nLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFj
Y2VwdC1oZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyX3dzaC5weTog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWlu
dmFsaWQtaGVhZGVyX3dzaC5weToKKwogMjAxMS0wNy0xMSAgWWkgU2hlbiAgPHlpLjQuc2hlbkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBBU1NFUlRJT04gRkFJTEVEIGluIFJlc291cmNlSGFu
ZGxlOjpzZXREZWZlcnNMb2FkaW5nIGNhdXNlcyBjcmFzaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0CmluZGV4IDk4ZmJh
YThiOWE2NzFhN2UzODgwZWM4ZWRmZTFhNDZiNmI5ZThlNjYuLmM2YjBiYTEwYmZjMDFmNjVmYzI2
OTIyNzlkODFlMzhkMjYwM2ZkYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hhbmRsZXJfbWFwLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oYW5kbGVyX21hcC50eHQKQEAgLTEsMyArMSw0IEBACiAjIHdl
YnNvY2tldCBoYW5kbGVyIG1hcCBmaWxlLgogIyByZXF1ZXN0IHRvICcvJyB3aWxsIGJlIGhhbmRs
ZWQgYnkgZWNoby1sb2NhdGlvbl93c2gucHkKLS8gL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Vj
aG8tbG9jYXRpb24KKyMgaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weSBjYW4gaGFuZGxlIGJvdGgg
aGl4aWUtNzYgYW5kIGh5YmktMTAgcHJvdG9jb2xzLgorLyAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5weSBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHkK
aW5kZXggN2I0MjViYzcxNjZmNTNkZmMyNjY5Y2RlZjkwMzM1MTIwN2E0NGQ0MC4uYTRkNDg4MjJi
YTA0MWY1OTUzY2QyZDY2ZTgxNjRhOTVjYTQ1OWY5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JhZC1o
YW5kc2hha2UtY3Jhc2hfd3NoLnB5CkBAIC0xLDEyICsxLDEzIEBACitmcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRlX2FjY2VwdAorCisKIGRlZiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBtc2cgPSAiSFRUUC8xLjEg
MTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuIgotICAgIG1zZyArPSAiVXBncmFk
ZTogV2ViU29ja2V0XHJcbiIKKyAgICBtc2cgPSAiSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90
b2NvbHNcclxuIgorICAgIG1zZyArPSAiVXBncmFkZTogd2Vic29ja2V0XHJcbiIKICAgICBtc2cg
Kz0gIkNvbm5lY3Rpb246IFVwZ3JhZGVcclxuIgotICAgIG1zZyArPSAiU2VjLVdlYlNvY2tldC1M
b2NhdGlvbjogIiArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAiXHJcbiIKLSAgICBtc2cgKz0gIlNl
Yy1XZWJTb2NrZXQtT3JpZ2luOiAiICsgcmVxdWVzdC53c19vcmlnaW4gKyAiXHJcbiIKKyAgICBt
c2cgKz0gIlNlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4iICUgY29tcHV0ZV9hY2NlcHQocmVx
dWVzdC5oZWFkZXJzX2luWyJTZWMtV2ViU29ja2V0LUtleSJdKVswXQogICAgIG1zZyArPSAiXHhh
NTpcclxuIgogICAgIG1zZyArPSAiXHJcbiIKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVu
Z2VfbWQ1CiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cK
ICAgICByYWlzZSBFeGNlcHRpb24oIkFib3J0IHRoZSBjb25uZWN0aW9uIikgIyBQcmV2ZW50cyBw
eXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNoby1s
b2NhdGlvbl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2VjaG8tbG9jYXRpb25fd3NoLnB5CmluZGV4IDMzOTA1NzBhYmFjODFiNTg1OTJjZmI0YmMw
ZGNhNWVlMDFiZDBiMjkuLjAzYzRhYTkyODNkMjA2MTJlNjVkZjQ4NmNkOGJmNmQ4NDk4MjgxYzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1sb2NhdGlvbl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjgsNyBAQAogCiAKIGZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2Uu
X2Jhc2UgaW1wb3J0IGJ1aWxkX2xvY2F0aW9uCiAKIAogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKHJlcXVlc3QpOgpAQCAtMzUsNSArMzYsMTQgQEAgZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgogCiAKIGRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCk6Ci0gICAgcHJpbnQgcmVxdWVzdC53c19sb2NhdGlvbgotICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsIHJlcXVlc3Qud3NfbG9jYXRpb24pCisgICAgaWYgaGFzYXR0
cihyZXF1ZXN0LCAnd3NfbG9jYXRpb24nKToKKyAgICAgICAgbG9jYXRpb24gPSByZXF1ZXN0Lndz
X2xvY2F0aW9uCisgICAgZWxzZToKKyAgICAgICAgIyBXaGVuIGh5YmkgcHJvdG9jb2wgaXMgdXNl
ZCwgcHl3ZWJzb2NrZXQgZG9lcyBub3QgcHJvdmlkZQorICAgICAgICAjIHdzX2xvY2F0aW9uIGF0
dHJpYnV0ZSBiZWNhdXNlIHNlcnZlcnMgYXJlIG5vdCByZXF1aXJlZCB0byBzZW5kCisgICAgICAg
ICMgU2VjLVdlYlNvY2tldC1Mb2NhdGlvbiBoZWFkZXIgYWNjb3JkaW5nIHRvIHRoZSBwcm90b2Nv
bAorICAgICAgICAjIHNwZWNpZmljYXRpb24uIElmIHdzX2xvY2F0aW9uIGF0dHJpYnV0ZSBpcyBu
b3QgYXZhaWxhYmxlLAorICAgICAgICAjIHdlIHVzZSBweXdlYnNvY2tldCdzIGludGVybmFsIGZ1
bmN0aW9uICJidWlsZF9mdW5jdGlvbiIKKyAgICAgICAgIyB0byBvYnRhaW4gdGhlIGlkZW50aWNh
bCB2YWx1ZS4KKyAgICAgICAgbG9jYXRpb24gPSBidWlsZF9sb2NhdGlvbihyZXF1ZXN0KQorICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIGxvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1leHRlbnNpb25zLWhlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGVkYWQxOTRjYjRhMmJmMzE0MjRiYWNiMDY5MzRj
ZWJjMzY4ZDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEVycm9y
IGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVh
ZGVyIGlzIGludmFsaWQKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgaGFuZHNoYWtlIGZhaWxzIGlm
IHRoZSBzZXJ2ZXIgc2VuZHMgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hh
bmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMt
aGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRjNmM1OGUxNWQ1ZjQ3NmUwMzg3MWQxOTUyYTYzYTFk
ZmQ5NjQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktZXh0ZW5zaW9ucy1oZWFkZXIuaHRtbApA
QCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUg
c2VydmVyIHNlbmRzIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIuIik7CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhp
ZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK3ZhciB1cmwgPSAid3M6Ly9sb2Nh
bGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNp
b25zLWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xvc2VFdmVu
dDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rp
b24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xvc2UgPSBm
dW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVG
YWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlcl93c2gu
cHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGEzZDc3MTU4
YTFhMWQyNzBlNGFlMjQ2NzZlM2Q1N2I1NGEwOWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1l
eHRlbnNpb25zLWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwxNiBAQAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCitkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgbWVzc2FnZSA9ICdIVFRQ
LzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCisgICAgbWVzc2FnZSArPSAnVXBncmFk
ZTogd2Vic29ja2V0XHJcbicKKyAgICBtZXNzYWdlICs9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKKyAgICBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1
dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KKyAg
ICBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6IHgtZm9vXHJcbicKKyAgICBt
ZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtZXNzYWdlKQor
ICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5
d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgorCisKK2Rl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5CmluZGV4IGMw
MzlmYjM4ZTkzMzEwMmEwMDVlYjFiYThjMjA4YzI1OTQ4N2Q1MTMuLjY3Njg3OTlkODU2MjRkMmFk
NzE3NzQyZGJhNGE3Nzg3M2NiYzliNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbWF4bGVuZ3RoX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LW1heGxlbmd0aF93c2gucHkKQEAgLTIwLDE3ICsyMCwxOCBAQAogIyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRl
X2FjY2VwdAorCisKIGRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToK
ICAgICAjIFRoaXMgd2lsbCBjYXVzZSB0aGUgaGFuZHNoYWtlIHRvIGZhaWwgYmVjYXVzZSBpdCBw
dXNoZXMgdGhlIGxlbmd0aCBvZiB0aGUKICAgICAjIHN0YXR1cyBsaW5lIHBhc3QgMTAyNCBjaGFy
YWN0ZXJzCiAgICAgbXNnID0gJy4nICogMTAyNAotICAgIG1zZyArPSAnSFRUUC8xLjEgMTAxIFdl
YlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgIG1zZyArPSAnVXBncmFkZTogV2Vi
U29ja2V0XHJcbicKKyAgICBtc2cgKz0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xz
XHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9ICdD
b25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRp
b246ICcgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMtV2Vi
U29ja2V0LU9yaWdpbjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNnICs9
ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3Qu
aGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4nCi0g
ICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZShtc2cpCiAgICAgcmFpc2UgRXhjZXB0aW9uKCdhYm9ydCB0aGUgY29ubmVjdGlvbicp
ICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1l
c3NhZ2UuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYzU4MDhh
ZmYyM2U0MTkwYWRjYzg5MmRkYjMyNGM1ZjA2ZjhhNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAwOiBFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1X
ZWJTb2NrZXQtQWNjZXB0JyBoZWFkZXIgaXMgbWlzc2luZworVGVzdCB3aGV0aGVyIFdlYlNvY2tl
dCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNlcnZlciBkb2VzIG5vdCBzZW5kIFNlYy1XZWJTb2Nr
ZXQtQWNjZXB0IGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNs
b3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYWY0NWQ4ODJk
Yjg5NWFiZjEwMDZmZTZkMGQ1NTg2NjAwYzNjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5v
LWFjY2VwdC1oZWFkZXIuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhh
bmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIGRvZXMgbm90IHNlbmQgU2VjLVdlYlNvY2tldC1B
Y2NlcHQgaGVhZGVyLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDAp
OworCit2YXIgdXJsID0gIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29j
a2V0KHVybCk7Cit2YXIgY2xvc2VFdmVudDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQorewor
ICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rpb24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2Uo
KTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50
ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby1hY2NlcHQtaGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOThlN2M2MDFkNDk2OGM4MjNiMGVhODZkNzIxYzFkZTUxMzlhMTYzNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwx
MiBAQAorZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIG1l
c3NhZ2UgPSAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJworICAgIG1lc3Nh
Z2UgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCisgICAgbWVzc2FnZSArPSAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCisgICAgIyBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDog
JXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tl
dC1LZXknXSlbMF0KKyAgICBtZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZShtZXNzYWdlKQorICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rp
b24nKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFr
ZSBtZXNzYWdlLgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Cisg
ICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRlcl93c2gucHkgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weQppbmRleCA3ZWZjODdhNTBkNjZkZTg3NGM4
YTFkYzM4NmYyZGI2Y2VmMDNhNDM3Li5mOTk2NTE4M2U1MDA3NDY5MTFiYjNiZThmNjE1NzEyZmQ4
Yzg4MDVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weQorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weQpAQCAtMSwxMSArMSwxMiBAQAorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQK
KworCiBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNn
ID0gJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICBt
c2cgKz0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgbXNnID0gJ0hUVFAvMS4xIDEwMSBT
d2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxy
XG4nCiAjICAgTWlzc2luZyAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgbXNnICs9ICdT
ZWMtV2ViU29ja2V0LUxvY2F0aW9uOiAnICsgcmVxdWVzdC53c19sb2NhdGlvbiArICdcclxuJwot
ICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1PcmlnaW46ICcgKyByZXF1ZXN0LndzX29yaWdpbiAr
ICdcclxuJworICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICVzXHJcbicgJSBjb21w
dXRlX2FjY2VwdChyZXF1ZXN0LmhlYWRlcnNfaW5bJ1NlYy1XZWJTb2NrZXQtS2V5J10pWzBdCiAg
ICAgbXNnICs9ICdcclxuJwotICAgIG1zZyArPSByZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUKICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobXNnKQogICAgIHByaW50IG1zZwogICAgIHJhaXNl
IEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0
IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby1jcl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weQppbmRleCA5Nzg5MjRhYjZlYjE4Yjk1
NmZmNDU1OWQ1YjkzZGJlZGU4M2I5MzMyLi41YzRiOWUzOTQyNjgwNDJmMTAyZGYxN2IxMGEwYmQz
ODdmZDIxMDhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weQorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNy
X3dzaC5weQpAQCAtMSwxMSArMSwxMiBAQAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Lmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCiBkZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNnID0gJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQg
UHJvdG9jb2wgSGFuZHNoYWtlXG4nICMgRG9lcyBub3QgZW5kIHdpdGggIlxyXG4iLgotICAgIG1z
ZyArPSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAgICBtc2cgPSAnSFRUUC8xLjEgMTAxIFN3
aXRjaGluZyBQcm90b2NvbHNcbicgIyBEb2VzIG5vdCBlbmQgd2l0aCAiXHJcbiIuCisgICAgbXNn
ICs9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwogICAgIG1zZyArPSAnQ29ubmVjdGlvbjogVXBn
cmFkZVxyXG4nCi0gICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiAnICsgcmVxdWVz
dC53c19sb2NhdGlvbiArICdcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1PcmlnaW46
ICcgKyByZXF1ZXN0LndzX29yaWdpbiArICdcclxuJworICAgIG1zZyArPSAnU2VjLVdlYlNvY2tl
dC1BY2NlcHQ6ICVzXHJcbicgJSBjb21wdXRlX2FjY2VwdChyZXF1ZXN0LmhlYWRlcnNfaW5bJ1Nl
Yy1XZWJTb2NrZXQtS2V5J10pWzBdCiAgICAgbXNnICs9ICdcclxuJwotICAgIG1zZyArPSByZXF1
ZXN0LndzX2NoYWxsZW5nZV9tZDUKICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobXNnKQog
ICAgIHByaW50IG1zZwogICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24n
KSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBt
ZXNzYWdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlcl93c2gucHkgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weQppbmRleCAxMTRkZTc1ZTE5MzdhYzViZWU1ZTcxYTU4
ZGNjZDlkZjZiMGFmNzhjLi5mODhkNTAwMTA4ODZlMjA1MWEwOTQwNDcwNzU1OGQ5OWIyZTAxN2Mz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weQorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5v
LXVwZ3JhZGUtaGVhZGVyX3dzaC5weQpAQCAtMSwxMSArMSwxMiBAQAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCiBkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNnID0gJ0hUVFAvMS4x
IDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSMgICBNaXNzaW5nICdVcGdy
YWRlOiBXZWJTb2NrZXRcclxuJworICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFBy
b3RvY29sc1xyXG4nCisjICAgTWlzc2luZyAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKICAgICBt
c2cgKz0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tl
dC1Mb2NhdGlvbjogJyArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAnXHJcbicKLSAgICBtc2cgKz0g
J1NlYy1XZWJTb2NrZXQtT3JpZ2luOiAnICsgcmVxdWVzdC53c19vcmlnaW4gKyAnXHJcbicKKyAg
ICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4nICUgY29tcHV0ZV9hY2NlcHQo
cmVxdWVzdC5oZWFkZXJzX2luWydTZWMtV2ViU29ja2V0LUtleSddKVswXQogICAgIG1zZyArPSAn
XHJcbicKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1CiAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cKICAgICByYWlzZSBFeGNlcHRpb24o
J0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNlbmRp
bmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVk
LW51bGxfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbF93c2gucHkKaW5kZXggMDczNTE4NDk4
MTQxOWY5YzJhMzYyZmI4Njk1MzYzNDExZjMwNWFhNS4uMjhhZGFiNGIwYmU3Y2YwNzc5NjMzYzE1
NjdiMmQ3ZmU2ZTkzM2MwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbF93c2gucHkK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hh
a2UtZmFpbC1ieS1wcmVwZW5kZWQtbnVsbF93c2gucHkKQEAgLTE5LDcgKzE5LDEwIEBACiAjIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKICMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKKwogaW1wb3J0IHRpbWUKK2Zyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFr
ZS5oeWJpMDYgaW1wb3J0IGNvbXB1dGVfYWNjZXB0CiAKIAogZGVmIHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgpAQCAtMjgsMTYgKzMxLDE0IEBAIGRlZiB3ZWJfc29ja2V0
X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKICAgICAjIGhhcHBlbnMgdGhlIGNsaWVudCBk
b2VzIG5vdCBidWZmZXIgYWxsIHRoZSBmcmFtZXMgYXMgdGhlIHNlcnZlciBjb250aW51ZXMKICAg
ICAjIHRvIHNlbmQgbW9yZSBkYXRhIC0gaXQgc2hvdWxkIGFib3J0IGFmdGVyIHJlYWRpbmcgYSBy
ZWFzb25hYmxlIG51bWJlciBvZgogICAgICMgYnl0ZXMgKHNldCBhcmJpdHJhcmlseSB0byAxMDI0
KS4KLSAgICBmcmFtZSA9ICdcMEZyYW1lLWNvbnRhaW5zLXRoaXJ0eS10d28tYnl0ZXMnCisgICAg
ZnJhbWUgPSBzdHJlYW0uY3JlYXRlX3RleHRfZnJhbWUoJ1wwRnJhbWUtY29udGFpbnMtdGhpcnR5
LXR3by1ieXRlcycpCiAKICAgICBtc2cgPSBmcmFtZQotICAgIG1zZyArPSAnSFRUUC8xLjEgMTAx
IFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgIG1zZyArPSAnVXBncmFkZTog
V2ViU29ja2V0XHJcbicKKyAgICBtc2cgKz0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9j
b2xzXHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9
ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9j
YXRpb246ICcgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMt
V2ViU29ja2V0LU9yaWdpbjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNn
ICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVl
c3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4n
Ci0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0ZShtc2cpCiAgICAgIyBjb250aW51ZSB3cml0aW5nIGRhdGEgdW50aWwgdGhlIGNs
aWVudCBkaXNjb25uZWN0cwogICAgIHdoaWxlIFRydWU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25n
LWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjYyNzU0MGIzMmYzZjRhYzc5NTA1ZGVmN2ZlNjY5ZTcz
N2ZlZjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogRXJyb3Ig
ZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IFNlYy1XZWJTb2NrZXQtQWNjZXB0IG1pc21hdGNo
CitUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIHNl
bmRzIGluY29ycmVjdCBTZWMtV2ViU29ja2V0LUFjY2VwdCBoZWFkZXIuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworUEFTUyBjbG9zZUV2ZW50Lndhc0NsZWFuIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFk
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NjIzNjA4YWIzMjViYjBmNzNjYjU4MzE3ZmYyMjlmYjAwNDFm
OTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLmh0bWwKQEAg
LTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdCB3aGV0aGVyIFdlYlNvY2tldCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNl
cnZlciBzZW5kcyBpbmNvcnJlY3QgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyLiIpOworCit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCit2YXIgdXJsID0gIndzOi8v
bG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3Jv
bmctYWNjZXB0LWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xv
c2VFdmVudDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHRlc3RGYWlsZWQoIkNv
bm5lY3Rpb24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xv
c2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hv
dWxkQmVGYWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOwor
fTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVh
ZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlcl93c2gucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDRhMDI4YmMxZmYzZjY2MjkzNWE4NGJiYzdiYzU0OTBmNjgxMjMyZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwxMiBAQAorZGVm
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIG1lc3NhZ2UgPSAn
SFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJworICAgIG1lc3NhZ2UgKz0gJ1Vw
Z3JhZGU6IHdlYnNvY2tldFxyXG4nCisgICAgbWVzc2FnZSArPSAnQ29ubmVjdGlvbjogVXBncmFk
ZVxyXG4nCisgICAgbWVzc2FnZSArPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IFhYWFh0aGlzaXN3
cm9uZ1hYWFhcclxuJworICAgIG1lc3NhZ2UgKz0gJ1xyXG4nCisgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKG1lc3NhZ2UpCisgICAgcmFpc2UgRXhjZXB0aW9uKCdBYm9ydCB0aGUgY29ubmVj
dGlvbicpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNo
YWtlIG1lc3NhZ2UuCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToK
KyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2xvbmctaW52YWxpZC1oZWFkZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWludmFsaWQtaGVhZGVyX3dzaC5weQppbmRl
eCA0YTE2OWYzZGEwYTk1OWVkM2Y0ODZkODE3N2VjMTMwNmY1OGQ0NjBlLi4yNmQ2YWY5OTQ1MGI1
N2E0NTUwOGRkNjY2OTcxZDA0ODJlZjdmMzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2xvbmctaW52YWxpZC1oZWFkZXJfd3NoLnB5Cisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbG9uZy1pbnZh
bGlkLWhlYWRlcl93c2gucHkKQEAgLTIsNyArMiw2IEBAIGRlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKICAgICBtc2cgPSAiSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQ
cm90b2NvbCBIYW5kc2hha2VcclxuIgogICAgIG1zZyArPSAoInAiICogMTAyNCkgKyAiXHJcbiIK
ICAgICBtc2cgKz0gIlxyXG4iCi0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQog
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtc2cpCiAgICAgcmFpc2UgRXhjZXB0aW9uKCJB
Ym9ydCB0aGUgY29ubmVjdGlvbiIpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5n
IGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2UuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMGRiMWJhZjM4NDFm
NzY0NDFhYzUwMzg2NjM1MTIxZjJlOWViNGFhLi42NWU2MzYzY2U4ODJkYjBjMjlmNDMyNmJjMmZl
NjcwMTFmNjIxYTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDctMTEgIFl1
dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJ
bXBsZW1lbnQgaHliaSBoYW5kc2hha2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50IFdlYlNvY2tldCBoYW5kc2hha2Ugd2hpY2ggaXMgZGVz
Y3JpYmVkIGF0CisgICAgICAgIDxodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRm
LWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMTAjc2VjdGlvbi01LjE+LgorCisgICAgICAgIE5v
dGFibGUgZGlmZmVyZW5jZXMgZnJvbSBoaXhpZS03NiBwcm90b2NvbCBhcmU6CisgICAgICAgIC0g
Q2hhbGxlbmdlLXJlc3BvbnNlIHNjaGVtZSBoYXMgYmVlbiBjaGFuZ2VkIGRyYW1hdGljYWxseS4K
KyAgICAgICAgLSBTZXJ2ZXJzIGRvIG5vdCBzZW5kIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5k
IFNlYy1XZWJTb2NrZXQtT3JpZ2luIGFueW1vcmUuCisgICAgICAgIC0gVGhlIHZhbHVlIG9mICJV
cGdyYWRlIiBoZWFkZXIgaGFzIGJlZW4gY2hhbmdlZCB0byAid2Vic29ja2V0IiAobG93ZXItY2Fz
ZSBvbmx5KS4KKyAgICAgICAgLSAiT3JpZ2luIiBoZWFkZXIgaW4gY2xpZW50J3MgcmVxdWVzdCBp
cyByZW5hbWVkIHRvICJTZWMtV2ViU29ja2V0LU9yaWdpbiIuCisKKyAgICAgICAgTmV3IHRlc3Rz
OiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVu
c2lvbnMtaGVhZGVyLmh0bWwKKyAgICAgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIuaHRtbAorICAg
ICAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci5odG1sCisKKyAgICAgICAgTm90ZTogVGVzdHMg
dW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNsdWRpbmcgdGhlIG5ldyBvbmVzKSBhcmUgc2tpcHBl
ZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAgICAgICAgeWV0LCBiZWNhdXNlIHB5d2Vic29ja2V0
IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBmcm9tIGhhbGYtYmFrZWQgY2xpZW50IGltcGxlbWVu
dGF0aW9uCisgICAgICAgIChpLmUuIGh5YmkgaGFuZHNoYWtlICsgaGl4aWUtNzYgZnJhbWluZyku
IFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hlbiBoeWJpIGZyYW1pbmcgaXMgbGFuZGVkCisgICAg
ICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFr
ZS5jcHA6CisgICAgICAgIEZ1bmN0aW9ucyBhbmQgbWVtYmVycyBvbmx5IHVzZWQgZm9yIGhpeGll
LTc2IGhhbmRzaGFrZSBhcmUgcmVuYW1lZCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBjb25mdXNlZAor
ICAgICAgICB3aXRoIGh5YmktMTAncyBvbmVzLgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVI
aXhpZTc2U2VjV2ViU29ja2V0S2V5KToKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlSGl4aWU3
NktleTMpOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVu
Z2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVNlY1dlYlNvY2tldEtleSk6
CisgICAgICAgIEdlbmVyYXRlcyBhIHZhbHVlIGZvciBTZWMtV2ViU29ja2V0LUtleSBhcyBzdGF0
ZWQgaW4gaHliaS0xMC4KKyAgICAgICAgKFdlYkNvcmU6OmdldEV4cGVjdGVkV2ViU29ja2V0QWNj
ZXB0KToKKyAgICAgICAgQ2FsY3VsYXRlcyB0aGUgZXhwZWN0ZWQgdmFsdWUgb2YgU2VjLVdlYlNv
Y2tldC1BY2NlcHQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OldlYlNv
Y2tldEhhbmRzaGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNs
aWVudEhhbmRzaGFrZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNo
YWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dEhhbmRzaGFrZTo6cmVhZFNlcnZlckhhbmRzaGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNvY2tldEFjY2VwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNvY2tldEV4dGVuc2lvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycyk6Cisg
ICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaDoKKwogMjAxMS0wNy0xMSAg
QnJhZGxleSBOZWxzb24gIDxicmFkbmVsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dl
YlNvY2tldEhhbmRzaGFrZS5jcHAKaW5kZXggMjEwYzMwZWU2ZWZhYThkNWY0OTgwNTE0N2Q0ODI4
MDhjYjI3YWUyMC4uNmEwNjQ5ZjgzZDEyODI1YjZhMDExNTUxNTNjZjYyOWYzNGRiNDFiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogCiAjaW5jbHVkZSAiV2ViU29ja2V0SGFuZHNoYWtlLmgiCiAKKyNp
bmNsdWRlICJCYXNlNjQuaCIKICNpbmNsdWRlICJDb29raWUuaCIKICNpbmNsdWRlICJDb29raWVK
YXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL01ENS5oPgorI2luY2x1ZGUgPHd0Zi9TSEExLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0xMDYsNyArMTA4LDcgQEAgc3RhdGljIHVp
bnQzMl90IHJhbmRvbU51bWJlckxlc3NUaGFuKHVpbnQzMl90IG4pCiAgICAgcmV0dXJuIHYgJSBu
OwogfQogCi1zdGF0aWMgdm9pZCBnZW5lcmF0ZVNlY1dlYlNvY2tldEtleSh1aW50MzJfdCYgbnVt
YmVyLCBTdHJpbmcmIGtleSkKK3N0YXRpYyB2b2lkIGdlbmVyYXRlSGl4aWU3NlNlY1dlYlNvY2tl
dEtleSh1aW50MzJfdCYgbnVtYmVyLCBTdHJpbmcmIGtleSkKIHsKICAgICB1aW50MzJfdCBzcGFj
ZSA9IHJhbmRvbU51bWJlckxlc3NUaGFuKDEyKSArIDE7CiAgICAgdWludDMyX3QgbWF4ID0gNDI5
NDk2NzI5NVUgLyBzcGFjZTsKQEAgLTEzMSw3ICsxMzMsNyBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0
ZVNlY1dlYlNvY2tldEtleSh1aW50MzJfdCYgbnVtYmVyLCBTdHJpbmcmIGtleSkKICAgICBrZXkg
PSBzOwogfQogCi1zdGF0aWMgdm9pZCBnZW5lcmF0ZUtleTModW5zaWduZWQgY2hhciBrZXkzWzhd
KQorc3RhdGljIHZvaWQgZ2VuZXJhdGVIaXhpZTc2S2V5Myh1bnNpZ25lZCBjaGFyIGtleTNbOF0p
CiB7CiAgICAgY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21WYWx1ZXMoa2V5MywgOCk7CiB9CkBAIC0x
NDYsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQgc2V0Q2hhbGxlbmdlTnVtYmVyKHVuc2lnbmVkIGNo
YXIqIGJ1ZiwgdWludDMyX3QgbnVtYmVyKQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgZ2VuZXJh
dGVFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKHVpbnQzMl90IG51bWJlcjEsIHVpbnQzMl90IG51
bWJlcjIsIHVuc2lnbmVkIGNoYXIga2V5M1s4XSwgdW5zaWduZWQgY2hhciBleHBlY3RlZENoYWxs
ZW5nZVsxNl0pCitzdGF0aWMgdm9pZCBnZW5lcmF0ZUhpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJl
c3BvbnNlKHVpbnQzMl90IG51bWJlcjEsIHVpbnQzMl90IG51bWJlcjIsIHVuc2lnbmVkIGNoYXIg
a2V5M1s4XSwgdW5zaWduZWQgY2hhciBleHBlY3RlZENoYWxsZW5nZVsxNl0pCiB7CiAgICAgdW5z
aWduZWQgY2hhciBjaGFsbGVuZ2VbMTZdOwogICAgIHNldENoYWxsZW5nZU51bWJlcigmY2hhbGxl
bmdlWzBdLCBudW1iZXIxKTsKQEAgLTE1OSw2ICsxNjEsMjcgQEAgc3RhdGljIHZvaWQgZ2VuZXJh
dGVFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKHVpbnQzMl90IG51bWJlcjEsIHVpbnQzMl90IG51
bWJlcjIKICAgICBtZW1jcHkoZXhwZWN0ZWRDaGFsbGVuZ2UsIGRpZ2VzdC5kYXRhKCksIDE2KTsK
IH0KIAorc3RhdGljIFN0cmluZyBnZW5lcmF0ZVNlY1dlYlNvY2tldEtleSgpCit7CisgICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBub25jZVNpemUgPSAxNjsKKyAgICB1bnNpZ25lZCBjaGFyIGtleVtu
b25jZVNpemVdOworICAgIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKGtleSwgbm9uY2VT
aXplKTsKKyAgICByZXR1cm4gYmFzZTY0RW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGtl
eSksIG5vbmNlU2l6ZSk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZ2V0RXhwZWN0ZWRXZWJTb2NrZXRB
Y2NlcHQoY29uc3QgU3RyaW5nJiBzZWNXZWJTb2NrZXRLZXkpCit7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IHdlYlNvY2tldEtleUdVSUQgPSAiMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0Et
QzVBQjBEQzg1QjExIjsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IHNoYTFIYXNoU2l6ZSA9IDIw
OyAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGVmaW5lZCBpbiBTSEExLmguCisgICAgU0hBMSBz
aGExOworICAgIENTdHJpbmcga2V5RGF0YSA9IHNlY1dlYlNvY2tldEtleS5hc2NpaSgpOworICAg
IHNoYTEuYWRkQnl0ZXMocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oa2V5RGF0YS5k
YXRhKCkpLCBrZXlEYXRhLmxlbmd0aCgpKTsKKyAgICBzaGExLmFkZEJ5dGVzKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHdlYlNvY2tldEtleUdVSUQpLCBzdHJsZW4od2ViU29ja2V0
S2V5R1VJRCkpOworICAgIFZlY3Rvcjx1aW50OF90LCBzaGExSGFzaFNpemU+IGhhc2g7CisgICAg
c2hhMS5jb21wdXRlSGFzaChoYXNoKTsKKyAgICByZXR1cm4gYmFzZTY0RW5jb2RlKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGhhc2guZGF0YSgpKSwgc2hhMUhhc2hTaXplKTsKK30KKwog
V2ViU29ja2V0SGFuZHNoYWtlOjpXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHByb3RvY29sLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBi
b29sIHVzZUhpeGllNzZQcm90b2NvbCkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1fY2xpZW50
UHJvdG9jb2wocHJvdG9jb2wpCkBAIC0xNjcsMTIgKzE5MCwxNyBAQCBXZWJTb2NrZXRIYW5kc2hh
a2U6OldlYlNvY2tldEhhbmRzaGFrZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wsCiAgICAgLCBtX3VzZUhpeGllNzZQcm90b2NvbCh1c2VIaXhpZTc2UHJvdG9jb2wpCiAg
ICAgLCBtX21vZGUoSW5jb21wbGV0ZSkKIHsKLSAgICB1aW50MzJfdCBudW1iZXIxOwotICAgIHVp
bnQzMl90IG51bWJlcjI7Ci0gICAgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkobnVtYmVyMSwgbV9z
ZWNXZWJTb2NrZXRLZXkxKTsKLSAgICBnZW5lcmF0ZVNlY1dlYlNvY2tldEtleShudW1iZXIyLCBt
X3NlY1dlYlNvY2tldEtleTIpOwotICAgIGdlbmVyYXRlS2V5MyhtX2tleTMpOwotICAgIGdlbmVy
YXRlRXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZShudW1iZXIxLCBudW1iZXIyLCBtX2tleTMsIG1f
ZXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29s
KSB7CisgICAgICAgIHVpbnQzMl90IG51bWJlcjE7CisgICAgICAgIHVpbnQzMl90IG51bWJlcjI7
CisgICAgICAgIGdlbmVyYXRlSGl4aWU3NlNlY1dlYlNvY2tldEtleShudW1iZXIxLCBtX2hpeGll
NzZTZWNXZWJTb2NrZXRLZXkxKTsKKyAgICAgICAgZ2VuZXJhdGVIaXhpZTc2U2VjV2ViU29ja2V0
S2V5KG51bWJlcjIsIG1faGl4aWU3NlNlY1dlYlNvY2tldEtleTIpOworICAgICAgICBnZW5lcmF0
ZUhpeGllNzZLZXkzKG1faGl4aWU3NktleTMpOworICAgICAgICBnZW5lcmF0ZUhpeGllNzZFeHBl
Y3RlZENoYWxsZW5nZVJlc3BvbnNlKG51bWJlcjEsIG51bWJlcjIsIG1faGl4aWU3NktleTMsIG1f
aGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpOworICAgIH0gZWxzZSB7CisgICAgICAg
IG1fc2VjV2ViU29ja2V0S2V5ID0gZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKTsKKyAgICAgICAg
bV9leHBlY3RlZEFjY2VwdCA9IGdldEV4cGVjdGVkV2ViU29ja2V0QWNjZXB0KG1fc2VjV2ViU29j
a2V0S2V5KTsKKyAgICB9CiB9CiAKIFdlYlNvY2tldEhhbmRzaGFrZTo6fldlYlNvY2tldEhhbmRz
aGFrZSgpCkBAIC0yMzQsMTAgKzI2MiwxNiBAQCBDU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6
Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpIGNvbnN0CiAgICAgYnVpbGRlci5hcHBlbmQoIiBIVFRQ
LzEuMVxyXG4iKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGZpZWxkczsKLSAgICBmaWVsZHMuYXBw
ZW5kKCJVcGdyYWRlOiBXZWJTb2NrZXQiKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wp
CisgICAgICAgIGZpZWxkcy5hcHBlbmQoIlVwZ3JhZGU6IFdlYlNvY2tldCIpOworICAgIGVsc2UK
KyAgICAgICAgZmllbGRzLmFwcGVuZCgiVXBncmFkZTogd2Vic29ja2V0Iik7CiAgICAgZmllbGRz
LmFwcGVuZCgiQ29ubmVjdGlvbjogVXBncmFkZSIpOwogICAgIGZpZWxkcy5hcHBlbmQoIkhvc3Q6
ICIgKyBob3N0TmFtZShtX3VybCwgbV9zZWN1cmUpKTsKLSAgICBmaWVsZHMuYXBwZW5kKCJPcmln
aW46ICIgKyBjbGllbnRPcmlnaW4oKSk7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQor
ICAgICAgICBmaWVsZHMuYXBwZW5kKCJPcmlnaW46ICIgKyBjbGllbnRPcmlnaW4oKSk7CisgICAg
ZWxzZQorICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LU9yaWdpbjogIiArIGNs
aWVudE9yaWdpbigpKTsKICAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgpKQogICAg
ICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVByb3RvY29sOiAiICsgbV9jbGllbnRQ
cm90b2NvbCk7CiAKQEAgLTI1MCw4ICsyODQsMTYgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hh
a2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogICAgICAgICAvLyBTZXQgIkNvb2tp
ZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhpc3RzIGZvciB1cmw/CiAgICAgfQogCi0gICAg
ZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1LZXkxOiAiICsgbV9zZWNXZWJTb2NrZXRLZXkx
KTsKLSAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LUtleTI6ICIgKyBtX3NlY1dlYlNv
Y2tldEtleTIpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgeworICAgICAgICBmaWVs
ZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LUtleTE6ICIgKyBtX2hpeGllNzZTZWNXZWJTb2NrZXRL
ZXkxKTsKKyAgICAgICAgZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1LZXkyOiAiICsgbV9o
aXhpZTc2U2VjV2ViU29ja2V0S2V5Mik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZmllbGRzLmFw
cGVuZCgiU2VjLVdlYlNvY2tldC1LZXk6ICIgKyBtX3NlY1dlYlNvY2tldEtleSk7CisgICAgICAg
IC8vIEZJWE1FOiBDdXJyZW50IHZlcnNpb24gb2YgcHl3ZWJzb2NrZXQgb25seSBhY2NlcHRzIHZl
cnNpb24gdmFsdWUgb2YgNywKKyAgICAgICAgLy8gd2hpbGUgaHliaS0xMCByZXF1aXJlcyB0aGlz
IHZhbHVlIHRvIGJlIDguIFNob3VsZCBiZSBmaXhlZCB3aGVuCisgICAgICAgIC8vIGEgbmV3IHZl
cnNpb24gb2YgcHl3ZWJzb2NrZXQgaXMgcmVsZWFzZWQuCisgICAgICAgIGZpZWxkcy5hcHBlbmQo
IlNlYy1XZWJTb2NrZXQtVmVyc2lvbjogNyIpOworICAgIH0KIAogICAgIC8vIEZpZWxkcyBpbiB0
aGUgaGFuZHNoYWtlIGFyZSBzZW50IGJ5IHRoZSBjbGllbnQgaW4gYSByYW5kb20gb3JkZXI7IHRo
ZQogICAgIC8vIG9yZGVyIGlzIG5vdCBtZWFuaW5nZnVsLiAgVGh1cywgaXQncyBvayB0byBzZW5k
IHRoZSBvcmRlciB3ZSBjb25zdHJ1Y3RlZApAQCAtMjY1LDEwICszMDcsMTQgQEAgQ1N0cmluZyBX
ZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogICAgIGJ1
aWxkZXIuYXBwZW5kKCJcclxuIik7CiAKICAgICBDU3RyaW5nIGhhbmRzaGFrZUhlYWRlciA9IGJ1
aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7CisgICAgLy8gSHliaS0xMCBoYW5kc2hha2UgaXMgY29t
cGxldGUgYXQgdGhpcyBwb2ludC4KKyAgICBpZiAoIW1fdXNlSGl4aWU3NlByb3RvY29sKQorICAg
ICAgICByZXR1cm4gaGFuZHNoYWtlSGVhZGVyOworICAgIC8vIEhpeGllLTc2IHByb3RvY29sIHJl
cXVpcmVzIHNlbmRpbmcgZWlnaHQtYnl0ZSBkYXRhIChzby1jYWxsZWQgImtleTMiKSBhZnRlciB0
aGUgcmVxdWVzdCBoZWFkZXIgZmllbGRzLgogICAgIGNoYXIqIGNoYXJhY3RlckJ1ZmZlciA9IDA7
Ci0gICAgQ1N0cmluZyBtc2cgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxpemVkKGhhbmRzaGFrZUhl
YWRlci5sZW5ndGgoKSArIHNpemVvZihtX2tleTMpLCBjaGFyYWN0ZXJCdWZmZXIpOworICAgIENT
dHJpbmcgbXNnID0gQ1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChoYW5kc2hha2VIZWFkZXIubGVu
Z3RoKCkgKyBzaXplb2YobV9oaXhpZTc2S2V5MyksIGNoYXJhY3RlckJ1ZmZlcik7CiAgICAgbWVt
Y3B5KGNoYXJhY3RlckJ1ZmZlciwgaGFuZHNoYWtlSGVhZGVyLmRhdGEoKSwgaGFuZHNoYWtlSGVh
ZGVyLmxlbmd0aCgpKTsKLSAgICBtZW1jcHkoY2hhcmFjdGVyQnVmZmVyICsgaGFuZHNoYWtlSGVh
ZGVyLmxlbmd0aCgpLCBtX2tleTMsIHNpemVvZihtX2tleTMpKTsKKyAgICBtZW1jcHkoY2hhcmFj
dGVyQnVmZmVyICsgaGFuZHNoYWtlSGVhZGVyLmxlbmd0aCgpLCBtX2hpeGllNzZLZXkzLCBzaXpl
b2YobV9oaXhpZTc2S2V5MykpOwogICAgIHJldHVybiBtc2c7CiB9CiAKQEAgLTI3OCwxMCArMzI0
LDE2IEBAIFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGll
bnRIYW5kc2hha2VSZXF1ZXN0KCkgY29uc3QKICAgICAvLyBGSVhNRTogZG8gd2UgbmVlZCB0byBz
dG9yZSBtX3NlY1dlYlNvY2tldEtleTEsIG1fc2VjV2ViU29ja2V0S2V5MiBhbmQKICAgICAvLyBt
X2tleTMgaW4gV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdD8KICAgICBXZWJTb2NrZXRIYW5kc2hh
a2VSZXF1ZXN0IHJlcXVlc3QoIkdFVCIsIG1fdXJsKTsKLSAgICByZXF1ZXN0LmFkZEhlYWRlckZp
ZWxkKCJVcGdyYWRlIiwgIldlYlNvY2tldCIpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2Nv
bCkKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiVXBncmFkZSIsICJXZWJTb2NrZXQi
KTsKKyAgICBlbHNlCisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlVwZ3JhZGUiLCAi
d2Vic29ja2V0Iik7CiAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiQ29ubmVjdGlvbiIsICJV
cGdyYWRlIik7CiAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiSG9zdCIsIGhvc3ROYW1lKG1f
dXJsLCBtX3NlY3VyZSkpOwotICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIk9yaWdpbiIsIGNs
aWVudE9yaWdpbigpKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCisgICAgICAgIHJl
cXVlc3QuYWRkSGVhZGVyRmllbGQoIk9yaWdpbiIsIGNsaWVudE9yaWdpbigpKTsKKyAgICBlbHNl
CisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtT3JpZ2luIiwg
Y2xpZW50T3JpZ2luKCkpOwogICAgIGlmICghbV9jbGllbnRQcm90b2NvbC5pc0VtcHR5KCkpCiAg
ICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6Iiwg
bV9jbGllbnRQcm90b2NvbCk7CiAKQEAgLTI5NCw5ICszNDYsMTQgQEAgV2ViU29ja2V0SGFuZHNo
YWtlUmVxdWVzdCBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZVJlcXVlc3QoKSBj
b25zdAogICAgICAgICAvLyBTZXQgIkNvb2tpZTI6IDxjb29raWU+IiBpZiBjb29raWVzIDIgZXhp
c3RzIGZvciB1cmw/CiAgICAgfQogCi0gICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdl
YlNvY2tldC1LZXkxIiwgbV9zZWNXZWJTb2NrZXRLZXkxKTsKLSAgICByZXF1ZXN0LmFkZEhlYWRl
ckZpZWxkKCJTZWMtV2ViU29ja2V0LUtleTIiLCBtX3NlY1dlYlNvY2tldEtleTIpOwotICAgIHJl
cXVlc3Quc2V0S2V5MyhtX2tleTMpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgewor
ICAgICAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LUtleTEiLCBtX2hp
eGllNzZTZWNXZWJTb2NrZXRLZXkxKTsKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgi
U2VjLVdlYlNvY2tldC1LZXkyIiwgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5Mik7CisgICAgICAg
IHJlcXVlc3Quc2V0S2V5MyhtX2hpeGllNzZLZXkzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBy
ZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LUtleSIsIG1fc2VjV2ViU29ja2V0
S2V5KTsKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tldC1WZXJz
aW9uIiwgIjciKTsgLy8gRklYTUU6IFNlZSBGSVhNRSBpbiBjbGllbnRIYW5kc2hha2VNZXNzYWdl
KCkuCisgICAgfQogCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0zNDgsMTggKzQwNSwyNyBA
QCBpbnQgV2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU2VydmVySGFuZHNoYWtlKGNvbnN0IGNoYXIq
IGhlYWRlciwgc2l6ZV90IGxlbikKICAgICAgICAgbV9tb2RlID0gRmFpbGVkOwogICAgICAgICBy
ZXR1cm4gcCAtIGhlYWRlcjsKICAgICB9Ci0gICAgaWYgKGxlbiA8IHN0YXRpY19jYXN0PHNpemVf
dD4ocCAtIGhlYWRlciArIHNpemVvZihtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkgewor
CisgICAgaWYgKCFtX3VzZUhpeGllNzZQcm90b2NvbCkgeyAvLyBIeWJpLTEwIGhhbmRzaGFrZSBp
cyBjb21wbGV0ZSBhdCB0aGlzIHBvaW50LgorICAgICAgICBtX21vZGUgPSBDb25uZWN0ZWQ7Cisg
ICAgICAgIHJldHVybiBwIC0gaGVhZGVyOworICAgIH0KKworICAgIC8vIEluIGhpeGllLTc2IHBy
b3RvY29sLCBzZXJ2ZXIncyBoYW5kc2hha2UgY29udGFpbnMgc2l4dGVlbi1ieXRlIGRhdGEgKGNh
bGxlZCAiY2hhbGxlbmdlIHJlc3BvbnNlIikKKyAgICAvLyBhZnRlciB0aGUgaGVhZGVyIGZpZWxk
cy4KKyAgICBpZiAobGVuIDwgc3RhdGljX2Nhc3Q8c2l6ZV90PihwIC0gaGVhZGVyICsgc2l6ZW9m
KG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkgewogICAgICAgICAvLyBKdXN0
IGhhc24ndCBiZWVuIHJlY2VpdmVkIC9leHBlY3RlZC8geWV0LgogICAgICAgICBtX21vZGUgPSBJ
bmNvbXBsZXRlOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorCiAgICAgbV9yZXNwb25zZS5z
ZXRDaGFsbGVuZ2VSZXNwb25zZShzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oc3Rh
dGljX2Nhc3Q8Y29uc3Qgdm9pZCo+KHApKSk7Ci0gICAgaWYgKG1lbWNtcChwLCBtX2V4cGVjdGVk
Q2hhbGxlbmdlUmVzcG9uc2UsIHNpemVvZihtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkg
eworICAgIGlmIChtZW1jbXAocCwgbV9oaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSwg
c2l6ZW9mKG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpKSkgewogICAgICAgICBt
X21vZGUgPSBGYWlsZWQ7Ci0gICAgICAgIHJldHVybiAocCAtIGhlYWRlcikgKyBzaXplb2YobV9l
eHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuIChwIC0gaGVhZGVyKSAr
IHNpemVvZihtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKICAgICB9CiAgICAg
bV9tb2RlID0gQ29ubmVjdGVkOwotICAgIHJldHVybiAocCAtIGhlYWRlcikgKyBzaXplb2YobV9l
eHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKKyAgICByZXR1cm4gKHAgLSBoZWFkZXIpICsgc2l6
ZW9mKG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpOwogfQogCiBXZWJTb2NrZXRI
YW5kc2hha2U6Ok1vZGUgV2ViU29ja2V0SGFuZHNoYWtlOjptb2RlKCkgY29uc3QKQEAgLTQwNyw2
ICs0NzMsMTYgQEAgU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6c2VydmVyQ29ubmVjdGlvbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcmVzcG9uc2UuaGVhZGVyRmllbGRzKCkuZ2V0KCJjb25uZWN0
aW9uIik7CiB9CiAKK1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNvY2tldEFj
Y2VwdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzcG9uc2UuaGVhZGVyRmllbGRzKCkuZ2V0
KCJzZWMtd2Vic29ja2V0LWFjY2VwdCIpOworfQorCitTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtl
OjpzZXJ2ZXJXZWJTb2NrZXRFeHRlbnNpb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNw
b25zZS5oZWFkZXJGaWVsZHMoKS5nZXQoInNlYy13ZWJzb2NrZXQtZXh0ZW5zaW9ucyIpOworfQor
CiBjb25zdCBXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSYgV2ViU29ja2V0SGFuZHNoYWtlOjpz
ZXJ2ZXJIYW5kc2hha2VSZXNwb25zZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcmVzcG9uc2U7
CkBAIC01NzEsNiArNjQ3LDggQEAgYm9vbCBXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9u
c2VIZWFkZXJzKCkKICAgICBjb25zdCBTdHJpbmcmIHNlcnZlcldlYlNvY2tldFByb3RvY29sID0g
dGhpcy0+c2VydmVyV2ViU29ja2V0UHJvdG9jb2woKTsKICAgICBjb25zdCBTdHJpbmcmIHNlcnZl
clVwZ3JhZGUgPSB0aGlzLT5zZXJ2ZXJVcGdyYWRlKCk7CiAgICAgY29uc3QgU3RyaW5nJiBzZXJ2
ZXJDb25uZWN0aW9uID0gdGhpcy0+c2VydmVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IFN0cmlu
ZyYgc2VydmVyV2ViU29ja2V0QWNjZXB0ID0gdGhpcy0+c2VydmVyV2ViU29ja2V0QWNjZXB0KCk7
CisgICAgY29uc3QgU3RyaW5nJiBzZXJ2ZXJXZWJTb2NrZXRFeHRlbnNpb25zID0gdGhpcy0+c2Vy
dmVyV2ViU29ja2V0RXh0ZW5zaW9ucygpOwogCiAgICAgaWYgKHNlcnZlclVwZ3JhZGUuaXNOdWxs
KCkpIHsKICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiAnVXBncmFkZScgaGVhZGVyIGlzIG1pc3NpbmciOwpAQCAtNTgwLDEzICs2NTgs
MjAgQEAgYm9vbCBXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9uc2VIZWFkZXJzKCkKICAg
ICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtl
OiAnQ29ubmVjdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQotICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRPcmlnaW4uaXNOdWxsKCkpIHsKLSAgICAg
ICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAn
U2VjLVdlYlNvY2tldC1PcmlnaW4nIGhlYWRlciBpcyBtaXNzaW5nIjsKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoc2VydmVyV2ViU29ja2V0TG9jYXRpb24uaXNOdWxsKCkp
IHsKLSAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFu
ZHNoYWtlOiAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciOwotICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKSB7CisgICAg
ICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRPcmlnaW4uaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1f
ZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1X
ZWJTb2NrZXQtT3JpZ2luJyBoZWFkZXIgaXMgbWlzc2luZyI7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlcnZlcldlYlNvY2tldExvY2F0aW9uLmlz
TnVsbCgpKSB7CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdl
YlNvY2tldCBoYW5kc2hha2U6ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uJyBoZWFkZXIgaXMgbWlz
c2luZyI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoc2VydmVyV2ViU29ja2V0QWNjZXB0LmlzTnVsbCgpKSB7CisgICAgICAg
ICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6
ICdTZWMtV2ViU29ja2V0LUFjY2VwdCcgaGVhZGVyIGlzIG1pc3NpbmciOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFlcXVhbElnbm9yaW5n
Q2FzZShzZXJ2ZXJVcGdyYWRlLCAid2Vic29ja2V0IikpIHsKQEAgLTU5OCwxNyArNjgzLDMxIEBA
IGJvb2wgV2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycygpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoY2xpZW50T3JpZ2luKCkgIT0gc2VydmVy
V2ViU29ja2V0T3JpZ2luKSB7Ci0gICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJp
bmcgV2ViU29ja2V0IGhhbmRzaGFrZTogb3JpZ2luIG1pc21hdGNoOiAiICsgY2xpZW50T3JpZ2lu
KCkgKyAiICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRPcmlnaW47Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gICAgaWYgKGNsaWVudExvY2F0aW9uKCkgIT0gc2VydmVyV2ViU29ja2V0TG9j
YXRpb24pIHsKLSAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2Nr
ZXQgaGFuZHNoYWtlOiBsb2NhdGlvbiBtaXNtYXRjaDogIiArIGNsaWVudExvY2F0aW9uKCkgKyAi
ICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgpICYmIG1fY2xpZW50UHJv
dG9jb2wgIT0gc2VydmVyV2ViU29ja2V0UHJvdG9jb2wpIHsKLSAgICAgICAgbV9mYWlsdXJlUmVh
c29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBwcm90b2NvbCBtaXNtYXRj
aDogIiArIG1fY2xpZW50UHJvdG9jb2wgKyAiICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRQcm90b2Nv
bDsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkg
eworICAgICAgICBpZiAoY2xpZW50T3JpZ2luKCkgIT0gc2VydmVyV2ViU29ja2V0T3JpZ2luKSB7
CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBo
YW5kc2hha2U6IG9yaWdpbiBtaXNtYXRjaDogIiArIGNsaWVudE9yaWdpbigpICsgIiAhPSAiICsg
c2VydmVyV2ViU29ja2V0T3JpZ2luOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgICAgICAgIGlmIChjbGllbnRMb2NhdGlvbigpICE9IHNlcnZlcldlYlNvY2tldExvY2F0
aW9uKSB7CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNv
Y2tldCBoYW5kc2hha2U6IGxvY2F0aW9uIG1pc21hdGNoOiAiICsgY2xpZW50TG9jYXRpb24oKSAr
ICIgIT0gIiArIHNlcnZlcldlYlNvY2tldExvY2F0aW9uOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgICAgIGlmICghbV9jbGllbnRQcm90b2NvbC5pc0VtcHR5KCkg
JiYgbV9jbGllbnRQcm90b2NvbCAhPSBzZXJ2ZXJXZWJTb2NrZXRQcm90b2NvbCkgeworICAgICAg
ICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtl
OiBwcm90b2NvbCBtaXNtYXRjaDogIiArIG1fY2xpZW50UHJvdG9jb2wgKyAiICE9ICIgKyBzZXJ2
ZXJXZWJTb2NrZXRQcm90b2NvbDsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRBY2NlcHQgIT0gbV9l
eHBlY3RlZEFjY2VwdCkgeworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1
cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUFjY2VwdCBtaXNtYXRjaCI7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFzZXJ2
ZXJXZWJTb2NrZXRFeHRlbnNpb25zLmlzTnVsbCgpKSB7CisgICAgICAgICAgICAvLyBXZWJTb2Nr
ZXQgcHJvdG9jb2wgZXh0ZW5zaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuCisgICAgICAgICAg
ICAvLyBXZSBkbyBub3Qgc2VuZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGluIG91
ciByZXF1ZXN0LCB0aHVzCisgICAgICAgICAgICAvLyBzZXJ2ZXJzIHNob3VsZCBub3QgcmV0dXJu
IHRoaXMgaGVhZGVyLCBlaXRoZXIuCisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJy
b3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBo
ZWFkZXIgaXMgaW52YWxpZCI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
ICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2UuaAppbmRleCAzODA4ZTYxMWY2MDYwODI3MmFjYTJiYTU1ODk4
OTIzYWI4MjU0MDYyLi4wY2NlNWFmYmVkYjIzNmE0OTEyZjMwYjNmYjgxNWJiYTMyNzE0MDBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAt
NzMsMTMgKzczLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTW9kZSBtb2RlKCkg
Y29uc3Q7CiAgICAgICAgIFN0cmluZyBmYWlsdXJlUmVhc29uKCkgY29uc3Q7IC8vIFJldHVybnMg
YSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgcmVhc29uIG9mIGZhaWx1cmUgaWYgbW9kZSgpID09IEZh
aWxlZC4KIAotICAgICAgICBTdHJpbmcgc2VydmVyV2ViU29ja2V0T3JpZ2luKCkgY29uc3Q7Ci0g
ICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbigpIGNvbnN0OworICAgICAgICBT
dHJpbmcgc2VydmVyV2ViU29ja2V0T3JpZ2luKCkgY29uc3Q7IC8vIE9ubHkgZm9yIGhpeGllLTc2
IGhhbmRzaGFrZS4KKyAgICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldExvY2F0aW9uKCkgY29u
c3Q7IC8vIE9ubHkgZm9yIGhpeGllLTc2IGhhbmRzaGFrZS4KICAgICAgICAgU3RyaW5nIHNlcnZl
cldlYlNvY2tldFByb3RvY29sKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBzZXJ2ZXJTZXRDb29r
aWUoKSBjb25zdDsKICAgICAgICAgU3RyaW5nIHNlcnZlclNldENvb2tpZTIoKSBjb25zdDsKICAg
ICAgICAgU3RyaW5nIHNlcnZlclVwZ3JhZGUoKSBjb25zdDsKICAgICAgICAgU3RyaW5nIHNlcnZl
ckNvbm5lY3Rpb24oKSBjb25zdDsKKyAgICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldEFjY2Vw
dCgpIGNvbnN0OyAvLyBPbmx5IGZvciBoeWJpLTEwIGhhbmRzaGFrZS4KKyAgICAgICAgU3RyaW5n
IHNlcnZlcldlYlNvY2tldEV4dGVuc2lvbnMoKSBjb25zdDsgLy8gT25seSBmb3IgaHliaS0xMCBo
YW5kc2hha2UuCiAKICAgICAgICAgY29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UmIHNl
cnZlckhhbmRzaGFrZVJlc3BvbnNlKCkgY29uc3Q7CiAKQEAgLTEwMSwxNCArMTAzLDE5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBNb2RlIG1fbW9kZTsKIAotICAgICAgICBTdHJp
bmcgbV9zZWNXZWJTb2NrZXRLZXkxOwotICAgICAgICBTdHJpbmcgbV9zZWNXZWJTb2NrZXRLZXky
OwotICAgICAgICB1bnNpZ25lZCBjaGFyIG1fa2V5M1s4XTsKLSAgICAgICAgdW5zaWduZWQgY2hh
ciBtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2VbMTZdOwotCiAgICAgICAgIFdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlIG1fcmVzcG9uc2U7CiAKICAgICAgICAgU3RyaW5nIG1fZmFpbHVyZVJl
YXNvbjsKKworICAgICAgICAvLyBGb3IgaGl4aWUtNzYgaGFuZHNoYWtlLgorICAgICAgICBTdHJp
bmcgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5MTsKKyAgICAgICAgU3RyaW5nIG1faGl4aWU3NlNl
Y1dlYlNvY2tldEtleTI7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgbV9oaXhpZTc2S2V5M1s4XTsK
KyAgICAgICAgdW5zaWduZWQgY2hhciBtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNl
WzE2XTsKKworICAgICAgICAvLyBGb3IgaHliaS0xMCBoYW5kc2hha2UuCisgICAgICAgIFN0cmlu
ZyBtX3NlY1dlYlNvY2tldEtleTsKKyAgICAgICAgU3RyaW5nIG1fZXhwZWN0ZWRBY2NlcHQ7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100468</attachid>
            <date>2011-07-12 04:52:07 -0700</date>
            <delta_ts>2011-07-13 01:06:38 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-64344-20110712205206.patch</filename>
            <type>text/plain</type>
            <size>43812</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMDlkZWZiYTQ2OTU5YWNlN2RmM2U1
ODAzZTIwMWJkMmRhYTc2N2Q1Li45M2FiNmJjZTY1ZmY2Mjg0NzcxNTM4ZWViMGMxYjY5NTUwOTk4
NTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMDctMTEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgaHliaSBo
YW5kc2hha2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY0MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGV4aXN0aW5nIHRlc3RzIHNvIHRoZXkgbWF0Y2ggdGhlIG5ldyBoYW5kc2hha2UgZm9ybWF0
LCBhbmQgYWRkIHRlc3RzIGZvciBuZXcgaGVhZGVyIGZpZWxkcy4KKworICAgICAgICBUaGVyZSBh
cmUgc2V2ZXJhbCBjaGFuZ2VzIGluIHRoZSBmb3JtYXQgb2YgaGFuZHNoYWtlIHJlc3BvbnNlLCBz
dWNoIGFzOgorICAgICAgICAtIFJlYXNvbiBzdHJpbmcgaW4gSFRUUCBzdGF0dXMgbGluZSBoYXMg
YmVlbiBjaGFuZ2VkIHRvICJTd2l0Y2hpbmcgUHJvdG9jb2xzIi4KKyAgICAgICAgLSBUaGUgdmFs
dWUgb2YgIlVwZ3JhZGUiIGhlYWRlciBoYXMgYmVlbiBjaGFuZ2VkIHRvICJ3ZWJzb2NrZXQiIChs
b3dlci1jYXNlIG9ubHkpLgorICAgICAgICAtIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5kIFNl
Yy1XZWJTb2NrZXQtT3JpZ2luIGFyZSBnb25lLgorICAgICAgICAtICJDaGFsbGVuZ2UgcmVzcG9u
c2UiIHZhbHVlICgxNi1ieXRlIGRhdGEgYWZ0ZXIgdGhlIHJlc3BvbnNlIGhlYWRlciBmaWVsZHMp
IGlzIHJlbW92ZWQsIGFuZAorICAgICAgICAgIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBp
cyBhZGRlZCBpbnN0ZWFkLgorCisgICAgICAgIFRoZSB2YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFj
Y2VwdCBoZWFkZXIgaXMgY29tcHV0ZWQgdXNpbmcgY29tcHV0ZV9hY2NlcHQoKSBmdW5jdGlvbgor
ICAgICAgICBsb2NhdGVkIGluIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IG1vZHVs
ZS4gQWx0aG91Z2ggdGhlIG1vZHVsZSBuYW1lIGNvbnRhaW5zCisgICAgICAgICJoeWJpMDYiLCB0
aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgU2VjLVdl
YlNvY2tldC1BY2NlcHQgaGVhZGVyCisgICAgICAgIGZvciBoeWJpLTEwIChjYWxjdWxhdGlvbiBt
ZXRob2QgaGFzIG5vdCBiZWVuIGNoYW5nZWQgc2luY2UgaHliaS0wNikuCisKKyAgICAgICAgTm90
ZTogVGVzdHMgdW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNsdWRpbmcgdGhlIG5ldyBvbmVzKSBh
cmUgc2tpcHBlZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAgICAgICAgeWV0LCBiZWNhdXNlIHB5
d2Vic29ja2V0IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBmcm9tIGhhbGYtYmFrZWQgY2xpZW50
IGltcGxlbWVudGF0aW9uCisgICAgICAgIChpLmUuIGh5YmkgaGFuZHNoYWtlICsgaGl4aWUtNzYg
ZnJhbWluZykuIFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hlbiBoeWJpIGZyYW1pbmcgaXMgbGFu
ZGVkCisgICAgICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oYW5kbGVyX21hcC50eHQ6CisgICAgICAgIFRoZXJlIG11c3QgYmUgb25seSBvbmUg
aGFuZGxlciB0aGF0IGNhbiBoYW5kbGUgcmVxdWVzdHMgdG8gIi8iLiBoeWJpL2VjaG8tbG9jYXRp
b25fd3NoLnB5CisgICAgICAgIGlzIG1vZGlmaWVkIHRvIGFjY2VwdCByZXF1ZXN0cyBvZiBib3Ro
IHByb3RvY29sIHZlcnNpb25zLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHk6CisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weToKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMt
aGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weTogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhf
d3NoLnB5OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8t
YWNjZXB0LWhlYWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXJfd3NoLnB5OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNyX3dzaC5weToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXByZXBlbmRlZC1udWxsX3dzaC5weToK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LXdyb25nLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFj
Y2VwdC1oZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyX3dzaC5weTog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWlu
dmFsaWQtaGVhZGVyX3dzaC5weToKKwogMjAxMS0wNy0xMSAgWWkgU2hlbiAgPHlpLjQuc2hlbkBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBBU1NFUlRJT04gRkFJTEVEIGluIFJlc291cmNlSGFu
ZGxlOjpzZXREZWZlcnNMb2FkaW5nIGNhdXNlcyBjcmFzaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0CmluZGV4IDk4ZmJh
YThiOWE2NzFhN2UzODgwZWM4ZWRmZTFhNDZiNmI5ZThlNjYuLmM2YjBiYTEwYmZjMDFmNjVmYzI2
OTIyNzlkODFlMzhkMjYwM2ZkYzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2hhbmRsZXJfbWFwLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oYW5kbGVyX21hcC50eHQKQEAgLTEsMyArMSw0IEBACiAjIHdl
YnNvY2tldCBoYW5kbGVyIG1hcCBmaWxlLgogIyByZXF1ZXN0IHRvICcvJyB3aWxsIGJlIGhhbmRs
ZWQgYnkgZWNoby1sb2NhdGlvbl93c2gucHkKLS8gL3dlYnNvY2tldC90ZXN0cy9oaXhpZTc2L2Vj
aG8tbG9jYXRpb24KKyMgaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weSBjYW4gaGFuZGxlIGJvdGgg
aGl4aWUtNzYgYW5kIGh5YmktMTAgcHJvdG9jb2xzLgorLyAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1sb2NhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5weSBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHkK
aW5kZXggN2I0MjViYzcxNjZmNTNkZmMyNjY5Y2RlZjkwMzM1MTIwN2E0NGQ0MC4uYTRkNDg4MjJi
YTA0MWY1OTUzY2QyZDY2ZTgxNjRhOTVjYTQ1OWY5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9iYWQtaGFuZHNoYWtlLWNyYXNoX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JhZC1o
YW5kc2hha2UtY3Jhc2hfd3NoLnB5CkBAIC0xLDEyICsxLDEzIEBACitmcm9tIG1vZF9weXdlYnNv
Y2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRlX2FjY2VwdAorCisKIGRlZiB3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBtc2cgPSAiSFRUUC8xLjEg
MTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuIgotICAgIG1zZyArPSAiVXBncmFk
ZTogV2ViU29ja2V0XHJcbiIKKyAgICBtc2cgPSAiSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90
b2NvbHNcclxuIgorICAgIG1zZyArPSAiVXBncmFkZTogd2Vic29ja2V0XHJcbiIKICAgICBtc2cg
Kz0gIkNvbm5lY3Rpb246IFVwZ3JhZGVcclxuIgotICAgIG1zZyArPSAiU2VjLVdlYlNvY2tldC1M
b2NhdGlvbjogIiArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAiXHJcbiIKLSAgICBtc2cgKz0gIlNl
Yy1XZWJTb2NrZXQtT3JpZ2luOiAiICsgcmVxdWVzdC53c19vcmlnaW4gKyAiXHJcbiIKKyAgICBt
c2cgKz0gIlNlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4iICUgY29tcHV0ZV9hY2NlcHQocmVx
dWVzdC5oZWFkZXJzX2luWyJTZWMtV2ViU29ja2V0LUtleSJdKVswXQogICAgIG1zZyArPSAiXHhh
NTpcclxuIgogICAgIG1zZyArPSAiXHJcbiIKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVu
Z2VfbWQ1CiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cK
ICAgICByYWlzZSBFeGNlcHRpb24oIkFib3J0IHRoZSBjb25uZWN0aW9uIikgIyBQcmV2ZW50cyBw
eXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNoby1s
b2NhdGlvbl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2VjaG8tbG9jYXRpb25fd3NoLnB5CmluZGV4IDMzOTA1NzBhYmFjODFiNTg1OTJjZmI0YmMw
ZGNhNWVlMDFiZDBiMjkuLjAzYzRhYTkyODNkMjA2MTJlNjVkZjQ4NmNkOGJmNmQ4NDk4MjgxYzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1sb2NhdGlvbl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjgsNiArMjgsNyBAQAogCiAKIGZyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2Uu
X2Jhc2UgaW1wb3J0IGJ1aWxkX2xvY2F0aW9uCiAKIAogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFf
aGFuZHNoYWtlKHJlcXVlc3QpOgpAQCAtMzUsNSArMzYsMTQgQEAgZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgogCiAKIGRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCk6Ci0gICAgcHJpbnQgcmVxdWVzdC53c19sb2NhdGlvbgotICAgIG1zZ3V0aWwu
c2VuZF9tZXNzYWdlKHJlcXVlc3QsIHJlcXVlc3Qud3NfbG9jYXRpb24pCisgICAgaWYgaGFzYXR0
cihyZXF1ZXN0LCAnd3NfbG9jYXRpb24nKToKKyAgICAgICAgbG9jYXRpb24gPSByZXF1ZXN0Lndz
X2xvY2F0aW9uCisgICAgZWxzZToKKyAgICAgICAgIyBXaGVuIGh5YmkgcHJvdG9jb2wgaXMgdXNl
ZCwgcHl3ZWJzb2NrZXQgZG9lcyBub3QgcHJvdmlkZQorICAgICAgICAjIHdzX2xvY2F0aW9uIGF0
dHJpYnV0ZSBiZWNhdXNlIHNlcnZlcnMgYXJlIG5vdCByZXF1aXJlZCB0byBzZW5kCisgICAgICAg
ICMgU2VjLVdlYlNvY2tldC1Mb2NhdGlvbiBoZWFkZXIgYWNjb3JkaW5nIHRvIHRoZSBwcm90b2Nv
bAorICAgICAgICAjIHNwZWNpZmljYXRpb24uIElmIHdzX2xvY2F0aW9uIGF0dHJpYnV0ZSBpcyBu
b3QgYXZhaWxhYmxlLAorICAgICAgICAjIHdlIHVzZSBweXdlYnNvY2tldCdzIGludGVybmFsIGZ1
bmN0aW9uICJidWlsZF9mdW5jdGlvbiIKKyAgICAgICAgIyB0byBvYnRhaW4gdGhlIGlkZW50aWNh
bCB2YWx1ZS4KKyAgICAgICAgbG9jYXRpb24gPSBidWlsZF9sb2NhdGlvbihyZXF1ZXN0KQorICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIGxvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1leHRlbnNpb25zLWhlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGVkYWQxOTRjYjRhMmJmMzE0MjRiYWNiMDY5MzRj
ZWJjMzY4ZDUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEVycm9y
IGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVh
ZGVyIGlzIGludmFsaWQKK1Rlc3Qgd2hldGhlciBXZWJTb2NrZXQgaGFuZHNoYWtlIGZhaWxzIGlm
IHRoZSBzZXJ2ZXIgc2VuZHMgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hh
bmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMt
aGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRjNmM1OGUxNWQ1ZjQ3NmUwMzg3MWQxOTUyYTYzYTFk
ZmQ5NjQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktZXh0ZW5zaW9ucy1oZWFkZXIuaHRtbApA
QCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRl
c2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUg
c2VydmVyIHNlbmRzIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIuIik7CisKK3dpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhp
ZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkIiwgMCk7CisKK3ZhciB1cmwgPSAid3M6Ly9sb2Nh
bGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNp
b25zLWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xvc2VFdmVu
dDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rp
b24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xvc2UgPSBm
dW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVG
YWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlcl93c2gu
cHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFr
ZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGEzZDc3MTU4
YTFhMWQyNzBlNGFlMjQ2NzZlM2Q1N2I1NGEwOWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1l
eHRlbnNpb25zLWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwxNiBAQAorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCitkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgbWVzc2FnZSA9ICdIVFRQ
LzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCisgICAgbWVzc2FnZSArPSAnVXBncmFk
ZTogd2Vic29ja2V0XHJcbicKKyAgICBtZXNzYWdlICs9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJc
bicKKyAgICBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1
dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KKyAg
ICBtZXNzYWdlICs9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnM6IHgtZm9vXHJcbicKKyAgICBt
ZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtZXNzYWdlKQor
ICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5
d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgorCisKK2Rl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5CmluZGV4IGMw
MzlmYjM4ZTkzMzEwMmEwMDVlYjFiYThjMjA4YzI1OTQ4N2Q1MTMuLjY3Njg3OTlkODU2MjRkMmFk
NzE3NzQyZGJhNGE3Nzg3M2NiYzliNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbWF4bGVuZ3RoX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LW1heGxlbmd0aF93c2gucHkKQEAgLTIwLDE3ICsyMCwxOCBAQAogIyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAogCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRl
X2FjY2VwdAorCisKIGRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToK
ICAgICAjIFRoaXMgd2lsbCBjYXVzZSB0aGUgaGFuZHNoYWtlIHRvIGZhaWwgYmVjYXVzZSBpdCBw
dXNoZXMgdGhlIGxlbmd0aCBvZiB0aGUKICAgICAjIHN0YXR1cyBsaW5lIHBhc3QgMTAyNCBjaGFy
YWN0ZXJzCiAgICAgbXNnID0gJy4nICogMTAyNAotICAgIG1zZyArPSAnSFRUUC8xLjEgMTAxIFdl
YlNvY2tldCBQcm90b2NvbCBIYW5kc2hha2VcclxuJwotICAgIG1zZyArPSAnVXBncmFkZTogV2Vi
U29ja2V0XHJcbicKKyAgICBtc2cgKz0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xz
XHJcbicKKyAgICBtc2cgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9ICdD
b25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRp
b246ICcgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMtV2Vi
U29ja2V0LU9yaWdpbjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNnICs9
ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3Qu
aGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4nCi0g
ICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZShtc2cpCiAgICAgcmFpc2UgRXhjZXB0aW9uKCdhYm9ydCB0aGUgY29ubmVjdGlvbicp
ICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1l
c3NhZ2UuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1m
YWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYzU4MDhh
ZmYyM2U0MTkwYWRjYzg5MmRkYjMyNGM1ZjA2ZjhhNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAwOiBFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1X
ZWJTb2NrZXQtQWNjZXB0JyBoZWFkZXIgaXMgbWlzc2luZworVGVzdCB3aGV0aGVyIFdlYlNvY2tl
dCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNlcnZlciBkb2VzIG5vdCBzZW5kIFNlYy1XZWJTb2Nr
ZXQtQWNjZXB0IGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNs
b3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYWY0NWQ4ODJk
Yjg5NWFiZjEwMDZmZTZkMGQ1NTg2NjAwYzNjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5v
LWFjY2VwdC1oZWFkZXIuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhh
bmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIGRvZXMgbm90IHNlbmQgU2VjLVdlYlNvY2tldC1B
Y2NlcHQgaGVhZGVyLiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDAp
OworCit2YXIgdXJsID0gIndzOi8vbG9jYWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29j
a2V0KHVybCk7Cit2YXIgY2xvc2VFdmVudDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQorewor
ICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rpb24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2Uo
KTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50
ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby1hY2NlcHQtaGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTQxYTY2ZDNkZjVhOWQ5NGFlNTM1Mjg4ODhjOTlhYTk0NzNiN2UyNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwx
MSBAQAorZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIG1l
c3NhZ2UgPSAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJworICAgIG1lc3Nh
Z2UgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCisgICAgbWVzc2FnZSArPSAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCisgICAgbWVzc2FnZSArPSAnXHJcbicKKyAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdGUobWVzc2FnZSkKKyAgICByYWlzZSBFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25u
ZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5k
c2hha2UgbWVzc2FnZS4KKworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY29ubmVjdGlvbi1oZWFkZXJfd3NoLnB5
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRlcl93c2gucHkKaW5kZXggN2VmYzg3YTUwZDY2ZGU4
NzRjOGExZGMzODZmMmRiNmNlZjAzYTQzNy4uZjk5NjUxODNlNTAwNzQ2OTExYmIzYmU4ZjYxNTcx
MmZkOGM4ODA1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRlcl93c2gucHkK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hh
a2UtZmFpbC1ieS1uby1jb25uZWN0aW9uLWhlYWRlcl93c2gucHkKQEAgLTEsMTEgKzEsMTIgQEAK
K2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDYgaW1wb3J0IGNvbXB1dGVfYWNj
ZXB0CisKKwogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAg
IG1zZyA9ICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0g
ICAgbXNnICs9ICdVcGdyYWRlOiBXZWJTb2NrZXRcclxuJworICAgIG1zZyA9ICdIVFRQLzEuMSAx
MDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCisgICAgbXNnICs9ICdVcGdyYWRlOiB3ZWJzb2Nr
ZXRcclxuJwogIyAgIE1pc3NpbmcgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgIG1zZyAr
PSAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogJyArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAnXHJc
bicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiAnICsgcmVxdWVzdC53c19vcmln
aW4gKyAnXHJcbicKKyAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4nICUg
Y29tcHV0ZV9hY2NlcHQocmVxdWVzdC5oZWFkZXJzX2luWydTZWMtV2ViU29ja2V0LUtleSddKVsw
XQogICAgIG1zZyArPSAnXHJcbicKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1
CiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cKICAgICBy
YWlzZSBFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNv
Y2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZh
aWwtYnktbm8tY3Jfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jcl93c2gucHkKaW5kZXggOTc4OTI0YWI2ZWIx
OGI5NTZmZjQ1NTlkNWI5M2RiZWRlODNiOTMzMi4uNWM0YjllMzk0MjY4MDQyZjEwMmRmMTdiMTBh
MGJkMzg3ZmQyMTA4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jcl93c2gucHkKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1u
by1jcl93c2gucHkKQEAgLTEsMTEgKzEsMTIgQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZS5oeWJpMDYgaW1wb3J0IGNvbXB1dGVfYWNjZXB0CisKKwogZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgV2ViU29j
a2V0IFByb3RvY29sIEhhbmRzaGFrZVxuJyAjIERvZXMgbm90IGVuZCB3aXRoICJcclxuIi4KLSAg
ICBtc2cgKz0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgbXNnID0gJ0hUVFAvMS4xIDEw
MSBTd2l0Y2hpbmcgUHJvdG9jb2xzXG4nICMgRG9lcyBub3QgZW5kIHdpdGggIlxyXG4iLgorICAg
IG1zZyArPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKICAgICBtc2cgKz0gJ0Nvbm5lY3Rpb246
IFVwZ3JhZGVcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogJyArIHJl
cXVlc3Qud3NfbG9jYXRpb24gKyAnXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtT3Jp
Z2luOiAnICsgcmVxdWVzdC53c19vcmlnaW4gKyAnXHJcbicKKyAgICBtc2cgKz0gJ1NlYy1XZWJT
b2NrZXQtQWNjZXB0OiAlc1xyXG4nICUgY29tcHV0ZV9hY2NlcHQocmVxdWVzdC5oZWFkZXJzX2lu
WydTZWMtV2ViU29ja2V0LUtleSddKVswXQogICAgIG1zZyArPSAnXHJcbicKLSAgICBtc2cgKz0g
cmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1CiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1z
ZykKICAgICBwcmludCBtc2cKICAgICByYWlzZSBFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0
aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hh
a2UgbWVzc2FnZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tdXBncmFkZS1oZWFkZXJfd3NoLnB5IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFp
bC1ieS1uby11cGdyYWRlLWhlYWRlcl93c2gucHkKaW5kZXggMTE0ZGU3NWUxOTM3YWM1YmVlNWU3
MWE1OGRjY2Q5ZGY2YjBhZjc4Yy4uZjg4ZDUwMDEwODg2ZTIwNTFhMDk0MDQ3MDc1NThkOTliMmUw
MTdjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlcl93c2gucHkKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby11cGdyYWRlLWhlYWRlcl93c2gucHkKQEAgLTEsMTEgKzEsMTIgQEAKK2Zyb20gbW9kX3B5
d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDYgaW1wb3J0IGNvbXB1dGVfYWNjZXB0CisKKwogZGVm
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIG1zZyA9ICdIVFRQ
LzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0jICAgTWlzc2luZyAn
VXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAgICBtc2cgPSAnSFRUUC8xLjEgMTAxIFN3aXRjaGlu
ZyBQcm90b2NvbHNcclxuJworIyAgIE1pc3NpbmcgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAg
ICAgbXNnICs9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJT
b2NrZXQtTG9jYXRpb246ICcgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNn
ICs9ICdTZWMtV2ViU29ja2V0LU9yaWdpbjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4n
CisgICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNj
ZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cg
Kz0gJ1xyXG4nCi0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0ZShtc2cpCiAgICAgcHJpbnQgbXNnCiAgICAgcmFpc2UgRXhjZXB0
aW9uKCdBYm9ydCB0aGUgY29ubmVjdGlvbicpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBz
ZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXByZXBl
bmRlZC1udWxsX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVkLW51bGxfd3NoLnB5CmluZGV4IDA3MzUx
ODQ5ODE0MTlmOWMyYTM2MmZiODY5NTM2MzQxMWYzMDVhYTUuLjI4YWRhYjRiMGJlN2NmMDc3OTYz
M2MxNTY3YjJkN2ZlNmU5MzNjMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVkLW51bGxfd3No
LnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFu
ZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVkLW51bGxfd3NoLnB5CkBAIC0xOSw3ICsxOSwxMCBAQAog
IyBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCiAjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCisKIGltcG9ydCB0aW1lCitmcm9t
IG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5k
c2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRlX2FjY2VwdAogCiAKIGRlZiB3ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKQEAgLTI4LDE2ICszMSwxNCBAQCBkZWYgd2ViX3Nv
Y2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CiAgICAgIyBoYXBwZW5zIHRoZSBjbGll
bnQgZG9lcyBub3QgYnVmZmVyIGFsbCB0aGUgZnJhbWVzIGFzIHRoZSBzZXJ2ZXIgY29udGludWVz
CiAgICAgIyB0byBzZW5kIG1vcmUgZGF0YSAtIGl0IHNob3VsZCBhYm9ydCBhZnRlciByZWFkaW5n
IGEgcmVhc29uYWJsZSBudW1iZXIgb2YKICAgICAjIGJ5dGVzIChzZXQgYXJiaXRyYXJpbHkgdG8g
MTAyNCkuCi0gICAgZnJhbWUgPSAnXDBGcmFtZS1jb250YWlucy10aGlydHktdHdvLWJ5dGVzJwor
ICAgIGZyYW1lID0gc3RyZWFtLmNyZWF0ZV90ZXh0X2ZyYW1lKCdcMEZyYW1lLWNvbnRhaW5zLXRo
aXJ0eS10d28tYnl0ZXMnKQogCiAgICAgbXNnID0gZnJhbWUKLSAgICBtc2cgKz0gJ0hUVFAvMS4x
IDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICBtc2cgKz0gJ1VwZ3Jh
ZGU6IFdlYlNvY2tldFxyXG4nCisgICAgbXNnICs9ICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFBy
b3RvY29sc1xyXG4nCisgICAgbXNnICs9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwogICAgIG1z
ZyArPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgbXNnICs9ICdTZWMtV2ViU29ja2V0
LUxvY2F0aW9uOiAnICsgcmVxdWVzdC53c19sb2NhdGlvbiArICdcclxuJwotICAgIG1zZyArPSAn
U2VjLVdlYlNvY2tldC1PcmlnaW46ICcgKyByZXF1ZXN0LndzX29yaWdpbiArICdcclxuJworICAg
IG1zZyArPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICVzXHJcbicgJSBjb21wdXRlX2FjY2VwdChy
ZXF1ZXN0LmhlYWRlcnNfaW5bJ1NlYy1XZWJTb2NrZXQtS2V5J10pWzBdCiAgICAgbXNnICs9ICdc
clxuJwotICAgIG1zZyArPSByZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUKICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGUobXNnKQogICAgICMgY29udGludWUgd3JpdGluZyBkYXRhIHVudGlsIHRo
ZSBjbGllbnQgZGlzY29ubmVjdHMKICAgICB3aGlsZSBUcnVlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13
cm9uZy1hY2NlcHQtaGVhZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRl
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2Mjc1NDBiMzJmM2Y0YWM3OTUwNWRlZjdmZTY2
OWU3MzdmZWY1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEVy
cm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUFjY2VwdCBtaXNt
YXRjaAorVGVzdCB3aGV0aGVyIFdlYlNvY2tldCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNlcnZl
ciBzZW5kcyBpbmNvcnJlY3QgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBmYWxzZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQt
aGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYyMzYwOGFiMzI1YmIwZjczY2I1ODMxN2ZmMjI5ZmIw
MDQxZjk3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci5odG1s
CkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0i
ZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3Qgd2hldGhlciBXZWJTb2NrZXQgaGFuZHNoYWtlIGZhaWxzIGlmIHRo
ZSBzZXJ2ZXIgc2VuZHMgaW5jb3JyZWN0IFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlci4iKTsK
Kword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQiLCAwKTsKKwordmFyIHVybCA9ICJ3
czovL2xvY2FsaG9zdDo4ODgwL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LXdyb25nLWFjY2VwdC1oZWFkZXIiOwordmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwordmFy
IGNsb3NlRXZlbnQ7CisKK3dzLm9ub3BlbiA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0ZXN0RmFpbGVk
KCJDb25uZWN0aW9uIGVzdGFibGlzaGVkLiIpOworICAgIHdzLmNsb3NlKCk7Cit9OworCit3cy5v
bmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgY2xvc2VFdmVudCA9IGV2ZW50OworICAg
IHNob3VsZEJlRmFsc2UoImNsb3NlRXZlbnQud2FzQ2xlYW4iKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK307CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0
LWhlYWRlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFkZXJfd3NoLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ0YTAyOGJjMWZmM2Y2NjI5MzVhODRiYmM3YmM1NDkwZjY4MTIzMmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFkZXJfd3NoLnB5CkBAIC0wLDAgKzEsMTIgQEAK
K2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBtZXNzYWdl
ID0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKKyAgICBtZXNzYWdlICs9
ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJworICAgIG1lc3NhZ2UgKz0gJ0Nvbm5lY3Rpb246IFVw
Z3JhZGVcclxuJworICAgIG1lc3NhZ2UgKz0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBYWFhYdGhp
c2lzd3JvbmdYWFhYXHJcbicKKyAgICBtZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0ZShtZXNzYWdlKQorICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNv
bm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhh
bmRzaGFrZSBtZXNzYWdlLgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVz
dCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9sb25nLWludmFsaWQtaGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvbG9uZy1pbnZhbGlkLWhlYWRlcl93c2gucHkK
aW5kZXggNGExNjlmM2RhMGE5NTllZDNmNDg2ZDgxNzdlYzEzMDZmNThkNDYwZS4uMjZkNmFmOTk0
NTBiNTdhNDU1MDhkZDY2Njk3MWQwNDgyZWY3ZjMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWludmFsaWQtaGVhZGVyX3dzaC5w
eQorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2xvbmct
aW52YWxpZC1oZWFkZXJfd3NoLnB5CkBAIC0yLDcgKzIsNiBAQCBkZWYgd2ViX3NvY2tldF9kb19l
eHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CiAgICAgbXNnID0gIkhUVFAvMS4xIDEwMSBXZWJTb2Nr
ZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbiIKICAgICBtc2cgKz0gKCJwIiAqIDEwMjQpICsgIlxy
XG4iCiAgICAgbXNnICs9ICJcclxuIgotICAgIG1zZyArPSByZXF1ZXN0LndzX2NoYWxsZW5nZV9t
ZDUKICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobXNnKQogICAgIHJhaXNlIEV4Y2VwdGlv
bigiQWJvcnQgdGhlIGNvbm5lY3Rpb24iKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2Vu
ZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBkYjFiYWYz
ODQxZjc2NDQxYWM1MDM4NjYzNTEyMWYyZTllYjRhYS4uNjVlNjM2M2NlODgyZGIwYzI5ZjQzMjZi
YzJmZTY3MDExZjYyMWE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA3LTEx
ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYlNvY2tl
dDogSW1wbGVtZW50IGh5YmkgaGFuZHNoYWtlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBXZWJTb2NrZXQgaGFuZHNoYWtlIHdoaWNoIGlz
IGRlc2NyaWJlZCBhdAorICAgICAgICA8aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQt
aWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTEwI3NlY3Rpb24tNS4xPi4KKworICAgICAg
ICBOb3RhYmxlIGRpZmZlcmVuY2VzIGZyb20gaGl4aWUtNzYgcHJvdG9jb2wgYXJlOgorICAgICAg
ICAtIENoYWxsZW5nZS1yZXNwb25zZSBzY2hlbWUgaGFzIGJlZW4gY2hhbmdlZCBkcmFtYXRpY2Fs
bHkuCisgICAgICAgIC0gU2VydmVycyBkbyBub3Qgc2VuZCBTZWMtV2ViU29ja2V0LUxvY2F0aW9u
IGFuZCBTZWMtV2ViU29ja2V0LU9yaWdpbiBhbnltb3JlLgorICAgICAgICAtIFRoZSB2YWx1ZSBv
ZiAiVXBncmFkZSIgaGVhZGVyIGhhcyBiZWVuIGNoYW5nZWQgdG8gIndlYnNvY2tldCIgKGxvd2Vy
LWNhc2Ugb25seSkuCisgICAgICAgIC0gIk9yaWdpbiIgaGVhZGVyIGluIGNsaWVudCdzIHJlcXVl
c3QgaXMgcmVuYW1lZCB0byAiU2VjLVdlYlNvY2tldC1PcmlnaW4iLgorCisgICAgICAgIE5ldyB0
ZXN0czogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1l
eHRlbnNpb25zLWhlYWRlci5odG1sCisgICAgICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1hY2NlcHQtaGVhZGVyLmh0bWwK
KyAgICAgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFkZXIuaHRtbAorCisgICAgICAgIE5vdGU6IFRl
c3RzIHVuZGVyIGh5YmkvIGRpcmVjdG9yeSAoaW5jbHVkaW5nIHRoZSBuZXcgb25lcykgYXJlIHNr
aXBwZWQgYW5kIGNhbm5vdCBiZSBlbmFibGVkCisgICAgICAgIHlldCwgYmVjYXVzZSBweXdlYnNv
Y2tldCBkb2VzIG5vdCBhY2NlcHQgcmVxdWVzdHMgZnJvbSBoYWxmLWJha2VkIGNsaWVudCBpbXBs
ZW1lbnRhdGlvbgorICAgICAgICAoaS5lLiBoeWJpIGhhbmRzaGFrZSArIGhpeGllLTc2IGZyYW1p
bmcpLiBUaGV5IHdpbGwgYmUgdW5za2lwcGVkIHdoZW4gaHliaSBmcmFtaW5nIGlzIGxhbmRlZAor
ICAgICAgICBpbiBXZWJDb3JlLgorCisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwOgorICAgICAgICBGdW5jdGlvbnMgYW5kIG1lbWJlcnMgb25seSB1c2VkIGZvciBo
aXhpZS03NiBoYW5kc2hha2UgYXJlIHJlbmFtZWQgc28gdGhhdCB0aGV5IGFyZSBub3QgY29uZnVz
ZWQKKyAgICAgICAgd2l0aCBoeWJpLTEwJ3Mgb25lcy4KKyAgICAgICAgKFdlYkNvcmU6OmdlbmVy
YXRlSGl4aWU3NlNlY1dlYlNvY2tldEtleSk6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZUhp
eGllNzZLZXkzKToKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlSGl4aWU3NkV4cGVjdGVkQ2hh
bGxlbmdlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVTZWNXZWJTb2NrZXRL
ZXkpOgorICAgICAgICBHZW5lcmF0ZXMgYSB2YWx1ZSBmb3IgU2VjLVdlYlNvY2tldC1LZXkgYXMg
c3RhdGVkIGluIGh5YmktMTAuCisgICAgICAgIChXZWJDb3JlOjpnZXRFeHBlY3RlZFdlYlNvY2tl
dEFjY2VwdCk6CisgICAgICAgIENhbGN1bGF0ZXMgdGhlIGV4cGVjdGVkIHZhbHVlIG9mIFNlYy1X
ZWJTb2NrZXQtQWNjZXB0LgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpX
ZWJTb2NrZXRIYW5kc2hha2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtl
OjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhh
bmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hha2UpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0SGFuZHNoYWtlOjpzZXJ2ZXJXZWJTb2NrZXRBY2NlcHQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpzZXJ2ZXJXZWJTb2NrZXRFeHRlbnNpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6Y2hlY2tSZXNwb25zZUhlYWRlcnMp
OgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmg6CisKIDIwMTEtMDct
MTEgIEJyYWRsZXkgTmVsc29uICA8YnJhZG5lbHNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IDIxMGMzMGVlNmVmYWE4ZDVmNDk4MDUxNDdk
NDgyODA4Y2IyN2FlMjAuLjZhMDY0OWY4M2QxMjgyNWI2YTAxMTU1MTUzY2Y2MjlmMzRkYjQxYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5j
cHAKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgog
CisjaW5jbHVkZSAiQmFzZTY0LmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJh
bmRvbU51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9NRDUuaD4KKyNpbmNsdWRlIDx3dGYvU0hBMS5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0
cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTA2LDcgKzEwOCw3IEBAIHN0YXRp
YyB1aW50MzJfdCByYW5kb21OdW1iZXJMZXNzVGhhbih1aW50MzJfdCBuKQogICAgIHJldHVybiB2
ICUgbjsKIH0KIAotc3RhdGljIHZvaWQgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkodWludDMyX3Qm
IG51bWJlciwgU3RyaW5nJiBrZXkpCitzdGF0aWMgdm9pZCBnZW5lcmF0ZUhpeGllNzZTZWNXZWJT
b2NrZXRLZXkodWludDMyX3QmIG51bWJlciwgU3RyaW5nJiBrZXkpCiB7CiAgICAgdWludDMyX3Qg
c3BhY2UgPSByYW5kb21OdW1iZXJMZXNzVGhhbigxMikgKyAxOwogICAgIHVpbnQzMl90IG1heCA9
IDQyOTQ5NjcyOTVVIC8gc3BhY2U7CkBAIC0xMzEsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgZ2Vu
ZXJhdGVTZWNXZWJTb2NrZXRLZXkodWludDMyX3QmIG51bWJlciwgU3RyaW5nJiBrZXkpCiAgICAg
a2V5ID0gczsKIH0KIAotc3RhdGljIHZvaWQgZ2VuZXJhdGVLZXkzKHVuc2lnbmVkIGNoYXIga2V5
M1s4XSkKK3N0YXRpYyB2b2lkIGdlbmVyYXRlSGl4aWU3NktleTModW5zaWduZWQgY2hhciBrZXkz
WzhdKQogewogICAgIGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKGtleTMsIDgpOwogfQpA
QCAtMTQ2LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIHNldENoYWxsZW5nZU51bWJlcih1bnNpZ25l
ZCBjaGFyKiBidWYsIHVpbnQzMl90IG51bWJlcikKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGdl
bmVyYXRlRXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJf
dCBudW1iZXIyLCB1bnNpZ25lZCBjaGFyIGtleTNbOF0sIHVuc2lnbmVkIGNoYXIgZXhwZWN0ZWRD
aGFsbGVuZ2VbMTZdKQorc3RhdGljIHZvaWQgZ2VuZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVu
Z2VSZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyLCB1bnNpZ25lZCBj
aGFyIGtleTNbOF0sIHVuc2lnbmVkIGNoYXIgZXhwZWN0ZWRDaGFsbGVuZ2VbMTZdKQogewogICAg
IHVuc2lnbmVkIGNoYXIgY2hhbGxlbmdlWzE2XTsKICAgICBzZXRDaGFsbGVuZ2VOdW1iZXIoJmNo
YWxsZW5nZVswXSwgbnVtYmVyMSk7CkBAIC0xNTksNiArMTYxLDI3IEBAIHN0YXRpYyB2b2lkIGdl
bmVyYXRlRXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJf
dCBudW1iZXIyCiAgICAgbWVtY3B5KGV4cGVjdGVkQ2hhbGxlbmdlLCBkaWdlc3QuZGF0YSgpLCAx
Nik7CiB9CiAKK3N0YXRpYyBTdHJpbmcgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKQoreworICAg
IHN0YXRpYyBjb25zdCBzaXplX3Qgbm9uY2VTaXplID0gMTY7CisgICAgdW5zaWduZWQgY2hhciBr
ZXlbbm9uY2VTaXplXTsKKyAgICBjcnlwdG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyhrZXksIG5v
bmNlU2l6ZSk7CisgICAgcmV0dXJuIGJhc2U2NEVuY29kZShyZWludGVycHJldF9jYXN0PGNoYXIq
PihrZXkpLCBub25jZVNpemUpOworfQorCitzdGF0aWMgU3RyaW5nIGdldEV4cGVjdGVkV2ViU29j
a2V0QWNjZXB0KGNvbnN0IFN0cmluZyYgc2VjV2ViU29ja2V0S2V5KQoreworICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBjb25zdCB3ZWJTb2NrZXRLZXlHVUlEID0gIjI1OEVBRkE1LUU5MTQtNDdEQS05
NUNBLUM1QUIwREM4NUIxMSI7CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzaGExSGFzaFNpemUg
PSAyMDsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGRlZmluZWQgaW4gU0hBMS5oLgorICAgIFNI
QTEgc2hhMTsKKyAgICBDU3RyaW5nIGtleURhdGEgPSBzZWNXZWJTb2NrZXRLZXkuYXNjaWkoKTsK
KyAgICBzaGExLmFkZEJ5dGVzKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGtleURh
dGEuZGF0YSgpKSwga2V5RGF0YS5sZW5ndGgoKSk7CisgICAgc2hhMS5hZGRCeXRlcyhyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPih3ZWJTb2NrZXRLZXlHVUlEKSwgc3RybGVuKHdlYlNv
Y2tldEtleUdVSUQpKTsKKyAgICBWZWN0b3I8dWludDhfdCwgc2hhMUhhc2hTaXplPiBoYXNoOwor
ICAgIHNoYTEuY29tcHV0ZUhhc2goaGFzaCk7CisgICAgcmV0dXJuIGJhc2U2NEVuY29kZShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihoYXNoLmRhdGEoKSksIHNoYTFIYXNoU2l6ZSk7Cit9
CisKIFdlYlNvY2tldEhhbmRzaGFrZTo6V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IEtVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgYm9vbCB1c2VIaXhpZTc2UHJvdG9jb2wpCiAgICAgOiBtX3VybCh1cmwpCiAgICAgLCBtX2Ns
aWVudFByb3RvY29sKHByb3RvY29sKQpAQCAtMTY3LDEyICsxOTAsMTcgQEAgV2ViU29ja2V0SGFu
ZHNoYWtlOjpXZWJTb2NrZXRIYW5kc2hha2UoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHByb3RvY29sLAogICAgICwgbV91c2VIaXhpZTc2UHJvdG9jb2wodXNlSGl4aWU3NlByb3RvY29s
KQogICAgICwgbV9tb2RlKEluY29tcGxldGUpCiB7Ci0gICAgdWludDMyX3QgbnVtYmVyMTsKLSAg
ICB1aW50MzJfdCBudW1iZXIyOwotICAgIGdlbmVyYXRlU2VjV2ViU29ja2V0S2V5KG51bWJlcjEs
IG1fc2VjV2ViU29ja2V0S2V5MSk7Ci0gICAgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkobnVtYmVy
MiwgbV9zZWNXZWJTb2NrZXRLZXkyKTsKLSAgICBnZW5lcmF0ZUtleTMobV9rZXkzKTsKLSAgICBn
ZW5lcmF0ZUV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UobnVtYmVyMSwgbnVtYmVyMiwgbV9rZXkz
LCBtX2V4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90
b2NvbCkgeworICAgICAgICB1aW50MzJfdCBudW1iZXIxOworICAgICAgICB1aW50MzJfdCBudW1i
ZXIyOworICAgICAgICBnZW5lcmF0ZUhpeGllNzZTZWNXZWJTb2NrZXRLZXkobnVtYmVyMSwgbV9o
aXhpZTc2U2VjV2ViU29ja2V0S2V5MSk7CisgICAgICAgIGdlbmVyYXRlSGl4aWU3NlNlY1dlYlNv
Y2tldEtleShudW1iZXIyLCBtX2hpeGllNzZTZWNXZWJTb2NrZXRLZXkyKTsKKyAgICAgICAgZ2Vu
ZXJhdGVIaXhpZTc2S2V5MyhtX2hpeGllNzZLZXkzKTsKKyAgICAgICAgZ2VuZXJhdGVIaXhpZTc2
RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZShudW1iZXIxLCBudW1iZXIyLCBtX2hpeGllNzZLZXkz
LCBtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBtX3NlY1dlYlNvY2tldEtleSA9IGdlbmVyYXRlU2VjV2ViU29ja2V0S2V5KCk7CisgICAg
ICAgIG1fZXhwZWN0ZWRBY2NlcHQgPSBnZXRFeHBlY3RlZFdlYlNvY2tldEFjY2VwdChtX3NlY1dl
YlNvY2tldEtleSk7CisgICAgfQogfQogCiBXZWJTb2NrZXRIYW5kc2hha2U6On5XZWJTb2NrZXRI
YW5kc2hha2UoKQpAQCAtMjM0LDEwICsyNjIsMTYgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hh
a2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKCIg
SFRUUC8xLjFcclxuIik7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBmaWVsZHM7Ci0gICAgZmllbGRz
LmFwcGVuZCgiVXBncmFkZTogV2ViU29ja2V0Iik7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3Rv
Y29sKQorICAgICAgICBmaWVsZHMuYXBwZW5kKCJVcGdyYWRlOiBXZWJTb2NrZXQiKTsKKyAgICBl
bHNlCisgICAgICAgIGZpZWxkcy5hcHBlbmQoIlVwZ3JhZGU6IHdlYnNvY2tldCIpOwogICAgIGZp
ZWxkcy5hcHBlbmQoIkNvbm5lY3Rpb246IFVwZ3JhZGUiKTsKICAgICBmaWVsZHMuYXBwZW5kKCJI
b3N0OiAiICsgaG9zdE5hbWUobV91cmwsIG1fc2VjdXJlKSk7Ci0gICAgZmllbGRzLmFwcGVuZCgi
T3JpZ2luOiAiICsgY2xpZW50T3JpZ2luKCkpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2Nv
bCkKKyAgICAgICAgZmllbGRzLmFwcGVuZCgiT3JpZ2luOiAiICsgY2xpZW50T3JpZ2luKCkpOwor
ICAgIGVsc2UKKyAgICAgICAgZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1PcmlnaW46ICIg
KyBjbGllbnRPcmlnaW4oKSk7CiAgICAgaWYgKCFtX2NsaWVudFByb3RvY29sLmlzRW1wdHkoKSkK
ICAgICAgICAgZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogIiArIG1fY2xp
ZW50UHJvdG9jb2wpOwogCkBAIC0yNTAsOCArMjg0LDE2IEBAIENTdHJpbmcgV2ViU29ja2V0SGFu
ZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKICAgICAgICAgLy8gU2V0ICJD
b29raWUyOiA8Y29va2llPiIgaWYgY29va2llcyAyIGV4aXN0cyBmb3IgdXJsPwogICAgIH0KIAot
ICAgIGZpZWxkcy5hcHBlbmQoIlNlYy1XZWJTb2NrZXQtS2V5MTogIiArIG1fc2VjV2ViU29ja2V0
S2V5MSk7Ci0gICAgZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1LZXkyOiAiICsgbV9zZWNX
ZWJTb2NrZXRLZXkyKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpIHsKKyAgICAgICAg
ZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNvY2tldC1LZXkxOiAiICsgbV9oaXhpZTc2U2VjV2ViU29j
a2V0S2V5MSk7CisgICAgICAgIGZpZWxkcy5hcHBlbmQoIlNlYy1XZWJTb2NrZXQtS2V5MjogIiAr
IG1faGl4aWU3NlNlY1dlYlNvY2tldEtleTIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZpZWxk
cy5hcHBlbmQoIlNlYy1XZWJTb2NrZXQtS2V5OiAiICsgbV9zZWNXZWJTb2NrZXRLZXkpOworICAg
ICAgICAvLyBGSVhNRTogQ3VycmVudCB2ZXJzaW9uIG9mIHB5d2Vic29ja2V0IG9ubHkgYWNjZXB0
cyB2ZXJzaW9uIHZhbHVlIG9mIDcsCisgICAgICAgIC8vIHdoaWxlIGh5YmktMTAgcmVxdWlyZXMg
dGhpcyB2YWx1ZSB0byBiZSA4LiBTaG91bGQgYmUgZml4ZWQgd2hlbgorICAgICAgICAvLyBhIG5l
dyB2ZXJzaW9uIG9mIHB5d2Vic29ja2V0IGlzIHJlbGVhc2VkLgorICAgICAgICBmaWVsZHMuYXBw
ZW5kKCJTZWMtV2ViU29ja2V0LVZlcnNpb246IDciKTsKKyAgICB9CiAKICAgICAvLyBGaWVsZHMg
aW4gdGhlIGhhbmRzaGFrZSBhcmUgc2VudCBieSB0aGUgY2xpZW50IGluIGEgcmFuZG9tIG9yZGVy
OyB0aGUKICAgICAvLyBvcmRlciBpcyBub3QgbWVhbmluZ2Z1bC4gIFRodXMsIGl0J3Mgb2sgdG8g
c2VuZCB0aGUgb3JkZXIgd2UgY29uc3RydWN0ZWQKQEAgLTI2NSwxMCArMzA3LDE0IEBAIENTdHJp
bmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKICAg
ICBidWlsZGVyLmFwcGVuZCgiXHJcbiIpOwogCiAgICAgQ1N0cmluZyBoYW5kc2hha2VIZWFkZXIg
PSBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIC8vIEh5YmktMTAgaGFuZHNoYWtlIGlz
IGNvbXBsZXRlIGF0IHRoaXMgcG9pbnQuCisgICAgaWYgKCFtX3VzZUhpeGllNzZQcm90b2NvbCkK
KyAgICAgICAgcmV0dXJuIGhhbmRzaGFrZUhlYWRlcjsKKyAgICAvLyBIaXhpZS03NiBwcm90b2Nv
bCByZXF1aXJlcyBzZW5kaW5nIGVpZ2h0LWJ5dGUgZGF0YSAoc28tY2FsbGVkICJrZXkzIikgYWZ0
ZXIgdGhlIHJlcXVlc3QgaGVhZGVyIGZpZWxkcy4KICAgICBjaGFyKiBjaGFyYWN0ZXJCdWZmZXIg
PSAwOwotICAgIENTdHJpbmcgbXNnID0gQ1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChoYW5kc2hh
a2VIZWFkZXIubGVuZ3RoKCkgKyBzaXplb2YobV9rZXkzKSwgY2hhcmFjdGVyQnVmZmVyKTsKKyAg
ICBDU3RyaW5nIG1zZyA9IENTdHJpbmc6Om5ld1VuaW5pdGlhbGl6ZWQoaGFuZHNoYWtlSGVhZGVy
Lmxlbmd0aCgpICsgc2l6ZW9mKG1faGl4aWU3NktleTMpLCBjaGFyYWN0ZXJCdWZmZXIpOwogICAg
IG1lbWNweShjaGFyYWN0ZXJCdWZmZXIsIGhhbmRzaGFrZUhlYWRlci5kYXRhKCksIGhhbmRzaGFr
ZUhlYWRlci5sZW5ndGgoKSk7Ci0gICAgbWVtY3B5KGNoYXJhY3RlckJ1ZmZlciArIGhhbmRzaGFr
ZUhlYWRlci5sZW5ndGgoKSwgbV9rZXkzLCBzaXplb2YobV9rZXkzKSk7CisgICAgbWVtY3B5KGNo
YXJhY3RlckJ1ZmZlciArIGhhbmRzaGFrZUhlYWRlci5sZW5ndGgoKSwgbV9oaXhpZTc2S2V5Mywg
c2l6ZW9mKG1faGl4aWU3NktleTMpKTsKICAgICByZXR1cm4gbXNnOwogfQogCkBAIC0yNzgsMTAg
KzMyNCwxNiBAQCBXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6
Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCgpIGNvbnN0CiAgICAgLy8gRklYTUU6IGRvIHdlIG5lZWQg
dG8gc3RvcmUgbV9zZWNXZWJTb2NrZXRLZXkxLCBtX3NlY1dlYlNvY2tldEtleTIgYW5kCiAgICAg
Ly8gbV9rZXkzIGluIFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Q/CiAgICAgV2ViU29ja2V0SGFu
ZHNoYWtlUmVxdWVzdCByZXF1ZXN0KCJHRVQiLCBtX3VybCk7Ci0gICAgcmVxdWVzdC5hZGRIZWFk
ZXJGaWVsZCgiVXBncmFkZSIsICJXZWJTb2NrZXQiKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJv
dG9jb2wpCisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlVwZ3JhZGUiLCAiV2ViU29j
a2V0Iik7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJVcGdyYWRl
IiwgIndlYnNvY2tldCIpOwogICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIkNvbm5lY3Rpb24i
LCAiVXBncmFkZSIpOwogICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIkhvc3QiLCBob3N0TmFt
ZShtX3VybCwgbV9zZWN1cmUpKTsKLSAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJPcmlnaW4i
LCBjbGllbnRPcmlnaW4oKSk7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQorICAgICAg
ICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJPcmlnaW4iLCBjbGllbnRPcmlnaW4oKSk7CisgICAg
ZWxzZQorICAgICAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LU9yaWdp
biIsIGNsaWVudE9yaWdpbigpKTsKICAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgp
KQogICAgICAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LVByb3RvY29s
OiIsIG1fY2xpZW50UHJvdG9jb2wpOwogCkBAIC0yOTQsOSArMzQ2LDE0IEBAIFdlYlNvY2tldEhh
bmRzaGFrZVJlcXVlc3QgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0
KCkgY29uc3QKICAgICAgICAgLy8gU2V0ICJDb29raWUyOiA8Y29va2llPiIgaWYgY29va2llcyAy
IGV4aXN0cyBmb3IgdXJsPwogICAgIH0KIAotICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNl
Yy1XZWJTb2NrZXQtS2V5MSIsIG1fc2VjV2ViU29ja2V0S2V5MSk7Ci0gICAgcmVxdWVzdC5hZGRI
ZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tldC1LZXkyIiwgbV9zZWNXZWJTb2NrZXRLZXkyKTsKLSAg
ICByZXF1ZXN0LnNldEtleTMobV9rZXkzKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wp
IHsKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tldC1LZXkxIiwg
bV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5MSk7CisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmll
bGQoIlNlYy1XZWJTb2NrZXQtS2V5MiIsIG1faGl4aWU3NlNlY1dlYlNvY2tldEtleTIpOworICAg
ICAgICByZXF1ZXN0LnNldEtleTMobV9oaXhpZTc2S2V5Myk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tldC1LZXkiLCBtX3NlY1dlYlNv
Y2tldEtleSk7CisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQt
VmVyc2lvbiIsICI3Iik7IC8vIEZJWE1FOiBTZWUgRklYTUUgaW4gY2xpZW50SGFuZHNoYWtlTWVz
c2FnZSgpLgorICAgIH0KIAogICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMzQ4LDE4ICs0MDUs
MjcgQEAgaW50IFdlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFNlcnZlckhhbmRzaGFrZShjb25zdCBj
aGFyKiBoZWFkZXIsIHNpemVfdCBsZW4pCiAgICAgICAgIG1fbW9kZSA9IEZhaWxlZDsKICAgICAg
ICAgcmV0dXJuIHAgLSBoZWFkZXI7CiAgICAgfQotICAgIGlmIChsZW4gPCBzdGF0aWNfY2FzdDxz
aXplX3Q+KHAgLSBoZWFkZXIgKyBzaXplb2YobV9leHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKSkp
IHsKKworICAgIGlmICghbV91c2VIaXhpZTc2UHJvdG9jb2wpIHsgLy8gSHliaS0xMCBoYW5kc2hh
a2UgaXMgY29tcGxldGUgYXQgdGhpcyBwb2ludC4KKyAgICAgICAgbV9tb2RlID0gQ29ubmVjdGVk
OworICAgICAgICByZXR1cm4gcCAtIGhlYWRlcjsKKyAgICB9CisKKyAgICAvLyBJbiBoaXhpZS03
NiBwcm90b2NvbCwgc2VydmVyJ3MgaGFuZHNoYWtlIGNvbnRhaW5zIHNpeHRlZW4tYnl0ZSBkYXRh
IChjYWxsZWQgImNoYWxsZW5nZSByZXNwb25zZSIpCisgICAgLy8gYWZ0ZXIgdGhlIGhlYWRlciBm
aWVsZHMuCisgICAgaWYgKGxlbiA8IHN0YXRpY19jYXN0PHNpemVfdD4ocCAtIGhlYWRlciArIHNp
emVvZihtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKSkpIHsKICAgICAgICAgLy8g
SnVzdCBoYXNuJ3QgYmVlbiByZWNlaXZlZCAvZXhwZWN0ZWQvIHlldC4KICAgICAgICAgbV9tb2Rl
ID0gSW5jb21wbGV0ZTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKwogICAgIG1fcmVzcG9u
c2Uuc2V0Q2hhbGxlbmdlUmVzcG9uc2Uoc3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+
KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihwKSkpOwotICAgIGlmIChtZW1jbXAocCwgbV9leHBl
Y3RlZENoYWxsZW5nZVJlc3BvbnNlLCBzaXplb2YobV9leHBlY3RlZENoYWxsZW5nZVJlc3BvbnNl
KSkpIHsKKyAgICBpZiAobWVtY21wKHAsIG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9u
c2UsIHNpemVvZihtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKSkpIHsKICAgICAg
ICAgbV9tb2RlID0gRmFpbGVkOwotICAgICAgICByZXR1cm4gKHAgLSBoZWFkZXIpICsgc2l6ZW9m
KG1fZXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk7CisgICAgICAgIHJldHVybiAocCAtIGhlYWRl
cikgKyBzaXplb2YobV9oaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk7CiAgICAgfQog
ICAgIG1fbW9kZSA9IENvbm5lY3RlZDsKLSAgICByZXR1cm4gKHAgLSBoZWFkZXIpICsgc2l6ZW9m
KG1fZXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk7CisgICAgcmV0dXJuIChwIC0gaGVhZGVyKSAr
IHNpemVvZihtX2hpeGllNzZFeHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKTsKIH0KIAogV2ViU29j
a2V0SGFuZHNoYWtlOjpNb2RlIFdlYlNvY2tldEhhbmRzaGFrZTo6bW9kZSgpIGNvbnN0CkBAIC00
MDcsNiArNDczLDE2IEBAIFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlckNvbm5lY3Rp
b24oKSBjb25zdAogICAgIHJldHVybiBtX3Jlc3BvbnNlLmhlYWRlckZpZWxkcygpLmdldCgiY29u
bmVjdGlvbiIpOwogfQogCitTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXJ2ZXJXZWJTb2Nr
ZXRBY2NlcHQoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc3BvbnNlLmhlYWRlckZpZWxkcygp
LmdldCgic2VjLXdlYnNvY2tldC1hY2NlcHQiKTsKK30KKworU3RyaW5nIFdlYlNvY2tldEhhbmRz
aGFrZTo6c2VydmVyV2ViU29ja2V0RXh0ZW5zaW9ucygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cmVzcG9uc2UuaGVhZGVyRmllbGRzKCkuZ2V0KCJzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMiKTsK
K30KKwogY29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UmIFdlYlNvY2tldEhhbmRzaGFr
ZTo6c2VydmVySGFuZHNoYWtlUmVzcG9uc2UoKSBjb25zdAogewogICAgIHJldHVybiBtX3Jlc3Bv
bnNlOwpAQCAtNTcxLDYgKzY0Nyw4IEBAIGJvb2wgV2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jl
c3BvbnNlSGVhZGVycygpCiAgICAgY29uc3QgU3RyaW5nJiBzZXJ2ZXJXZWJTb2NrZXRQcm90b2Nv
bCA9IHRoaXMtPnNlcnZlcldlYlNvY2tldFByb3RvY29sKCk7CiAgICAgY29uc3QgU3RyaW5nJiBz
ZXJ2ZXJVcGdyYWRlID0gdGhpcy0+c2VydmVyVXBncmFkZSgpOwogICAgIGNvbnN0IFN0cmluZyYg
c2VydmVyQ29ubmVjdGlvbiA9IHRoaXMtPnNlcnZlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBT
dHJpbmcmIHNlcnZlcldlYlNvY2tldEFjY2VwdCA9IHRoaXMtPnNlcnZlcldlYlNvY2tldEFjY2Vw
dCgpOworICAgIGNvbnN0IFN0cmluZyYgc2VydmVyV2ViU29ja2V0RXh0ZW5zaW9ucyA9IHRoaXMt
PnNlcnZlcldlYlNvY2tldEV4dGVuc2lvbnMoKTsKIAogICAgIGlmIChzZXJ2ZXJVcGdyYWRlLmlz
TnVsbCgpKSB7CiAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29j
a2V0IGhhbmRzaGFrZTogJ1VwZ3JhZGUnIGhlYWRlciBpcyBtaXNzaW5nIjsKQEAgLTU4MCwxMyAr
NjU4LDIwIEBAIGJvb2wgV2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycygp
CiAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRz
aGFrZTogJ0Nvbm5lY3Rpb24nIGhlYWRlciBpcyBtaXNzaW5nIjsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KLSAgICBpZiAoc2VydmVyV2ViU29ja2V0T3JpZ2luLmlzTnVsbCgpKSB7Ci0g
ICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFr
ZTogJ1NlYy1XZWJTb2NrZXQtT3JpZ2luJyBoZWFkZXIgaXMgbWlzc2luZyI7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKHNlcnZlcldlYlNvY2tldExvY2F0aW9uLmlzTnVs
bCgpKSB7Ci0gICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0
IGhhbmRzaGFrZTogJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb24nIGhlYWRlciBpcyBtaXNzaW5nIjsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgewor
ICAgICAgICBpZiAoc2VydmVyV2ViU29ja2V0T3JpZ2luLmlzTnVsbCgpKSB7CisgICAgICAgICAg
ICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6ICdT
ZWMtV2ViU29ja2V0LU9yaWdpbicgaGVhZGVyIGlzIG1pc3NpbmciOworICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlv
bi5pc051bGwoKSkgeworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmlu
ZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbicgaGVhZGVyIGlz
IG1pc3NpbmciOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKHNlcnZlcldlYlNvY2tldEFjY2VwdC5pc051bGwoKSkgeworICAg
ICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNo
YWtlOiAnU2VjLVdlYlNvY2tldC1BY2NlcHQnIGhlYWRlciBpcyBtaXNzaW5nIjsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmICghZXF1YWxJZ25v
cmluZ0Nhc2Uoc2VydmVyVXBncmFkZSwgIndlYnNvY2tldCIpKSB7CkBAIC01OTgsMTcgKzY4Mywz
MSBAQCBib29sIFdlYlNvY2tldEhhbmRzaGFrZTo6Y2hlY2tSZXNwb25zZUhlYWRlcnMoKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgaWYgKGNsaWVudE9yaWdpbigpICE9IHNl
cnZlcldlYlNvY2tldE9yaWdpbikgewotICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3Ig
ZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IG9yaWdpbiBtaXNtYXRjaDogIiArIGNsaWVudE9y
aWdpbigpICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0T3JpZ2luOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICAgIGlmIChjbGllbnRMb2NhdGlvbigpICE9IHNlcnZlcldlYlNvY2tl
dExvY2F0aW9uKSB7Ci0gICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2Vi
U29ja2V0IGhhbmRzaGFrZTogbG9jYXRpb24gbWlzbWF0Y2g6ICIgKyBjbGllbnRMb2NhdGlvbigp
ICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0TG9jYXRpb247Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gICAgaWYgKCFtX2NsaWVudFByb3RvY29sLmlzRW1wdHkoKSAmJiBtX2NsaWVu
dFByb3RvY29sICE9IHNlcnZlcldlYlNvY2tldFByb3RvY29sKSB7Ci0gICAgICAgIG1fZmFpbHVy
ZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogcHJvdG9jb2wgbWlz
bWF0Y2g6ICIgKyBtX2NsaWVudFByb3RvY29sICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0UHJv
dG9jb2w7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9j
b2wpIHsKKyAgICAgICAgaWYgKGNsaWVudE9yaWdpbigpICE9IHNlcnZlcldlYlNvY2tldE9yaWdp
bikgeworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2Nr
ZXQgaGFuZHNoYWtlOiBvcmlnaW4gbWlzbWF0Y2g6ICIgKyBjbGllbnRPcmlnaW4oKSArICIgIT0g
IiArIHNlcnZlcldlYlNvY2tldE9yaWdpbjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoY2xpZW50TG9jYXRpb24oKSAhPSBzZXJ2ZXJXZWJTb2NrZXRM
b2NhdGlvbikgeworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBX
ZWJTb2NrZXQgaGFuZHNoYWtlOiBsb2NhdGlvbiBtaXNtYXRjaDogIiArIGNsaWVudExvY2F0aW9u
KCkgKyAiICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbjsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0
eSgpICYmIG1fY2xpZW50UHJvdG9jb2wgIT0gc2VydmVyV2ViU29ja2V0UHJvdG9jb2wpIHsKKyAg
ICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRz
aGFrZTogcHJvdG9jb2wgbWlzbWF0Y2g6ICIgKyBtX2NsaWVudFByb3RvY29sICsgIiAhPSAiICsg
c2VydmVyV2ViU29ja2V0UHJvdG9jb2w7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc2VydmVyV2ViU29ja2V0QWNjZXB0ICE9
IG1fZXhwZWN0ZWRBY2NlcHQpIHsKKyAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJv
ciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogU2VjLVdlYlNvY2tldC1BY2NlcHQgbWlzbWF0
Y2giOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICgh
c2VydmVyV2ViU29ja2V0RXh0ZW5zaW9ucy5pc051bGwoKSkgeworICAgICAgICAgICAgLy8gV2Vi
U29ja2V0IHByb3RvY29sIGV4dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LgorICAgICAg
ICAgICAgLy8gV2UgZG8gbm90IHNlbmQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciBp
biBvdXIgcmVxdWVzdCwgdGh1cworICAgICAgICAgICAgLy8gc2VydmVycyBzaG91bGQgbm90IHJl
dHVybiB0aGlzIGhlYWRlciwgZWl0aGVyLgorICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0g
IkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMgaGVhZGVyIGlzIGludmFsaWQiOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmgKaW5kZXggMzgwOGU2MTFmNjA2MDgyNzJhY2EyYmE1
NTg5ODkyM2FiODI1NDA2Mi4uMGNjZTVhZmJlZGIyMzZhNDkxMmYzMGIzZmI4MTViYmEzMjcxNDAw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTczLDEzICs3MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE1vZGUgbW9k
ZSgpIGNvbnN0OwogICAgICAgICBTdHJpbmcgZmFpbHVyZVJlYXNvbigpIGNvbnN0OyAvLyBSZXR1
cm5zIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIHJlYXNvbiBvZiBmYWlsdXJlIGlmIG1vZGUoKSA9
PSBGYWlsZWQuCiAKLSAgICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldE9yaWdpbigpIGNvbnN0
OwotICAgICAgICBTdHJpbmcgc2VydmVyV2ViU29ja2V0TG9jYXRpb24oKSBjb25zdDsKKyAgICAg
ICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldE9yaWdpbigpIGNvbnN0OyAvLyBPbmx5IGZvciBoaXhp
ZS03NiBoYW5kc2hha2UuCisgICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbigp
IGNvbnN0OyAvLyBPbmx5IGZvciBoaXhpZS03NiBoYW5kc2hha2UuCiAgICAgICAgIFN0cmluZyBz
ZXJ2ZXJXZWJTb2NrZXRQcm90b2NvbCgpIGNvbnN0OwogICAgICAgICBTdHJpbmcgc2VydmVyU2V0
Q29va2llKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBzZXJ2ZXJTZXRDb29raWUyKCkgY29uc3Q7
CiAgICAgICAgIFN0cmluZyBzZXJ2ZXJVcGdyYWRlKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBz
ZXJ2ZXJDb25uZWN0aW9uKCkgY29uc3Q7CisgICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRB
Y2NlcHQoKSBjb25zdDsgLy8gT25seSBmb3IgaHliaS0xMCBoYW5kc2hha2UuCisgICAgICAgIFN0
cmluZyBzZXJ2ZXJXZWJTb2NrZXRFeHRlbnNpb25zKCkgY29uc3Q7IC8vIE9ubHkgZm9yIGh5Ymkt
MTAgaGFuZHNoYWtlLgogCiAgICAgICAgIGNvbnN0IFdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNl
JiBzZXJ2ZXJIYW5kc2hha2VSZXNwb25zZSgpIGNvbnN0OwogCkBAIC0xMDEsMTQgKzEwMywxOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgTW9kZSBtX21vZGU7CiAKLSAgICAgICAg
U3RyaW5nIG1fc2VjV2ViU29ja2V0S2V5MTsKLSAgICAgICAgU3RyaW5nIG1fc2VjV2ViU29ja2V0
S2V5MjsKLSAgICAgICAgdW5zaWduZWQgY2hhciBtX2tleTNbOF07Ci0gICAgICAgIHVuc2lnbmVk
IGNoYXIgbV9leHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlWzE2XTsKLQogICAgICAgICBXZWJTb2Nr
ZXRIYW5kc2hha2VSZXNwb25zZSBtX3Jlc3BvbnNlOwogCiAgICAgICAgIFN0cmluZyBtX2ZhaWx1
cmVSZWFzb247CisKKyAgICAgICAgLy8gRm9yIGhpeGllLTc2IGhhbmRzaGFrZS4KKyAgICAgICAg
U3RyaW5nIG1faGl4aWU3NlNlY1dlYlNvY2tldEtleTE7CisgICAgICAgIFN0cmluZyBtX2hpeGll
NzZTZWNXZWJTb2NrZXRLZXkyOworICAgICAgICB1bnNpZ25lZCBjaGFyIG1faGl4aWU3NktleTNb
OF07CisgICAgICAgIHVuc2lnbmVkIGNoYXIgbV9oaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNw
b25zZVsxNl07CisKKyAgICAgICAgLy8gRm9yIGh5YmktMTAgaGFuZHNoYWtlLgorICAgICAgICBT
dHJpbmcgbV9zZWNXZWJTb2NrZXRLZXk7CisgICAgICAgIFN0cmluZyBtX2V4cGVjdGVkQWNjZXB0
OwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100640</attachid>
            <date>2011-07-13 01:06:46 -0700</date>
            <delta_ts>2011-07-13 22:32:59 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-64344-20110713170644.patch</filename>
            <type>text/plain</type>
            <size>45498</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZTYzZjBhYWFmNzlhNzZjZWEwZmM4
ZTI0YTVlZDRjOTk0ZTJlY2ZiLi4zMmMxNjM5NzNiMTUyZTg4OGFjZjI2MDFlMDBiYzNjNjdmMmU3
YzY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDctMTMgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgaHliaSBo
YW5kc2hha2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY0MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGV4aXN0aW5nIHRlc3RzIHNvIHRoZXkgbWF0Y2ggdGhlIG5ldyBoYW5kc2hha2UgZm9ybWF0
LCBhbmQgYWRkIHRlc3RzIGZvciBuZXcgaGVhZGVyIGZpZWxkcy4KKworICAgICAgICBUaGVyZSBh
cmUgc2V2ZXJhbCBjaGFuZ2VzIGluIHRoZSBmb3JtYXQgb2YgaGFuZHNoYWtlIHJlc3BvbnNlLCBz
dWNoIGFzOgorICAgICAgICAtIFJlYXNvbiBzdHJpbmcgaW4gSFRUUCBzdGF0dXMgbGluZSBoYXMg
YmVlbiBjaGFuZ2VkIHRvICJTd2l0Y2hpbmcgUHJvdG9jb2xzIi4KKyAgICAgICAgLSBUaGUgdmFs
dWUgb2YgIlVwZ3JhZGUiIGhlYWRlciBoYXMgYmVlbiBjaGFuZ2VkIHRvICJ3ZWJzb2NrZXQiIChs
b3dlci1jYXNlIG9ubHkpLgorICAgICAgICAtIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5kIFNl
Yy1XZWJTb2NrZXQtT3JpZ2luIGFyZSBnb25lLgorICAgICAgICAtICJDaGFsbGVuZ2UgcmVzcG9u
c2UiIHZhbHVlICgxNi1ieXRlIGRhdGEgYWZ0ZXIgdGhlIHJlc3BvbnNlIGhlYWRlciBmaWVsZHMp
IGlzIHJlbW92ZWQsIGFuZAorICAgICAgICAgIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlciBp
cyBhZGRlZCBpbnN0ZWFkLgorCisgICAgICAgIFRoZSB2YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFj
Y2VwdCBoZWFkZXIgaXMgY29tcHV0ZWQgdXNpbmcgY29tcHV0ZV9hY2NlcHQoKSBmdW5jdGlvbgor
ICAgICAgICBsb2NhdGVkIGluIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IG1vZHVs
ZS4gQWx0aG91Z2ggdGhlIG1vZHVsZSBuYW1lIGNvbnRhaW5zCisgICAgICAgICJoeWJpMDYiLCB0
aGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgU2VjLVdl
YlNvY2tldC1BY2NlcHQgaGVhZGVyCisgICAgICAgIGZvciBoeWJpLTEwIChjYWxjdWxhdGlvbiBt
ZXRob2QgaGFzIG5vdCBiZWVuIGNoYW5nZWQgc2luY2UgaHliaS0wNikuCisKKyAgICAgICAgTm90
ZTogVGVzdHMgdW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNsdWRpbmcgdGhlIG5ldyBvbmVzKSBh
cmUgc2tpcHBlZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAgICAgICAgeWV0LCBiZWNhdXNlIHB5
d2Vic29ja2V0IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBmcm9tIGhhbGYtYmFrZWQgY2xpZW50
IGltcGxlbWVudGF0aW9uCisgICAgICAgIChpLmUuIGh5YmkgaGFuZHNoYWtlICsgaGl4aWUtNzYg
ZnJhbWluZykuIFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hlbiBoeWJpIGZyYW1pbmcgaXMgbGFu
ZGVkCisgICAgICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oYW5kbGVyX21hcC50eHQ6CisgICAgICAgIFRoZXJlIG11c3QgYmUgb25seSBvbmUg
aGFuZGxlciB0aGF0IGNhbiBoYW5kbGUgcmVxdWVzdHMgdG8gIi8iLiBoeWJpL2VjaG8tbG9jYXRp
b25fd3NoLnB5CisgICAgICAgIGlzIG1vZGlmaWVkIHRvIGFjY2VwdCByZXF1ZXN0cyBvZiBib3Ro
IHByb3RvY29sIHZlcnNpb25zLgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHk6CisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvLWNoYWxsZW5nZV93c2gucHk6CisgICAgICAgICogaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0aW9uX3dzaC5weToKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4
dGVuc2lvbnMtaGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRl
ci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyX3dzaC5weTogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1t
YXhsZW5ndGhfd3NoLnB5OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZh
aWwtYnktbm8tYWNjZXB0LWhlYWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXJf
d3NoLnB5OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNvbm5lY3Rpb24taGVhZGVyX3dzaC5weToKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWNy
X3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LW5vLXVwZ3JhZGUtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXByZXBlbmRlZC1udWxs
X3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRz
aGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5
LXdyb25nLWFjY2VwdC1oZWFkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVy
X3dzaC5weTogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9sb25nLWludmFsaWQtaGVhZGVyX3dzaC5weToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL2VjaG8tY2hhbGxlbmdlX3dzaC5weToK
KwogMjAxMS0wNy0xMiAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUgdXBkYXRlIHNob3VsZCBub3QgaW1tZWRpYXRlbHkgZmFp
bCB3aGVuIHJlYWNoaW5nIHBlci1vcmlnaW4gcXVvdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hhbmRsZXJfbWFwLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2hhbmRsZXJfbWFwLnR4dAppbmRleCA5OGZiYWE4
YjlhNjcxYTdlMzg4MGVjOGVkZmUxYTQ2YjZiOWU4ZTY2Li5jNmIwYmExMGJmYzAxZjY1ZmMyNjky
Mjc5ZDgxZTM4ZDI2MDNmZGM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oYW5kbGVyX21hcC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaGFuZGxlcl9tYXAudHh0CkBAIC0xLDMgKzEsNCBAQAogIyB3ZWJz
b2NrZXQgaGFuZGxlciBtYXAgZmlsZS4KICMgcmVxdWVzdCB0byAnLycgd2lsbCBiZSBoYW5kbGVk
IGJ5IGVjaG8tbG9jYXRpb25fd3NoLnB5Ci0vIC93ZWJzb2NrZXQvdGVzdHMvaGl4aWU3Ni9lY2hv
LWxvY2F0aW9uCisjIGh5YmkvZWNoby1sb2NhdGlvbl93c2gucHkgY2FuIGhhbmRsZSBib3RoIGhp
eGllLTc2IGFuZCBoeWJpLTEwIHByb3RvY29scy4KKy8gL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Vj
aG8tbG9jYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2JhZC1oYW5kc2hha2UtY3Jhc2hfd3NoLnB5Cmlu
ZGV4IDdiNDI1YmM3MTY2ZjUzZGZjMjY2OWNkZWY5MDMzNTEyMDdhNDRkNDAuLmE0ZDQ4ODIyYmEw
NDFmNTk1M2NkMmQ2NmU4MTY0YTk1Y2E0NTlmOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYmFkLWhhbmRzaGFrZS1jcmFzaF93c2gucHkK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9iYWQtaGFu
ZHNoYWtlLWNyYXNoX3dzaC5weQpAQCAtMSwxMiArMSwxMyBAQAorZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuaGFuZHNoYWtlLmh5YmkwNiBpbXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCiBkZWYgd2ViX3Nv
Y2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgbXNnID0gIkhUVFAvMS4xIDEw
MSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbiIKLSAgICBtc2cgKz0gIlVwZ3JhZGU6
IFdlYlNvY2tldFxyXG4iCisgICAgbXNnID0gIkhUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9j
b2xzXHJcbiIKKyAgICBtc2cgKz0gIlVwZ3JhZGU6IHdlYnNvY2tldFxyXG4iCiAgICAgbXNnICs9
ICJDb25uZWN0aW9uOiBVcGdyYWRlXHJcbiIKLSAgICBtc2cgKz0gIlNlYy1XZWJTb2NrZXQtTG9j
YXRpb246ICIgKyByZXF1ZXN0LndzX2xvY2F0aW9uICsgIlxyXG4iCi0gICAgbXNnICs9ICJTZWMt
V2ViU29ja2V0LU9yaWdpbjogIiArIHJlcXVlc3Qud3Nfb3JpZ2luICsgIlxyXG4iCisgICAgbXNn
ICs9ICJTZWMtV2ViU29ja2V0LUFjY2VwdDogJXNcclxuIiAlIGNvbXB1dGVfYWNjZXB0KHJlcXVl
c3QuaGVhZGVyc19pblsiU2VjLVdlYlNvY2tldC1LZXkiXSlbMF0KICAgICBtc2cgKz0gIlx4YTU6
XHJcbiIKICAgICBtc2cgKz0gIlxyXG4iCi0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hhbGxlbmdl
X21kNQogICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtc2cpCiAgICAgcHJpbnQgbXNnCiAg
ICAgcmFpc2UgRXhjZXB0aW9uKCJBYm9ydCB0aGUgY29ubmVjdGlvbiIpICMgUHJldmVudHMgcHl3
ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2UuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2VjaG8tY2hh
bGxlbmdlX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvZWNoby1jaGFsbGVuZ2Vfd3NoLnB5CmluZGV4IDM5MGQ0NDE1MDljYTMwNDM0ZWFiZTNkYzQ1
NDMwNjE2ZjViMzNjYmYuLmFhMDRkMDQ2N2ZjNmRlZDE1MTIzNmU3YWExMjA5NTk0NDQ4N2MzMDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
ZWNoby1jaGFsbGVuZ2Vfd3NoLnB5CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvZWNoby1jaGFsbGVuZ2Vfd3NoLnB5CkBAIC02LDggKzYsNCBAQCBkZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CiAKIAogZGVmIHdlYl9zb2Nr
ZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCBfaGV4aWZ5KHJlcXVlc3Qud3NfY2hhbGxlbmdlKSkKLQotCi1kZWYgX2hleGlmeShieXRl
cyk6Ci0gICAgcmV0dXJuICc6Jy5qb2luKFsnJTAyWCcgJSBvcmQoYnl0ZSkgZm9yIGJ5dGUgaW4g
Ynl0ZXNdKQorICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHJlcXVlc3QuaGVhZGVy
c19pblsnU2VjLVdlYlNvY2tldC1LZXknXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNoby1sb2NhdGlvbl93c2gucHkgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2VjaG8tbG9jYXRpb25fd3NoLnB5
CmluZGV4IDMzOTA1NzBhYmFjODFiNTg1OTJjZmI0YmMwZGNhNWVlMDFiZDBiMjkuLjAzYzRhYTky
ODNkMjA2MTJlNjVkZjQ4NmNkOGJmNmQ4NDk4MjgxYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvZWNoby1sb2NhdGlvbl93c2gucHkKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9lY2hvLWxvY2F0
aW9uX3dzaC5weQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMjgsNiArMjgsNyBAQAogCiAKIGZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGls
Citmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGJ1aWxkX2xvY2F0
aW9uCiAKIAogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgpAQCAt
MzUsNSArMzYsMTQgQEAgZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3Qp
OgogCiAKIGRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcHJpbnQg
cmVxdWVzdC53c19sb2NhdGlvbgotICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHJl
cXVlc3Qud3NfbG9jYXRpb24pCisgICAgaWYgaGFzYXR0cihyZXF1ZXN0LCAnd3NfbG9jYXRpb24n
KToKKyAgICAgICAgbG9jYXRpb24gPSByZXF1ZXN0LndzX2xvY2F0aW9uCisgICAgZWxzZToKKyAg
ICAgICAgIyBXaGVuIGh5YmkgcHJvdG9jb2wgaXMgdXNlZCwgcHl3ZWJzb2NrZXQgZG9lcyBub3Qg
cHJvdmlkZQorICAgICAgICAjIHdzX2xvY2F0aW9uIGF0dHJpYnV0ZSBiZWNhdXNlIHNlcnZlcnMg
YXJlIG5vdCByZXF1aXJlZCB0byBzZW5kCisgICAgICAgICMgU2VjLVdlYlNvY2tldC1Mb2NhdGlv
biBoZWFkZXIgYWNjb3JkaW5nIHRvIHRoZSBwcm90b2NvbAorICAgICAgICAjIHNwZWNpZmljYXRp
b24uIElmIHdzX2xvY2F0aW9uIGF0dHJpYnV0ZSBpcyBub3QgYXZhaWxhYmxlLAorICAgICAgICAj
IHdlIHVzZSBweXdlYnNvY2tldCdzIGludGVybmFsIGZ1bmN0aW9uICJidWlsZF9mdW5jdGlvbiIK
KyAgICAgICAgIyB0byBvYnRhaW4gdGhlIGlkZW50aWNhbCB2YWx1ZS4KKyAgICAgICAgbG9jYXRp
b24gPSBidWlsZF9sb2NhdGlvbihyZXF1ZXN0KQorICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJl
cXVlc3QsIGxvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hh
bmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44NGVkYWQxOTRjYjRhMmJmMzE0MjRiYWNiMDY5MzRjZWJjMzY4ZDUxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hh
a2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNo
YWtlOiBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGludmFsaWQKK1Rlc3Qgd2hl
dGhlciBXZWJTb2NrZXQgaGFuZHNoYWtlIGZhaWxzIGlmIHRoZSBzZXJ2ZXIgc2VuZHMgU2VjLVdl
YlNvY2tldC1FeHRlbnNpb25zIGhlYWRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lv
bnMtaGVhZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGRjNmM1OGUxNWQ1ZjQ3NmUwMzg3MWQxOTUyYTYzYTFkZmQ5NjQwNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktZXh0ZW5zaW9ucy1oZWFkZXIuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZ
UEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHdoZXRoZXIg
V2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUgc2VydmVyIHNlbmRzIFNlYy1XZWJTb2Nr
ZXQtRXh0ZW5zaW9ucyBoZWFkZXIuIik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkIiwgMCk7CisKK3ZhciB1cmwgPSAid3M6Ly9sb2NhbGhvc3Q6ODg4MC93ZWJzb2NrZXQvdGVz
dHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlciI7Cit2YXIgd3MgPSBu
ZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xvc2VFdmVudDsKKword3Mub25vcGVuID0gZnVuY3Rp
b24oKQoreworICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rpb24gZXN0YWJsaXNoZWQuIik7CisgICAg
d3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBj
bG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVGYWxzZSgiY2xvc2VFdmVudC53YXNDbGVh
biIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hh
a2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVh
ZGVyX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMGEzZDc3MTU4YTFhMWQyNzBlNGFlMjQ2NzZlM2Q1N2I1
NGEwOWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1leHRlbnNpb25zLWhlYWRlcl93c2gucHkK
QEAgLTAsMCArMSwxNiBAQAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwNiBp
bXBvcnQgY29tcHV0ZV9hY2NlcHQKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hh
a2UocmVxdWVzdCk6CisgICAgbWVzc2FnZSA9ICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3Rv
Y29sc1xyXG4nCisgICAgbWVzc2FnZSArPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKKyAgICBt
ZXNzYWdlICs9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKKyAgICBtZXNzYWdlICs9ICdTZWMt
V2ViU29ja2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVy
c19pblsnU2VjLVdlYlNvY2tldC1LZXknXSlbMF0KKyAgICBtZXNzYWdlICs9ICdTZWMtV2ViU29j
a2V0LUV4dGVuc2lvbnM6IHgtZm9vXHJcbicKKyAgICBtZXNzYWdlICs9ICdcclxuJworICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0ZShtZXNzYWdlKQorICAgIHJhaXNlIEV4Y2VwdGlvbignQWJv
cnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBp
dHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS1tYXhsZW5ndGhfd3NoLnB5CmluZGV4IGMwMzlmYjM4ZTkzMzEwMmEwMDVlYjFiYThj
MjA4YzI1OTQ4N2Q1MTMuLjY3Njg3OTlkODU2MjRkMmFkNzE3NzQyZGJhNGE3Nzg3M2NiYzliNGYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
aGFuZHNoYWtlLWZhaWwtYnktbWF4bGVuZ3RoX3dzaC5weQorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW1heGxlbmd0aF93
c2gucHkKQEAgLTIwLDE3ICsyMCwxOCBAQAogIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogCitmcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21wdXRlX2FjY2VwdAorCisKIGRlZiB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKICAgICAjIFRoaXMgd2lsbCBjYXVzZSB0
aGUgaGFuZHNoYWtlIHRvIGZhaWwgYmVjYXVzZSBpdCBwdXNoZXMgdGhlIGxlbmd0aCBvZiB0aGUK
ICAgICAjIHN0YXR1cyBsaW5lIHBhc3QgMTAyNCBjaGFyYWN0ZXJzCiAgICAgbXNnID0gJy4nICog
MTAyNAotICAgIG1zZyArPSAnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2NvbCBIYW5kc2hh
a2VcclxuJwotICAgIG1zZyArPSAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAgICBtc2cgKz0g
J0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKKyAgICBtc2cgKz0gJ1VwZ3Jh
ZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9ICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicK
LSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246ICcgKyByZXF1ZXN0LndzX2xvY2F0
aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LU9yaWdpbjogJyArIHJlcXVl
c3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUFjY2VwdDog
JXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tl
dC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4nCi0gICAgbXNnICs9IHJlcXVlc3Qud3NfY2hh
bGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtc2cpCiAgICAgcmFpc2Ug
RXhjZXB0aW9uKCdhYm9ydCB0aGUgY29ubmVjdGlvbicpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQg
ZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtlIG1lc3NhZ2UuCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwt
Ynktbm8tYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlYzU4MDhhZmYyM2U0MTkwYWRjYzg5MmRkYjMyNGM1
ZjA2ZjhhNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiBFcnJvciBk
dXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1XZWJTb2NrZXQtQWNjZXB0JyBoZWFkZXIg
aXMgbWlzc2luZworVGVzdCB3aGV0aGVyIFdlYlNvY2tldCBoYW5kc2hha2UgZmFpbHMgaWYgdGhl
IHNlcnZlciBkb2VzIG5vdCBzZW5kIFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlci4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGNsb3NlRXZlbnQud2FzQ2xlYW4gaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hh
bmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNjZXB0LWhl
YWRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYWY0NWQ4ODJkYjg5NWFiZjEwMDZmZTZkMGQ1NTg2NjAw
YzNjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LW5vLWFjY2VwdC1oZWFkZXIuaHRtbApAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2Ny
aXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0IHdoZXRoZXIgV2ViU29ja2V0IGhhbmRzaGFrZSBmYWlscyBpZiB0aGUgc2Vy
dmVyIGRvZXMgbm90IHNlbmQgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyLiIpOworCit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SGl4
aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCIsIDApOworCit2YXIgdXJsID0gIndzOi8vbG9j
YWxob3N0Ojg4ODAvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tYWNj
ZXB0LWhlYWRlciI7Cit2YXIgd3MgPSBuZXcgV2ViU29ja2V0KHVybCk7Cit2YXIgY2xvc2VFdmVu
dDsKKword3Mub25vcGVuID0gZnVuY3Rpb24oKQoreworICAgIHRlc3RGYWlsZWQoIkNvbm5lY3Rp
b24gZXN0YWJsaXNoZWQuIik7CisgICAgd3MuY2xvc2UoKTsKK307CisKK3dzLm9uY2xvc2UgPSBm
dW5jdGlvbihldmVudCkKK3sKKyAgICBjbG9zZUV2ZW50ID0gZXZlbnQ7CisgICAgc2hvdWxkQmVG
YWxzZSgiY2xvc2VFdmVudC53YXNDbGVhbiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1hY2NlcHQtaGVhZGVyX3dzaC5w
eSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktbm8tYWNjZXB0LWhlYWRlcl93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQxYTY2ZDNkZjVh
OWQ5NGFlNTM1Mjg4ODhjOTlhYTk0NzNiN2UyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8t
YWNjZXB0LWhlYWRlcl93c2gucHkKQEAgLTAsMCArMSwxMSBAQAorZGVmIHdlYl9zb2NrZXRfZG9f
ZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAgIG1lc3NhZ2UgPSAnSFRUUC8xLjEgMTAxIFN3
aXRjaGluZyBQcm90b2NvbHNcclxuJworICAgIG1lc3NhZ2UgKz0gJ1VwZ3JhZGU6IHdlYnNvY2tl
dFxyXG4nCisgICAgbWVzc2FnZSArPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisgICAgbWVz
c2FnZSArPSAnXHJcbicKKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobWVzc2FnZSkKKyAg
ICByYWlzZSBFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdl
YnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KKworCitkZWYg
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZh
aWwtYnktbm8tY29ubmVjdGlvbi1oZWFkZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jb25uZWN0aW9uLWhl
YWRlcl93c2gucHkKaW5kZXggN2VmYzg3YTUwZDY2ZGU4NzRjOGExZGMzODZmMmRiNmNlZjAzYTQz
Ny4uZjk5NjUxODNlNTAwNzQ2OTExYmIzYmU4ZjYxNTcxMmZkOGM4ODA1ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFp
bC1ieS1uby1jb25uZWN0aW9uLWhlYWRlcl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jb25uZWN0aW9u
LWhlYWRlcl93c2gucHkKQEAgLTEsMTEgKzEsMTIgQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0Lmhh
bmRzaGFrZS5oeWJpMDYgaW1wb3J0IGNvbXB1dGVfYWNjZXB0CisKKwogZGVmIHdlYl9zb2NrZXRf
ZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgV2Vi
U29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgbXNnICs9ICdVcGdyYWRlOiBXZWJT
b2NrZXRcclxuJworICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xy
XG4nCisgICAgbXNnICs9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwogIyAgIE1pc3NpbmcgJ0Nv
bm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1Mb2NhdGlv
bjogJyArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAnXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJT
b2NrZXQtT3JpZ2luOiAnICsgcmVxdWVzdC53c19vcmlnaW4gKyAnXHJcbicKKyAgICBtc2cgKz0g
J1NlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4nICUgY29tcHV0ZV9hY2NlcHQocmVxdWVzdC5o
ZWFkZXJzX2luWydTZWMtV2ViU29ja2V0LUtleSddKVswXQogICAgIG1zZyArPSAnXHJcbicKLSAg
ICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1CiAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXRlKG1zZykKICAgICBwcmludCBtc2cKICAgICByYWlzZSBFeGNlcHRpb24oJ0Fib3J0IHRo
ZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNvY2tldCBmcm9tIHNlbmRpbmcgaXRzIG93
biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktbm8tY3Jfd3NoLnB5IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1i
eS1uby1jcl93c2gucHkKaW5kZXggOTc4OTI0YWI2ZWIxOGI5NTZmZjQ1NTlkNWI5M2RiZWRlODNi
OTMzMi4uNWM0YjllMzk0MjY4MDQyZjEwMmRmMTdiMTBhMGJkMzg3ZmQyMTA4ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2Ut
ZmFpbC1ieS1uby1jcl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby1jcl93c2gucHkKQEAgLTEsMTEgKzEs
MTIgQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpMDYgaW1wb3J0IGNvbXB1
dGVfYWNjZXB0CisKKwogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3Qp
OgotICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxu
JyAjIERvZXMgbm90IGVuZCB3aXRoICJcclxuIi4KLSAgICBtc2cgKz0gJ1VwZ3JhZGU6IFdlYlNv
Y2tldFxyXG4nCisgICAgbXNnID0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXG4n
ICMgRG9lcyBub3QgZW5kIHdpdGggIlxyXG4iLgorICAgIG1zZyArPSAnVXBncmFkZTogd2Vic29j
a2V0XHJcbicKICAgICBtc2cgKz0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgIG1zZyAr
PSAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbjogJyArIHJlcXVlc3Qud3NfbG9jYXRpb24gKyAnXHJc
bicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiAnICsgcmVxdWVzdC53c19vcmln
aW4gKyAnXHJcbicKKyAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiAlc1xyXG4nICUg
Y29tcHV0ZV9hY2NlcHQocmVxdWVzdC5oZWFkZXJzX2luWydTZWMtV2ViU29ja2V0LUtleSddKVsw
XQogICAgIG1zZyArPSAnXHJcbicKLSAgICBtc2cgKz0gcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1
CiAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKG1zZykKICAgICBwcmludCBtc2cKICAgICBy
YWlzZSBFeGNlcHRpb24oJ0Fib3J0IHRoZSBjb25uZWN0aW9uJykgIyBQcmV2ZW50cyBweXdlYnNv
Y2tldCBmcm9tIHNlbmRpbmcgaXRzIG93biBoYW5kc2hha2UgbWVzc2FnZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZh
aWwtYnktbm8tdXBncmFkZS1oZWFkZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlcl93
c2gucHkKaW5kZXggMTE0ZGU3NWUxOTM3YWM1YmVlNWU3MWE1OGRjY2Q5ZGY2YjBhZjc4Yy4uZjg4
ZDUwMDEwODg2ZTIwNTFhMDk0MDQ3MDc1NThkOTliMmUwMTdjMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1u
by11cGdyYWRlLWhlYWRlcl93c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS1uby11cGdyYWRlLWhlYWRlcl93c2gu
cHkKQEAgLTEsMTEgKzEsMTIgQEAKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJp
MDYgaW1wb3J0IGNvbXB1dGVfYWNjZXB0CisKKwogZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlKHJlcXVlc3QpOgotICAgIG1zZyA9ICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3Rv
Y29sIEhhbmRzaGFrZVxyXG4nCi0jICAgTWlzc2luZyAnVXBncmFkZTogV2ViU29ja2V0XHJcbicK
KyAgICBtc2cgPSAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJworIyAgIE1p
c3NpbmcgJ1VwZ3JhZGU6IHdlYnNvY2tldFxyXG4nCiAgICAgbXNnICs9ICdDb25uZWN0aW9uOiBV
cGdyYWRlXHJcbicKLSAgICBtc2cgKz0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246ICcgKyByZXF1
ZXN0LndzX2xvY2F0aW9uICsgJ1xyXG4nCi0gICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LU9yaWdp
bjogJyArIHJlcXVlc3Qud3Nfb3JpZ2luICsgJ1xyXG4nCisgICAgbXNnICs9ICdTZWMtV2ViU29j
a2V0LUFjY2VwdDogJXNcclxuJyAlIGNvbXB1dGVfYWNjZXB0KHJlcXVlc3QuaGVhZGVyc19pblsn
U2VjLVdlYlNvY2tldC1LZXknXSlbMF0KICAgICBtc2cgKz0gJ1xyXG4nCi0gICAgbXNnICs9IHJl
cXVlc3Qud3NfY2hhbGxlbmdlX21kNQogICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtc2cp
CiAgICAgcHJpbnQgbXNnCiAgICAgcmFpc2UgRXhjZXB0aW9uKCdBYm9ydCB0aGUgY29ubmVjdGlv
bicpICMgUHJldmVudHMgcHl3ZWJzb2NrZXQgZnJvbSBzZW5kaW5nIGl0cyBvd24gaGFuZHNoYWtl
IG1lc3NhZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXByZXBlbmRlZC1udWxsX3dzaC5weSBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnkt
cHJlcGVuZGVkLW51bGxfd3NoLnB5CmluZGV4IDA3MzUxODQ5ODE0MTlmOWMyYTM2MmZiODY5NTM2
MzQxMWYzMDVhYTUuLjI4YWRhYjRiMGJlN2NmMDc3OTYzM2MxNTY3YjJkN2ZlNmU5MzNjMDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFu
ZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVkLW51bGxfd3NoLnB5CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktcHJlcGVuZGVk
LW51bGxfd3NoLnB5CkBAIC0xOSw3ICsxOSwxMCBAQAogIyBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCiAjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCisKIGltcG9ydCB0aW1lCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
c3RyZWFtCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuaHliaTA2IGltcG9ydCBjb21w
dXRlX2FjY2VwdAogCiAKIGRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0
KToKQEAgLTI4LDE2ICszMSwxNCBAQCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Uo
cmVxdWVzdCk6CiAgICAgIyBoYXBwZW5zIHRoZSBjbGllbnQgZG9lcyBub3QgYnVmZmVyIGFsbCB0
aGUgZnJhbWVzIGFzIHRoZSBzZXJ2ZXIgY29udGludWVzCiAgICAgIyB0byBzZW5kIG1vcmUgZGF0
YSAtIGl0IHNob3VsZCBhYm9ydCBhZnRlciByZWFkaW5nIGEgcmVhc29uYWJsZSBudW1iZXIgb2YK
ICAgICAjIGJ5dGVzIChzZXQgYXJiaXRyYXJpbHkgdG8gMTAyNCkuCi0gICAgZnJhbWUgPSAnXDBG
cmFtZS1jb250YWlucy10aGlydHktdHdvLWJ5dGVzJworICAgIGZyYW1lID0gc3RyZWFtLmNyZWF0
ZV90ZXh0X2ZyYW1lKCdcMEZyYW1lLWNvbnRhaW5zLXRoaXJ0eS10d28tYnl0ZXMnKQogCiAgICAg
bXNnID0gZnJhbWUKLSAgICBtc2cgKz0gJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wg
SGFuZHNoYWtlXHJcbicKLSAgICBtc2cgKz0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAg
bXNnICs9ICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFByb3RvY29sc1xyXG4nCisgICAgbXNnICs9
ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJwogICAgIG1zZyArPSAnQ29ubmVjdGlvbjogVXBncmFk
ZVxyXG4nCi0gICAgbXNnICs9ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiAnICsgcmVxdWVzdC53
c19sb2NhdGlvbiArICdcclxuJwotICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1PcmlnaW46ICcg
KyByZXF1ZXN0LndzX29yaWdpbiArICdcclxuJworICAgIG1zZyArPSAnU2VjLVdlYlNvY2tldC1B
Y2NlcHQ6ICVzXHJcbicgJSBjb21wdXRlX2FjY2VwdChyZXF1ZXN0LmhlYWRlcnNfaW5bJ1NlYy1X
ZWJTb2NrZXQtS2V5J10pWzBdCiAgICAgbXNnICs9ICdcclxuJwotICAgIG1zZyArPSByZXF1ZXN0
LndzX2NoYWxsZW5nZV9tZDUKICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUobXNnKQogICAg
ICMgY29udGludWUgd3JpdGluZyBkYXRhIHVudGlsIHRoZSBjbGllbnQgZGlzY29ubmVjdHMKICAg
ICB3aGlsZSBUcnVlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2Nr
ZXQvdGVzdHMvaHliaS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFu
ZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2I2Mjc1NDBiMzJmM2Y0YWM3OTUwNWRlZjdmZTY2OWU3MzdmZWY1MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNo
YWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IEVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFu
ZHNoYWtlOiBTZWMtV2ViU29ja2V0LUFjY2VwdCBtaXNtYXRjaAorVGVzdCB3aGV0aGVyIFdlYlNv
Y2tldCBoYW5kc2hha2UgZmFpbHMgaWYgdGhlIHNlcnZlciBzZW5kcyBpbmNvcnJlY3QgU2VjLVdl
YlNvY2tldC1BY2NlcHQgaGVhZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BB
U1MgY2xvc2VFdmVudC53YXNDbGVhbiBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0
LWhlYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9oYW5kc2hha2UtZmFpbC1ieS13cm9uZy1hY2NlcHQtaGVhZGVyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjYyMzYwOGFiMzI1YmIwZjczY2I1ODMxN2ZmMjI5ZmIwMDQxZjk3YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtl
LWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlci5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9D
VFlQRSBIVE1MPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Qgd2hldGhl
ciBXZWJTb2NrZXQgaGFuZHNoYWtlIGZhaWxzIGlmIHRoZSBzZXJ2ZXIgc2VuZHMgaW5jb3JyZWN0
IFNlYy1XZWJTb2NrZXQtQWNjZXB0IGhlYWRlci4iKTsKKword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEhpeGllNzZXZWJTb2NrZXRQcm90
b2NvbEVuYWJsZWQiLCAwKTsKKwordmFyIHVybCA9ICJ3czovL2xvY2FsaG9zdDo4ODgwL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFjY2VwdC1oZWFkZXIiOwor
dmFyIHdzID0gbmV3IFdlYlNvY2tldCh1cmwpOwordmFyIGNsb3NlRXZlbnQ7CisKK3dzLm9ub3Bl
biA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0ZXN0RmFpbGVkKCJDb25uZWN0aW9uIGVzdGFibGlzaGVk
LiIpOworICAgIHdzLmNsb3NlKCk7Cit9OworCit3cy5vbmNsb3NlID0gZnVuY3Rpb24oZXZlbnQp
Cit7CisgICAgY2xvc2VFdmVudCA9IGV2ZW50OworICAgIHNob3VsZEJlRmFsc2UoImNsb3NlRXZl
bnQud2FzQ2xlYW4iKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK307CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vanMt
dGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5
YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRlcl93c2gucHkgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdy
b25nLWFjY2VwdC1oZWFkZXJfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YTAyOGJjMWZmM2Y2NjI5MzVh
ODRiYmM3YmM1NDkwZjY4MTIzMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LXdyb25nLWFjY2Vw
dC1oZWFkZXJfd3NoLnB5CkBAIC0wLDAgKzEsMTIgQEAKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBtZXNzYWdlID0gJ0hUVFAvMS4xIDEwMSBTd2l0Y2hp
bmcgUHJvdG9jb2xzXHJcbicKKyAgICBtZXNzYWdlICs9ICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxu
JworICAgIG1lc3NhZ2UgKz0gJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgIG1lc3NhZ2Ug
Kz0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBYWFhYdGhpc2lzd3JvbmdYWFhYXHJcbicKKyAgICBt
ZXNzYWdlICs9ICdcclxuJworICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShtZXNzYWdlKQor
ICAgIHJhaXNlIEV4Y2VwdGlvbignQWJvcnQgdGhlIGNvbm5lY3Rpb24nKSAjIFByZXZlbnRzIHB5
d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBtZXNzYWdlLgorCisKK2Rl
ZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcGFzcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9sb25nLWludmFs
aWQtaGVhZGVyX3dzaC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5YmkvbG9uZy1pbnZhbGlkLWhlYWRlcl93c2gucHkKaW5kZXggNGExNjlmM2RhMGE5NTllZDNm
NDg2ZDgxNzdlYzEzMDZmNThkNDYwZS4uMjZkNmFmOTk0NTBiNTdhNDU1MDhkZDY2Njk3MWQwNDgy
ZWY3ZjMxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9sb25nLWludmFsaWQtaGVhZGVyX3dzaC5weQorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2xvbmctaW52YWxpZC1oZWFkZXJfd3NoLnB5CkBA
IC0yLDcgKzIsNiBAQCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6
CiAgICAgbXNnID0gIkhUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJc
biIKICAgICBtc2cgKz0gKCJwIiAqIDEwMjQpICsgIlxyXG4iCiAgICAgbXNnICs9ICJcclxuIgot
ICAgIG1zZyArPSByZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUKICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdGUobXNnKQogICAgIHJhaXNlIEV4Y2VwdGlvbigiQWJvcnQgdGhlIGNvbm5lY3Rpb24i
KSAjIFByZXZlbnRzIHB5d2Vic29ja2V0IGZyb20gc2VuZGluZyBpdHMgb3duIGhhbmRzaGFrZSBt
ZXNzYWdlLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3dvcmtlcnMvcmVzb3VyY2VzL2VjaG8tY2hhbGxlbmdlX3dzaC5weSBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMv
ZWNoby1jaGFsbGVuZ2Vfd3NoLnB5CmluZGV4IDM5MGQ0NDE1MDljYTMwNDM0ZWFiZTNkYzQ1NDMw
NjE2ZjViMzNjYmYuLmFhMDRkMDQ2N2ZjNmRlZDE1MTIzNmU3YWExMjA5NTk0NDQ4N2MzMDEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29y
a2Vycy9yZXNvdXJjZXMvZWNoby1jaGFsbGVuZ2Vfd3NoLnB5CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvd29ya2Vycy9yZXNvdXJjZXMvZWNoby1jaGFs
bGVuZ2Vfd3NoLnB5CkBAIC02LDggKzYsNCBAQCBkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UocmVxdWVzdCk6CiAKIAogZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0
KToKLSAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCBfaGV4aWZ5KHJlcXVlc3Qud3Nf
Y2hhbGxlbmdlKSkKLQotCi1kZWYgX2hleGlmeShieXRlcyk6Ci0gICAgcmV0dXJuICc6Jy5qb2lu
KFsnJTAyWCcgJSBvcmQoYnl0ZSkgZm9yIGJ5dGUgaW4gYnl0ZXNdKQorICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsIHJlcXVlc3QuaGVhZGVyc19pblsnU2VjLVdlYlNvY2tldC1LZXkn
XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiYTRkOTkwNjZjYjQ3ODFlZTlmZWI1NjY0NjUyMTY4MDZjNDA0YzM5
Li5jMjZhNDczYTFhZGVjNDFmMTkyZjJmZjQxYjI2ODZmZmNhMTA3MDYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDcgQEAKKzIwMTEtMDctMTMgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBJbXBsZW1lbnQgaHliaSBoYW5kc2hha2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MzQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IFdl
YlNvY2tldCBoYW5kc2hha2Ugd2hpY2ggaXMgZGVzY3JpYmVkIGF0CisgICAgICAgIDxodHRwOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wt
MTAjc2VjdGlvbi01LjE+LgorCisgICAgICAgIE5vdGFibGUgZGlmZmVyZW5jZXMgZnJvbSBoaXhp
ZS03NiBwcm90b2NvbCBhcmU6CisgICAgICAgIC0gQ2hhbGxlbmdlLXJlc3BvbnNlIHNjaGVtZSBo
YXMgYmVlbiBjaGFuZ2VkIGRyYW1hdGljYWxseS4KKyAgICAgICAgLSBTZXJ2ZXJzIGRvIG5vdCBz
ZW5kIFNlYy1XZWJTb2NrZXQtTG9jYXRpb24gYW5kIFNlYy1XZWJTb2NrZXQtT3JpZ2luIGFueW1v
cmUuCisgICAgICAgIC0gVGhlIHZhbHVlIG9mICJVcGdyYWRlIiBoZWFkZXIgaGFzIGJlZW4gY2hh
bmdlZCB0byAid2Vic29ja2V0IiAobG93ZXItY2FzZSBvbmx5KS4KKyAgICAgICAgLSAiT3JpZ2lu
IiBoZWFkZXIgaW4gY2xpZW50J3MgcmVxdWVzdCBpcyByZW5hbWVkIHRvICJTZWMtV2ViU29ja2V0
LU9yaWdpbiIuCisKKyAgICAgICAgTmV3IHRlc3RzOiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2hhbmRzaGFrZS1mYWlsLWJ5LWV4dGVuc2lvbnMtaGVhZGVyLmh0bWwKKyAgICAgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2hhbmRzaGFrZS1mYWls
LWJ5LW5vLWFjY2VwdC1oZWFkZXIuaHRtbAorICAgICAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvaGFuZHNoYWtlLWZhaWwtYnktd3JvbmctYWNjZXB0LWhlYWRl
ci5odG1sCisKKyAgICAgICAgTm90ZTogVGVzdHMgdW5kZXIgaHliaS8gZGlyZWN0b3J5IChpbmNs
dWRpbmcgdGhlIG5ldyBvbmVzKSBhcmUgc2tpcHBlZCBhbmQgY2Fubm90IGJlIGVuYWJsZWQKKyAg
ICAgICAgeWV0LCBiZWNhdXNlIHB5d2Vic29ja2V0IGRvZXMgbm90IGFjY2VwdCByZXF1ZXN0cyBm
cm9tIGhhbGYtYmFrZWQgY2xpZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIChpLmUuIGh5Ymkg
aGFuZHNoYWtlICsgaGl4aWUtNzYgZnJhbWluZykuIFRoZXkgd2lsbCBiZSB1bnNraXBwZWQgd2hl
biBoeWJpIGZyYW1pbmcgaXMgbGFuZGVkCisgICAgICAgIGluIFdlYkNvcmUuCisKKyAgICAgICAg
KiB3ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIEZ1bmN0aW9ucyBh
bmQgbWVtYmVycyBvbmx5IHVzZWQgZm9yIGhpeGllLTc2IGhhbmRzaGFrZSBhcmUgcmVuYW1lZCBz
byB0aGF0IHRoZXkgYXJlIG5vdCBjb25mdXNlZAorICAgICAgICB3aXRoIGh5YmktMTAncyBvbmVz
LgorICAgICAgICAoV2ViQ29yZTo6Z2VuZXJhdGVIaXhpZTc2U2VjV2ViU29ja2V0S2V5KToKKyAg
ICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlSGl4aWU3NktleTMpOgorICAgICAgICAoV2ViQ29yZTo6
Z2VuZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk6CisgICAgICAgIChXZWJD
b3JlOjpnZW5lcmF0ZVNlY1dlYlNvY2tldEtleSk6CisgICAgICAgIEdlbmVyYXRlcyBhIHZhbHVl
IGZvciBTZWMtV2ViU29ja2V0LUtleSBhcyBzdGF0ZWQgaW4gaHliaS0xMC4KKyAgICAgICAgKFdl
YkNvcmU6OmdldEV4cGVjdGVkV2ViU29ja2V0QWNjZXB0KToKKyAgICAgICAgQ2FsY3VsYXRlcyB0
aGUgZXhwZWN0ZWQgdmFsdWUgb2YgU2VjLVdlYlNvY2tldC1BY2NlcHQuCisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OldlYlNvY2tldEhhbmRzaGFrZSk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFNlcnZlckhhbmRz
aGFrZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlcldlYlNv
Y2tldEFjY2VwdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZl
cldlYlNvY2tldEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNo
YWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycyk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2Nr
ZXRIYW5kc2hha2UuaDoKKwogMjAxMS0wNy0xMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkwODQy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CmluZGV4IDIxMGMzMGVlNmVmYWE4ZDVmNDk4MDUxNDdkNDgyODA4Y2IyN2FlMjAuLjZhMDY0OWY4
M2QxMjgyNWI2YTAxMTU1MTUzY2Y2MjlmMzRkYjQxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKIAog
I2luY2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgogCisjaW5jbHVkZSAiQmFzZTY0LmgiCiAj
aW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogI2luY2x1ZGUg
PHd0Zi9NRDUuaD4KKyNpbmNsdWRlIDx3dGYvU0hBMS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgpAQCAtMTA2LDcgKzEwOCw3IEBAIHN0YXRpYyB1aW50MzJfdCByYW5kb21OdW1iZXJM
ZXNzVGhhbih1aW50MzJfdCBuKQogICAgIHJldHVybiB2ICUgbjsKIH0KIAotc3RhdGljIHZvaWQg
Z2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkodWludDMyX3QmIG51bWJlciwgU3RyaW5nJiBrZXkpCitz
dGF0aWMgdm9pZCBnZW5lcmF0ZUhpeGllNzZTZWNXZWJTb2NrZXRLZXkodWludDMyX3QmIG51bWJl
ciwgU3RyaW5nJiBrZXkpCiB7CiAgICAgdWludDMyX3Qgc3BhY2UgPSByYW5kb21OdW1iZXJMZXNz
VGhhbigxMikgKyAxOwogICAgIHVpbnQzMl90IG1heCA9IDQyOTQ5NjcyOTVVIC8gc3BhY2U7CkBA
IC0xMzEsNyArMTMzLDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkodWlu
dDMyX3QmIG51bWJlciwgU3RyaW5nJiBrZXkpCiAgICAga2V5ID0gczsKIH0KIAotc3RhdGljIHZv
aWQgZ2VuZXJhdGVLZXkzKHVuc2lnbmVkIGNoYXIga2V5M1s4XSkKK3N0YXRpYyB2b2lkIGdlbmVy
YXRlSGl4aWU3NktleTModW5zaWduZWQgY2hhciBrZXkzWzhdKQogewogICAgIGNyeXB0b2dyYXBo
aWNhbGx5UmFuZG9tVmFsdWVzKGtleTMsIDgpOwogfQpAQCAtMTQ2LDcgKzE0OCw3IEBAIHN0YXRp
YyB2b2lkIHNldENoYWxsZW5nZU51bWJlcih1bnNpZ25lZCBjaGFyKiBidWYsIHVpbnQzMl90IG51
bWJlcikKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGdlbmVyYXRlRXhwZWN0ZWRDaGFsbGVuZ2VS
ZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyLCB1bnNpZ25lZCBjaGFy
IGtleTNbOF0sIHVuc2lnbmVkIGNoYXIgZXhwZWN0ZWRDaGFsbGVuZ2VbMTZdKQorc3RhdGljIHZv
aWQgZ2VuZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSh1aW50MzJfdCBudW1i
ZXIxLCB1aW50MzJfdCBudW1iZXIyLCB1bnNpZ25lZCBjaGFyIGtleTNbOF0sIHVuc2lnbmVkIGNo
YXIgZXhwZWN0ZWRDaGFsbGVuZ2VbMTZdKQogewogICAgIHVuc2lnbmVkIGNoYXIgY2hhbGxlbmdl
WzE2XTsKICAgICBzZXRDaGFsbGVuZ2VOdW1iZXIoJmNoYWxsZW5nZVswXSwgbnVtYmVyMSk7CkBA
IC0xNTksNiArMTYxLDI3IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlRXhwZWN0ZWRDaGFsbGVuZ2VS
ZXNwb25zZSh1aW50MzJfdCBudW1iZXIxLCB1aW50MzJfdCBudW1iZXIyCiAgICAgbWVtY3B5KGV4
cGVjdGVkQ2hhbGxlbmdlLCBkaWdlc3QuZGF0YSgpLCAxNik7CiB9CiAKK3N0YXRpYyBTdHJpbmcg
Z2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkoKQoreworICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgbm9u
Y2VTaXplID0gMTY7CisgICAgdW5zaWduZWQgY2hhciBrZXlbbm9uY2VTaXplXTsKKyAgICBjcnlw
dG9ncmFwaGljYWxseVJhbmRvbVZhbHVlcyhrZXksIG5vbmNlU2l6ZSk7CisgICAgcmV0dXJuIGJh
c2U2NEVuY29kZShyZWludGVycHJldF9jYXN0PGNoYXIqPihrZXkpLCBub25jZVNpemUpOworfQor
CitzdGF0aWMgU3RyaW5nIGdldEV4cGVjdGVkV2ViU29ja2V0QWNjZXB0KGNvbnN0IFN0cmluZyYg
c2VjV2ViU29ja2V0S2V5KQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB3ZWJTb2Nr
ZXRLZXlHVUlEID0gIjI1OEVBRkE1LUU5MTQtNDdEQS05NUNBLUM1QUIwREM4NUIxMSI7CisgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBzaGExSGFzaFNpemUgPSAyMDsgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIGRlZmluZWQgaW4gU0hBMS5oLgorICAgIFNIQTEgc2hhMTsKKyAgICBDU3RyaW5nIGtl
eURhdGEgPSBzZWNXZWJTb2NrZXRLZXkuYXNjaWkoKTsKKyAgICBzaGExLmFkZEJ5dGVzKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGtleURhdGEuZGF0YSgpKSwga2V5RGF0YS5sZW5n
dGgoKSk7CisgICAgc2hhMS5hZGRCeXRlcyhyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
Pih3ZWJTb2NrZXRLZXlHVUlEKSwgc3RybGVuKHdlYlNvY2tldEtleUdVSUQpKTsKKyAgICBWZWN0
b3I8dWludDhfdCwgc2hhMUhhc2hTaXplPiBoYXNoOworICAgIHNoYTEuY29tcHV0ZUhhc2goaGFz
aCk7CisgICAgcmV0dXJuIGJhc2U2NEVuY29kZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
PihoYXNoLmRhdGEoKSksIHNoYTFIYXNoU2l6ZSk7Cit9CisKIFdlYlNvY2tldEhhbmRzaGFrZTo6
V2ViU29ja2V0SGFuZHNoYWtlKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCB1c2VIaXhpZTc2UHJvdG9j
b2wpCiAgICAgOiBtX3VybCh1cmwpCiAgICAgLCBtX2NsaWVudFByb3RvY29sKHByb3RvY29sKQpA
QCAtMTY3LDEyICsxOTAsMTcgQEAgV2ViU29ja2V0SGFuZHNoYWtlOjpXZWJTb2NrZXRIYW5kc2hh
a2UoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLAogICAgICwgbV91c2VI
aXhpZTc2UHJvdG9jb2wodXNlSGl4aWU3NlByb3RvY29sKQogICAgICwgbV9tb2RlKEluY29tcGxl
dGUpCiB7Ci0gICAgdWludDMyX3QgbnVtYmVyMTsKLSAgICB1aW50MzJfdCBudW1iZXIyOwotICAg
IGdlbmVyYXRlU2VjV2ViU29ja2V0S2V5KG51bWJlcjEsIG1fc2VjV2ViU29ja2V0S2V5MSk7Ci0g
ICAgZ2VuZXJhdGVTZWNXZWJTb2NrZXRLZXkobnVtYmVyMiwgbV9zZWNXZWJTb2NrZXRLZXkyKTsK
LSAgICBnZW5lcmF0ZUtleTMobV9rZXkzKTsKLSAgICBnZW5lcmF0ZUV4cGVjdGVkQ2hhbGxlbmdl
UmVzcG9uc2UobnVtYmVyMSwgbnVtYmVyMiwgbV9rZXkzLCBtX2V4cGVjdGVkQ2hhbGxlbmdlUmVz
cG9uc2UpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgeworICAgICAgICB1aW50MzJf
dCBudW1iZXIxOworICAgICAgICB1aW50MzJfdCBudW1iZXIyOworICAgICAgICBnZW5lcmF0ZUhp
eGllNzZTZWNXZWJTb2NrZXRLZXkobnVtYmVyMSwgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5MSk7
CisgICAgICAgIGdlbmVyYXRlSGl4aWU3NlNlY1dlYlNvY2tldEtleShudW1iZXIyLCBtX2hpeGll
NzZTZWNXZWJTb2NrZXRLZXkyKTsKKyAgICAgICAgZ2VuZXJhdGVIaXhpZTc2S2V5MyhtX2hpeGll
NzZLZXkzKTsKKyAgICAgICAgZ2VuZXJhdGVIaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25z
ZShudW1iZXIxLCBudW1iZXIyLCBtX2hpeGllNzZLZXkzLCBtX2hpeGllNzZFeHBlY3RlZENoYWxs
ZW5nZVJlc3BvbnNlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3NlY1dlYlNvY2tldEtleSA9
IGdlbmVyYXRlU2VjV2ViU29ja2V0S2V5KCk7CisgICAgICAgIG1fZXhwZWN0ZWRBY2NlcHQgPSBn
ZXRFeHBlY3RlZFdlYlNvY2tldEFjY2VwdChtX3NlY1dlYlNvY2tldEtleSk7CisgICAgfQogfQog
CiBXZWJTb2NrZXRIYW5kc2hha2U6On5XZWJTb2NrZXRIYW5kc2hha2UoKQpAQCAtMjM0LDEwICsy
NjIsMTYgQEAgQ1N0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6OmNsaWVudEhhbmRzaGFrZU1lc3Nh
Z2UoKSBjb25zdAogICAgIGJ1aWxkZXIuYXBwZW5kKCIgSFRUUC8xLjFcclxuIik7CiAKICAgICBW
ZWN0b3I8U3RyaW5nPiBmaWVsZHM7Ci0gICAgZmllbGRzLmFwcGVuZCgiVXBncmFkZTogV2ViU29j
a2V0Iik7CisgICAgaWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQorICAgICAgICBmaWVsZHMuYXBw
ZW5kKCJVcGdyYWRlOiBXZWJTb2NrZXQiKTsKKyAgICBlbHNlCisgICAgICAgIGZpZWxkcy5hcHBl
bmQoIlVwZ3JhZGU6IHdlYnNvY2tldCIpOwogICAgIGZpZWxkcy5hcHBlbmQoIkNvbm5lY3Rpb246
IFVwZ3JhZGUiKTsKICAgICBmaWVsZHMuYXBwZW5kKCJIb3N0OiAiICsgaG9zdE5hbWUobV91cmws
IG1fc2VjdXJlKSk7Ci0gICAgZmllbGRzLmFwcGVuZCgiT3JpZ2luOiAiICsgY2xpZW50T3JpZ2lu
KCkpOworICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkKKyAgICAgICAgZmllbGRzLmFwcGVu
ZCgiT3JpZ2luOiAiICsgY2xpZW50T3JpZ2luKCkpOworICAgIGVsc2UKKyAgICAgICAgZmllbGRz
LmFwcGVuZCgiU2VjLVdlYlNvY2tldC1PcmlnaW46ICIgKyBjbGllbnRPcmlnaW4oKSk7CiAgICAg
aWYgKCFtX2NsaWVudFByb3RvY29sLmlzRW1wdHkoKSkKICAgICAgICAgZmllbGRzLmFwcGVuZCgi
U2VjLVdlYlNvY2tldC1Qcm90b2NvbDogIiArIG1fY2xpZW50UHJvdG9jb2wpOwogCkBAIC0yNTAs
OCArMjg0LDE2IEBAIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VN
ZXNzYWdlKCkgY29uc3QKICAgICAgICAgLy8gU2V0ICJDb29raWUyOiA8Y29va2llPiIgaWYgY29v
a2llcyAyIGV4aXN0cyBmb3IgdXJsPwogICAgIH0KIAotICAgIGZpZWxkcy5hcHBlbmQoIlNlYy1X
ZWJTb2NrZXQtS2V5MTogIiArIG1fc2VjV2ViU29ja2V0S2V5MSk7Ci0gICAgZmllbGRzLmFwcGVu
ZCgiU2VjLVdlYlNvY2tldC1LZXkyOiAiICsgbV9zZWNXZWJTb2NrZXRLZXkyKTsKKyAgICBpZiAo
bV91c2VIaXhpZTc2UHJvdG9jb2wpIHsKKyAgICAgICAgZmllbGRzLmFwcGVuZCgiU2VjLVdlYlNv
Y2tldC1LZXkxOiAiICsgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5MSk7CisgICAgICAgIGZpZWxk
cy5hcHBlbmQoIlNlYy1XZWJTb2NrZXQtS2V5MjogIiArIG1faGl4aWU3NlNlY1dlYlNvY2tldEtl
eTIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZpZWxkcy5hcHBlbmQoIlNlYy1XZWJTb2NrZXQt
S2V5OiAiICsgbV9zZWNXZWJTb2NrZXRLZXkpOworICAgICAgICAvLyBGSVhNRTogQ3VycmVudCB2
ZXJzaW9uIG9mIHB5d2Vic29ja2V0IG9ubHkgYWNjZXB0cyB2ZXJzaW9uIHZhbHVlIG9mIDcsCisg
ICAgICAgIC8vIHdoaWxlIGh5YmktMTAgcmVxdWlyZXMgdGhpcyB2YWx1ZSB0byBiZSA4LiBTaG91
bGQgYmUgZml4ZWQgd2hlbgorICAgICAgICAvLyBhIG5ldyB2ZXJzaW9uIG9mIHB5d2Vic29ja2V0
IGlzIHJlbGVhc2VkLgorICAgICAgICBmaWVsZHMuYXBwZW5kKCJTZWMtV2ViU29ja2V0LVZlcnNp
b246IDciKTsKKyAgICB9CiAKICAgICAvLyBGaWVsZHMgaW4gdGhlIGhhbmRzaGFrZSBhcmUgc2Vu
dCBieSB0aGUgY2xpZW50IGluIGEgcmFuZG9tIG9yZGVyOyB0aGUKICAgICAvLyBvcmRlciBpcyBu
b3QgbWVhbmluZ2Z1bC4gIFRodXMsIGl0J3Mgb2sgdG8gc2VuZCB0aGUgb3JkZXIgd2UgY29uc3Ry
dWN0ZWQKQEAgLTI2NSwxMCArMzA3LDE0IEBAIENTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpj
bGllbnRIYW5kc2hha2VNZXNzYWdlKCkgY29uc3QKICAgICBidWlsZGVyLmFwcGVuZCgiXHJcbiIp
OwogCiAgICAgQ1N0cmluZyBoYW5kc2hha2VIZWFkZXIgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpOworICAgIC8vIEh5YmktMTAgaGFuZHNoYWtlIGlzIGNvbXBsZXRlIGF0IHRoaXMgcG9pbnQu
CisgICAgaWYgKCFtX3VzZUhpeGllNzZQcm90b2NvbCkKKyAgICAgICAgcmV0dXJuIGhhbmRzaGFr
ZUhlYWRlcjsKKyAgICAvLyBIaXhpZS03NiBwcm90b2NvbCByZXF1aXJlcyBzZW5kaW5nIGVpZ2h0
LWJ5dGUgZGF0YSAoc28tY2FsbGVkICJrZXkzIikgYWZ0ZXIgdGhlIHJlcXVlc3QgaGVhZGVyIGZp
ZWxkcy4KICAgICBjaGFyKiBjaGFyYWN0ZXJCdWZmZXIgPSAwOwotICAgIENTdHJpbmcgbXNnID0g
Q1N0cmluZzo6bmV3VW5pbml0aWFsaXplZChoYW5kc2hha2VIZWFkZXIubGVuZ3RoKCkgKyBzaXpl
b2YobV9rZXkzKSwgY2hhcmFjdGVyQnVmZmVyKTsKKyAgICBDU3RyaW5nIG1zZyA9IENTdHJpbmc6
Om5ld1VuaW5pdGlhbGl6ZWQoaGFuZHNoYWtlSGVhZGVyLmxlbmd0aCgpICsgc2l6ZW9mKG1faGl4
aWU3NktleTMpLCBjaGFyYWN0ZXJCdWZmZXIpOwogICAgIG1lbWNweShjaGFyYWN0ZXJCdWZmZXIs
IGhhbmRzaGFrZUhlYWRlci5kYXRhKCksIGhhbmRzaGFrZUhlYWRlci5sZW5ndGgoKSk7Ci0gICAg
bWVtY3B5KGNoYXJhY3RlckJ1ZmZlciArIGhhbmRzaGFrZUhlYWRlci5sZW5ndGgoKSwgbV9rZXkz
LCBzaXplb2YobV9rZXkzKSk7CisgICAgbWVtY3B5KGNoYXJhY3RlckJ1ZmZlciArIGhhbmRzaGFr
ZUhlYWRlci5sZW5ndGgoKSwgbV9oaXhpZTc2S2V5Mywgc2l6ZW9mKG1faGl4aWU3NktleTMpKTsK
ICAgICByZXR1cm4gbXNnOwogfQogCkBAIC0yNzgsMTAgKzMyNCwxNiBAQCBXZWJTb2NrZXRIYW5k
c2hha2VSZXF1ZXN0IFdlYlNvY2tldEhhbmRzaGFrZTo6Y2xpZW50SGFuZHNoYWtlUmVxdWVzdCgp
IGNvbnN0CiAgICAgLy8gRklYTUU6IGRvIHdlIG5lZWQgdG8gc3RvcmUgbV9zZWNXZWJTb2NrZXRL
ZXkxLCBtX3NlY1dlYlNvY2tldEtleTIgYW5kCiAgICAgLy8gbV9rZXkzIGluIFdlYlNvY2tldEhh
bmRzaGFrZVJlcXVlc3Q/CiAgICAgV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCByZXF1ZXN0KCJH
RVQiLCBtX3VybCk7Ci0gICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiVXBncmFkZSIsICJXZWJT
b2NrZXQiKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCisgICAgICAgIHJlcXVlc3Qu
YWRkSGVhZGVyRmllbGQoIlVwZ3JhZGUiLCAiV2ViU29ja2V0Iik7CisgICAgZWxzZQorICAgICAg
ICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJVcGdyYWRlIiwgIndlYnNvY2tldCIpOwogICAgIHJl
cXVlc3QuYWRkSGVhZGVyRmllbGQoIkNvbm5lY3Rpb24iLCAiVXBncmFkZSIpOwogICAgIHJlcXVl
c3QuYWRkSGVhZGVyRmllbGQoIkhvc3QiLCBob3N0TmFtZShtX3VybCwgbV9zZWN1cmUpKTsKLSAg
ICByZXF1ZXN0LmFkZEhlYWRlckZpZWxkKCJPcmlnaW4iLCBjbGllbnRPcmlnaW4oKSk7CisgICAg
aWYgKG1fdXNlSGl4aWU3NlByb3RvY29sKQorICAgICAgICByZXF1ZXN0LmFkZEhlYWRlckZpZWxk
KCJPcmlnaW4iLCBjbGllbnRPcmlnaW4oKSk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0LmFk
ZEhlYWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LU9yaWdpbiIsIGNsaWVudE9yaWdpbigpKTsKICAg
ICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgpKQogICAgICAgICByZXF1ZXN0LmFkZEhl
YWRlckZpZWxkKCJTZWMtV2ViU29ja2V0LVByb3RvY29sOiIsIG1fY2xpZW50UHJvdG9jb2wpOwog
CkBAIC0yOTQsOSArMzQ2LDE0IEBAIFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QgV2ViU29ja2V0
SGFuZHNoYWtlOjpjbGllbnRIYW5kc2hha2VSZXF1ZXN0KCkgY29uc3QKICAgICAgICAgLy8gU2V0
ICJDb29raWUyOiA8Y29va2llPiIgaWYgY29va2llcyAyIGV4aXN0cyBmb3IgdXJsPwogICAgIH0K
IAotICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtS2V5MSIsIG1fc2Vj
V2ViU29ja2V0S2V5MSk7Ci0gICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tl
dC1LZXkyIiwgbV9zZWNXZWJTb2NrZXRLZXkyKTsKLSAgICByZXF1ZXN0LnNldEtleTMobV9rZXkz
KTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpIHsKKyAgICAgICAgcmVxdWVzdC5hZGRI
ZWFkZXJGaWVsZCgiU2VjLVdlYlNvY2tldC1LZXkxIiwgbV9oaXhpZTc2U2VjV2ViU29ja2V0S2V5
MSk7CisgICAgICAgIHJlcXVlc3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtS2V5MiIs
IG1faGl4aWU3NlNlY1dlYlNvY2tldEtleTIpOworICAgICAgICByZXF1ZXN0LnNldEtleTMobV9o
aXhpZTc2S2V5Myk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVxdWVzdC5hZGRIZWFkZXJGaWVs
ZCgiU2VjLVdlYlNvY2tldC1LZXkiLCBtX3NlY1dlYlNvY2tldEtleSk7CisgICAgICAgIHJlcXVl
c3QuYWRkSGVhZGVyRmllbGQoIlNlYy1XZWJTb2NrZXQtVmVyc2lvbiIsICI3Iik7IC8vIEZJWE1F
OiBTZWUgRklYTUUgaW4gY2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpLgorICAgIH0KIAogICAgIHJl
dHVybiByZXF1ZXN0OwogfQpAQCAtMzQ4LDE4ICs0MDUsMjcgQEAgaW50IFdlYlNvY2tldEhhbmRz
aGFrZTo6cmVhZFNlcnZlckhhbmRzaGFrZShjb25zdCBjaGFyKiBoZWFkZXIsIHNpemVfdCBsZW4p
CiAgICAgICAgIG1fbW9kZSA9IEZhaWxlZDsKICAgICAgICAgcmV0dXJuIHAgLSBoZWFkZXI7CiAg
ICAgfQotICAgIGlmIChsZW4gPCBzdGF0aWNfY2FzdDxzaXplX3Q+KHAgLSBoZWFkZXIgKyBzaXpl
b2YobV9leHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKSkpIHsKKworICAgIGlmICghbV91c2VIaXhp
ZTc2UHJvdG9jb2wpIHsgLy8gSHliaS0xMCBoYW5kc2hha2UgaXMgY29tcGxldGUgYXQgdGhpcyBw
b2ludC4KKyAgICAgICAgbV9tb2RlID0gQ29ubmVjdGVkOworICAgICAgICByZXR1cm4gcCAtIGhl
YWRlcjsKKyAgICB9CisKKyAgICAvLyBJbiBoaXhpZS03NiBwcm90b2NvbCwgc2VydmVyJ3MgaGFu
ZHNoYWtlIGNvbnRhaW5zIHNpeHRlZW4tYnl0ZSBkYXRhIChjYWxsZWQgImNoYWxsZW5nZSByZXNw
b25zZSIpCisgICAgLy8gYWZ0ZXIgdGhlIGhlYWRlciBmaWVsZHMuCisgICAgaWYgKGxlbiA8IHN0
YXRpY19jYXN0PHNpemVfdD4ocCAtIGhlYWRlciArIHNpemVvZihtX2hpeGllNzZFeHBlY3RlZENo
YWxsZW5nZVJlc3BvbnNlKSkpIHsKICAgICAgICAgLy8gSnVzdCBoYXNuJ3QgYmVlbiByZWNlaXZl
ZCAvZXhwZWN0ZWQvIHlldC4KICAgICAgICAgbV9tb2RlID0gSW5jb21wbGV0ZTsKICAgICAgICAg
cmV0dXJuIC0xOwogICAgIH0KKwogICAgIG1fcmVzcG9uc2Uuc2V0Q2hhbGxlbmdlUmVzcG9uc2Uo
c3RhdGljX2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KHN0YXRpY19jYXN0PGNvbnN0IHZvaWQq
PihwKSkpOwotICAgIGlmIChtZW1jbXAocCwgbV9leHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlLCBz
aXplb2YobV9leHBlY3RlZENoYWxsZW5nZVJlc3BvbnNlKSkpIHsKKyAgICBpZiAobWVtY21wKHAs
IG1faGl4aWU3NkV4cGVjdGVkQ2hhbGxlbmdlUmVzcG9uc2UsIHNpemVvZihtX2hpeGllNzZFeHBl
Y3RlZENoYWxsZW5nZVJlc3BvbnNlKSkpIHsKICAgICAgICAgbV9tb2RlID0gRmFpbGVkOwotICAg
ICAgICByZXR1cm4gKHAgLSBoZWFkZXIpICsgc2l6ZW9mKG1fZXhwZWN0ZWRDaGFsbGVuZ2VSZXNw
b25zZSk7CisgICAgICAgIHJldHVybiAocCAtIGhlYWRlcikgKyBzaXplb2YobV9oaXhpZTc2RXhw
ZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZSk7CiAgICAgfQogICAgIG1fbW9kZSA9IENvbm5lY3RlZDsK
LSAgICByZXR1cm4gKHAgLSBoZWFkZXIpICsgc2l6ZW9mKG1fZXhwZWN0ZWRDaGFsbGVuZ2VSZXNw
b25zZSk7CisgICAgcmV0dXJuIChwIC0gaGVhZGVyKSArIHNpemVvZihtX2hpeGllNzZFeHBlY3Rl
ZENoYWxsZW5nZVJlc3BvbnNlKTsKIH0KIAogV2ViU29ja2V0SGFuZHNoYWtlOjpNb2RlIFdlYlNv
Y2tldEhhbmRzaGFrZTo6bW9kZSgpIGNvbnN0CkBAIC00MDcsNiArNDczLDE2IEBAIFN0cmluZyBX
ZWJTb2NrZXRIYW5kc2hha2U6OnNlcnZlckNvbm5lY3Rpb24oKSBjb25zdAogICAgIHJldHVybiBt
X3Jlc3BvbnNlLmhlYWRlckZpZWxkcygpLmdldCgiY29ubmVjdGlvbiIpOwogfQogCitTdHJpbmcg
V2ViU29ja2V0SGFuZHNoYWtlOjpzZXJ2ZXJXZWJTb2NrZXRBY2NlcHQoKSBjb25zdAoreworICAg
IHJldHVybiBtX3Jlc3BvbnNlLmhlYWRlckZpZWxkcygpLmdldCgic2VjLXdlYnNvY2tldC1hY2Nl
cHQiKTsKK30KKworU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6c2VydmVyV2ViU29ja2V0RXh0
ZW5zaW9ucygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzcG9uc2UuaGVhZGVyRmllbGRzKCku
Z2V0KCJzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMiKTsKK30KKwogY29uc3QgV2ViU29ja2V0SGFu
ZHNoYWtlUmVzcG9uc2UmIFdlYlNvY2tldEhhbmRzaGFrZTo6c2VydmVySGFuZHNoYWtlUmVzcG9u
c2UoKSBjb25zdAogewogICAgIHJldHVybiBtX3Jlc3BvbnNlOwpAQCAtNTcxLDYgKzY0Nyw4IEBA
IGJvb2wgV2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycygpCiAgICAgY29u
c3QgU3RyaW5nJiBzZXJ2ZXJXZWJTb2NrZXRQcm90b2NvbCA9IHRoaXMtPnNlcnZlcldlYlNvY2tl
dFByb3RvY29sKCk7CiAgICAgY29uc3QgU3RyaW5nJiBzZXJ2ZXJVcGdyYWRlID0gdGhpcy0+c2Vy
dmVyVXBncmFkZSgpOwogICAgIGNvbnN0IFN0cmluZyYgc2VydmVyQ29ubmVjdGlvbiA9IHRoaXMt
PnNlcnZlckNvbm5lY3Rpb24oKTsKKyAgICBjb25zdCBTdHJpbmcmIHNlcnZlcldlYlNvY2tldEFj
Y2VwdCA9IHRoaXMtPnNlcnZlcldlYlNvY2tldEFjY2VwdCgpOworICAgIGNvbnN0IFN0cmluZyYg
c2VydmVyV2ViU29ja2V0RXh0ZW5zaW9ucyA9IHRoaXMtPnNlcnZlcldlYlNvY2tldEV4dGVuc2lv
bnMoKTsKIAogICAgIGlmIChzZXJ2ZXJVcGdyYWRlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1fZmFp
bHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1VwZ3JhZGUn
IGhlYWRlciBpcyBtaXNzaW5nIjsKQEAgLTU4MCwxMyArNjU4LDIwIEBAIGJvb2wgV2ViU29ja2V0
SGFuZHNoYWtlOjpjaGVja1Jlc3BvbnNlSGVhZGVycygpCiAgICAgICAgIG1fZmFpbHVyZVJlYXNv
biA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ0Nvbm5lY3Rpb24nIGhlYWRl
ciBpcyBtaXNzaW5nIjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBpZiAoc2Vy
dmVyV2ViU29ja2V0T3JpZ2luLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9
ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1XZWJTb2NrZXQtT3JpZ2lu
JyBoZWFkZXIgaXMgbWlzc2luZyI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAg
aWYgKHNlcnZlcldlYlNvY2tldExvY2F0aW9uLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fZmFpbHVy
ZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1XZWJTb2Nr
ZXQtTG9jYXRpb24nIGhlYWRlciBpcyBtaXNzaW5nIjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChtX3VzZUhpeGllNzZQcm90b2NvbCkgeworICAgICAgICBpZiAoc2VydmVyV2ViU29j
a2V0T3JpZ2luLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJy
b3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6ICdTZWMtV2ViU29ja2V0LU9yaWdpbicgaGVh
ZGVyIGlzIG1pc3NpbmciOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9Cisg
ICAgICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbi5pc051bGwoKSkgeworICAgICAgICAg
ICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAn
U2VjLVdlYlNvY2tldC1Mb2NhdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNlcnZl
cldlYlNvY2tldEFjY2VwdC5pc051bGwoKSkgeworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29u
ID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnU2VjLVdlYlNvY2tldC1BY2Nl
cHQnIGhlYWRlciBpcyBtaXNzaW5nIjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2Uoc2VydmVyVXBncmFkZSwg
IndlYnNvY2tldCIpKSB7CkBAIC01OTgsMTcgKzY4MywzMSBAQCBib29sIFdlYlNvY2tldEhhbmRz
aGFrZTo6Y2hlY2tSZXNwb25zZUhlYWRlcnMoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgaWYgKGNsaWVudE9yaWdpbigpICE9IHNlcnZlcldlYlNvY2tldE9yaWdpbikgewot
ICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hh
a2U6IG9yaWdpbiBtaXNtYXRjaDogIiArIGNsaWVudE9yaWdpbigpICsgIiAhPSAiICsgc2VydmVy
V2ViU29ja2V0T3JpZ2luOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIGlmIChj
bGllbnRMb2NhdGlvbigpICE9IHNlcnZlcldlYlNvY2tldExvY2F0aW9uKSB7Ci0gICAgICAgIG1f
ZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogbG9jYXRp
b24gbWlzbWF0Y2g6ICIgKyBjbGllbnRMb2NhdGlvbigpICsgIiAhPSAiICsgc2VydmVyV2ViU29j
a2V0TG9jYXRpb247Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKCFtX2Ns
aWVudFByb3RvY29sLmlzRW1wdHkoKSAmJiBtX2NsaWVudFByb3RvY29sICE9IHNlcnZlcldlYlNv
Y2tldFByb3RvY29sKSB7Ci0gICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcg
V2ViU29ja2V0IGhhbmRzaGFrZTogcHJvdG9jb2wgbWlzbWF0Y2g6ICIgKyBtX2NsaWVudFByb3Rv
Y29sICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0UHJvdG9jb2w7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpIHsKKyAgICAgICAgaWYgKGNsaWVu
dE9yaWdpbigpICE9IHNlcnZlcldlYlNvY2tldE9yaWdpbikgeworICAgICAgICAgICAgbV9mYWls
dXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBvcmlnaW4gbWlz
bWF0Y2g6ICIgKyBjbGllbnRPcmlnaW4oKSArICIgIT0gIiArIHNlcnZlcldlYlNvY2tldE9yaWdp
bjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2xp
ZW50TG9jYXRpb24oKSAhPSBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbikgeworICAgICAgICAgICAg
bV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBsb2Nh
dGlvbiBtaXNtYXRjaDogIiArIGNsaWVudExvY2F0aW9uKCkgKyAiICE9ICIgKyBzZXJ2ZXJXZWJT
b2NrZXRMb2NhdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoIW1fY2xpZW50UHJvdG9jb2wuaXNFbXB0eSgpICYmIG1fY2xpZW50UHJvdG9jb2wg
IT0gc2VydmVyV2ViU29ja2V0UHJvdG9jb2wpIHsKKyAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNv
biA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogcHJvdG9jb2wgbWlzbWF0Y2g6
ICIgKyBtX2NsaWVudFByb3RvY29sICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0UHJvdG9jb2w7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAg
ICAgICBpZiAoc2VydmVyV2ViU29ja2V0QWNjZXB0ICE9IG1fZXhwZWN0ZWRBY2NlcHQpIHsKKyAg
ICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRz
aGFrZTogU2VjLVdlYlNvY2tldC1BY2NlcHQgbWlzbWF0Y2giOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICghc2VydmVyV2ViU29ja2V0RXh0ZW5zaW9u
cy5pc051bGwoKSkgeworICAgICAgICAgICAgLy8gV2ViU29ja2V0IHByb3RvY29sIGV4dGVuc2lv
bnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LgorICAgICAgICAgICAgLy8gV2UgZG8gbm90IHNlbmQg
U2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciBpbiBvdXIgcmVxdWVzdCwgdGh1cworICAg
ICAgICAgICAgLy8gc2VydmVycyBzaG91bGQgbm90IHJldHVybiB0aGlzIGhlYWRlciwgZWl0aGVy
LgorICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGludmFsaWQiOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmgKaW5kZXggMzgwOGU2MTFmNjA2MDgyNzJhY2EyYmE1NTg5ODkyM2FiODI1NDA2Mi4uMGNjZTVh
ZmJlZGIyMzZhNDkxMmYzMGIzZmI4MTViYmEzMjcxNDAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTczLDEzICs3MywxNSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE1vZGUgbW9kZSgpIGNvbnN0OwogICAgICAgICBTdHJp
bmcgZmFpbHVyZVJlYXNvbigpIGNvbnN0OyAvLyBSZXR1cm5zIGEgc3RyaW5nIGluZGljYXRpbmcg
dGhlIHJlYXNvbiBvZiBmYWlsdXJlIGlmIG1vZGUoKSA9PSBGYWlsZWQuCiAKLSAgICAgICAgU3Ry
aW5nIHNlcnZlcldlYlNvY2tldE9yaWdpbigpIGNvbnN0OwotICAgICAgICBTdHJpbmcgc2VydmVy
V2ViU29ja2V0TG9jYXRpb24oKSBjb25zdDsKKyAgICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tl
dE9yaWdpbigpIGNvbnN0OyAvLyBPbmx5IGZvciBoaXhpZS03NiBoYW5kc2hha2UuCisgICAgICAg
IFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRMb2NhdGlvbigpIGNvbnN0OyAvLyBPbmx5IGZvciBoaXhp
ZS03NiBoYW5kc2hha2UuCiAgICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRQcm90b2NvbCgp
IGNvbnN0OwogICAgICAgICBTdHJpbmcgc2VydmVyU2V0Q29va2llKCkgY29uc3Q7CiAgICAgICAg
IFN0cmluZyBzZXJ2ZXJTZXRDb29raWUyKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBzZXJ2ZXJV
cGdyYWRlKCkgY29uc3Q7CiAgICAgICAgIFN0cmluZyBzZXJ2ZXJDb25uZWN0aW9uKCkgY29uc3Q7
CisgICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRBY2NlcHQoKSBjb25zdDsgLy8gT25seSBm
b3IgaHliaS0xMCBoYW5kc2hha2UuCisgICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRFeHRl
bnNpb25zKCkgY29uc3Q7IC8vIE9ubHkgZm9yIGh5YmktMTAgaGFuZHNoYWtlLgogCiAgICAgICAg
IGNvbnN0IFdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlJiBzZXJ2ZXJIYW5kc2hha2VSZXNwb25z
ZSgpIGNvbnN0OwogCkBAIC0xMDEsMTQgKzEwMywxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgTW9kZSBtX21vZGU7CiAKLSAgICAgICAgU3RyaW5nIG1fc2VjV2ViU29ja2V0S2V5
MTsKLSAgICAgICAgU3RyaW5nIG1fc2VjV2ViU29ja2V0S2V5MjsKLSAgICAgICAgdW5zaWduZWQg
Y2hhciBtX2tleTNbOF07Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgbV9leHBlY3RlZENoYWxsZW5n
ZVJlc3BvbnNlWzE2XTsKLQogICAgICAgICBXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSBtX3Jl
c3BvbnNlOwogCiAgICAgICAgIFN0cmluZyBtX2ZhaWx1cmVSZWFzb247CisKKyAgICAgICAgLy8g
Rm9yIGhpeGllLTc2IGhhbmRzaGFrZS4KKyAgICAgICAgU3RyaW5nIG1faGl4aWU3NlNlY1dlYlNv
Y2tldEtleTE7CisgICAgICAgIFN0cmluZyBtX2hpeGllNzZTZWNXZWJTb2NrZXRLZXkyOworICAg
ICAgICB1bnNpZ25lZCBjaGFyIG1faGl4aWU3NktleTNbOF07CisgICAgICAgIHVuc2lnbmVkIGNo
YXIgbV9oaXhpZTc2RXhwZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZVsxNl07CisKKyAgICAgICAgLy8g
Rm9yIGh5YmktMTAgaGFuZHNoYWtlLgorICAgICAgICBTdHJpbmcgbV9zZWNXZWJTb2NrZXRLZXk7
CisgICAgICAgIFN0cmluZyBtX2V4cGVjdGVkQWNjZXB0OwogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>