<?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>159969</bug_id>
          
          <creation_ts>2016-07-20 04:32:14 -0700</creation_ts>
          <short_desc>[ES7] Introduce exponentiation expression</short_desc>
          <delta_ts>2016-07-24 08:54:49 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1212704</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-20 04:32:14 -0700</bug_when>
    <thetext>[ES7] Introduce exponentiation expression (**)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212752</commentid>
    <comment_count>1</comment_count>
      <attachid>284109</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-20 09:07:04 -0700</bug_when>
    <thetext>Created attachment 284109
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212773</commentid>
    <comment_count>2</comment_count>
      <attachid>284115</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-20 09:57:00 -0700</bug_when>
    <thetext>Created attachment 284115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212775</commentid>
    <comment_count>3</comment_count>
      <attachid>284116</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-20 09:58:36 -0700</bug_when>
    <thetext>Created attachment 284116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212782</commentid>
    <comment_count>4</comment_count>
      <attachid>284119</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-20 10:13:32 -0700</bug_when>
    <thetext>Created attachment 284119
Patch

Drop unnecessary UNLIKELY and update the performance in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212793</commentid>
    <comment_count>5</comment_count>
      <attachid>284122</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-20 10:26:16 -0700</bug_when>
    <thetext>Created attachment 284122
Patch

Fix ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212844</commentid>
    <comment_count>6</comment_count>
      <attachid>284122</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-20 12:30:05 -0700</bug_when>
    <thetext>Comment on attachment 284122
Patch

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

r=me with comments

&gt; Source/JavaScriptCore/ChangeLog:28
&gt; +            It means that `+x ** y` becomes a syntax error. This is intentional. Without a small font in a JS script,

did you mean to say &quot;font&quot; here?

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3825
&gt; +            set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(ArithPow, op1, op2));

What happens now if we use have objects for arguments to ArithPow?
Will we just repeatedly OSR exit? Can we fix that if it&apos;s the case? Maybe in a follow-up patch?

&gt; Source/JavaScriptCore/parser/Parser.cpp:3274
&gt; +        failIfTrue(match(POW) &amp;&amp; isUnaryOpExcludingUpdateOp(leadingTokenTypeForUnaryExpression), &quot;Expected a update expression on the left hand side of an exponentiation expression&quot;);

I don&apos;t think this error message is helpful.
Maybe we can say something about precedence and that the user should explicitly place parens to emphasize precedence.

&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:184
&gt; +test6(-37.676522764377296, -1.0, -0.026541727490454296, -0.026541727490454296);

I think this should be test7

&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:210
&gt; +test7(-37.676522764377296, 2.0, 1419.5203676146407, 1419.5203676146407);

I think this should be test8

&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:235
&gt; +test8(37.676522764377296, 2.0, 1419.5203676146407, 1419.5203676146407);

I think this should be test9

&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:261
&gt; +test9(-37.676522764377296, 3.0, -53482.591444930236, -53482.591444930236);

I think this should be test10

&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:286
&gt; +test10(37.676522764377296, 3.0, 53482.591444930236, 53482.591444930236);

I think this should be test11

&gt; Source/JavaScriptCore/tests/stress/pow-coherency.js:1
&gt; +//@ skip

why?

&gt; Source/JavaScriptCore/tests/stress/pow-nan-behaviors.js:1
&gt; +// If y is NaN, the result is NaN.

It&apos;s worth saying in a comment you&apos;re talking about &quot;x ** y&quot;

&gt; Source/JavaScriptCore/tests/stress/pow-nan-behaviors.js:75
&gt; +// If y is â0, the result is 1, even if x is NaN.

Weird characters. Maybe not intended?

&gt; Source/JavaScriptCore/tests/stress/pow-nan-behaviors.js:144
&gt; +// If abs(x) is 1 and y is +â, the result is NaN.
&gt; +// If abs(x) is 1 and y is ââ, the result is NaN.

Maybe it&apos;s wroth writing &quot;Inf&quot; instead of what I presume is an infinity unicode character</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213070</commentid>
    <comment_count>7</comment_count>
      <attachid>284122</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-21 00:13:57 -0700</bug_when>
    <thetext>Comment on attachment 284122
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/ChangeLog:28
&gt;&gt; +            It means that `+x ** y` becomes a syntax error. This is intentional. Without a small font in a JS script,
&gt; 
&gt; did you mean to say &quot;font&quot; here?

Ah, I mean that -x**y
                    ^
                    if we can write this as superscript &lt;- small font

Fixed the description.

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:3825
&gt;&gt; +            set(VirtualRegister(currentInstruction[1].u.operand), addToGraph(ArithPow, op1, op2));
&gt; 
&gt; What happens now if we use have objects for arguments to ArithPow?
&gt; Will we just repeatedly OSR exit? Can we fix that if it&apos;s the case? Maybe in a follow-up patch?

Yup! As the same to Math.pow(a, b) case, the OSR exit occurs.
I&apos;ll create the follow up patch supporting ArithPow(Untyped, Untyped). This is the consistent way to the other Arith nodes, like ArithMul, ArithSub etc.
In ArithSub, the same problem happens. And ArithSub avoids OSR exits for that by supporting ArithSub(Untyped, Untyped) (And DFG performs ToNumber operation).

I&apos;ve filed it in https://bugs.webkit.org/show_bug.cgi?id=160012. And added FIXME here.

&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:3274
&gt;&gt; +        failIfTrue(match(POW) &amp;&amp; isUnaryOpExcludingUpdateOp(leadingTokenTypeForUnaryExpression), &quot;Expected a update expression on the left hand side of an exponentiation expression&quot;);
&gt; 
&gt; I don&apos;t think this error message is helpful.
&gt; Maybe we can say something about precedence and that the user should explicitly place parens to emphasize precedence.

OK, I rephrase it,
&quot;Unparenthesized unary expression found on the left hand side of an exponentiation expression&quot;

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:184
&gt;&gt; +test6(-37.676522764377296, -1.0, -0.026541727490454296, -0.026541727490454296);
&gt; 
&gt; I think this should be test7

Ooops! Thanks. Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:210
&gt;&gt; +test7(-37.676522764377296, 2.0, 1419.5203676146407, 1419.5203676146407);
&gt; 
&gt; I think this should be test8

Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:235
&gt;&gt; +test8(37.676522764377296, 2.0, 1419.5203676146407, 1419.5203676146407);
&gt; 
&gt; I think this should be test9

Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:261
&gt;&gt; +test9(-37.676522764377296, 3.0, -53482.591444930236, -53482.591444930236);
&gt; 
&gt; I think this should be test10

Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-basics.js:286
&gt;&gt; +test10(37.676522764377296, 3.0, 53482.591444930236, 53482.591444930236);
&gt; 
&gt; I think this should be test11

Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-coherency.js:1
&gt;&gt; +//@ skip
&gt; 
&gt; why?

This is the same to math-pow-coherency.js. Currently this test does not pass in GTK / EFL x86 32bit environment.
This is because operationMathPow cannot offer the consistent results to the JIT code due to x87.
I&apos;m now handling this in https://bugs.webkit.org/show_bug.cgi?id=157787.

Note that Mac x86 32bit does not suffer from x87. This is becasue Mac&apos;s clang uses SSE by default, so x87 is not used.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-nan-behaviors.js:1
&gt;&gt; +// If y is NaN, the result is NaN.
&gt; 
&gt; It&apos;s worth saying in a comment you&apos;re talking about &quot;x ** y&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-nan-behaviors.js:75
&gt;&gt; +// If y is â0, the result is 1, even if x is NaN.
&gt; 
&gt; Weird characters. Maybe not intended?

Oops, thanks. Changed it to -0.

&gt;&gt; Source/JavaScriptCore/tests/stress/pow-nan-behaviors.js:144
&gt;&gt; +// If abs(x) is 1 and y is ââ, the result is NaN.
&gt; 
&gt; Maybe it&apos;s wroth writing &quot;Inf&quot; instead of what I presume is an infinity unicode character

OK, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213077</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-21 00:34:31 -0700</bug_when>
    <thetext>Committed r203499: &lt;http://trac.webkit.org/changeset/203499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213249</commentid>
    <comment_count>9</comment_count>
      <attachid>284122</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-07-21 12:29:56 -0700</bug_when>
    <thetext>Comment on attachment 284122
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:3274
&gt;&gt;&gt; +        failIfTrue(match(POW) &amp;&amp; isUnaryOpExcludingUpdateOp(leadingTokenTypeForUnaryExpression), &quot;Expected a update expression on the left hand side of an exponentiation expression&quot;);
&gt;&gt; 
&gt;&gt; I don&apos;t think this error message is helpful.
&gt;&gt; Maybe we can say something about precedence and that the user should explicitly place parens to emphasize precedence.
&gt; 
&gt; OK, I rephrase it,
&gt; &quot;Unparenthesized unary expression found on the left hand side of an exponentiation expression&quot;

I&apos;m not sure if this is quite right, because the user could either mean
(-x)**y
or
-(x**y)

Maybe we should say something like &quot;ambiguous unary expression in the LHS of the exponentiation expression; parenthesis must be used to disambiguate the expression&quot;
I&apos;m not sure exactly what the best message is.
It&apos;d be really cool if we could take the user&apos;s program and show them the two options somehow. Probably difficult to do though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1213638</commentid>
    <comment_count>10</comment_count>
      <attachid>284122</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-22 11:11:29 -0700</bug_when>
    <thetext>Comment on attachment 284122
Patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:3274
&gt;&gt;&gt;&gt; +        failIfTrue(match(POW) &amp;&amp; isUnaryOpExcludingUpdateOp(leadingTokenTypeForUnaryExpression), &quot;Expected a update expression on the left hand side of an exponentiation expression&quot;);
&gt;&gt;&gt; 
&gt;&gt;&gt; I don&apos;t think this error message is helpful.
&gt;&gt;&gt; Maybe we can say something about precedence and that the user should explicitly place parens to emphasize precedence.
&gt;&gt; 
&gt;&gt; OK, I rephrase it,
&gt;&gt; &quot;Unparenthesized unary expression found on the left hand side of an exponentiation expression&quot;
&gt; 
&gt; I&apos;m not sure if this is quite right, because the user could either mean
&gt; (-x)**y
&gt; or
&gt; -(x**y)
&gt; 
&gt; Maybe we should say something like &quot;ambiguous unary expression in the LHS of the exponentiation expression; parenthesis must be used to disambiguate the expression&quot;
&gt; I&apos;m not sure exactly what the best message is.
&gt; It&apos;d be really cool if we could take the user&apos;s program and show them the two options somehow. Probably difficult to do though.

Sounds nice. I&apos;ll change this to &quot;Amiguous unary expression in the left hand side of the exponentiation expression; parenthesis must be used to disambiguate the expression&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214047</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-07-24 08:54:49 -0700</bug_when>
    <thetext>Committed r203664: &lt;http://trac.webkit.org/changeset/203664&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284109</attachid>
            <date>2016-07-20 09:07:04 -0700</date>
            <delta_ts>2016-07-20 09:56:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159969-20160721010606.patch</filename>
            <type>text/plain</type>
            <size>98039</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NGEyNmJhYThkZjM5YzNhZWE5ZmEzYWJjNGE2MWZkNDdiNDMwMGM3Li4yMzhkZGRlODY1Yjc1NDg3
MjhiMmQ4NWJjMDE3NTYyZTIzMGZkOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMTIgQEAKKzIwMTYtMDctMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTN10gSW50cm9kdWNlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Np
b24gKCoqKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU5OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBleHBvbmVudGlhdGlvbiBleHByZXNzaW9uLCBlLmcu
IGB4ICoqIHlgLgorICAgICAgICBUaGUgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiBpcyBpbnRy
b2R1Y2VkIGluIEVDTUEyNjIgMjAxNiBhbmQgRUNNQTI2MiAyMDE2CisgICAgICAgIGlzIGFscmVh
ZHkgcmVsZWFzZWQuIFNvIHRoaXMgaXMgbm90IHRoZSBkcmFmdCBzcGVjLgorCisgICAgICAgIFRo
ZSBleHBvbmVudGlhdGlvbiBleHByZXNzaW9uIGhhcyAyIGludGVyZXN0aW5nIHBvaW50cy4KKwor
ICAgICAgICAxLiBSaWdodCBhc3NvY2lhdGl2ZQorCisgICAgICAgICAgICBUbyBmb2xsb3cgdGhl
IE1hdGggZXhwcmVzc2lvbiwgdGhpcyAqKiBvcGVyYXRvciBpcyByaWdodCBhc3NvY2lhdGl2ZS4K
KyAgICAgICAgICAgIFdoZW4gd2UgZXhlY3V0ZSBgeCAqKiB5ICoqIHpgLCB0aGlzIGlzIGhhbmRs
ZWQgYXMgYHggKiogKHkgKiogeilgLCBub3QgYCh4ICoqIHkpICoqIHpgLgorICAgICAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSByaWdodCBhc3NvY2lhdGl2aXR5IHRvIHRoZSBiaW5h
cnkgb3BlcmF0b3IgYW5kIGhhbmRsZXMgaXQKKyAgICAgICAgICAgIGluIG9wZXJhdG9yIHByZWNl
ZGVuY2UgcGFyc2VyIGluIFBhcnNlci5jcHAuCisKKyAgICAgICAgMi4gTEhTIG9mIHRoZSBleHBv
bmVudGlhdGlvbiBleHByZXNzaW9uIGlzIFVwZGF0ZUV4cHJlc3Npb24KKworICAgICAgICAgICAg
RXhwb25lbnRpYXRpb25FeHByZXNzaW9uW1lpZWxkXToKKyAgICAgICAgICAgICAgICBVbmFyeUV4
cHJlc3Npb25bP1lpZWxkXQorICAgICAgICAgICAgICAgIFVwZGF0ZUV4cHJlc3Npb25bP1lpZWxk
XSAqKiBFeHBvbmVudGlhdGlvbkV4cHJlc3Npb25bP1lpZWxkXQorCisgICAgICAgICAgICBBcyB3
ZSBjYW4gc2VlLCB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIEV4cG9uZW50aWF0aW9uRXhwcmVz
c2lvbiBpcyBVcGRhdGVFeHByZXNzaW9uLCBub3QgVW5hcnlFeHByZXNzaW9uLgorICAgICAgICAg
ICAgSXQgbWVhbnMgdGhhdCBgK3ggKiogeWAgYmVjb21lcyBhIHN5bnRheCBlcnJvci4gVGhpcyBp
cyBpbnRlbnRpb25hbC4gV2l0aG91dCBzbWFsbCBmb250IGluIHRoZSBzY3JpcHQsIGAteCoqeWAK
KyAgICAgICAgICAgIGlzIGNvbmZ1c2luZyBiZXR3ZWVuIGAtKHggKiogeSlgIGFuZCBgKC14KSAq
KiB5YC4gU28gRUNNQTI2MiBpbnRlbnRpb25hbGx5IGF2b2lkIFVuYXJ5RXhwcmVzc2lvbiBoZXJl
LgorICAgICAgICAgICAgSWYgd2UgbmVlZCB0byB1c2UgYSBuZWdhdGVkIHZhbHVlLCB3ZSBuZWVk
IHRvIHdyaXRlIHBhcmVudGhlc2VzIGV4cGxpY2l0bHkgZS5nLiBgKC14KSAqKiB5YC4KKyAgICAg
ICAgICAgIEluIHRoaXMgcGF0Y2ggd2UgZW5zdXJlIHRoYXQgdGhlIGxlZnQgaGFuZCBzaWRlIGlz
IG5vdCB1bmFyeSBleHByZXNzaW9uIGJ5IGNoZWNraW5nIHRoZSBvcGVyYXRvciBpbgorICAgICAg
ICAgICAgcGFyc2VCaW5hcnlFeHByZXNzaW9uLiBUaGlzIHdvcmtzIHNpbmNlIGAqKmAgaGFzIHRo
ZSBoaWdoZXN0IG9wZXJhdG9yIHByZWNlZGVuY2UgaW4gdGhlIGJpbmFyeSBvcGVyYXRvcnMuCisK
KyAgICAgICAgV2UgaW50cm9kdWNlIGEgbmV3IGJ5dGVjb2RlLCBvcF9wb3cuIFRoYXQgc2ltcGx5
IHdvcmtzIGFzIHNpbWlsYXIgYXMgdGhlIG90aGVyIGJpbmFyeSBvcGVyYXRvcnMuCisgICAgICAg
IEFuZCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBBcml0aFBvdyBpbiBERkcgYW5kIGhhbmRsZWQg
aW4gREZHIGFuZCBGVEwuCisgICAgICAgIEhlcmUsIHdlIGp1c3QgaW50cm9kdWVjIGEgbmV3IGJ5
dGVjb2RlIGluc3RlYWQgb2YgY2FsbGluZyBNYXRoLnBvdy4gVGhpcyBpcyBiZWNhdXNlIHdlIHdv
dWxkIGxpa2UgdG8gZXhlY3V0ZSBUb051bWJlcgorICAgICAgICBpbiB0aGUgY2FsbGVyIHNpZGUs
IG5vdCBpbiBNYXRoLnBvdy4gQW5kIHdlIGRvbid0IHdhbnQgdG8gY29tcGlsZSAqKiBpbnRvIHRo
ZSBmb2xsb3dpbmcuCisKKyAgICAgICAgICAgIGxoc051bWJlciA9IHRvX251bWJlciAobGhzKQor
ICAgICAgICAgICAgcmhzTnVtYmVyID0gdG9fbnVtYmVyIChyaHMpCisgICAgICAgICAgICBjYWxs
IE1hdGgucG93KGxoc051bWJlciwgcmhzTnVtYmVyKQorCisgICAgICAgIFdlIGVuc3VyZWQgdGhh
dCB0aGlzIHBhdGNoIHBhc3MgYWxsIHRoZSB0ZXN0MjYyIHRlc3RzIHJlbGF0ZWQgdG8gdGhlIGV4
cG9uZW50aWF0aW9uIGV4cHJlc3Npb24uCisKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxp
c3QuanNvbjoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAo
SlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOgorICAgICAgICAqIGJ5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjplbWl0UmVhZE1vZGlm
eUFzc2lnbm1lbnQpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRm
Zy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZl
bCk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNv
bXBpbGVNYWluUGFzcyk6CisgICAgICAgICogaml0L0pJVC5oOgorICAgICAgICAqIGppdC9KSVRB
cml0aG1ldGljLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Bvdyk6CisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL0FTVEJ1
aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6b3BlcmF0b3JTdGFja1Nob3VsZFJl
ZHVjZSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VQb3dOb2RlKToKKyAgICAgICAg
KEpTQzo6QVNUQnVpbGRlcjo6bWFrZU11bHROb2RlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRl
cjo6bWFrZURpdk5vZGUpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlTW9kTm9kZSk6
CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VTdWJOb2RlKToKKyAgICAgICAgKEpTQzo6
QVNUQnVpbGRlcjo6bWFrZUJpbmFyeU5vZGUpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpv
cGVyYXRvclN0YWNrSGFzSGlnaGVyUHJlY2VkZW5jZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFy
c2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OmxleCk6CisgICAgICAgICog
cGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6UG93Tm9kZTo6UG93Tm9k
ZSk6CisgICAgICAgICogcGFyc2VyL05vZGVzLmg6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5j
cHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbnRFeHBy
ZXNzaW9uKToKKyAgICAgICAgKEpTQzo6aXNVbmFyeU9wRXhjbHVkaW5nVXBkYXRlT3ApOgorICAg
ICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VCaW5hcnlFeHByZXNzaW9uKToKKyAg
ICAgICAgKEpTQzo6aXNVbmFyeU9wKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIvUGFyc2Vy
VG9rZW5zLmg6CisgICAgICAgIChKU0M6OmlzVXBkYXRlT3ApOgorICAgICAgICAoSlNDOjppc1Vu
YXJ5T3ApOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6
OlN5bnRheENoZWNrZXI6Om9wZXJhdG9yU3RhY2tQb3ApOgorICAgICAgICAqIHJ1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6U0xPV19QQVRIX0RFQ0wpOgorICAgICAg
ICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmg6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bv
dy1iYXNpY3MuanM6IEFkZGVkLgorICAgICAgICAodmFsdWVzQXJlQ2xvc2UpOgorICAgICAgICAo
bWF0aFBvd0RvdWJsZURvdWJsZTEpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDEpOgorICAg
ICAgICAodGVzdDEpOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJsZTIpOgorICAgICAgICAo
bWF0aFBvd0RvdWJsZUludDIpOgorICAgICAgICAodGVzdDIpOgorICAgICAgICAobWF0aFBvd0Rv
dWJsZURvdWJsZTMpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDMpOgorICAgICAgICAodGVz
dDMpOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJsZTQpOgorICAgICAgICAobWF0aFBvd0Rv
dWJsZUludDQpOgorICAgICAgICAodGVzdDQpOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJs
ZTUpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDUpOgorICAgICAgICAodGVzdDUpOgorICAg
ICAgICAobWF0aFBvd0RvdWJsZURvdWJsZTYpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDYp
OgorICAgICAgICAodGVzdDYpOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJsZTcpOgorICAg
ICAgICAobWF0aFBvd0RvdWJsZUludDcpOgorICAgICAgICAodGVzdDcpOgorICAgICAgICAobWF0
aFBvd0RvdWJsZURvdWJsZTgpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDgpOgorICAgICAg
ICAodGVzdDgpOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJsZTkpOgorICAgICAgICAobWF0
aFBvd0RvdWJsZUludDkpOgorICAgICAgICAodGVzdDkpOgorICAgICAgICAobWF0aFBvd0RvdWJs
ZURvdWJsZTEwKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQxMCk6CisgICAgICAgICh0ZXN0
MTApOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJsZTExKToKKyAgICAgICAgKG1hdGhQb3dE
b3VibGVJbnQxMSk6CisgICAgICAgICh0ZXN0MTEpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9w
b3ctY29oZXJlbmN5LmpzOiBBZGRlZC4KKyAgICAgICAgKHBvdzQyKToKKyAgICAgICAgKGJ1aWxk
NDJBc0RvdWJsZS5vcGFxdWVBZGQpOgorICAgICAgICAoYnVpbGQ0MkFzRG91YmxlKToKKyAgICAg
ICAgKHBvd0RvdWJsZTQyKToKKyAgICAgICAgKGNsb2JiZXIpOgorICAgICAgICAocG93NDJOb0Nv
bnN0YW50Rm9sZGluZyk6CisgICAgICAgIChwb3dEb3VibGU0Mk5vQ29uc3RhbnRGb2xkaW5nKToK
KyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LWV2YWx1YXRpb24tb3JkZXIuanM6IEFkZGVkLgor
ICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAg
KiB0ZXN0cy9zdHJlc3MvcG93LWV4cGVjdHMtdXBkYXRlLWV4cHJlc3Npb24tb24tbGhzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3RTeW50YXgpOgorICAgICAgICAodGVzdFN5bnRheEVycm9yKToK
KyAgICAgICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAgICAgIChsZXQudG9rZW4ub2YudG9rZW5z
LnRlc3RTeW50YXgucG93KToKKyAgICAgICAgKHRlc3RTeW50YXgucG93KToKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvcG93LWludGVnZXItZXhwb25lbnQtZmFzdHBhdGguanM6IEFkZGVkLgorICAg
ICAgICAodmFsdWVzQXJlQ2xvc2UpOgorICAgICAgICAobWF0aFBvd0RvdWJsZURvdWJsZVRlc3RF
eHBvbmVudEZpZnR5KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRGaWZ0
eSk6CisgICAgICAgICh0ZXN0RXhwb25lbnRGaWZ0eSk6CisgICAgICAgIChtYXRoUG93RG91Ymxl
RG91YmxlVGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJ
bnRUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMpOgorICAgICAgICAodGVzdEV4cG9uZW50VGVuVGhv
dXNhbmRzKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LW5hbi1iZWhhdmlvcnMuanM6IEFk
ZGVkLgorICAgICAgICAodGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKToKKyAg
ICAgICAgKG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgorICAgICAg
ICAodGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk6CisgICAgICAgICh0ZXN0
RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMpOgorICAgICAgICAobWF0aFBv
d0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk6CisgICAgICAgICh0ZXN0
RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToKKyAgICAgICAgKHRlc3RO
YU5CYXNlU3RhdGljKToKKyAgICAgICAgKG1hdGhQb3dOYU5CYXNlRHluYW1pYzEpOgorICAgICAg
ICAobWF0aFBvd05hTkJhc2VEeW5hbWljMik6CisgICAgICAgIChtYXRoUG93TmFOQmFzZUR5bmFt
aWMzKToKKyAgICAgICAgKG1hdGhQb3dOYU5CYXNlRHluYW1pYzQpOgorICAgICAgICAodGVzdE5h
TkJhc2VEeW5hbWljKToKKyAgICAgICAgKGluZmluaXRlRXhwb25lbnRzU3RhdGljKToKKyAgICAg
ICAgKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMxKToKKyAgICAgICAgKG1hdGhQb3dJ
bmZpbml0ZUV4cG9uZW50c0R5bmFtaWMyKToKKyAgICAgICAgKG1hdGhQb3dJbmZpbml0ZUV4cG9u
ZW50c0R5bmFtaWMzKToKKyAgICAgICAgKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0
KToKKyAgICAgICAgKGluZmluaXRlRXhwb25lbnRzRHluYW1pYyk6CisgICAgICAgICogdGVzdHMv
c3RyZXNzL3Bvdy1zaW1wbGUuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAg
ICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXN0YWJsZS1y
ZXN1bHRzLmpzOiBBZGRlZC4KKyAgICAgICAgKG9wYXF1ZVBvdyk6CisgICAgICAgIChpc0lkZW50
aWNhbCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy10by1udW1iZXItc2hvdWxkLWJlLWV4
ZWN1dGVkLWluLWNvZGUtc2lkZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAg
ICAgICh0aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctd2l0aC1j
b25zdGFudHMuanM6IEFkZGVkLgorICAgICAgICAoZXhwb25lbnRJc1plcm8pOgorICAgICAgICAo
dGVzdEV4cG9uZW50SXNaZXJvKToKKyAgICAgICAgKGV4cG9uZW50SXNPbmUpOgorICAgICAgICAo
dGVzdEV4cG9uZW50SXNPbmUpOgorICAgICAgICAocG93VXNlZEFzU3FydCk6CisgICAgICAgICh0
ZXN0UG93VXNlZEFzU3FydCk6CisgICAgICAgIChwb3dVc2VkQXNPbmVPdmVyU3FydCk6CisgICAg
ICAgICh0ZXN0UG93VXNlZEFzT25lT3ZlclNxcnQpOgorICAgICAgICAocG93VXNlZEFzU3F1YXJl
KToKKyAgICAgICAgKHRlc3RQb3dVc2VkQXNTcXVhcmUpOgorICAgICAgICAoaW50SW50Q29uc3Rh
bnRzU21hbGxOdW1iZXJzKToKKyAgICAgICAgKGludEludENvbnN0YW50c0xhcmdlTnVtYmVycyk6
CisgICAgICAgIChpbnRJbnRTbWFsbENvbnN0YW50cyk6CisgICAgICAgIChpbnREb3VibGVDb25z
dGFudHMpOgorICAgICAgICAoZG91YmxlRG91YmxlQ29uc3RhbnRzKToKKyAgICAgICAgKGRvdWJs
ZUludENvbnN0YW50cyk6CisgICAgICAgICh0ZXN0QmFzZUFuZEV4cG9uZW50Q29uc3RhbnRMaXRl
cmFscyk6CisgICAgICAgIChleHBvbmVudElzSW50ZWdlckNvbnN0YW50KToKKyAgICAgICAgKHRl
c3RFeHBvbmVudElzSW50ZWdlckNvbnN0YW50KToKKyAgICAgICAgKGV4cG9uZW50SXNEb3VibGVD
b25zdGFudCk6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KToKKyAgICAg
ICAgKGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KToKKyAgICAgICAgKHRlc3RFeHBvbmVudElz
SW5maW5pdHlDb25zdGFudCk6CisgICAgICAgIChleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNv
bnN0YW50KToKKyAgICAgICAgKHRlc3RFeHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50
KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKToKKyAgICAgICAgKGV4
cG9uZW50SXNOb25OYW5Eb3VibGUyKToKKyAgICAgICAgKHRlc3RFeHBvbmVudElzRG91YmxlQ29u
c3RhbnQpOgorICAgICAgICAqIHRlc3RzL3Rlc3QyNjIueWFtbDoKKwogMjAxNi0wNy0yMCAgTWlj
aGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaE9uT3ZlcmZs
b3cgaW4gSlNDOjpZYXJyOjpZYXJyUGF0dGVybkNvbnN0cnVjdG9yOjpzZXR1cEFsdGVybmF0aXZl
T2Zmc2V0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlz
dC5qc29uCmluZGV4IDVkZjk5ZDllOWNjZWJiY2Q1MWRjNDcxYTU5YjMzMjg2NTAxYTA1NDEuLjEz
ZTk4MmNlNzI0YmMyYmM5ZDdhMWQ0NTcyZTk0MDA1YzU3MWRhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTM5LDYgKzM5LDcg
QEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2RpdiIsICJsZW5ndGgiIDogNSB9LAogICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfbW9kIiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9zdWIiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAgICAgICAgIHsgIm5h
bWUiIDogIm9wX3BvdyIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfbHNoaWZ0IiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9y
c2hpZnQiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Vyc2hp
ZnQiLCAibGVuZ3RoIiA6IDQgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggM2EyYmIwNTczOGExMmIwYzAyNDI3ZDVkYjk4MWRhODU3
NGY0NTk3Yy4uNTcwODQ0YzM1ZDkwMjVlZTkxYWQ0Njk4YmFiOWJjMWE2N2ZkODM0OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTIw
OCw2ICsyMDgsNyBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2Fz
ZSBvcF9kaXY6CiAgICAgY2FzZSBvcF9tb2Q6CiAgICAgY2FzZSBvcF9zdWI6CisgICAgY2FzZSBv
cF9wb3c6CiAgICAgY2FzZSBvcF9sc2hpZnQ6CiAgICAgY2FzZSBvcF9yc2hpZnQ6CiAgICAgY2Fz
ZSBvcF91cnNoaWZ0OgpAQCAtNDMxLDYgKzQzMiw3IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRl
Y29kZU9mZnNldChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVCYXNpY0Jsb2NrKiBibG9j
CiAgICAgY2FzZSBvcF9kaXY6CiAgICAgY2FzZSBvcF9tb2Q6CiAgICAgY2FzZSBvcF9zdWI6Cisg
ICAgY2FzZSBvcF9wb3c6CiAgICAgY2FzZSBvcF9sc2hpZnQ6CiAgICAgY2FzZSBvcF9yc2hpZnQ6
CiAgICAgY2FzZSBvcF91cnNoaWZ0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmNwcAppbmRleCAyZGY5ZWI1YjA1MGQ1YTMxZTYxNTM4ZDhmOWE5YzVhZDQ1YWI1
M2QxLi4zZjdkMmYwNWI5OTAwNTMyYjk2YTdkNmIyZDYxZWQyYTNlNjhkOGIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTAyNCw2ICsxMDI0
LDEwIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBwcmludEJp
bmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAibW9kIik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX3BvdzogeworICAgICAgICAgICAgcHJpbnRC
aW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInBvdyIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zdWI6IHsKICAgICAgICAgICAgIHByaW50
QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJzdWIiKTsKICAgICAgICAgICAgICsr
aXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKaW5kZXggZDA3ZWFjYTI0ZDFmZmY0NGNmN2FhMmE4NDA2NDhiZDJkYzM1MzdlMy4u
NWM4ZjkzZmUyYTJhNDRmMDU2MjYxYTk1MzZmM2RkNzY0MDg4MWVmYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtMTk5
Myw2ICsxOTkzLDkgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXJJRCogZW1pdFJlYWRN
b2RpZnlBc3NpZ25tZW50KEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW4KICAgICAgICAgY2FzZSBPcE1v
ZEVxOgogICAgICAgICAgICAgb3Bjb2RlSUQgPSBvcF9tb2Q7CiAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBPcFBvd0VxOgorICAgICAgICAgICAgb3Bjb2RlSUQgPSBvcF9wb3c7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICByZXR1cm4gZHN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAxOGI0YzMy
ZGEwOTJlNTczOWYzNzg5NzI1ZWVjZjFiNDQ0NGRjNDVhLi4wMjYxYmFiNjliMDU3NTU1MWRkZTNm
Yzc4NTdlNGU5ZjE1ZTJmY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzgxOSw2ICszODE5LDEzIEBAIGJvb2wgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09E
RShvcF9tb2QpOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBvcF9wb3c6IHsKKyAgICAgICAg
ICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJd
LnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0KFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBzZXQoVmly
dHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBhZGRUb0dyYXBo
KEFyaXRoUG93LCBvcDEsIG9wMikpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcG93KTsK
KyAgICAgICAgfQorCiAgICAgICAgIGNhc2Ugb3BfZGl2OiB7CiAgICAgICAgICAgICBOb2RlKiBv
cDEgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KTsKICAgICAgICAgICAgIE5vZGUqIG9wMiA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGIwMWIwNzA1ODcyMGZiMWEzZWJhNDljNDZjN2JkZTQ5
MzM5MTUxNzEuLmJjNTExYzUzYTQ1MDNmNTM3MGY1YTRmMmJlYTQ5N2M4OTM2MzU2NGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTEyMyw2
ICsxMjMsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29k
ZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfbmVnYXRlOgog
ICAgIGNhc2Ugb3BfbXVsOgogICAgIGNhc2Ugb3BfbW9kOgorICAgIGNhc2Ugb3BfcG93OgogICAg
IGNhc2Ugb3BfZGl2OgogICAgIGNhc2Ugb3BfZGVidWc6CiAgICAgY2FzZSBvcF9wcm9maWxlX3R5
cGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggZjI3ZDM5YTZlYThkOTQzYjRiZTg2
MmNkZDBjZGI3ZWFlZDVhMTM0Ny4uOGZkM2Y1OGVkNDE2YTc3NGJiMjc2NWU0ZDRkNTNkNjhiZTkx
ODJlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMzAwLDYgKzMwMCw3IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX25z
dHJpY3RlcSkKICAgICAgICAgREVGSU5FX09QKG9wX2RlYykKICAgICAgICAgREVGSU5FX09QKG9w
X2luYykKKyAgICAgICAgREVGSU5FX09QKG9wX3BvdykKICAgICAgICAgREVGSU5FX09QKG9wX3By
b2ZpbGVfdHlwZSkKICAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93KQog
ICAgICAgICBERUZJTkVfT1Aob3BfcHVzaF93aXRoX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
LmgKaW5kZXggNzMxMWRmYTE2YjlhNGQ4ZjljMTc1Y2VkZWQ3Mzc1OWUyYjJjYjEzYy4uMDkzZDdk
YWJkMzAzZjU3YzRhZGJiZTUwYWQ5YjJlNDBmNmZhZDYwOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCkBAIC01NjYsNiArNTY2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1p
dF9vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2RlYyhJ
bnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaW5jKEluc3RydWN0aW9uKik7Cisg
ICAgICAgIHZvaWQgZW1pdF9vcF9wb3coSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX3Byb2ZpbGVfdHlwZShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHJv
ZmlsZV9jb250cm9sX2Zsb3coSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3B1
c2hfd2l0aF9zY29wZShJbnN0cnVjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQXJpdGhtZXRpYy5jcHAKaW5kZXggMzAzOGZmNzQ5YmIwNzY3NTFhZmFjY2Y4YjNkZmVmYjQ2
ZjA2YjBkYS4uNDg1NWYxZDIyMzFmZjFhNDRlN2JmYWI1OWQyYTVhYmQ0MjU2MzcwZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCkBAIC0xMDMyLDcgKzEw
MzIsMTMgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3N1YihJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT4KICAgICB9CiB9CiAKLS8qIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFTkQ6IE9QX0FERCwgT1BfU1VCLCBPUF9NVUwgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCit2b2lkIEpJVDo6ZW1pdF9vcF9wb3coSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBKSVRTbG93UGF0aENhbGwgc2xvd1Bh
dGhDYWxsKHRoaXMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgc2xvd19wYXRoX3Bvdyk7CisgICAgc2xv
d1BhdGhDYWxsLmNhbGwoKTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IEVORDogT1BfQURELCBPUF9TVUIsIE9QX01VTCwgT1BfUE9XIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAqLwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDAxOTkzMTU0
NThlYTE1MjMxODg3MTFjYmE4MmE2OGMzMzNmN2E2M2MuLjNlMGRiZDg5ODZiOWRiMWFiMGEyMzVh
MzkwODRjMTBhZWY0NTY1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTEzMjAsNiArMTMyMCwxMiBAQCBfbGxpbnRf
b3BfbW9kOgogICAgIGRpc3BhdGNoKDQpCiAKIAorX2xsaW50X29wX3BvdzoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbE9wY29kZVNsb3dQYXRoKF9zbG93X3BhdGhfcG93KQorICAgIGRp
c3BhdGNoKDQpCisKKwogX2xsaW50X29wX3R5cGVvZjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAg
ICAgY2FsbE9wY29kZVNsb3dQYXRoKF9zbG93X3BhdGhfdHlwZW9mKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAppbmRleCA5YWM5MDRhZGUzNzQ1OGQ2ODMxZTNiOTVl
NTRiNDYwNDU2ZWE2ZDU0Li4xOWUzNjJlNzk2ZGI3NTAyZTkzYjNiNDk2MWZiMDIxZjNkNzFkMzU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaApAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW5jbHVkZSAiQnVpbHRpbk5hbWVzLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVJ
bnRyaW5zaWNSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKICNpbmNsdWRlICJO
b2RlQ29uc3RydWN0b3JzLmgiCiAjaW5jbHVkZSAiU3ludGF4Q2hlY2tlci5oIgogI2luY2x1ZGUg
IlZhcmlhYmxlRW52aXJvbm1lbnQuaCIKQEAgLTE0Myw2ICsxNDQsNyBAQCBjbGFzcyBBU1RCdWls
ZGVyIHsKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZURlbGV0ZU5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCk7CiAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VOZWdhdGVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IEV4cHJlc3Npb25Ob2RlKik7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VCaXR3aXNlTm90Tm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSopOworICAgIEV4cHJlc3Np
b25Ob2RlKiBtYWtlUG93Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9k
ZSogbGVmdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMp
OwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlTXVsdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdo
dEhhc0Fzc2lnbm1lbnRzKTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZURpdk5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiBy
aWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFr
ZU1vZE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGxlZnQsIEV4
cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKQEAgLTc4NCw5
ICs3ODYsMTQgQEAgY2xhc3MgQVNUQnVpbGRlciB7CiAgICAgICAgIG9wZXJhdG9yU3RhY2tEZXB0
aC0tOwogICAgICAgICBtX2JpbmFyeU9wZXJhdG9yU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgIH0K
LSAgICBib29sIG9wZXJhdG9yU3RhY2tIYXNIaWdoZXJQcmVjZWRlbmNlKGludCYsIGludCBwcmVj
ZWRlbmNlKQorICAgIGJvb2wgb3BlcmF0b3JTdGFja1Nob3VsZFJlZHVjZShpbnQgcHJlY2VkZW5j
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBwcmVjZWRlbmNlIDw9IG1fYmluYXJ5T3BlcmF0b3JT
dGFjay5sYXN0KCkuc2Vjb25kOworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBwcmVjZWRlbmNl
IG9mIHRoZSBvcGVyYXRvciBzdGFjayBpcyB0aGUgc2FtZSB0byB0aGUgb25lIG9mIHRoZSBnaXZl
biBvcGVyYXRvciwKKyAgICAgICAgLy8gaXQgZGVwZW5kcyBvbiB0aGUgYXNzb2NpYXRpdmUgd2hl
dGhlciB3ZSByZWR1Y2UgdGhlIHN0YWNrLgorICAgICAgICAvLyBJZiB0aGUgb3BlcmF0b3IgaXMg
cmlnaHQgYXNzb2NpYXRpdmUsIHdlIHNob3VsZCBub3QgcmVkdWNlIHRoZSBzdGFjayByaWdodCBu
b3cuCisgICAgICAgIGlmIChwcmVjZWRlbmNlID09IG1fYmluYXJ5T3BlcmF0b3JTdGFjay5sYXN0
KCkuc2Vjb25kKQorICAgICAgICAgICAgcmV0dXJuICEobV9iaW5hcnlPcGVyYXRvclN0YWNrLmxh
c3QoKS5maXJzdCAmIFJpZ2h0QXNzb2NpYXRpdmVCaW5hcnlPcFRva2VuRmxhZyk7CisgICAgICAg
IHJldHVybiBwcmVjZWRlbmNlIDwgbV9iaW5hcnlPcGVyYXRvclN0YWNrLmxhc3QoKS5zZWNvbmQ7
CiAgICAgfQogICAgIGNvbnN0IEJpbmFyeU9wZXJhbmQmIGdldEZyb21PcGVyYW5kU3RhY2soaW50
IGkpIHsgcmV0dXJuIG1fYmluYXJ5T3BlcmFuZFN0YWNrW21fYmluYXJ5T3BlcmFuZFN0YWNrLnNp
emUoKSArIGldOyB9CiAgICAgdm9pZCBzaHJpbmtPcGVyYW5kU3RhY2tCeShpbnQmIG9wZXJhbmRT
dGFja0RlcHRoLCBpbnQgYW1vdW50KQpAQCAtMTA0NCw4ICsxMDUxLDI5IEBAIEV4cHJlc3Npb25O
b2RlKiBBU1RCdWlsZGVyOjptYWtlQml0d2lzZU5vdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiBsb2NhdGlvbiwKICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBCaXR3aXNlTm90Tm9k
ZShsb2NhdGlvbiwgZXhwcik7CiB9CiAKK0V4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtl
UG93Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQor
eworICAgIGF1dG8qIHN0cmlwcGVkRXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsKKyAg
ICBhdXRvKiBzdHJpcHBlZEV4cHIyID0gZXhwcjItPnN0cmlwVW5hcnlQbHVzKCk7CisKKyAgICBp
ZiAoc3RyaXBwZWRFeHByMS0+aXNOdW1iZXIoKSAmJiBzdHJpcHBlZEV4cHIyLT5pc051bWJlcigp
KSB7CisgICAgICAgIGNvbnN0IE51bWJlck5vZGUmIG51bWJlckV4cHIxID0gc3RhdGljX2Nhc3Q8
TnVtYmVyTm9kZSY+KCpzdHJpcHBlZEV4cHIxKTsKKyAgICAgICAgY29uc3QgTnVtYmVyTm9kZSYg
bnVtYmVyRXhwcjIgPSBzdGF0aWNfY2FzdDxOdW1iZXJOb2RlJj4oKnN0cmlwcGVkRXhwcjIpOwor
ICAgICAgICByZXR1cm4gY3JlYXRlTnVtYmVyRnJvbUJpbmFyeU9wZXJhdGlvbihsb2NhdGlvbiwg
b3BlcmF0aW9uTWF0aFBvdyhudW1iZXJFeHByMS52YWx1ZSgpLCBudW1iZXJFeHByMi52YWx1ZSgp
KSwgbnVtYmVyRXhwcjEsIG51bWJlckV4cHIyKTsKKyAgICB9CisKKyAgICBpZiAoc3RyaXBwZWRF
eHByMS0+aXNOdW1iZXIoKSkKKyAgICAgICAgZXhwcjEgPSBzdHJpcHBlZEV4cHIxOworICAgIGlm
IChzdHJpcHBlZEV4cHIyLT5pc051bWJlcigpKQorICAgICAgICBleHByMiA9IHN0cmlwcGVkRXhw
cjI7CisKKyAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBQb3dOb2RlKGxvY2F0aW9uLCBl
eHByMSwgZXhwcjIsIHJpZ2h0SGFzQXNzaWdubWVudHMpOworfQorCiBFeHByZXNzaW9uTm9kZSog
QVNUQnVpbGRlcjo6bWFrZU11bHROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0
SGFzQXNzaWdubWVudHMpCiB7CisgICAgLy8gRklYTUU6IFVuYXJ5ICsgY2hhbmdlIHRoZSBldmFs
dWF0aW9uIG9yZGVyLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTk5NjgKICAgICBleHByMSA9IGV4cHIxLT5zdHJpcFVuYXJ5UGx1cygpOwogICAgIGV4
cHIyID0gZXhwcjItPnN0cmlwVW5hcnlQbHVzKCk7CiAKQEAgLTEwNjYsNiArMTA5NCw4IEBAIEV4
cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlTXVsdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgRXhwcmVzCiAKIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtl
RGl2Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQog
eworICAgIC8vIEZJWE1FOiBVbmFyeSArIGNoYW5nZSB0aGUgZXZhbHVhdGlvbiBvcmRlci4KKyAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTY4CiAgICAg
ZXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsKICAgICBleHByMiA9IGV4cHIyLT5zdHJp
cFVuYXJ5UGx1cygpOwogCkBAIC0xMDgyLDYgKzExMTIsOCBAQCBFeHByZXNzaW9uTm9kZSogQVNU
QnVpbGRlcjo6bWFrZURpdk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhw
cmVzcwogCiBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZU1vZE5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9u
Tm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykKIHsKKyAgICAvLyBGSVhNRTog
VW5hcnkgKyBjaGFuZ2UgdGhlIGV2YWx1YXRpb24gb3JkZXIuCisgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2OAogICAgIGV4cHIxID0gZXhwcjEtPnN0
cmlwVW5hcnlQbHVzKCk7CiAgICAgZXhwcjIgPSBleHByMi0+c3RyaXBVbmFyeVBsdXMoKTsKIApA
QCAtMTEwNiw2ICsxMTM4LDggQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VBZGRO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3MKIAogRXhwcmVzc2lv
bk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VTdWJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29s
IHJpZ2h0SGFzQXNzaWdubWVudHMpCiB7CisgICAgLy8gRklYTUU6IFVuYXJ5ICsgY2hhbmdlIHRo
ZSBldmFsdWF0aW9uIG9yZGVyLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTk5NjgKICAgICBleHByMSA9IGV4cHIxLT5zdHJpcFVuYXJ5UGx1cygpOwog
ICAgIGV4cHIyID0gZXhwcjItPnN0cmlwVW5hcnlQbHVzKCk7CiAKQEAgLTEyOTUsNiArMTMyOSw5
IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQmluYXJ5Tm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mIGxvY2F0aW9uLCBpbnQKIAogICAgIGNhc2UgTU9EOgogICAgICAgICByZXR1
cm4gbWFrZU1vZE5vZGUobG9jYXRpb24sIGxocy5maXJzdCwgcmhzLmZpcnN0LCByaHMuc2Vjb25k
Lmhhc0Fzc2lnbm1lbnQpOworCisgICAgY2FzZSBQT1c6CisgICAgICAgIHJldHVybiBtYWtlUG93
Tm9kZShsb2NhdGlvbiwgbGhzLmZpcnN0LCByaHMuZmlyc3QsIHJocy5zZWNvbmQuaGFzQXNzaWdu
bWVudCk7CiAgICAgfQogICAgIENSQVNIKCk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCmluZGV4IDVjNzk2NzM3Y2M0OTJhYTVjMDAzZDIwZmZlNWVi
YTliZDdkN2RjOWEuLmIzNmIzYWE5MzA5MjVmNDg5YjBiODQzY2MzODJlYzBhMzdmNWUxY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwCkBAIC0xOTU2LDYgKzE5NTYsMTYg
QEAgSlNUb2tlblR5cGUgTGV4ZXI8VD46OmxleChKU1Rva2VuKiB0b2tlblJlY29yZCwgdW5zaWdu
ZWQgbGV4ZXJGbGFncywgYm9vbCBzdHJpY3QKICAgICAgICAgICAgIHRva2VuID0gTVVMVEVRVUFM
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKFVOTElLRUxZKG1f
Y3VycmVudCA9PSAnKicpKSB7CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYg
KG1fY3VycmVudCA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAg
ICAgICAgIHRva2VuID0gUE9XRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0b2tlbiA9IFBPVzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CiAgICAgICAgIHRva2VuID0gVElNRVM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q2hhcmFjdGVyU2xhc2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oCmluZGV4IDdmNTQ2YWIwYjAxNzc1ZTA0Y2UyM2NjOGY1OGQ4NjgyMTRlYjU0
MGEuLjVkM2YzYzkyNjE5NjM4NTc1NTY5Yjc5N2RiZGI0Zjc5YzEyNmM3NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC00OTcsNiAr
NDk3LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgUG93
Tm9kZTo6UG93Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9u
Tm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1l
bnRzKQorICAgICAgICA6IEJpbmFyeU9wTm9kZShsb2NhdGlvbiwgUmVzdWx0VHlwZTo6bnVtYmVy
VHlwZSgpLCBleHByMSwgZXhwcjIsIG9wX3BvdywgcmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7
CisgICAgfQorCiAgICAgaW5saW5lIE11bHROb2RlOjpNdWx0Tm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBl
eHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQogICAgICAgICA6IEJpbmFyeU9wTm9kZShs
b2NhdGlvbiwgUmVzdWx0VHlwZTo6bnVtYmVyVHlwZSgpLCBleHByMSwgZXhwcjIsIG9wX211bCwg
cmlnaHRIYXNBc3NpZ25tZW50cykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVz
LmgKaW5kZXggMWRjNzRlMmM1YjJhMTcyM2YzZjRjOGIxMmNmOGFiMmRhMDBmZmNmOS4uMWUwODgy
NzlmYzcyNGNhOTNiMmI2MzNmZjA3OWNjM2FlMzAxNGY2YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaApAQCAtNjcsNiArNjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
T3BYT3JFcSwKICAgICAgICAgT3BPckVxLAogICAgICAgICBPcE1vZEVxLAorICAgICAgICBPcFBv
d0VxLAogICAgICAgICBPcExTaGlmdCwKICAgICAgICAgT3BSU2hpZnQsCiAgICAgICAgIE9wVVJT
aGlmdApAQCAtMTAzOSw2ICsxMDQwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29s
IG1fcmlnaHRIYXNBc3NpZ25tZW50czsKICAgICB9OwogCisgICAgY2xhc3MgUG93Tm9kZSA6IHB1
YmxpYyBCaW5hcnlPcE5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgUG93Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBl
eHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKKyAgICB9OworCiAgICAgY2xhc3MgTXVs
dE5vZGUgOiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIE11bHRO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVz
c2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDRlZWFlMTQ4MDA0NjUzNmNmMjI4ZTBkNzgy
ODZjOGY1NGY5MTk2YjIuLmQ5ZjEwNTg4MzY3ZDRlYjc4NWQwNTNiN2NhZTkyMDRkNzU1OTFmZjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTMxMjYsNiArMzEy
Niw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGNhc2UgWE9SRVFVQUw6IG9w
ID0gT3BYT3JFcTsgYnJlYWs7CiAgICAgICAgIGNhc2UgT1JFUVVBTDogb3AgPSBPcE9yRXE7IGJy
ZWFrOwogICAgICAgICBjYXNlIE1PREVRVUFMOiBvcCA9IE9wTW9kRXE7IGJyZWFrOworICAgICAg
ICBjYXNlIFBPV0VRVUFMOiBvcCA9IE9wUG93RXE7IGJyZWFrOwogICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KQEAgLTMyMTgsOSArMzIxOSwxMSBAQCB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZUNvbmRpdGlvbmFsRQogICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUNvbmRpdGlv
bmFsRXhwcihsb2NhdGlvbiwgY29uZCwgbGhzLCByaHMpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0
YXRpYyBib29sIGlzVW5hcnlPcChKU1Rva2VuVHlwZSB0b2tlbikKK0FMV0FZU19JTkxJTkUgc3Rh
dGljIGJvb2wgaXNVbmFyeU9wRXhjbHVkaW5nVXBkYXRlT3AoSlNUb2tlblR5cGUgdG9rZW4pCiB7
Ci0gICAgcmV0dXJuIHRva2VuICYgVW5hcnlPcFRva2VuRmxhZzsKKyAgICBpZiAoaXNVcGRhdGVP
cCh0b2tlbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNVbmFyeU9wKHRv
a2VuKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KQEAgLTMyNDEsMTAgKzMy
NDQsMzUgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJz
ZXI8TGV4ZXJUeXBlPjo6cGFyc2VCaW5hcnlFeHByZXMKICAgICB3aGlsZSAodHJ1ZSkgewogICAg
ICAgICBKU1RleHRQb3NpdGlvbiBleHByU3RhcnQgPSB0b2tlblN0YXJ0UG9zaXRpb24oKTsKICAg
ICAgICAgaW50IGluaXRpYWxBc3NpZ25tZW50cyA9IG1fcGFyc2VyU3RhdGUuYXNzaWdubWVudENv
dW50OworICAgICAgICBKU1Rva2VuVHlwZSBsZWFkaW5nVG9rZW5UeXBlRm9yVW5hcnlFeHByZXNz
aW9uID0gbV90b2tlbi5tX3R5cGU7CiAgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1cnJlbnQgPSBw
YXJzZVVuYXJ5RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2UoY3VycmVu
dCwgIkNhbm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgICAgIAogICAgICAgICBjb250ZXh0
LmFwcGVuZEJpbmFyeUV4cHJlc3Npb25JbmZvKG9wZXJhbmRTdGFja0RlcHRoLCBjdXJyZW50LCBl
eHByU3RhcnQsIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCksIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCks
IGluaXRpYWxBc3NpZ25tZW50cyAhPSBtX3BhcnNlclN0YXRlLmFzc2lnbm1lbnRDb3VudCk7CisK
KyAgICAgICAgLy8gMTIuNiBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1leHAt
b3BlcmF0b3IKKyAgICAgICAgLy8gRXhwb25lbnRpYXRpb25FeHByZXNpb24gaXMgZGVzY3JpYmVk
IGFzIGZvbGxvd3MuCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICBFeHBvbmVudGlhdGlvbkV4
cHJlc3Npb25bWWllbGRdOgorICAgICAgICAvLyAgICAgICAgIFVuYXJ5RXhwcmVzc2lvbls/WWll
bGRdCisgICAgICAgIC8vICAgICAgICAgVXBkYXRlRXhwcmVzc2lvbls/WWllbGRdICoqIEV4cG9u
ZW50aWF0aW9uRXhwcmVzc2lvbls/WWllbGRdCisgICAgICAgIC8vCisgICAgICAgIC8vIEFzIHdl
IGNhbiBzZWUsIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiB0aGUgRXhwb25lbnRpYXRpb25FeHByZXNz
aW9uIGlzIFVwZGF0ZUV4cHJlc3Npb24sIG5vdCBVbmFyeUV4cHJlc3Npb24uCisgICAgICAgIC8v
IFNvIHBsYWNpbmcgVW5hcnlFeHByZXNzaW9uIG5vdCBpbmNsdWRlZCBpbiBVcGRhdGVFeHByZXNz
aW9uIGhlcmUgaXMgYSBzeW50YXggZXJyb3IuCisgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9u
YWwuIEZvciBleGFtcGxlLCBpZiBVbmFyeUV4cHJlc3Npb24gaXMgYWxsb3dlZCwgd2UgY2FuIGhh
dmUgdGhlIGNvZGUgbGlrZSBgLXgqKnlgLgorICAgICAgICAvLyBCdXQgdGhpcyBpcyBjb25mdXNp
bmc6IGAtKHgqKnkpYCBPUiBgKC14KSoqeWAsIHdoaWNoIGludGVycHJldGF0aW9uIGlzIGNvcnJl
Y3Q/CisgICAgICAgIC8vIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgRUNNQTI2MiBtYWtlcyB1bnBh
cmVudGhlc2l6ZWQgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiBhcyBvcGVyYW5kIG9mIHVuYXJ5
IG9wZXJhdG9ycyBhbiBlYXJseSBlcnJvci4KKyAgICAgICAgLy8gTW9yZSByYXRpb25hbGU6IGh0
dHBzOi8vbWFpbC5tb3ppbGxhLm9yZy9waXBlcm1haWwvZXMtZGlzY3Vzcy8yMDE1LVNlcHRlbWJl
ci8wNDQyMzIuaHRtbAorICAgICAgICAvLworICAgICAgICAvLyBIZXJlLCB3ZSBndWFyYW50ZWUg
dGhhdCB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhpcyBleHByZXNzaW9uIGlzIG5vdCB1bmFyeSBl
eHByZXNzaW9uIGJ5IGNoZWNraW5nIHRoZSBsZWFkaW5nIG9wZXJhdG9yIG9mIHRoZSBwYXJzZVVu
YXJ5RXhwcmVzc2lvbi4KKyAgICAgICAgLy8gVGhpcyBjaGVjayBqdXN0IHdvcmtzLiBMZXQncyBj
b25zaWRlciB0aGUgZXhhbXBsZSwKKyAgICAgICAgLy8gICAgIHkgPD4gLXggKiogegorICAgICAg
ICAvLyAgICAgICAgICBeCisgICAgICAgIC8vICAgICAgICAgIENoZWNrIHRoaXMuCisgICAgICAg
IC8vIElmIHRoZSBiaW5hcnkgb3BlcmF0b3IgPD4gaGFzIGhpZ2hlciBwcmVjZWRlbmNlIHRoYW4g
b25lIG9mICIqKiIsIHRoaXMgY2hlY2sgZG9lcyBub3Qgd29yay4KKyAgICAgICAgLy8gQnV0IGl0
J3MgT0sgZm9yICoqIGJlY2F1c2UgdGhlIG9wZXJhdG9yICIqKiIgaGFzIHRoZSBoaWdoZXN0IG9w
ZXJhdG9yIHByZWNlZGVuY2UgaW4gdGhlIGJpbmFyeSBvcGVyYXRvcnMuCisgICAgICAgIGZhaWxJ
ZlRydWUobWF0Y2goUE9XKSAmJiBpc1VuYXJ5T3BFeGNsdWRpbmdVcGRhdGVPcChsZWFkaW5nVG9r
ZW5UeXBlRm9yVW5hcnlFeHByZXNzaW9uKSwgIkV4cGVjdGVkIGEgdXBkYXRlIGV4cHJlc3Npb24g
b24gdGhlIGxlZnQgaGFuZCBzaWRlIG9mIGFuIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24iKTsK
KwogICAgICAgICBpbnQgcHJlY2VkZW5jZSA9IGlzQmluYXJ5T3BlcmF0b3IobV90b2tlbi5tX3R5
cGUpOwogICAgICAgICBpZiAoIXByZWNlZGVuY2UpCiAgICAgICAgICAgICBicmVhazsKQEAgLTMy
NTMsNyArMzI4MSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgICAgIGludCBvcGVy
YXRvclRva2VuID0gbV90b2tlbi5tX3R5cGU7CiAgICAgICAgIG5leHQoVHJlZUJ1aWxkZXI6OkRv
bnRCdWlsZFN0cmluZ3MpOwogICAgICAgICAKLSAgICAgICAgd2hpbGUgKG9wZXJhdG9yU3RhY2tE
ZXB0aCAmJiAgY29udGV4dC5vcGVyYXRvclN0YWNrSGFzSGlnaGVyUHJlY2VkZW5jZShvcGVyYXRv
clN0YWNrRGVwdGgsIHByZWNlZGVuY2UpKSB7CisgICAgICAgIHdoaWxlIChvcGVyYXRvclN0YWNr
RGVwdGggJiYgY29udGV4dC5vcGVyYXRvclN0YWNrU2hvdWxkUmVkdWNlKHByZWNlZGVuY2UpKSB7
CiAgICAgICAgICAgICBBU1NFUlQob3BlcmFuZFN0YWNrRGVwdGggPiAxKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkJpbmFyeU9wZXJhbmQgcmhzID0g
Y29udGV4dC5nZXRGcm9tT3BlcmFuZFN0YWNrKC0xKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlclRva2Vucy5oCmluZGV4IGFmZjRhMzAxMzNjNzUxZTYxZmFmMTIzZWQ1Njgw
ZTkwZGE5NjQ3MTcuLmViMjYzYmIyY2ZiNWQ3NjNhY2VmNzljNjljZDI4ZjgyM2MyYTdlODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtNDEsNyAr
NDEsOCBAQCBlbnVtIHsKICAgICBCaW5hcnlPcFRva2VuQWxsb3dzSW5QcmVjZWRlbmNlQWRkaXRp
b25hbFNoaWZ0ID0gNCwKICAgICBCaW5hcnlPcFRva2VuUHJlY2VkZW5jZU1hc2sgPSAxNSA8PCBC
aW5hcnlPcFRva2VuUHJlY2VkZW5jZVNoaWZ0LAogICAgIEVycm9yVG9rZW5GbGFnID0gMSA8PCAo
QmluYXJ5T3BUb2tlbkFsbG93c0luUHJlY2VkZW5jZUFkZGl0aW9uYWxTaGlmdCArIEJpbmFyeU9w
VG9rZW5QcmVjZWRlbmNlU2hpZnQgKyA3KSwKLSAgICBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxh
ZyA9IEVycm9yVG9rZW5GbGFnIDw8IDEKKyAgICBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZyA9
IEVycm9yVG9rZW5GbGFnIDw8IDEsCisgICAgUmlnaHRBc3NvY2lhdGl2ZUJpbmFyeU9wVG9rZW5G
bGFnID0gVW50ZXJtaW5hdGVkRXJyb3JUb2tlbkZsYWcgPDwgMQogfTsKIAogI2RlZmluZSBCSU5B
UllfT1BfUFJFQ0VERU5DRShwcmVjKSAoKChwcmVjKSA8PCBCaW5hcnlPcFRva2VuUHJlY2VkZW5j
ZVNoaWZ0KSB8ICgocHJlYykgPDwgKEJpbmFyeU9wVG9rZW5QcmVjZWRlbmNlU2hpZnQgKyBCaW5h
cnlPcFRva2VuQWxsb3dzSW5QcmVjZWRlbmNlQWRkaXRpb25hbFNoaWZ0KSkpCkBAIC0xMDksNiAr
MTEwLDcgQEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgVVJTSElGVEVRVUFMLAogICAgIEFOREVR
VUFMLAogICAgIE1PREVRVUFMLAorICAgIFBPV0VRVUFMLAogICAgIFhPUkVRVUFMLAogICAgIE9S
RVFVQUwsCiAgICAgRE9URE9URE9ULApAQCAtMTE4LDEwICsxMjAsMTAgQEAgZW51bSBKU1Rva2Vu
VHlwZSB7CiAgICAgLy8gQmVnaW4gdGFnZ2VkIHRva2VucwogICAgIFBMVVNQTFVTID0gMCB8IFVu
YXJ5T3BUb2tlbkZsYWcsCiAgICAgTUlOVVNNSU5VUyA9IDEgfCBVbmFyeU9wVG9rZW5GbGFnLAot
ICAgIEVYQ0xBTUFUSU9OID0gMiB8IFVuYXJ5T3BUb2tlbkZsYWcsCi0gICAgVElMREUgPSAzIHwg
VW5hcnlPcFRva2VuRmxhZywKLSAgICBBVVRPUExVU1BMVVMgPSA0IHwgVW5hcnlPcFRva2VuRmxh
ZywKLSAgICBBVVRPTUlOVVNNSU5VUyA9IDUgfCBVbmFyeU9wVG9rZW5GbGFnLAorICAgIEFVVE9Q
TFVTUExVUyA9IDIgfCBVbmFyeU9wVG9rZW5GbGFnLAorICAgIEFVVE9NSU5VU01JTlVTID0gMyB8
IFVuYXJ5T3BUb2tlbkZsYWcsCisgICAgRVhDTEFNQVRJT04gPSA0IHwgVW5hcnlPcFRva2VuRmxh
ZywKKyAgICBUSUxERSA9IDUgfCBVbmFyeU9wVG9rZW5GbGFnLAogICAgIFRZUEVPRiA9IDYgfCBV
bmFyeU9wVG9rZW5GbGFnIHwgS2V5d29yZFRva2VuRmxhZywKICAgICBWT0lEVE9LRU4gPSA3IHwg
VW5hcnlPcFRva2VuRmxhZyB8IEtleXdvcmRUb2tlbkZsYWcsCiAgICAgREVMRVRFVE9LRU4gPSA4
IHwgVW5hcnlPcFRva2VuRmxhZyB8IEtleXdvcmRUb2tlbkZsYWcsCkBAIC0xNDgsNiArMTUwLDcg
QEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgVElNRVMgPSAyMCB8IEJJTkFSWV9PUF9QUkVDRURF
TkNFKDEwKSwKICAgICBESVZJREUgPSAyMSB8IEJJTkFSWV9PUF9QUkVDRURFTkNFKDEwKSwKICAg
ICBNT0QgPSAyMiB8IEJJTkFSWV9PUF9QUkVDRURFTkNFKDEwKSwKKyAgICBQT1cgPSAyMyB8IEJJ
TkFSWV9PUF9QUkVDRURFTkNFKDExKSB8IFJpZ2h0QXNzb2NpYXRpdmVCaW5hcnlPcFRva2VuRmxh
ZywgLy8gTWFrZSBzdXJlIHRoYXQgUE9XIGhhcyB0aGUgaGlnaGVzdCBvcGVyYXRvciBwcmVjZWRl
bmNlLgogICAgIEVSUk9SVE9LID0gMCB8IEVycm9yVG9rZW5GbGFnLAogICAgIFVOVEVSTUlOQVRF
RF9JREVOVElGSUVSX0VTQ0FQRV9FUlJPUlRPSyA9IDAgfCBFcnJvclRva2VuRmxhZyB8IFVudGVy
bWluYXRlZEVycm9yVG9rZW5GbGFnLAogICAgIElOVkFMSURfSURFTlRJRklFUl9FU0NBUEVfRVJS
T1JUT0sgPSAxIHwgRXJyb3JUb2tlbkZsYWcsCkBAIC0yMjIsNiArMjI1LDE2IEBAIHN0cnVjdCBK
U1Rva2VuIHsKICAgICBKU1RleHRQb3NpdGlvbiBtX2VuZFBvc2l0aW9uOwogfTsKIAorQUxXQVlT
X0lOTElORSBib29sIGlzVXBkYXRlT3AoSlNUb2tlblR5cGUgdG9rZW4pCit7CisgICAgcmV0dXJu
IHRva2VuID49IFBMVVNQTFVTICYmIHRva2VuIDw9IEFVVE9NSU5VU01JTlVTOworfQorCitBTFdB
WVNfSU5MSU5FIGJvb2wgaXNVbmFyeU9wKEpTVG9rZW5UeXBlIHRva2VuKQoreworICAgIHJldHVy
biB0b2tlbiAmIFVuYXJ5T3BUb2tlbkZsYWc7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAj
ZW5kaWYgLy8gUGFyc2VyVG9rZW5zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9T
eW50YXhDaGVja2VyLmgKaW5kZXggYmYwZDhmZmY3MmIzYmU2MmZlMjNlZTNhMTJlNDdmOWI4YzQ5
ZTI1MC4uMDM3ODJjZTRhZWU5NTJlZDI1ZGE5YjMyZWVjMmNkMGM3ZDAzOTc5YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTMwMSw3ICszMDEs
NyBAQCBjbGFzcyBTeW50YXhDaGVja2VyIHsKICAgICAKICAgICAvLyBMb2dpYyB0byBoYW5kbGUg
ZGF0YXN0cnVjdHVyZXMgdXNlZCBkdXJpbmcgcGFyc2luZyBvZiBiaW5hcnkgZXhwcmVzc2lvbnMK
ICAgICB2b2lkIG9wZXJhdG9yU3RhY2tQb3AoaW50JiBvcGVyYXRvclN0YWNrRGVwdGgpIHsgb3Bl
cmF0b3JTdGFja0RlcHRoLS07IH0KLSAgICBib29sIG9wZXJhdG9yU3RhY2tIYXNIaWdoZXJQcmVj
ZWRlbmNlKGludCYsIGludCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgb3BlcmF0b3JTdGFj
a1Nob3VsZFJlZHVjZShpbnQpIHsgcmV0dXJuIHRydWU7IH0KICAgICBCaW5hcnlPcGVyYW5kIGdl
dEZyb21PcGVyYW5kU3RhY2soaW50KSB7IHJldHVybiBtX3RvcEJpbmFyeUV4cHI7IH0KICAgICB2
b2lkIHNocmlua09wZXJhbmRTdGFja0J5KGludCYgb3BlcmFuZFN0YWNrRGVwdGgsIGludCBhbW91
bnQpIHsgb3BlcmFuZFN0YWNrRGVwdGggLT0gYW1vdW50OyB9CiAgICAgdm9pZCBhcHBlbmRCaW5h
cnlPcGVyYXRpb24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50JiBvcGVyYW5kU3RhY2tEZXB0
aCwgaW50JiwgQmluYXJ5T3BlcmFuZCwgQmluYXJ5T3BlcmFuZCkgeyBvcGVyYW5kU3RhY2tEZXB0
aCsrOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmNwcAppbmRleCAwMDYxMjQ1YzViNTJkMjVmZDVjMzU0ZmFiZTZjNWI3NmM5MTA5NDIzLi42
NWZkYTY4NTRjY2NlOGRjOTQxOTMwMDRhOWYwMjk1NDhmOThiYzVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTQ3MCw2ICs0
NzAsMTQgQEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX21vZCkKICAgICBSRVRVUk4oanNOdW1i
ZXIoanNNb2QoYSwgYikpKTsKIH0KIAorU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3BvdykKK3sK
KyAgICBCRUdJTigpOworICAgIGRvdWJsZSBhID0gT1BfQygyKS5qc1ZhbHVlKCkudG9OdW1iZXIo
ZXhlYyk7CisgICAgZG91YmxlIGIgPSBPUF9DKDMpLmpzVmFsdWUoKS50b051bWJlcihleGVjKTsK
KyAgICBSRVRVUk4oanNOdW1iZXIob3BlcmF0aW9uTWF0aFBvdyhhLCBiKSkpOworfQorCiBTTE9X
X1BBVEhfREVDTChzbG93X3BhdGhfbHNoaWZ0KQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGViYzkxMzA2
ZjgzYTgxYjdhYTJlZTBlM2IzZmJlMjkyN2U5ZmFkNjIuLjhjNzA3ODQyODAyZDZhMDNkMTI4Y2Q4
ZDI5MmFmZjczNWNkYTAzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vblNsb3dQYXRocy5oCkBAIC0yMTksNiArMjE5LDcgQEAgU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9tdWwpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zdWIp
OwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9kaXYpOwogU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9tb2QpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9w
b3cpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9sc2hpZnQpOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9yc2hpZnQpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF91cnNoaWZ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcG93LWJhc2ljcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcG93LWJhc2ljcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWY5Y2U2ZWE4NDAyYTIxZDRmZjhkN2M5ZDgw
ZDllYmEwZWY4NDdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wb3ctYmFzaWNzLmpzCkBAIC0wLDAgKzEsMjg2IEBACitmdW5jdGlvbiB2YWx1
ZXNBcmVDbG9zZShhLCBiKSB7CisgICAgcmV0dXJuIE1hdGguYWJzKGEgLyBiKSAtIDEgPCAxZS0x
MDsKK30KKworLy8gU29tZSByYW5kb20gdmFsdWVzLgorZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURv
dWJsZTEoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91
YmxlRG91YmxlMSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQxKHgsIHkpIHsKKyAgICBy
ZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDEpOworCitmdW5jdGlv
biB0ZXN0MSh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURv
dWJsZTEoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3Rl
ZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91Ymxl
RG91YmxlMSgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBh
IHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9
IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDEoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAo
IXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDEoIiArIHggKyAiLCAiICsgaW50ZWdl
clkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4
cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0MSk7Cit0ZXN0MSgzNzYuNzY1MjI3NjQz
NzcyOTYsIDEwLjgxNjk5MjI2MDUxNTY5LCA3LjMzMzk1MTkyOTEwOTI1MmUrMjcsIDUuNzYzNzg5
ODk1NzUwODllKzI1KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTIoeCwgeSkgewor
ICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlMik7CisK
K2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQyKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5Owor
fQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDIpOworZnVuY3Rpb24gdGVzdDIoeCwgeSwgZXhw
ZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGUyKHgsIHkpOworICAg
ICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTIoIiArIHggKyAi
LCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAi
ICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQ
b3dEb3VibGVJbnQyKHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShy
ZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQs
IG1hdGhQb3dEb3VibGVJbnQyKCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVz
dWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQor
fQorbm9JbmxpbmUodGVzdDIpOwordGVzdDIoMzc2Ljc2NTIyNzY0Mzc3Mjk2LCAtNS44MTY5OTIy
NjA1MTU2OSwgMS4wMzUxODAzMzExODc1NzllLTE1LCAxLjMxNzE4MjQzMTA0MDAyNjVlLTEzKTsK
KworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTMoeCwgeSkgeworICAgIHJldHVybiB4ICoq
IHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlMyk7CisKK2Z1bmN0aW9uIG1hdGhQ
b3dEb3VibGVJbnQzKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0
aFBvd0RvdWJsZUludDMpOworZnVuY3Rpb24gdGVzdDMoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3Rl
ZDIpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGUzKHgsIHkpOworICAgICAgICBpZiAoIXZhbHVl
c0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTMoIiArIHggKyAiLCAiICsgeSArICIpID0g
IiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOwor
ICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQzKHgs
IGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVk
MikpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJ
bnQzKCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3Rl
ZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVz
dDMpOwordGVzdDMoLTM3LjY3NjUyMjc2NDM3NzI5NiwgMTAuMCwgNTc2Mzc4OTg5NTc1MDg5Miwg
NTc2Mzc4OTg5NTc1MDg5Mik7CisKKy8vIEV4cG9uZW50IHplcm8uCitmdW5jdGlvbiBtYXRoUG93
RG91YmxlRG91YmxlNCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1h
dGhQb3dEb3VibGVEb3VibGU0KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDQoeCwgeSkg
eworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50NCk7Citm
dW5jdGlvbiB0ZXN0NCh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0Rv
dWJsZURvdWJsZTQoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBl
eHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93
RG91YmxlRG91YmxlNCgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBl
Y3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRl
Z2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDQoeCwgaW50ZWdlclkpOworICAgICAg
ICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDQoIiArIHggKyAiLCAiICsg
aW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8g
IiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0NCk7Cit0ZXN0NCgtMzcuNjc2
NTIyNzY0Mzc3Mjk2LCAwLCAxLCAxKTsKKworLy8gRXhwb25lbnQgbWludXMgemVyby4KK2Z1bmN0
aW9uIG1hdGhQb3dEb3VibGVEb3VibGU1KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQor
bm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTUpOworCitmdW5jdGlvbiBtYXRoUG93RG91Ymxl
SW50NSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3Vi
bGVJbnQ1KTsKK2Z1bmN0aW9uIHRlc3Q1KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQg
PSBtYXRoUG93RG91YmxlRG91YmxlNSh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9z
ZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQsIG1hdGhQb3dEb3VibGVEb3VibGU1KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1
bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9Cisg
ICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
KytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50NSh4LCBpbnRlZ2Vy
WSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50KCIgKyB4
ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVl
IGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDUpOwordGVz
dDUoLTM3LjY3NjUyMjc2NDM3NzI5NiwgLTAsIDEsIDEpOworCisvLyBFeHBvbmVudCAxLgorZnVu
Y3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTYoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9
Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlNik7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3Vi
bGVJbnQ2KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0Rv
dWJsZUludDYpOworZnVuY3Rpb24gdGVzdDYoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IG1hdGhQb3dEb3VibGVEb3VibGU2KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNs
b3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTYoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJl
c3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0K
KyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ2KHgsIGludGVn
ZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ2KCIg
KyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZh
bHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDYpOwor
dGVzdDYoLTM3LjY3NjUyMjc2NDM3NzI5NiwgMS4wLCAtMzcuNjc2NTIyNzY0Mzc3Mjk2LCAtMzcu
Njc2NTIyNzY0Mzc3Mjk2KTsKKworLy8gRXhwb25lbnQgLTEuCitmdW5jdGlvbiBtYXRoUG93RG91
YmxlRG91YmxlNyh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQ
b3dEb3VibGVEb3VibGU3KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDcoeCwgeSkgewor
ICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50Nyk7CitmdW5j
dGlvbiB0ZXN0Nyh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJs
ZURvdWJsZTcoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBl
Y3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91
YmxlRG91YmxlNygiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3Rl
ZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2Vy
WSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTcoeCwgaW50ZWdlclkpOworICAgICAg
ICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTcoIiArIHggKyAiLCAi
ICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2Ug
dG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0Nyk7Cit0ZXN0NigtMzcu
Njc2NTIyNzY0Mzc3Mjk2LCAtMS4wLCAtMC4wMjY1NDE3Mjc0OTA0NTQyOTYsIC0wLjAyNjU0MTcy
NzQ5MDQ1NDI5Nik7CisKKy8vIExldCdzIHNxdWFyZSB0aGluZ3MuCitmdW5jdGlvbiBtYXRoUG93
RG91YmxlRG91YmxlOCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1h
dGhQb3dEb3VibGVEb3VibGU4KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDgoeCwgeSkg
eworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50OCk7Citm
dW5jdGlvbiB0ZXN0OCh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0Rv
dWJsZURvdWJsZTgoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBl
eHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93
RG91YmxlRG91YmxlOCgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBl
Y3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRl
Z2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDgoeCwgaW50ZWdlclkpOworICAgICAg
ICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDgoIiArIHggKyAiLCAiICsg
aW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8g
IiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0OCk7Cit0ZXN0NygtMzcuNjc2
NTIyNzY0Mzc3Mjk2LCAyLjAsIDE0MTkuNTIwMzY3NjE0NjQwNywgMTQxOS41MjAzNjc2MTQ2NDA3
KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTkoeCwgeSkgeworICAgIHJldHVybiB4
ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlOSk7CisKK2Z1bmN0aW9uIG1h
dGhQb3dEb3VibGVJbnQ5KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUo
bWF0aFBvd0RvdWJsZUludDkpOworZnVuY3Rpb24gdGVzdDkoeCwgeSwgZXhwZWN0ZWQxLCBleHBl
Y3RlZDIpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGU5KHgsIHkpOworICAgICAgICBpZiAoIXZh
bHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTkoIiArIHggKyAiLCAiICsgeSArICIp
ID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQx
OworICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ5
KHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVj
dGVkMikpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3Vi
bGVJbnQ5KCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBl
Y3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUo
dGVzdDkpOwordGVzdDgoMzcuNjc2NTIyNzY0Mzc3Mjk2LCAyLjAsIDE0MTkuNTIwMzY3NjE0NjQw
NywgMTQxOS41MjAzNjc2MTQ2NDA3KTsKKworLy8gTGV0J3MgY3ViZSB0aGluZ3MuCitmdW5jdGlv
biBtYXRoUG93RG91YmxlRG91YmxlMTAoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citu
b0lubGluZShtYXRoUG93RG91YmxlRG91YmxlMTApOworCitmdW5jdGlvbiBtYXRoUG93RG91Ymxl
SW50MTAoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91
YmxlSW50MTApOworZnVuY3Rpb24gdGVzdDEwKHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBtYXRoUG93RG91YmxlRG91YmxlMTAoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJl
Q2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0LCBtYXRoUG93RG91YmxlRG91YmxlKCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyBy
ZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9
CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50MTAoeCwgaW50
ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludCgi
ICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2
YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q5KTsK
K3Rlc3Q5KC0zNy42NzY1MjI3NjQzNzcyOTYsIDMuMCwgLTUzNDgyLjU5MTQ0NDkzMDIzNiwgLTUz
NDgyLjU5MTQ0NDkzMDIzNik7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGUxMSh4LCB5
KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGUx
MSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQxMSh4LCB5KSB7CisgICAgcmV0dXJuIHgg
KiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQxMSk7CitmdW5jdGlvbiB0ZXN0MTEo
eCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGUxMSh4
LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGUo
IiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBj
bG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IG1hdGhQb3dEb3VibGVJbnQxMSh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVz
QXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50KCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikg
PSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7
CisgICAgfQorfQorbm9JbmxpbmUodGVzdDEwKTsKK3Rlc3QxMCgzNy42NzY1MjI3NjQzNzcyOTYs
IDMuMCwgNTM0ODIuNTkxNDQ0OTMwMjM2LCA1MzQ4Mi41OTE0NDQ5MzAyMzYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctY29oZXJlbmN5LmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctY29oZXJlbmN5LmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI5NjcxYTQyZGJkODJjZTU2OGMzYzI4NjliMThhMzA5M2Q4MTM4MjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1jb2hlcmVu
Y3kuanMKQEAgLTAsMCArMSw5NSBAQAorLy9AIHNraXAKKworLy8gVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHRoZSBwb3cgZnVuY3Rpb24gcmV0dXJucyBjb2hlcmVudCByZXN1bHRzOgorLy8gKGEpIEFj
cm9zcyBkaWZmZXJlbnQgY29tcGlsYXRpb24gdGllcnMKKy8vIChiKSBXaXRoIGludGVnZXIgZXhw
b25lbnRzIHJlcHJlc2VudGVkIGFzIGludDMyIG9yIGFzIGRvdWJsZQorCitmdW5jdGlvbiBwb3c0
MigpIHsKKyAgICByZXR1cm4geyB2YWx1ZTogMi4xICoqIDQyLCBmdGw6IGlzRmluYWxUaWVyKCkg
fTsKK30KKworZnVuY3Rpb24gYnVpbGQ0MkFzRG91YmxlKCkgeworICAgIGZ1bmN0aW9uIG9wYXF1
ZUFkZCh4LCB5KSB7IHJldHVybiB4ICsgeTsgfQorICAgIHJldHVybiBvcGFxdWVBZGQoNDIgLSAw
LjEyMywgMC4xMjMpOworfQorCit2YXIgZG91YmxlNDIgPSBidWlsZDQyQXNEb3VibGUoKTsKKwor
aWYgKGRvdWJsZTQyICE9PSA0MikKKyAgICB0aHJvdyBuZXcgRXJyb3IoIjQyIChhcyBkb3VibGUp
IHNob3VsZCBiZSA9PT0gdG8gNDIgKGFzIGludCkiKTsKKworZnVuY3Rpb24gcG93RG91YmxlNDIo
KSB7CisgICAgcmV0dXJuIHsgdmFsdWU6IDIuMSAqKiBkb3VibGU0MiwgZnRsOiBpc0ZpbmFsVGll
cigpIH07Cit9CisKK2Z1bmN0aW9uIGNsb2JiZXIoKSB7IH0KK25vSW5saW5lKGNsb2JiZXIpOwor
CitmdW5jdGlvbiBwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nKCkgeworICAgIHZhciBvYmogPSB7IHg6
IDIuMSwgeTogNDIgfTsKKyAgICBjbG9iYmVyKG9iaik7CisgICAgcmV0dXJuIHsgdmFsdWU6IG9i
ai54ICoqIG9iai55LCBmdGw6IGlzRmluYWxUaWVyKCkgfTsKK30KKworZnVuY3Rpb24gcG93RG91
YmxlNDJOb0NvbnN0YW50Rm9sZGluZygpIHsKKyAgICB2YXIgb2JqID0geyB4OiAyLjEsIHk6IGRv
dWJsZTQyIH07CisgICAgY2xvYmJlcihvYmopOworICAgIHJldHVybiB7IHZhbHVlOiBvYmoueCAq
KiBvYmoueSwgZnRsOiBpc0ZpbmFsVGllcigpIH07Cit9CisKK3ZhciByZXN1bHRzID0geyAnaml0
Jzoge30sICdkZmcnOiB7fSwgJ2Z0bCc6IHt9IH07Cit2YXIgZnVucyA9IFsKKyAgICBbICdwb3c0
MicsIHBvdzQyIF0sCisgICAgWyAncG93RG91YmxlNDInLCBwb3dEb3VibGU0MiBdLAorICAgIFsg
J3BvdzQyTm9Db25zdGFudEZvbGRpbmcnLCBwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nIF0sCisgICAg
WyAncG93RG91YmxlNDJOb0NvbnN0YW50Rm9sZGluZycsIHBvd0RvdWJsZTQyTm9Db25zdGFudEZv
bGRpbmcgXQorXTsKK3ZhciB0aWVycyA9IFsnaml0JywgJ2RmZycsICdmdGwnXTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIGZvciAodmFyIGogaW4gZnVucykgewor
ICAgICAgICB2YXIgbmFtZSA9IGZ1bnNbal1bMF07CisgICAgICAgIHZhciBmdW4gPSBmdW5zW2pd
WzFdOworICAgICAgICB2YXIgcmVzdWx0ID0gZnVuKCk7CisgICAgICAgIGlmIChyZXN1bHQuZnRs
KQorICAgICAgICAgICAgcmVzdWx0c1snZnRsJ11bbmFtZV0gPSByZXN1bHQudmFsdWU7CisgICAg
ICAgIGVsc2UgaWYgKG51bWJlck9mREZHQ29tcGlsZXMoZnVuKSA+IDApCisgICAgICAgICAgICBy
ZXN1bHRzWydkZmcnXVtuYW1lXSA9IHJlc3VsdC52YWx1ZTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmVzdWx0c1snaml0J11bbmFtZV0gPSByZXN1bHQudmFsdWU7CisgICAgfQorfQorCit2
YXIgZXJyb3JzID0gW107Cit2YXIgdmFsdWVzRm9yID0ge307Citmb3IgKHZhciBpIGluIHRpZXJz
KSB7CisgICAgdmFyIHRpZXIgPSB0aWVyc1tpXTsKKyAgICB2YXIgcmVzdWx0ID0gcmVzdWx0c1t0
aWVyXTsKKyAgICAvLyBXZSBkb24ndCBoYXZlIHRoaXMgdGllcgorICAgIGlmIChPYmplY3Qua2V5
cyhyZXN1bHQpLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgY29udGludWU7CisKKyAgICBmb3IgKHZh
ciBqIGluIGZ1bnMpIHsKKyAgICAgICAgdmFyIG5hbWUgPSBmdW5zW2pdWzBdOworICAgICAgICBp
ZiAoIShuYW1lIGluIHJlc3VsdCkpCisgICAgICAgICAgICBlcnJvcnMucHVzaChuYW1lICsgIiB3
YXMgbm90IGNvbXBpbGVkIHRvICIgKyB0aWVyKTsKKyAgICAgICAgZWxzZSBpZiAoIShuYW1lIGlu
IHZhbHVlc0ZvcikpCisgICAgICAgICAgICB2YWx1ZXNGb3JbbmFtZV0gPSB7IHZhbHVlOiByZXN1
bHRbbmFtZV0sIHRpZXJzOiBbdGllcl0gfTsKKyAgICAgICAgZWxzZSBpZiAocmVzdWx0W25hbWVd
ICE9PSB2YWx1ZXNGb3JbbmFtZV0udmFsdWUpCisgICAgICAgICAgICBlcnJvcnMucHVzaChuYW1l
ICsgIiBoYXMgZGlmZmVyZW50IHJlc3VsdHMgaW4gIiArIHRpZXIgKyAiICgiICsgcmVzdWx0W25h
bWVdICsgIikgYW5kICIgKyB2YWx1ZXNGb3JbbmFtZV0udGllcnMgKyAiICgiICsgdmFsdWVzRm9y
W25hbWVdLnZhbHVlICsgIikiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsdWVzRm9y
W25hbWVdLnRpZXJzLnB1c2godGllcik7CisgICAgfQorfQorCit2YXIgcmVmZXJlbmNlID0gZnVu
c1swXVswXTsKK3ZhciByZXN1bHQgPSB2YWx1ZXNGb3JbcmVmZXJlbmNlXS52YWx1ZTsKKworZm9y
ICh2YXIgaiBpbiBmdW5zKSB7CisgICAgdmFyIG5hbWUgPSBmdW5zW2pdWzBdOworICAgIGlmICh2
YWx1ZXNGb3JbbmFtZV0udmFsdWUgIT09IHJlc3VsdCkKKyAgICAgICAgZXJyb3JzLnB1c2gobmFt
ZSArICIgKCIgKyB2YWx1ZXNGb3JbbmFtZV0udmFsdWUgKyAiKSBhbmQgIiArIHJlZmVyZW5jZSAr
ICIgKCIgKyByZXN1bHQgKyAiKSBoYXZlIGRpZmZlcmVudCByZXN1bHRzIik7Cit9CisKK2lmIChl
cnJvcnMubGVuZ3RoID4gMCkKKyAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JzLmpvaW4oJ1xuJykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXZh
bHVhdGlvbi1vcmRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93
LWV2YWx1YXRpb24tb3JkZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1NDY0N2RkNWZhYmEwYTc1YzUzMWRm
NmUwYWNlODgwMzQwNjBjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvcG93LWV2YWx1YXRpb24tb3JkZXIuanMKQEAgLTAsMCArMSw0MCBAQAor
Ly8gQ29weXJpZ2h0IChDKSAyMDE2IFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Ky8vIFRoaXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZS4KKworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sK
KyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdi
YWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit7CisgICAgbGV0IGNhcHR1cmUgPSBbXTsKKyAg
ICBsZXQgbGVmdFZhbHVlID0geyB2YWx1ZU9mKCkgeyBjYXB0dXJlLnB1c2goImxlZnRWYWx1ZSIp
OyByZXR1cm4gMzsgfX07CisgICAgbGV0IHJpZ2h0VmFsdWUgPSB7IHZhbHVlT2YoKSB7IGNhcHR1
cmUucHVzaCgicmlnaHRWYWx1ZSIpOyByZXR1cm4gMjsgfX07CisKKyAgICAoY2FwdHVyZS5wdXNo
KCJsZWZ0IiksIGxlZnRWYWx1ZSkgKiogKyhjYXB0dXJlLnB1c2goInJpZ2h0IiksIHJpZ2h0VmFs
dWUpOworLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisvLyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlcyB0aGUgb3JkZXIKKworICAgIC8vIEV4
cGVjdGVkIHBlciBvcGVyYXRvciBldmFsdWF0aW9uIG9yZGVyOiAibGVmdCIsICJyaWdodCIsICJy
aWdodFZhbHVlIiwgImxlZnRWYWx1ZSIKKyAgICBzaG91bGRCZShjYXB0dXJlWzBdLCAibGVmdCIp
OworICAgIHNob3VsZEJlKGNhcHR1cmVbMV0sICJyaWdodCIpOworICAgIHNob3VsZEJlKGNhcHR1
cmVbMl0sICJyaWdodFZhbHVlIik7CisgICAgc2hvdWxkQmUoY2FwdHVyZVszXSwgImxlZnRWYWx1
ZSIpOworfQorCit7CisgICAgbGV0IGNhcHR1cmUgPSBbXTsKKyAgICBsZXQgbGVmdFZhbHVlID0g
eyB2YWx1ZU9mKCkgeyBjYXB0dXJlLnB1c2goImxlZnRWYWx1ZSIpOyByZXR1cm4gMzsgfX07Cisg
ICAgbGV0IHJpZ2h0VmFsdWUgPSB7IHZhbHVlT2YoKSB7IGNhcHR1cmUucHVzaCgicmlnaHRWYWx1
ZSIpOyByZXR1cm4gMjsgfX07CisKKyAgICAoKyhjYXB0dXJlLnB1c2goImxlZnQiKSwgbGVmdFZh
bHVlKSkgKiogKGNhcHR1cmUucHVzaCgicmlnaHQiKSwgcmlnaHRWYWx1ZSk7CisvLyAgIF4KKy8v
ICAgQ2hhbmdlcyB0aGUgb3JkZXIKKworICAgIC8vIEV4cGVjdGVkIHBlciBvcGVyYXRvciBldmFs
dWF0aW9uIG9yZGVyOiAibGVmdCIsICJyaWdodCIsICJyaWdodFZhbHVlIiwgImxlZnRWYWx1ZSIK
KyAgICBzaG91bGRCZShjYXB0dXJlWzBdLCAibGVmdCIpOworICAgIHNob3VsZEJlKGNhcHR1cmVb
MV0sICJsZWZ0VmFsdWUiKTsKKyAgICBzaG91bGRCZShjYXB0dXJlWzJdLCAicmlnaHQiKTsKKyAg
ICBzaG91bGRCZShjYXB0dXJlWzNdLCAicmlnaHRWYWx1ZSIpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXhwZWN0cy11cGRhdGUtZXhwcmVz
c2lvbi1vbi1saHMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1l
eHBlY3RzLXVwZGF0ZS1leHByZXNzaW9uLW9uLWxocy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmQ1MjJhYWYy
Y2U4MzZmZGI4ZTYxNGZmMGM5NjA4MjJlMmIzM2VmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lv
bi1vbi1saHMuanMKQEAgLTAsMCArMSw5NiBAQAorZnVuY3Rpb24gdGVzdFN5bnRheChzY3JpcHQp
IHsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZXJyb3Ip
IHsKKyAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpCisgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworICAgIH0K
K30KKworZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkgeworICAgIHZh
ciBlcnJvciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQor
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHN5bnRheCBlcnJvciBub3QgdGhyb3du
Iik7CisKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gbWVzc2FnZSkKKyAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30KKworeworICAgIGxl
dCB0b2tlbnMgPSBbCisgICAgICAgICctJywKKyAgICAgICAgJysnLAorICAgICAgICAnficsCisg
ICAgICAgICchJywKKyAgICAgICAgJ3R5cGVvZicsCisgICAgICAgICd2b2lkJywKKyAgICAgICAg
J2RlbGV0ZScsCisgICAgXTsKKworICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAg
ICAgICB0ZXN0U3ludGF4RXJyb3IoYAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuICR7dG9rZW59IGEgKiogYjsKKyAgICAgICAgfQorICAg
ICAgICBgLCBgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyoqJy4gRXhwZWN0ZWQgYSB1
cGRhdGUgZXhwcmVzc2lvbiBvbiB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgYW4gZXhwb25lbnRpYXRp
b24gZXhwcmVzc2lvbi5gKTsKKyAgICB9Cit9CisKK3sKKyAgICBsZXQgdG9rZW5zID0gWworICAg
ICAgICAnLScsCisgICAgICAgICcrJywKKyAgICAgICAgJ34nLAorICAgICAgICAnIScsCisgICAg
ICAgICd0eXBlb2YnLAorICAgICAgICAndm9pZCcsCisgICAgICAgICdkZWxldGUnLAorICAgIF07
CisKKyAgICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsKKyAgICAgICAgdGVzdFN5bnRheChg
CisgICAgICAgIGZ1bmN0aW9uIHBvdyhhLCBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gKCR7dG9rZW59IGEpICoqIGI7CisgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgfQorfQor
Cit7CisgICAgbGV0IHRva2VucyA9IFsKKyAgICAgICAgJysrJywKKyAgICAgICAgJy0tJywKKyAg
ICBdOworCisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAgIHRlc3RTeW50
YXgoYAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuICR7dG9rZW59IGEgKiogYjsKKyAgICAgICAgfQorICAgICAgICBgKTsKKyAgICB9Cit9
CisKK3sKKyAgICBsZXQgdG9rZW5zID0gWworICAgICAgICAnKysnLAorICAgICAgICAnLS0nLAor
ICAgIF07CisKKyAgICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsKKyAgICAgICAgdGVzdFN5
bnRheChgCisgICAgICAgIGZ1bmN0aW9uIHBvdyhhLCBiKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gYSAke3Rva2VufSAqKiBiOworICAgICAgICB9CisgICAgICAgIGApOworICAgIH0K
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWlu
dGVnZXItZXhwb25lbnQtZmFzdHBhdGguanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Bvdy1pbnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRoLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxZWUy
N2NiNmExMjI1ODNiOWY2MWY4YzkzZDE3MzhiYTY3YjU4MDIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1pbnRlZ2VyLWV4cG9uZW50LWZh
c3RwYXRoLmpzCkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIHZhbHVlc0FyZUNsb3NlKGEsIGIp
IHsKKyAgICByZXR1cm4gTWF0aC5hYnMoYSAvIGIpIC0gMSA8IDFlLTEwOworfQorCisvLyBTbWFs
bCBleHBvbmVudCB2YWx1ZXMgYXJlIGhhbmRsZWQgdGhyb3VnaCBhIHNpbXBsZXIgaW5saW5lIGxv
b3AuIFRlc3QgdGhhdCBpdCBpcyBub3Qgb2JzZXJ2YWJsZS4KK2Z1bmN0aW9uIG1hdGhQb3dEb3Vi
bGVEb3VibGVUZXN0RXhwb25lbnRGaWZ0eSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeQorfQor
bm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZVRlc3RFeHBvbmVudEZpZnR5KTsKKworZnVuY3Rp
b24gbWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5KHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50RmlmdHkpOwor
ZnVuY3Rpb24gdGVzdEV4cG9uZW50RmlmdHkoeCwgeSwgZXhwZWN0ZWQpIHsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dE
b3VibGVEb3VibGVUZXN0RXhwb25lbnRGaWZ0eSh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNB
cmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdCwgKCIgKyB4ICsgIikgKiogKCIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBl
Y3RlZCB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQ7CisgICAgfQorICAgIHZhciBpbnRlZ2Vy
WSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5KHgsIGludGVn
ZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgKCIgKyB4ICsgIikgKiogKCIgKyBp
bnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiAr
IGV4cGVjdGVkOworICAgIH0KK30KK25vSW5saW5lKHRlc3RFeHBvbmVudEZpZnR5KTsKK3Rlc3RF
eHBvbmVudEZpZnR5KDUzLjcwOTAxMTY0MTMzMTAyLCA1MC4wLCAzLjE3OTQ5NDExODEyMDE0NGUr
ODYpOwordGVzdEV4cG9uZW50RmlmdHkoNTMuNzA5MDExNjQxMzMxMDIsIC0xMC4wLCA1LjAwNjQz
Mjg0MjYyMTE5MmUtMTgpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9u
ZW50VGVuVGhvdXNhbmRzKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5Cit9Citub0lubGluZSht
YXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKTsKKworZnVuY3Rpb24g
bWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudFRlblRob3VzYW5kcyh4LCB5KSB7CisgICAgcmV0
dXJuIHggKiogeQorfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudFRlblRo
b3VzYW5kcyk7CitmdW5jdGlvbiB0ZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwgeSwgZXhwZWN0
ZWQpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwg
eSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZCkpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsICgiICsgeCArICIpICoqICgiICsgeSAr
ICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVk
OworICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnRU
ZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVl
c0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0LCAoIiArIHggKyAiKSAqKiAoIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0
ICsgIiBleHBlY3RlZCB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQ7CisgICAgfQorfQorbm9J
bmxpbmUodGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKTsKK3Rlc3RFeHBvbmVudFRlblRob3VzYW5k
cygxLjAwMSwgMTAwMDAuMCwgMjE5MTYuNjgxMzM5MDQ4MzczKTsKK3Rlc3RFeHBvbmVudFRlblRo
b3VzYW5kcygxLjAwMSwgLTEuMCwgMC45OTkwMDA5OTkwMDA5OTkxKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LW5hbi1iZWhhdmlvcnMuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZpb3JzLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkxYzcwYzRmMjYwMzIzOGQyMGI5NGFhMGE0YTlhZTk1ZTk4Yjc2MjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1uYW4t
YmVoYXZpb3JzLmpzCkBAIC0wLDAgKzEsMjA5IEBACisvLyBJZiB5IGlzIE5hTiwgdGhlIHJlc3Vs
dCBpcyBOYU4uCitmdW5jdGlvbiB0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMo
KSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSA1ICoqIE5hTjsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCA1ICoqIE5hTiA9ICIgKyByZXN1bHQ7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gaSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgaSAqKiBOYU4gPSAiICsgcmVzdWx0ICsgIiB3aXRo
IGkgPSAiICsgaTsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhw
b25lbnRTdGF0aWMpOwordGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKCk7CisK
K2Z1bmN0aW9uIG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoeCwgeSkg
eworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93SW50ZWdlckJhc2VXaXRo
TmFORXhwb25lbnREeW5hbWljKTsKK2Z1bmN0aW9uIHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBv
bmVudER5bmFtaWMoKSB7CisgICAgLy8gV2FybSB1cCB3aXRoIDIgaW50ZWdlcnMuCisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRo
UG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKDIsIDUpOworICAgICAgICBpZiAo
cmVzdWx0ICE9PSAzMikKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0
aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLCA1KSA9ICIgKyByZXN1bHQg
KyAiLCBleHBlY3RlZCAzMi4iCisgICAgfQorCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFO
RXhwb25lbnREeW5hbWljKGksIE5hTik7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0ludGVnZXJCYXNlV2l0
aE5hTkV4cG9uZW50RHluYW1pYyhpLCBOYU4pID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiAr
IGkgKyAiLCBleHBlY3RlZCBOYU4iOworICAgIH0KK30KK25vSW5saW5lKHRlc3RJbnRlZ2VyQmFz
ZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOwordGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50
RHluYW1pYygpOworCitmdW5jdGlvbiB0ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25l
bnRTdGF0aWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSA1LjUgKiogTmFOOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIDUuNSAqKiBOYU4gPSAiICsg
cmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IChpICsgMC41KSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4o
cmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgKGkgKyAwLjUp
ICoqIE5hTiA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIgKyBpOworICAgIH0KK30KK25vSW5s
aW5lKHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYyk7Cit0ZXN0Rmxv
YXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMoKTsKKworZnVuY3Rpb24gbWF0aFBv
d0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyh4LCB5KSB7CisgICAgcmV0
dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5F
eHBvbmVudER5bmFtaWMpOworZnVuY3Rpb24gdGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4
cG9uZW50RHluYW1pYygpIHsKKyAgICAvLyBXYXJtIHVwIHdpdGggMiBkb3VibGUuCisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRo
UG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKDIuNSwgNS4xKTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPT0gMTA3LjAyNzE3MDU0NTQzMTM1KQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhw
b25lbnREeW5hbWljKDIuNSwgNS4xKSA9ICIgKyByZXN1bHQgKyAiLCBleHBlY3RlZCAxMDcuMDI3
MTcwNTQ1NDMxMzUuIgorICAgIH0KKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5h
TkV4cG9uZW50RHluYW1pYyhpICsgMC41LCBOYU4pOworICAgICAgICBpZiAoIWlzTmFOKHJlc3Vs
dCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dGbG9hdGlu
Z1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoaSArIDAuNSwgTmFOKSA9ICIgKyByZXN1
bHQgKyAiIHdpdGggaSA9ICIgKyBpICsgIiwgZXhwZWN0ZWQgTmFOIjsKKyAgICB9Cit9Citub0lu
bGluZSh0ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKTsKK3Rlc3RG
bG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoKTsKKworLy8gSWYgeSBpcyAr
MCwgdGhlIHJlc3VsdCBpcyAxLCBldmVuIGlmIHggaXMgTmFOLgorLy8gSWYgeSBpcyDiiJIwLCB0
aGUgcmVzdWx0IGlzIDEsIGV2ZW4gaWYgeCBpcyBOYU4uCisvLyBJZiB4IGlzIE5hTiBhbmQgeSBp
cyBub256ZXJvLCB0aGUgcmVzdWx0IGlzIE5hTi4KK2Z1bmN0aW9uIHRlc3ROYU5CYXNlU3RhdGlj
KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gTmFOICoqIChpICsgMSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTmFOICoqIChpICsgMSkgPSAiICsg
cmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBOYU4gKiogKGkgKyAxLjUpOwor
ICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQsIE5hTiAqKiAoaSArIDEuNSkgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsg
aTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBOYU4gKiogMDsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTmFOICoqIDAgPSAiICsgcmVzdWx0Owor
ICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IE5hTiAqKiAtMDsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTmFOICoqIC0wID0gIiArIHJlc3VsdDsKKyAg
ICB9Cit9Citub0lubGluZSh0ZXN0TmFOQmFzZVN0YXRpYyk7Cit0ZXN0TmFOQmFzZVN0YXRpYygp
OworCitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMxKHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5hbWljMih4LCB5KSB7CisgICAg
cmV0dXJuIHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dOYU5CYXNlRHluYW1pYzMoeCwgeSkg
eworICAgIHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWM0
KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd05hTkJhc2VE
eW5hbWljMSk7Citub0lubGluZShtYXRoUG93TmFOQmFzZUR5bmFtaWMyKTsKK25vSW5saW5lKG1h
dGhQb3dOYU5CYXNlRHluYW1pYzMpOworbm9JbmxpbmUobWF0aFBvd05hTkJhc2VEeW5hbWljNCk7
CitmdW5jdGlvbiB0ZXN0TmFOQmFzZUR5bmFtaWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93TmFOQmFzZUR5bmFt
aWMxKE5hTiwgaSArIDEpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5CYXNlRHluYW1pYzEoTmFOLCBp
ICsgMSkgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93
TmFOQmFzZUR5bmFtaWMyKE5hTiwgaSArIDEuNSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0
KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd05hTkJhc2VE
eW5hbWljMihOYU4sIGkgKyAxLjUpID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7Cisg
ICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gbWF0aFBvd05hTkJhc2VEeW5hbWljMyhOYU4sIDApOworICAgICAgICBpZiAocmVz
dWx0ICE9PSAxKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93
TmFOQmFzZUR5bmFtaWMzKE5hTiwgMCkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dO
YU5CYXNlRHluYW1pYzQoTmFOLCAtMCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5CYXNlRHluYW1pYzQo
TmFOLCAtMCkgPSAiICsgcmVzdWx0OworICAgIH0KK30KK25vSW5saW5lKHRlc3ROYU5CYXNlRHlu
YW1pYyk7Cit0ZXN0TmFOQmFzZUR5bmFtaWMoKTsKKworLy8gSWYgYWJzKHgpIGlzIDEgYW5kIHkg
aXMgK+KIniwgdGhlIHJlc3VsdCBpcyBOYU4uCisvLyBJZiBhYnMoeCkgaXMgMSBhbmQgeSBpcyDi
iJLiiJ4sIHRoZSByZXN1bHQgaXMgTmFOLgorZnVuY3Rpb24gaW5maW5pdGVFeHBvbmVudHNTdGF0
aWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSAxICoqIE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgaWYgKCFp
c05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAxICoq
IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gKC0xKSAq
KiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgLTEgKiogTnVtYmVyLlBPU0lU
SVZFX0lORklOSVRZID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSAxICoqIE51bWJlci5ORUdBVElW
RV9JTkZJTklUWTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0LCAxICoqIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSA9ICIg
KyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewor
ICAgICAgICB2YXIgcmVzdWx0ID0gKC0xKSAqKiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Cisg
ICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdCwgLTEgKiogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID0gIiArIHJlc3VsdDsKKyAg
ICB9Cit9Citub0lubGluZShpbmZpbml0ZUV4cG9uZW50c1N0YXRpYyk7CitpbmZpbml0ZUV4cG9u
ZW50c1N0YXRpYygpOworCitmdW5jdGlvbiBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWlj
MSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dJbmZpbml0
ZUV4cG9uZW50c0R5bmFtaWMyKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorZnVuY3Rp
b24gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMoeCwgeSkgeworICAgIHJldHVybiB4
ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljNCh4LCB5
KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dJbmZpbml0ZUV4cG9u
ZW50c0R5bmFtaWMxKTsKK25vSW5saW5lKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMy
KTsKK25vSW5saW5lKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKTsKK25vSW5saW5l
KG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KTsKK2Z1bmN0aW9uIGluZmluaXRlRXhw
b25lbnRzRHluYW1pYygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMxKDEs
IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhw
b25lbnRzRHluYW1pYzEoMSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSA9ICIgKyByZXN1bHQ7
CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzIoLTEsIE51bWJlci5Q
T1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHlu
YW1pYzIoLTEsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKDEsIE51bWJlci5ORUdBVElWRV9J
TkZJTklUWSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMoMSwg
TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBv
d0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQoLTEsIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7
CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQoLTEsIE51bWJlci5O
RUdBVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KK30KK25vSW5saW5lKGluZmlu
aXRlRXhwb25lbnRzRHluYW1pYyk7CitpbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXNpbXBsZS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXNpbXBsZS5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZTVlOWNmODQ0NGRkNjAyMGI0ZTQ4ZmU1ODdhNTlhMGY5MzlkOWEzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctc2ltcGxlLmpz
CkBAIC0wLDAgKzEsMzkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworeworICAgIGxldCBpID0gMjsKKyAgICBsZXQg
aiA9IDM7CisgICAgc2hvdWxkQmUoMiAqKiAzLCA4KTsKKyAgICBzaG91bGRCZShpICoqIDMsIDgp
OworICAgIHNob3VsZEJlKDIgKiogaiwgOCk7CisgICAgc2hvdWxkQmUoaSAqKiBqLCA4KTsKK30K
KworeworICAgIHNob3VsZEJlKDIgKiogMyAqKiAzLCAxMzQyMTc3MjgpOworICAgIHNob3VsZEJl
KDIgKiogMyArIDMsIDExKTsKKyAgICBzaG91bGRCZSgyICoqIDMgKyAzICoqIDMsIDM1KTsKKyAg
ICBzaG91bGRCZSgyICoqIDMgKiAzLCAyNCk7CisgICAgc2hvdWxkQmUoMiAqKiAzICogMyAqKiAz
LCAyMTYpOworCisgICAgc2hvdWxkQmUoMiArIDMgKiogMywgMjkpOworICAgIHNob3VsZEJlKDIg
KiAzICoqIDMsIDU0KTsKK30KKworeworICAgIGxldCBpID0gMjsKKyAgICBpICoqPSA0OworICAg
IHNob3VsZEJlKGksIDE2KTsKKyAgICBpICoqPSAxICsgMTsKKyAgICBzaG91bGRCZShpLCAyNTYp
OworfQorCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgbGV0IGEgPSBNYXRo
LnJhbmRvbSgpOworICAgIGxldCBiID0gTWF0aC5yYW5kb20oKTsKKyAgICBzaG91bGRCZShhICoq
IGIsIE1hdGgucG93KGEsIGIpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvcG93LXN0YWJsZS1yZXN1bHRzLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9wb3ctc3RhYmxlLXJlc3VsdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOGZh
OWFlNjRiZTFmNjlhNjA4OTc3MjQ3NWQwNTYwNTUwN2M3MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXN0YWJsZS1yZXN1bHRzLmpzCkBA
IC0wLDAgKzEsODUgQEAKKy8vIFRoaXMgdGVzdCB2ZXJpZnkgdGhlIHJlc3VsdHMgb2YgYCoqYCBk
byBub3QgY2hhbmdlIGFzIHdlIGNoYW5nZSBvcHRpbWl6YXRpb24gdGllci4KKworZnVuY3Rpb24g
b3BhcXVlUG93KGEsIGIpCit7CisgICAgcmV0dXJuIGEgKiogYjsKK30KK25vSW5saW5lKG9wYXF1
ZVBvdyk7CisKKworbGV0IGNhc2VTdHJpbmdzID0gWworICAgICIwIiwKKyAgICAiLTAuIiwKKyAg
ICAiMC41IiwKKyAgICAiMSIsCisgICAgIjIiLAorICAgICItMC41IiwKKyAgICAiLTEiLAorICAg
ICI5OTkiLAorICAgICIxMDAwIiwKKyAgICAiMTAwMSIsCisgICAgIk5hTiIsCisgICAgIkluZmlu
aXR5IiwKKyAgICAiLUluZmluaXR5IiwKKyAgICAiTWF0aC5QSSIsCisgICAgIk1hdGguTE4yIiwK
KyAgICAiTWF0aC5MTjEwIiwKKyAgICAiTWF0aC5FIiwKKyAgICAiTWF0aC5MT0cxMEUiLAorICAg
ICJNYXRoLkxPRzJFIiwKKyAgICAiTWF0aC5TUVJUMiIKK107CitsZXQgY2FzZXMgPSBbXTsKK2Zv
ciAobGV0IGNhc2VTdHJpbmcgb2YgY2FzZVN0cmluZ3MpIHsKKyAgICBjYXNlcy5wdXNoKGV2YWwo
Y2FzZVN0cmluZykpOworfQorCitsZXQgZXhwZWN0ZWRSZXN1bHRzID0gW107CitsZXQgY29uc3Rh
bnRCYXNlRnVuY3Rpb25zID0gW107CitsZXQgY29uc3RhbnRFeHBvbmVudEZ1bmN0aW9ucyA9IFtd
OworZm9yIChsZXQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsraSkgeworICAgIGxldCBiYXNl
ID0gY2FzZXNbaV07CisKKyAgICBleHBlY3RlZFJlc3VsdHNbaV0gPSBbXTsKKyAgICBmb3IgKGxl
dCBqID0gMDsgaiA8IGNhc2VzLmxlbmd0aDsgKytqKSB7CisgICAgICAgIGxldCBleHBvbmVudCA9
IGNhc2VzW2pdOworICAgICAgICBleHBlY3RlZFJlc3VsdHNbaV1bal0gPSBiYXNlICoqIGV4cG9u
ZW50OworICAgIH0KKworICAgIGV2YWwoImNvbnN0YW50QmFzZUZ1bmN0aW9uc1tpXSA9IGZ1bmN0
aW9uIChleHBvbmVudCkgeyByZXR1cm4gKCIgKyBjYXNlU3RyaW5nc1tpXSArICIpICoqIGV4cG9u
ZW50OyB9Iik7CisgICAgZXZhbCgiY29uc3RhbnRFeHBvbmVudEZ1bmN0aW9uc1tpXSA9IGZ1bmN0
aW9uIChiYXNlKSB7IHJldHVybiBiYXNlICoqICgiICsgY2FzZVN0cmluZ3NbaV0gKyAiKTsgfSIp
OworfQorCitmdW5jdGlvbiBpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVkKQoreworICAgIGlm
IChleHBlY3RlZCA9PT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gZXhwZWN0
ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZXhwZWN0ZWQgJiYg
MSAvIGV4cGVjdGVkID09PSAtSW5maW5pdHkgJiYgMSAvIHJlc3VsdCAhPT0gLUluZmluaXR5KQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0ICE9PSByZXN1bHQ7Cit9CisKK2ZvciAobGV0IHRpZXJVcExvb3BD
b3VudGVyID0gMDsgdGllclVwTG9vcENvdW50ZXIgPCAxZTM7ICsrdGllclVwTG9vcENvdW50ZXIp
IHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
IGxldCBiYXNlID0gY2FzZXNbaV07CisgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2FzZXMu
bGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIGxldCBleHBvbmVudCA9IGNhc2VzW2pdOworICAg
ICAgICAgICAgbGV0IGV4cGVjdGVkUmVzdWx0ID0gZXhwZWN0ZWRSZXN1bHRzW2ldW2pdOworICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IG9wYXF1ZVBvdyhiYXNlLCBleHBvbmVudCk7CisgICAgICAg
ICAgICBpZiAoIWlzSWRlbnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKQorICAgICAgICAg
ICAgICAgIHRocm93IGBGYWlsZWQgb3BhcXVlUG93IHdpdGggYmFzZSA9ICR7YmFzZX0gZXhwb25l
bnQgPSAke2V4cG9uZW50fSBleHBlY3RlZCAoJHtleHBlY3RlZFJlc3VsdH0pIGdvdCAoJHtyZXN1
bHR9KWA7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0YW50QmFzZUZ1bmN0aW9uc1tpXShl
eHBvbmVudCk7CisgICAgICAgICAgICBpZiAoIWlzSWRlbnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWRS
ZXN1bHQpKQorICAgICAgICAgICAgICAgIHRocm93IGBGYWlsZWQgY29uc3RhbnRCYXNlRnVuY3Rp
b25zIHdpdGggYmFzZSA9ICR7YmFzZX0gZXhwb25lbnQgPSAke2V4cG9uZW50fSBleHBlY3RlZCAo
JHtleHBlY3RlZFJlc3VsdH0pIGdvdCAoJHtyZXN1bHR9KWA7CisKKyAgICAgICAgICAgIHJlc3Vs
dCA9IGNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnNbal0oYmFzZSk7CisgICAgICAgICAgICBpZiAo
IWlzSWRlbnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKQorICAgICAgICAgICAgICAgIHRo
cm93IGBGYWlsZWQgY29uc3RhbnRFeHBvbmVudEZ1bmN0aW9ucyB3aXRoIGJhc2UgPSAke2Jhc2V9
IGV4cG9uZW50ID0gJHtleHBvbmVudH0gZXhwZWN0ZWQgKCR7ZXhwZWN0ZWRSZXN1bHR9KSBnb3Qg
KCR7cmVzdWx0fSlgOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctdG8tbnVtYmVyLXNob3VsZC1iZS1leGVjdXRl
ZC1pbi1jb2RlLXNpZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bv
dy10by1udW1iZXItc2hvdWxkLWJlLWV4ZWN1dGVkLWluLWNvZGUtc2lkZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44NzMxMDdhNGU0OTY3OWIyYTU3MzA1ZGFlZjdkZTIyZDIxZWNjM2EwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctdG8tbnVtYmVyLXNo
b3VsZC1iZS1leGVjdXRlZC1pbi1jb2RlLXNpZGUuanMKQEAgLTAsMCArMSw3NyBAQAorZnVuY3Rp
b24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sKKyAgICBpZiAoYWN0dWFsICE9PSBleHBl
Y3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwor
fQorCit7CisgICAgbGV0IHZhbHVlID0geworICAgICAgICB2YWx1ZU9mKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICB9CisgICAgfTsKKyAg
ICBsZXQgZXJyb3IgPSBudWxsOworCisgICAgdHJ5IHsKKyAgICAgICAgMiAqKiB2YWx1ZTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgLy8gZ2xvYmFs
LCBhbmQgdmFsdWVPZi4KKyAgICBzaG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgiXG4iKS5sZW5n
dGgsIDIpOworfQorCit7CisgICAgbGV0IHZhbHVlID0geworICAgICAgICB2YWx1ZU9mKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICB9Cisg
ICAgfTsKKyAgICBsZXQgZXJyb3IgPSBudWxsOworCisgICAgdHJ5IHsKKyAgICAgICAgdmFsdWUg
KiogMjsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAg
Ly8gZ2xvYmFsLCBhbmQgdmFsdWVPZi4KKyAgICBzaG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgi
XG4iKS5sZW5ndGgsIDIpOworfQorCit7CisgICAgbGV0IHZhbHVlID0geworICAgICAgICB2YWx1
ZU9mKCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAg
ICAgICB9CisgICAgfTsKKyAgICBsZXQgZXJyb3IgPSBudWxsOworCisgICAgdHJ5IHsKKyAgICAg
ICAgTWF0aC5wb3codmFsdWUsIDIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3Ig
PSBlOworICAgIH0KKyAgICAvLyBnbG9iYWwsIE1hdGgucG93LCBhbmQgdmFsdWVPZi4KKyAgICBz
aG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgiXG4iKS5sZW5ndGgsIDMpOworfQorCit7CisgICAg
bGV0IHZhbHVlID0geworICAgICAgICB2YWx1ZU9mKCkKKyAgICAgICAgeworICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICB9CisgICAgfTsKKyAgICBsZXQgZXJyb3Ig
PSBudWxsOworCisgICAgdHJ5IHsKKyAgICAgICAgTWF0aC5wb3coMiwgdmFsdWUpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICAvLyBnbG9iYWwsIE1h
dGgucG93LCBhbmQgdmFsdWVPZi4KKyAgICBzaG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgiXG4i
KS5sZW5ndGgsIDMpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9wb3ctd2l0aC1jb25zdGFudHMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3Bvdy13aXRoLWNvbnN0YW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWU2YWY3NDFkMTY5
ODNhMWI5YjllZjMyNTc3ZDJiZDRhZGUwM2YyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctd2l0aC1jb25zdGFudHMuanMKQEAgLTAsMCAr
MSwyODUgQEAKK2Z1bmN0aW9uIGV4cG9uZW50SXNaZXJvKHgpIHsKKyAgICByZXR1cm4geCAqKiAw
OworfQorbm9JbmxpbmUoZXhwb25lbnRJc1plcm8pOworCitmdW5jdGlvbiB0ZXN0RXhwb25lbnRJ
c1plcm8oKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBleHBvbmVudElzWmVybyg1KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0g
MSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogemVyb0V4cG9uZW50KDUpIHNob3VsZCBiZSAx
LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNaZXJvKDUuNSk7CisgICAg
ICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHplcm9FeHBv
bmVudCg1LjUpIHNob3VsZCBiZSAxLCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RF
eHBvbmVudElzWmVybygpOworCisKK2Z1bmN0aW9uIGV4cG9uZW50SXNPbmUoeCkgeworICAgIHJl
dHVybiB4ICoqIDE7Cit9Citub0lubGluZShleHBvbmVudElzT25lKTsKKworZnVuY3Rpb24gdGVz
dEV4cG9uZW50SXNPbmUoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzT25lKDUpOworICAgICAgICBpZiAocmVz
dWx0ICE9PSA1KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzT25lKDUpIHNo
b3VsZCBiZSA1LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNPbmUoNS41
KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNS41KQorICAgICAgICAgICAgdGhyb3cgIkVycm9y
OiBleHBvbmVudElzT25lKDUuNSkgc2hvdWxkIGJlIDUuNSwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9Cit9Cit0ZXN0RXhwb25lbnRJc09uZSgpOworCisKK2Z1bmN0aW9uIHBvd1VzZWRBc1NxcnQo
eCkgeworICAgIHJldHVybiB4ICoqIDAuNTsKK30KK25vSW5saW5lKHBvd1VzZWRBc1NxcnQpOwor
CitmdW5jdGlvbiB0ZXN0UG93VXNlZEFzU3FydCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDFlNDsgKytpKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KDQpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSBNYXRoLnNxcnQoNCkpCisgICAgICAgICAgICB0aHJvdyAiRXJy
b3I6IHBvd1VzZWRBc1NxcnQoNCkgc2hvdWxkIGJlIDIsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAg
ICAgIHJlc3VsdCA9IHBvd1VzZWRBc1NxcnQoNC40KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0g
TWF0aC5zcXJ0KDQuNCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1VzZWRBc1NxcnQo
NCkgc2hvdWxkIGJlICIgKyBNYXRoLnNxcnQoNC40KSArICIsIHdhcyA9ICIgKyByZXN1bHQ7Cisg
ICAgICAgIGlmIChwb3dVc2VkQXNTcXJ0KEluZmluaXR5KSAhPT0gSW5maW5pdHkpCisgICAgICAg
ICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxcnQoSW5maW5pdHkpIjsKKyAgICAgICAgaWYg
KHBvd1VzZWRBc1NxcnQoLUluZmluaXR5KSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJv
dyAiRmFpbGVkIHBvd1VzZWRBc1NxcnQoLUluZmluaXR5KSI7CisgICAgICAgIGxldCBuYW5SZXN1
bHQgPSBwb3dVc2VkQXNTcXJ0KE5hTikKKyAgICAgICAgaWYgKG5hblJlc3VsdCA9PT0gbmFuUmVz
dWx0KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KE5hTikiOworICAg
ICAgICBsZXQgemVyb1Jlc3VsdCA9IHBvd1VzZWRBc1NxcnQoMC4pCisgICAgICAgIGlmICh6ZXJv
UmVzdWx0IHx8ICgxIC8gemVyb1Jlc3VsdCkgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhy
b3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KDAuKSI7CisgICAgICAgIGxldCBuZWdhdGl2ZVplcm9S
ZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KC0wKQorICAgICAgICBpZiAobmVnYXRpdmVaZXJvUmVzdWx0
IHx8ICgxIC8gbmVnYXRpdmVaZXJvUmVzdWx0KSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0
aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxcnQoLTApIjsKKyAgICB9Cit9Cit0ZXN0UG93VXNlZEFz
U3FydCgpOworCitmdW5jdGlvbiBwb3dVc2VkQXNPbmVPdmVyU3FydCh4KSB7CisgICAgcmV0dXJu
IHggKiogLTAuNTsKK30KK25vSW5saW5lKHBvd1VzZWRBc09uZU92ZXJTcXJ0KTsKKworZnVuY3Rp
b24gdGVzdFBvd1VzZWRBc09uZU92ZXJTcXJ0KCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
MWU0OyArK2kpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHBvd1VzZWRBc09uZU92ZXJTcXJ0KDQp
OworICAgICAgICBpZiAocmVzdWx0ICE9PSAwLjUpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6
IHBvd1VzZWRBc09uZU92ZXJTcXJ0KDQpIHNob3VsZCBiZSAwLjUsIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgICAgIHJlc3VsdCA9IHBvd1VzZWRBc09uZU92ZXJTcXJ0KDQuNCk7CisgICAgICAgIGlm
IChyZXN1bHQgIT09IDEvTWF0aC5zcXJ0KDQuNCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6
IHBvd1VzZWRBc09uZU92ZXJTcXJ0KDQpIHNob3VsZCBiZSAiICsgMS9NYXRoLnNxcnQoNC40KSAr
ICIsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgICAgIGlmIChwb3dVc2VkQXNPbmVPdmVyU3FydChJ
bmZpbml0eSkgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc09uZU92
ZXJTcXJ0KEluZmluaXR5KSI7CisgICAgICAgIGlmIChwb3dVc2VkQXNPbmVPdmVyU3FydCgtSW5m
aW5pdHkpICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNPbmVPdmVy
U3FydCgtSW5maW5pdHkpIjsKKyAgICAgICAgbGV0IG5hblJlc3VsdCA9IHBvd1VzZWRBc09uZU92
ZXJTcXJ0KE5hTikKKyAgICAgICAgaWYgKG5hblJlc3VsdCA9PT0gbmFuUmVzdWx0KQorICAgICAg
ICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNPbmVPdmVyU3FydChOYU4pIjsKKyAgICAgICAg
aWYgKHBvd1VzZWRBc09uZU92ZXJTcXJ0KDApICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRo
cm93ICJGYWlsZWQgcG93VXNlZEFzT25lT3ZlclNxcnQoMCkiOworICAgICAgICBpZiAocG93VXNl
ZEFzT25lT3ZlclNxcnQoLTAuKSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFp
bGVkIHBvd1VzZWRBc09uZU92ZXJTcXJ0KC0wLikiOworICAgIH0KK30KK3Rlc3RQb3dVc2VkQXNP
bmVPdmVyU3FydCgpOworCitmdW5jdGlvbiBwb3dVc2VkQXNTcXVhcmUoeCkgeworICAgIHJldHVy
biB4ICoqIDI7Cit9Citub0lubGluZShwb3dVc2VkQXNTcXVhcmUpOworCitmdW5jdGlvbiB0ZXN0
UG93VXNlZEFzU3F1YXJlKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsK
KyAgICAgICAgbGV0IHJlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZSgyKTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gNCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNlZEFzU3F1YXJlKDQp
IHNob3VsZCBiZSAyLCB3YXMgPSAiICsgcmVzdWx0OworICAgICAgICByZXN1bHQgPSBwb3dVc2Vk
QXNTcXVhcmUoNC40KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMTkuMzYwMDAwMDAwMDAwMDAz
KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNTcXVhcmUoNCkgc2hvdWxkIGJl
ICIgKyAxOS4zNjAwMDAwMDAwMDAwMDMgKyAiLCB3YXMgPSAiICsgcmVzdWx0OworICAgICAgICBy
ZXN1bHQgPSBwb3dVc2VkQXNTcXVhcmUoTWF0aC5QSSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09
IDkuODY5NjA0NDAxMDg5MzU4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNT
cXVhcmUoNCkgc2hvdWxkIGJlICIgKyA5Ljg2OTYwNDQwMTA4OTM1OCArICIsIHdhcyA9ICIgKyBy
ZXN1bHQ7CisgICAgICAgIGlmIChwb3dVc2VkQXNTcXVhcmUoSW5maW5pdHkpICE9PSBJbmZpbml0
eSkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3F1YXJlKEluZmluaXR5KSI7
CisgICAgICAgIGlmIChwb3dVc2VkQXNTcXVhcmUoLUluZmluaXR5KSAhPT0gSW5maW5pdHkpCisg
ICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZSgtSW5maW5pdHkpIjsKKyAg
ICAgICAgbGV0IG5hblJlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZShOYU4pCisgICAgICAgIGlmIChu
YW5SZXN1bHQgPT09IG5hblJlc3VsdCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNl
ZEFzU3F1YXJlKE5hTikiOworICAgICAgICBsZXQgemVyb1Jlc3VsdCA9IHBvd1VzZWRBc1NxdWFy
ZSgwLikKKyAgICAgICAgaWYgKHplcm9SZXN1bHQgfHwgKDEgLyB6ZXJvUmVzdWx0KSAhPT0gSW5m
aW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZSgwLikiOwor
ICAgICAgICBsZXQgbmVnYXRpdmVaZXJvUmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKC0wKQorICAg
ICAgICBpZiAobmVnYXRpdmVaZXJvUmVzdWx0IHx8ICgxIC8gbmVnYXRpdmVaZXJvUmVzdWx0KSAh
PT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZSgt
MCkiOworICAgIH0KK30KK3Rlc3RQb3dVc2VkQXNTcXVhcmUoKTsKKworZnVuY3Rpb24gaW50SW50
Q29uc3RhbnRzU21hbGxOdW1iZXJzKCkgeworICAgIHJldHVybiA0MiAqKiAzOworfQorZnVuY3Rp
b24gaW50SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKCkgeworICAgIC8vIFRoZSByZXN1bHQgZG9l
cyBub3QgZml0IGluIGEgaW50ZWdlci4KKyAgICByZXR1cm4gNDIgKiogNDI7Cit9CitmdW5jdGlv
biBpbnRJbnRTbWFsbENvbnN0YW50cygpIHsKKyAgICByZXR1cm4gNDIgKiogMzsKK30KK2Z1bmN0
aW9uIGludERvdWJsZUNvbnN0YW50cygpIHsKKyAgICByZXR1cm4gMTQgKiogNDIuNTsKK30KK2Z1
bmN0aW9uIGRvdWJsZURvdWJsZUNvbnN0YW50cygpIHsKKyAgICByZXR1cm4gMTMuNSAqKiA0Mi41
OworfQorZnVuY3Rpb24gZG91YmxlSW50Q29uc3RhbnRzKCkgeworICAgIHJldHVybiAxMy41ICoq
IDUyOworfQorbm9JbmxpbmUoaW50SW50Q29uc3RhbnRzU21hbGxOdW1iZXJzKTsKK25vSW5saW5l
KGludEludENvbnN0YW50c0xhcmdlTnVtYmVycyk7Citub0lubGluZShpbnREb3VibGVDb25zdGFu
dHMpOworbm9JbmxpbmUoZG91YmxlRG91YmxlQ29uc3RhbnRzKTsKK25vSW5saW5lKGRvdWJsZUlu
dENvbnN0YW50cyk7CisKK2Z1bmN0aW9uIHRlc3RCYXNlQW5kRXhwb25lbnRDb25zdGFudExpdGVy
YWxzKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IGludEludENvbnN0YW50c1NtYWxsTnVtYmVycygpOworICAgICAgICBpZiAo
cmVzdWx0ICE9PSA3NDA4OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogaW50SW50Q29uc3Rh
bnRzU21hbGxOdW1iZXJzKCkgc2hvdWxkIGJlIDc0MDg4LCB3YXMgPSAiICsgcmVzdWx0OworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IGludEludENvbnN0YW50c0xhcmdlTnVtYmVycygpOworICAgICAgICBpZiAocmVzdWx0
ICE9PSAxLjUwMTMwOTM3NTQ1Mjk2NTZlKzY4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBp
bnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMoKSBzaG91bGQgYmUgMS41MDEzMDkzNzU0NTI5NjU2
ZSs2OCwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBpbnREb3VibGVDb25zdGFudHMoKTsK
KyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNS4xMzM4MzAzODgyMDE1NzY1ZSs0OCkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogaW50RG91YmxlQ29uc3RhbnRzKCkgc2hvdWxkIGJlIDUuMTMzODMw
Mzg4MjAxNTc2NWUrNDgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZG91YmxlRG91Ymxl
Q29uc3RhbnRzKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEuMDk0NDIyODcyOTY0NzgyOWUr
NDgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGRvdWJsZURvdWJsZUNvbnN0YW50cygpIHNo
b3VsZCBiZSAxLjA5NDQyMjg3Mjk2NDc4MjllKzQ4LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IGRvdWJsZUludENvbnN0YW50cygpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA1Ljk4OTAy
MjczNTMxMTE1OGUrNTgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGRvdWJsZUludENvbnN0
YW50cygpIHNob3VsZCBiZSA1Ljk4OTAyMjczNTMxMTE1OGUrNTgsIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgfQorfQordGVzdEJhc2VBbmRFeHBvbmVudENvbnN0YW50TGl0ZXJhbHMoKTsKKworCitm
dW5jdGlvbiBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KHgpIHsKKyAgICByZXR1cm4geCAqKiA0
MjsKK30KK25vSW5saW5lKGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQpOworCitmdW5jdGlvbiB0
ZXN0RXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0ludGVnZXJDb25z
dGFudCgyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNDM5ODA0NjUxMTEwNCkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgyKSBzaG91bGQgYmUg
NDM5ODA0NjUxMTEwNCwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbnRl
Z2VyQ29uc3RhbnQoNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDIuMjczNzM2NzU0NDMyMzIw
N2UrMjkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbnRlZ2VyQ29uc3Rh
bnQoNSkgc2hvdWxkIGJlIDIuMjczNzM2NzU0NDMyMzIwN2UrMjksIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KDIuMSk7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IDM0MTM1ODIzMDY3NDEyLjQyKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBl
eHBvbmVudElzSW50ZWdlckNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIDM0MTM1ODIzMDY3NDEyLjQy
LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElzSW50ZWdlckNvbnN0
YW50KCk7CisKKworZnVuY3Rpb24gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KHgpIHsKKyAgICBy
ZXR1cm4geCAqKiA0Mi41OworfQorbm9JbmxpbmUoZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KTsK
KworZnVuY3Rpb24gdGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFudCgpIHsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJ
c0RvdWJsZUNvbnN0YW50KDIpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA2MjE5Nzc3MDIzOTUw
Ljk1KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzRG91YmxlQ29uc3RhbnQo
Mikgc2hvdWxkIGJlIDYyMTk3NzcwMjM5NTAuOTUsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQg
PSBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUu
MDg0MjI5OTQ1ODUwNDE1ZSsyOSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJ
c0RvdWJsZUNvbnN0YW50KDUpIHNob3VsZCBiZSA1LjA4NDIyOTk0NTg1MDQxNWUrMjksIHdhcyA9
ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoMi4xKTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPT0gNDk0Njc1MDcyNjExMTMuODA1KQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoMi4xKSBzaG91bGQgYmUgNDk0Njc1
MDcyNjExMTMuODA1LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElz
RG91YmxlQ29uc3RhbnQoKTsKKworCitmdW5jdGlvbiBleHBvbmVudElzSW5maW5pdHlDb25zdGFu
dCh4KSB7CisgICAgcmV0dXJuIHggKiogSW5maW5pdHk7Cit9Citub0lubGluZShleHBvbmVudElz
SW5maW5pdHlDb25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzSW5maW5pdHlDb25z
dGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoMik7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElz
SW5maW5pdHlDb25zdGFudCgyKSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCg1KTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJ
bmZpbml0eUNvbnN0YW50KDUpIHNob3VsZCBiZSBJbmZpbml0eSwgd2FzID0gIiArIHJlc3VsdDsK
KyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDIuMSk7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElz
SW5maW5pdHlDb25zdGFudCgyLjEpIHNob3VsZCBiZSBJbmZpbml0eSwgd2FzID0gIiArIHJlc3Vs
dDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoKTsKKworCitmdW5j
dGlvbiBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KHgpIHsKKyAgICByZXR1cm4g
eCAqKiAtSW5maW5pdHk7Cit9Citub0lubGluZShleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNv
bnN0YW50KTsKKworZnVuY3Rpb24gdGVzdEV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3Rh
bnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoMik7CisgICAgICAg
IGlmIChyZXN1bHQgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNO
ZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoMikgc2hvdWxkIGJlIHplcm8sIHdhcyA9ICIgKyByZXN1
bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDUpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVu
dElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDUpIHNob3VsZCBiZSB6ZXJvLCB3YXMgPSAiICsg
cmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgyLjEp
OworICAgICAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBl
eHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIHplcm8sIHdh
cyA9ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5
Q29uc3RhbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9wb3ctd2l0aC1uZXZlci1OYU4tZXhwb25lbnQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2Q2Yjk5MWFhMjAyYTQyNGNhZjI1ZDJhZjE5OWQ1OTkyZWFhMWMyZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXdpdGgtbmV2ZXItTmFO
LWV4cG9uZW50LmpzCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGV4cG9uZW50SXNOb25OYW5E
b3VibGUxKHgsIGRvdWJsZUFycmF5SW5kZXgpIHsKKyAgICB2YXIgZG91YmxlQXJyYXkgPSBbNC40
XTsKKyAgICByZXR1cm4geCAqKiBkb3VibGVBcnJheVtkb3VibGVBcnJheUluZGV4XTsKK30KK25v
SW5saW5lKGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKTsKKworZnVuY3Rpb24gZXhwb25lbnRJc05v
bk5hbkRvdWJsZTIoeCwgZG91YmxlQXJyYXkpIHsKKyAgICByZXR1cm4geCAqKiBkb3VibGVBcnJh
eVswXTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNOb25OYW5Eb3VibGUyKTsKKworZnVuY3Rpb24g
dGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNOb25OYW5Eb3Vi
bGUxKDIsIDApOworICAgICAgICBpZiAocmVzdWx0ICE9PSAyMS4xMTIxMjY1NzIzNjYzMTQpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKDIsIDApIHNo
b3VsZCBiZSAyMS4xMTIxMjY1NzIzNjYzMTQsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
ZXhwb25lbnRJc05vbk5hbkRvdWJsZTIoMywgWy0xLjVdKTsKKyAgICAgICAgaWYgKHJlc3VsdCAh
PT0gMC4xOTI0NTAwODk3Mjk4NzUyNikKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25l
bnRJc05vbk5hbkRvdWJsZTIoMywgWy0xLjVdKSBzaG91bGQgYmUgMC4xOTI0NTAwODk3Mjk4NzUy
Niwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc0RvdWJsZUNvbnN0
YW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvdGVzdDI2Mi55
YW1sIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3Rlc3QyNjIueWFtbAppbmRleCAwYzg0
NWIzNWM1NDI1OGFmMjVkOGIxYTQ4ZmU0ZTJiMWE3YWNhZjUyLi44NDVkNTRkMGE5MTMzODM4Mjli
OGM1MGM4MWRiMDA1NDJmNTJlNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvdGVzdDI2Mi55YW1sCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy90ZXN0
MjYyLnlhbWwKQEAgLTYwODIyLDExMyArNjA4MjIsMTEzIEBACiAtIHBhdGg6IHRlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9lcXVhbHMvc3ltYm9sLXN0cmljdC1lcXVhbGl0eS1jb21w
YXJpc29uLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
ZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMS5qcwotICBjbWQ6IHJ1
blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0
MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAt
b3BlcmF0b3JfQTEuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEwLmpzCiAg
IGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBs
eWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMC5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTExLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRp
b24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTEuanMKLSAgY21kOiBydW5UZXN0MjYyIDpm
YWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIg
Om5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1l
eHAtb3BlcmF0b3JfQTEyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhw
b25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTIuanMKLSAgY21kOiBydW5U
ZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1
blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5
aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTMuanMKLSAg
Y21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQor
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE0LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
MTQuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE1LmpzCi0gIGNtZDogcnVu
VGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3Qy
NjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1v
cGVyYXRvcl9BMTUuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE2LmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmct
dGhlLWV4cC1vcGVyYXRvcl9BMTYuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3Jf
QTE3LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
YXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTcuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAt
b3BlcmF0b3JfQTE4LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTguanMKLSAgY21kOiBydW5UZXN0
MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRl
c3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDog
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5n
LXRoZS1leHAtb3BlcmF0b3JfQTE5LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTkuanMKLSAgY21k
OiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBj
bWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0K
IC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9u
L2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyLmpz
Ci0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMC5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpu
b3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTIwLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMS5qcwotICBjbWQ6
IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5U
ZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1l
eHAtb3BlcmF0b3JfQTIxLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMi5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5
aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJh
dG9yX0EyMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
W10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYy
IDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0EzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhw
b25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMy5qcwotICBjbWQ6IHJ1blRl
c3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVu
VGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRo
OiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlp
bmctdGhlLWV4cC1vcGVyYXRvcl9BNC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTQuanMKLSAgY21k
OiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBj
bWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0K
IC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9u
L2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTUuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E1Lmpz
Ci0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E2LmpzCi0gIGNtZDogcnVuVGVzdDI2
MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRv
cl9BNi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
WzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
ZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNy5qcwotICBjbWQ6IHJ1
blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0
MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAt
b3BlcmF0b3JfQTcuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTguanMKLSAg
Y21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDog
cnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10
aGUtZXhwLW9wZXJhdG9yX0E4LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E5
LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQor
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBw
bHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BOS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLWFzc2lnbm1lbnQtb3BlcmF0
b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtd
CisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAt
IHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9l
eHAtYXNzaWdubWVudC1vcGVyYXRvci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLWV2YWx1YXRpb24t
b3JkZXIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtd
CiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlv
bi9leHAtb3BlcmF0b3ItZXZhbHVhdGlvbi1vcmRlci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZh
aWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6
bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXBy
ZWNlZGVuY2UtdW5hcnktZXhwcmVzc2lvbi1zZW1hbnRpY3MuanMKLSAgY21kOiBydW5UZXN0MjYy
IDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9y
bWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3ItcHJlY2VkZW5jZS11
bmFyeS1leHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVu
Y2UtdXBkYXRlLWV4cHJlc3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFp
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVuY2UtdXBkYXRl
LWV4cHJlc3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3Itc3ludGF4LWVycm9y
LWJpdG5vdC11bmFyeS1leHByZXNzaW9uLWJhc2UuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3Jt
YWwsICJTeW50YXhFcnJvciIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1zeW50YXgtZXJyb3It
Yml0bm90LXVuYXJ5LWV4cHJlc3Npb24tYmFzZS5qcwpAQCAtNjA5NTgsOSArNjA5NTgsOSBAQAog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
ZXhwLW9wZXJhdG9yLXN5bnRheC1lcnJvci12b2lkLXVuYXJ5LWV4cHJlc3Npb24tYmFzZS5qcwog
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2V4cC1vcGVyYXRvci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZnVuY3Rpb24vUzEwLjEuMV9BMV9UMi5qcwogICBjbWQ6IHJ1
blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZnVuY3Rpb24vUzEwLjEuMV9BMV9UMi5qcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284115</attachid>
            <date>2016-07-20 09:57:00 -0700</date>
            <delta_ts>2016-07-20 09:58:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159969-20160721015602.patch</filename>
            <type>text/plain</type>
            <size>98952</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NGEyNmJhYThkZjM5YzNhZWE5ZmEzYWJjNGE2MWZkNDdiNDMwMGM3Li42MDAwOGVhMDA1ZmQ1MGM2
YzVlODZhYjEwNDIwMTNhNDg2ODA5YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjcgQEAKKzIwMTYtMDctMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTN10gSW50cm9kdWNlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Np
b24gKCoqKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU5OTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRoZSBleHBvbmVudGlhdGlvbiBleHByZXNzaW9uLCBlLmcu
IGB4ICoqIHlgLgorICAgICAgICBUaGUgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiBpcyBpbnRy
b2R1Y2VkIGluIEVDTUEyNjIgMjAxNiBhbmQgRUNNQTI2MiAyMDE2CisgICAgICAgIGlzIGFscmVh
ZHkgcmVsZWFzZWQuIFNvIHRoaXMgaXMgbm90IHRoZSBkcmFmdCBzcGVjLgorCisgICAgICAgIFRo
ZSBleHBvbmVudGlhdGlvbiBleHByZXNzaW9uIGhhcyAyIGludGVyZXN0aW5nIHBvaW50cy4KKwor
ICAgICAgICAxLiBSaWdodCBhc3NvY2lhdGl2ZQorCisgICAgICAgICAgICBUbyBmb2xsb3cgdGhl
IE1hdGggZXhwcmVzc2lvbiwgdGhpcyAqKiBvcGVyYXRvciBpcyByaWdodCBhc3NvY2lhdGl2ZS4K
KyAgICAgICAgICAgIFdoZW4gd2UgZXhlY3V0ZSBgeCAqKiB5ICoqIHpgLCB0aGlzIGlzIGhhbmRs
ZWQgYXMgYHggKiogKHkgKiogeilgLCBub3QgYCh4ICoqIHkpICoqIHpgLgorICAgICAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSByaWdodCBhc3NvY2lhdGl2aXR5IHRvIHRoZSBiaW5h
cnkgb3BlcmF0b3IgYW5kIGhhbmRsZXMgaXQKKyAgICAgICAgICAgIGluIG9wZXJhdG9yIHByZWNl
ZGVuY2UgcGFyc2VyIGluIFBhcnNlci5jcHAuCisKKyAgICAgICAgMi4gTEhTIG9mIHRoZSBleHBv
bmVudGlhdGlvbiBleHByZXNzaW9uIGlzIFVwZGF0ZUV4cHJlc3Npb24KKworICAgICAgICAgICAg
RXhwb25lbnRpYXRpb25FeHByZXNzaW9uW1lpZWxkXToKKyAgICAgICAgICAgICAgICBVbmFyeUV4
cHJlc3Npb25bP1lpZWxkXQorICAgICAgICAgICAgICAgIFVwZGF0ZUV4cHJlc3Npb25bP1lpZWxk
XSAqKiBFeHBvbmVudGlhdGlvbkV4cHJlc3Npb25bP1lpZWxkXQorCisgICAgICAgICAgICBBcyB3
ZSBjYW4gc2VlLCB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIEV4cG9uZW50aWF0aW9uRXhwcmVz
c2lvbiBpcyBVcGRhdGVFeHByZXNzaW9uLCBub3QgVW5hcnlFeHByZXNzaW9uLgorICAgICAgICAg
ICAgSXQgbWVhbnMgdGhhdCBgK3ggKiogeWAgYmVjb21lcyBhIHN5bnRheCBlcnJvci4gVGhpcyBp
cyBpbnRlbnRpb25hbC4gV2l0aG91dCBzbWFsbCBmb250IGluIHRoZSBzY3JpcHQsIGAteCoqeWAK
KyAgICAgICAgICAgIGlzIGNvbmZ1c2luZyBiZXR3ZWVuIGAtKHggKiogeSlgIGFuZCBgKC14KSAq
KiB5YC4gU28gRUNNQTI2MiBpbnRlbnRpb25hbGx5IGF2b2lkIFVuYXJ5RXhwcmVzc2lvbiBoZXJl
LgorICAgICAgICAgICAgSWYgd2UgbmVlZCB0byB1c2UgYSBuZWdhdGVkIHZhbHVlLCB3ZSBuZWVk
IHRvIHdyaXRlIHBhcmVudGhlc2VzIGV4cGxpY2l0bHkgZS5nLiBgKC14KSAqKiB5YC4KKyAgICAg
ICAgICAgIEluIHRoaXMgcGF0Y2ggd2UgZW5zdXJlIHRoYXQgdGhlIGxlZnQgaGFuZCBzaWRlIGlz
IG5vdCB1bmFyeSBleHByZXNzaW9uIGJ5IGNoZWNraW5nIHRoZSBvcGVyYXRvciBpbgorICAgICAg
ICAgICAgcGFyc2VCaW5hcnlFeHByZXNzaW9uLiBUaGlzIHdvcmtzIHNpbmNlIGAqKmAgaGFzIHRo
ZSBoaWdoZXN0IG9wZXJhdG9yIHByZWNlZGVuY2UgaW4gdGhlIGJpbmFyeSBvcGVyYXRvcnMuCisK
KyAgICAgICAgV2UgaW50cm9kdWNlIGEgbmV3IGJ5dGVjb2RlLCBvcF9wb3cuIFRoYXQgc2ltcGx5
IHdvcmtzIGFzIHNpbWlsYXIgYXMgdGhlIG90aGVyIGJpbmFyeSBvcGVyYXRvcnMuCisgICAgICAg
IEFuZCBpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBBcml0aFBvdyBpbiBERkcgYW5kIGhhbmRsZWQg
aW4gREZHIGFuZCBGVEwuCisgICAgICAgIEhlcmUsIHdlIGp1c3QgaW50cm9kdWVjIGEgbmV3IGJ5
dGVjb2RlIGluc3RlYWQgb2YgY2FsbGluZyBNYXRoLnBvdy4gVGhpcyBpcyBiZWNhdXNlIHdlIHdv
dWxkIGxpa2UgdG8gZXhlY3V0ZSBUb051bWJlcgorICAgICAgICBpbiB0aGUgY2FsbGVyIHNpZGUs
IG5vdCBpbiBNYXRoLnBvdy4gQW5kIHdlIGRvbid0IHdhbnQgdG8gY29tcGlsZSAqKiBpbnRvIHRo
ZSBmb2xsb3dpbmcuCisKKyAgICAgICAgICAgIGxoc051bWJlciA9IHRvX251bWJlciAobGhzKQor
ICAgICAgICAgICAgcmhzTnVtYmVyID0gdG9fbnVtYmVyIChyaHMpCisgICAgICAgICAgICBjYWxs
IE1hdGgucG93KGxoc051bWJlciwgcmhzTnVtYmVyKQorCisgICAgICAgIFdlIGVuc3VyZWQgdGhh
dCB0aGlzIHBhdGNoIHBhc3MgYWxsIHRoZSB0ZXN0MjYyIHRlc3RzIHJlbGF0ZWQgdG8gdGhlIGV4
cG9uZW50aWF0aW9uIGV4cHJlc3Npb24uCisKKyAgICAgICAgVGhlIG9ubHkgc2Vuc2l0aXZlIHBh
cnQgdG8gdGhlIHBlcmZvcm1hbmNlIGluIHRoaXMgcGF0Y2ggaXMgdGhlIHBhcnNlciBjaGFuZ2Uu
CisgICAgICAgIFRoZSBjb2RlIGxvYWQgcGVyZm9ybWFuY2UgaW4gbXkgeDY0IGxpbnV4IGJveCAo
aGFuYXlhbWF0YSkgaXMgbmV1dHJhbC4KKworICAgICAgICAgICAgQ29sbGVjdGVkIDMwIHNhbXBs
ZXMgcGVyIGJlbmNobWFyay9WTSwgd2l0aCAzMCBWTSBpbnZvY2F0aW9ucyBwZXIgYmVuY2htYXJr
LiBFbWl0dGVkIGEgY2FsbCB0bworICAgICAgICAgICAgZ2MoKSBiZXR3ZWVuIHNhbXBsZSBtZWFz
dXJlbWVudHMuIFVzZWQgMSBiZW5jaG1hcmsgaXRlcmF0aW9uIHBlciBWTSBpbnZvY2F0aW9uIGZv
ciB3YXJtLXVwLiBVc2VkCisgICAgICAgICAgICB0aGUganNjLXNwZWNpZmljIHByZWNpc2VUaW1l
KCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVsIHRpbWluZy4gUmVwb3J0aW5nIGJl
bmNobWFyaworICAgICAgICAgICAgZXhlY3V0aW9uIHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2Ug
aW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJhc2VsaW5lICAgICAgICAgICAgICAgICAgcGF0Y2hlZAorCisgICAgICAgICAg
ICBjbG9zdXJlICAgICAgICAgICAgICAwLjYwMjg5Ky0wLjAwMjM0ICAgICAgICAgIDAuNjAyNjgr
LTAuMDA2MDMKKyAgICAgICAgICAgIGpxdWVyeSAgICAgICAgICAgICAgIDcuOTE4MjIrLTAuMDM5
NzEgICAgICAgICAgNy45MDM4MSstMC4wNDQyNAorCisgICAgICAgICAgICA8Z2VvbWV0cmljPiAg
ICAgICAgICAyLjE4NDgzKy0wLjAwNjg4ICAgICAgICAgIDIuMTgyMzMrLTAuMDEzMjggICAgICAg
ICBtaWdodCBiZSAxLjAwMTF4IGZhc3RlcgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAg
KEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OmNvbXB1
dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5j
cHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdFJlYWRNb2Rp
ZnlBc3NpZ25tZW50KToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBk
ZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYXBhYmlsaXR5TGV2
ZWwpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklU
QXJpdGhtZXRpYy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wb3cpOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBhcnNlci9BU1RC
dWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om9wZXJhdG9yU3RhY2tTaG91bGRS
ZWR1Y2UpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlUG93Tm9kZSk6CisgICAgICAg
IChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VNdWx0Tm9kZSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxk
ZXI6Om1ha2VEaXZOb2RlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6bWFrZU1vZE5vZGUp
OgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlU3ViTm9kZSk6CisgICAgICAgIChKU0M6
OkFTVEJ1aWxkZXI6Om1ha2VCaW5hcnlOb2RlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6
b3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHBh
cnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpsZXgpOgorICAgICAgICAq
IHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlBvd05vZGU6OlBvd05v
ZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW50RXhw
cmVzc2lvbik6CisgICAgICAgIChKU0M6OmlzVW5hcnlPcEV4Y2x1ZGluZ1VwZGF0ZU9wKToKKyAg
ICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzc2lvbik6Cisg
ICAgICAgIChKU0M6OmlzVW5hcnlPcCk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL1BhcnNl
clRva2Vucy5oOgorICAgICAgICAoSlNDOjppc1VwZGF0ZU9wKToKKyAgICAgICAgKEpTQzo6aXNV
bmFyeU9wKToKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlND
OjpTeW50YXhDaGVja2VyOjpvcGVyYXRvclN0YWNrUG9wKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9w
b3ctYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKHZhbHVlc0FyZUNsb3NlKToKKyAgICAgICAg
KG1hdGhQb3dEb3VibGVEb3VibGUxKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQxKToKKyAg
ICAgICAgKHRlc3QxKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGUyKToKKyAgICAgICAg
KG1hdGhQb3dEb3VibGVJbnQyKToKKyAgICAgICAgKHRlc3QyKToKKyAgICAgICAgKG1hdGhQb3dE
b3VibGVEb3VibGUzKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQzKToKKyAgICAgICAgKHRl
c3QzKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU0KToKKyAgICAgICAgKG1hdGhQb3dE
b3VibGVJbnQ0KToKKyAgICAgICAgKHRlc3Q0KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3Vi
bGU1KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQ1KToKKyAgICAgICAgKHRlc3Q1KToKKyAg
ICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU2KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQ2
KToKKyAgICAgICAgKHRlc3Q2KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU3KToKKyAg
ICAgICAgKG1hdGhQb3dEb3VibGVJbnQ3KToKKyAgICAgICAgKHRlc3Q3KToKKyAgICAgICAgKG1h
dGhQb3dEb3VibGVEb3VibGU4KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQ4KToKKyAgICAg
ICAgKHRlc3Q4KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU5KToKKyAgICAgICAgKG1h
dGhQb3dEb3VibGVJbnQ5KToKKyAgICAgICAgKHRlc3Q5KToKKyAgICAgICAgKG1hdGhQb3dEb3Vi
bGVEb3VibGUxMCk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50MTApOgorICAgICAgICAodGVz
dDEwKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGUxMSk6CisgICAgICAgIChtYXRoUG93
RG91YmxlSW50MTEpOgorICAgICAgICAodGVzdDExKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
cG93LWNvaGVyZW5jeS5qczogQWRkZWQuCisgICAgICAgIChwb3c0Mik6CisgICAgICAgIChidWls
ZDQyQXNEb3VibGUub3BhcXVlQWRkKToKKyAgICAgICAgKGJ1aWxkNDJBc0RvdWJsZSk6CisgICAg
ICAgIChwb3dEb3VibGU0Mik6CisgICAgICAgIChjbG9iYmVyKToKKyAgICAgICAgKHBvdzQyTm9D
b25zdGFudEZvbGRpbmcpOgorICAgICAgICAocG93RG91YmxlNDJOb0NvbnN0YW50Rm9sZGluZyk6
CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1ldmFsdWF0aW9uLW9yZGVyLmpzOiBBZGRlZC4K
KyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3Bvdy1leHBlY3RzLXVwZGF0ZS1leHByZXNzaW9uLW9uLWxocy5qczog
QWRkZWQuCisgICAgICAgICh0ZXN0U3ludGF4KToKKyAgICAgICAgKHRlc3RTeW50YXhFcnJvcik6
CisgICAgICAgICh0aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAobGV0LnRva2VuLm9mLnRva2Vu
cy50ZXN0U3ludGF4LnBvdyk6CisgICAgICAgICh0ZXN0U3ludGF4LnBvdyk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3Bvdy1pbnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRoLmpzOiBBZGRlZC4KKyAg
ICAgICAgKHZhbHVlc0FyZUNsb3NlKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGVUZXN0
RXhwb25lbnRGaWZ0eSk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50Rmlm
dHkpOgorICAgICAgICAodGVzdEV4cG9uZW50RmlmdHkpOgorICAgICAgICAobWF0aFBvd0RvdWJs
ZURvdWJsZVRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk6CisgICAgICAgIChtYXRoUG93RG91Ymxl
SW50VGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKToKKyAgICAgICAgKHRlc3RFeHBvbmVudFRlblRo
b3VzYW5kcyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZpb3JzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYyk6Cisg
ICAgICAgIChtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToKKyAgICAg
ICAgKHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgorICAgICAgICAodGVz
dEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKToKKyAgICAgICAgKG1hdGhQ
b3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgorICAgICAgICAodGVz
dEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk6CisgICAgICAgICh0ZXN0
TmFOQmFzZVN0YXRpYyk6CisgICAgICAgIChtYXRoUG93TmFOQmFzZUR5bmFtaWMxKToKKyAgICAg
ICAgKG1hdGhQb3dOYU5CYXNlRHluYW1pYzIpOgorICAgICAgICAobWF0aFBvd05hTkJhc2VEeW5h
bWljMyk6CisgICAgICAgIChtYXRoUG93TmFOQmFzZUR5bmFtaWM0KToKKyAgICAgICAgKHRlc3RO
YU5CYXNlRHluYW1pYyk6CisgICAgICAgIChpbmZpbml0ZUV4cG9uZW50c1N0YXRpYyk6CisgICAg
ICAgIChtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMSk6CisgICAgICAgIChtYXRoUG93
SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMik6CisgICAgICAgIChtYXRoUG93SW5maW5pdGVFeHBv
bmVudHNEeW5hbWljMyk6CisgICAgICAgIChtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWlj
NCk6CisgICAgICAgIChpbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMpOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9wb3ctc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1zdGFibGUt
cmVzdWx0cy5qczogQWRkZWQuCisgICAgICAgIChvcGFxdWVQb3cpOgorICAgICAgICAoaXNJZGVu
dGljYWwpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctdG8tbnVtYmVyLXNob3VsZC1iZS1l
eGVjdXRlZC1pbi1jb2RlLXNpZGUuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAg
ICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXdpdGgt
Y29uc3RhbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9uZW50SXNaZXJvKToKKyAgICAgICAg
KHRlc3RFeHBvbmVudElzWmVybyk6CisgICAgICAgIChleHBvbmVudElzT25lKToKKyAgICAgICAg
KHRlc3RFeHBvbmVudElzT25lKToKKyAgICAgICAgKHBvd1VzZWRBc1NxcnQpOgorICAgICAgICAo
dGVzdFBvd1VzZWRBc1NxcnQpOgorICAgICAgICAocG93VXNlZEFzT25lT3ZlclNxcnQpOgorICAg
ICAgICAodGVzdFBvd1VzZWRBc09uZU92ZXJTcXJ0KToKKyAgICAgICAgKHBvd1VzZWRBc1NxdWFy
ZSk6CisgICAgICAgICh0ZXN0UG93VXNlZEFzU3F1YXJlKToKKyAgICAgICAgKGludEludENvbnN0
YW50c1NtYWxsTnVtYmVycyk6CisgICAgICAgIChpbnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMp
OgorICAgICAgICAoaW50SW50U21hbGxDb25zdGFudHMpOgorICAgICAgICAoaW50RG91YmxlQ29u
c3RhbnRzKToKKyAgICAgICAgKGRvdWJsZURvdWJsZUNvbnN0YW50cyk6CisgICAgICAgIChkb3Vi
bGVJbnRDb25zdGFudHMpOgorICAgICAgICAodGVzdEJhc2VBbmRFeHBvbmVudENvbnN0YW50TGl0
ZXJhbHMpOgorICAgICAgICAoZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCk6CisgICAgICAgICh0
ZXN0RXhwb25lbnRJc0ludGVnZXJDb25zdGFudCk6CisgICAgICAgIChleHBvbmVudElzRG91Ymxl
Q29uc3RhbnQpOgorICAgICAgICAodGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFudCk6CisgICAg
ICAgIChleHBvbmVudElzSW5maW5pdHlDb25zdGFudCk6CisgICAgICAgICh0ZXN0RXhwb25lbnRJ
c0luZmluaXR5Q29uc3RhbnQpOgorICAgICAgICAoZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlD
b25zdGFudCk6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFu
dCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy13aXRoLW5ldmVyLU5hTi1leHBvbmVudC5q
czogQWRkZWQuCisgICAgICAgIChleHBvbmVudElzTm9uTmFuRG91YmxlMSk6CisgICAgICAgIChl
eHBvbmVudElzTm9uTmFuRG91YmxlMik6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc0RvdWJsZUNv
bnN0YW50KToKKyAgICAgICAgKiB0ZXN0cy90ZXN0MjYyLnlhbWw6CisKIDIwMTYtMDctMjAgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hPbk92ZXJm
bG93IGluIEpTQzo6WWFycjo6WWFyclBhdHRlcm5Db25zdHJ1Y3Rvcjo6c2V0dXBBbHRlcm5hdGl2
ZU9mZnNldHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QuanNvbgppbmRleCA1ZGY5OWQ5ZTljY2ViYmNkNTFkYzQ3MWE1OWIzMzI4NjUwMWEwNTQxLi4x
M2U5ODJjZTcyNGJjMmJjOWQ3YTFkNDU3MmU5NDAwNWM1NzFkYWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC0zOSw2ICszOSw3
IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9kaXYiLCAibGVuZ3RoIiA6IDUgfSwKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX21vZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3Bfc3ViIiwgImxlbmd0aCIgOiA1IH0sCisgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9wb3ciLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX2xzaGlmdCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bf
cnNoaWZ0IiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF91cnNo
aWZ0IiwgImxlbmd0aCIgOiA0IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDNhMmJiMDU3MzhhMTJiMGMwMjQyN2Q1ZGI5ODFkYTg1
NzRmNDU5N2MuLjU3MDg0NGMzNWQ5MDI1ZWU5MWFkNDY5OGJhYjliYzFhNjdmZDgzNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC0y
MDgsNiArMjA4LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNh
c2Ugb3BfZGl2OgogICAgIGNhc2Ugb3BfbW9kOgogICAgIGNhc2Ugb3Bfc3ViOgorICAgIGNhc2Ug
b3BfcG93OgogICAgIGNhc2Ugb3BfbHNoaWZ0OgogICAgIGNhc2Ugb3BfcnNoaWZ0OgogICAgIGNh
c2Ugb3BfdXJzaGlmdDoKQEAgLTQzMSw2ICs0MzIsNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0
ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQmFzaWNCbG9jayogYmxv
YwogICAgIGNhc2Ugb3BfZGl2OgogICAgIGNhc2Ugb3BfbW9kOgogICAgIGNhc2Ugb3Bfc3ViOgor
ICAgIGNhc2Ugb3BfcG93OgogICAgIGNhc2Ugb3BfbHNoaWZ0OgogICAgIGNhc2Ugb3BfcnNoaWZ0
OgogICAgIGNhc2Ugb3BfdXJzaGlmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAKaW5kZXggMmRmOWViNWIwNTBkNWEzMWU2MTUzOGQ4ZjlhOWM1YWQ0NWFi
NTNkMS4uM2Y3ZDJmMDViOTkwMDUzMmI5NmE3ZDZiMmQ2MWVkMmEzZTY4ZDhiMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEwMjQsNiArMTAy
NCwxMCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgcHJpbnRC
aW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgIm1vZCIpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9wb3c6IHsKKyAgICAgICAgICAgIHByaW50
QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwb3ciKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfc3ViOiB7CiAgICAgICAgICAgICBwcmlu
dEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAic3ViIik7CiAgICAgICAgICAgICAr
K2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCmluZGV4IGQwN2VhY2EyNGQxZmZmNDRjZjdhYTJhODQwNjQ4YmQyZGMzNTM3ZTMu
LjVjOGY5M2ZlMmEyYTQ0ZjA1NjI2MWE5NTM2ZjNkZDc2NDA4ODFlZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE5
OTMsNiArMTk5Myw5IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFJlZ2lzdGVySUQqIGVtaXRSZWFk
TW9kaWZ5QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuCiAgICAgICAgIGNhc2UgT3BN
b2RFcToKICAgICAgICAgICAgIG9wY29kZUlEID0gb3BfbW9kOwogICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgT3BQb3dFcToKKyAgICAgICAgICAgIG9wY29kZUlEID0gb3BfcG93Owor
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGRzdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMThiNGMz
MmRhMDkyZTU3MzlmMzc4OTcyNWVlY2YxYjQ0NDRkYzQ1YS4uMDI2MWJhYjY5YjA1NzU1NTFkZGUz
ZmM3ODU3ZTRlOWYxNWUyZmNhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTM4MTksNiArMzgxOSwxMyBAQCBib29sIEJ5dGVDb2Rl
UGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENP
REUob3BfbW9kKTsKICAgICAgICAgfQogCisgICAgICAgIGNhc2Ugb3BfcG93OiB7CisgICAgICAg
ICAgICBOb2RlKiBvcDEgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsy
XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIG9wMiA9IGdldChWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgc2V0KFZp
cnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9HcmFw
aChBcml0aFBvdywgb3AxLCBvcDIpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Bvdyk7
CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX2RpdjogewogICAgICAgICAgICAgTm9kZSog
b3AxID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KSk7CiAgICAgICAgICAgICBOb2RlKiBvcDIgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBiMDFiMDcwNTg3MjBmYjFhM2ViYTQ5YzQ2YzdiZGU0
OTMzOTE1MTcxLi5iYzUxMWM1M2E0NTAzZjUzNzBmNWE0ZjJiZWE0OTdjODkzNjM1NjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMjMs
NiArMTIzLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNv
ZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX25lZ2F0ZToK
ICAgICBjYXNlIG9wX211bDoKICAgICBjYXNlIG9wX21vZDoKKyAgICBjYXNlIG9wX3BvdzoKICAg
ICBjYXNlIG9wX2RpdjoKICAgICBjYXNlIG9wX2RlYnVnOgogICAgIGNhc2Ugb3BfcHJvZmlsZV90
eXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGYyN2QzOWE2ZWE4ZDk0M2I0YmU4
NjJjZGQwY2RiN2VhZWQ1YTEzNDcuLjhmZDNmNThlZDQxNmE3NzRiYjI3NjVlNGQ0ZDUzZDY4YmU5
MTgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTMwMCw2ICszMDAsNyBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9u
c3RyaWN0ZXEpCiAgICAgICAgIERFRklORV9PUChvcF9kZWMpCiAgICAgICAgIERFRklORV9PUChv
cF9pbmMpCisgICAgICAgIERFRklORV9PUChvcF9wb3cpCiAgICAgICAgIERFRklORV9PUChvcF9w
cm9maWxlX3R5cGUpCiAgICAgICAgIERFRklORV9PUChvcF9wcm9maWxlX2NvbnRyb2xfZmxvdykK
ICAgICAgICAgREVGSU5FX09QKG9wX3B1c2hfd2l0aF9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCmluZGV4IDczMTFkZmExNmI5YTRkOGY5YzE3NWNlZGVkNzM3NTllMmIyY2IxM2MuLjA5M2Q3
ZGFiZDMwM2Y1N2M0YWRiYmU1MGFkOWIyZTQwZjZmYWQ2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaApAQCAtNTY2LDYgKzU2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVt
aXRfb3BfbnN0cmljdGVxKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9kZWMo
SW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2luYyhJbnN0cnVjdGlvbiopOwor
ICAgICAgICB2b2lkIGVtaXRfb3BfcG93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1p
dF9vcF9wcm9maWxlX3R5cGUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3By
b2ZpbGVfY29udHJvbF9mbG93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9w
dXNoX3dpdGhfc2NvcGUoSW5zdHJ1Y3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IDMwMzhmZjc0OWJiMDc2NzUxYWZhY2NmOGIzZGZlZmI0
NmYwNmIwZGEuLjQ4NTVmMWQyMjMxZmYxYTQ0ZTdiZmFiNTlkMmE1YWJkNDI1NjM3MGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMTAzMiw3ICsx
MDMyLDEzIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+CiAgICAgfQogfQogCi0vKiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5EOiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwordm9pZCBKSVQ6OmVtaXRfb3BfcG93KEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQ
YXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9wb3cpOworICAgIHNs
b3dQYXRoQ2FsbC5jYWxsKCk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBFTkQ6IE9QX0FERCwgT1BfU1VCLCBPUF9NVUwsIE9QX1BPVyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gKi8KIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAwMTk5MzE1
NDU4ZWExNTIzMTg4NzExY2JhODJhNjhjMzMzZjdhNjNjLi4zZTBkYmQ4OTg2YjlkYjFhYjBhMjM1
YTM5MDg0YzEwYWVmNDU2NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xMzIwLDYgKzEzMjAsMTIgQEAgX2xsaW50
X29wX21vZDoKICAgICBkaXNwYXRjaCg0KQogCiAKK19sbGludF9vcF9wb3c6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxPcGNvZGVTbG93UGF0aChfc2xvd19wYXRoX3BvdykKKyAgICBk
aXNwYXRjaCg0KQorCisKIF9sbGludF9vcF90eXBlb2Y6CiAgICAgdHJhY2VFeGVjdXRpb24oKQog
ICAgIGNhbGxPcGNvZGVTbG93UGF0aChfc2xvd19wYXRoX3R5cGVvZikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggOWFjOTA0YWRlMzc0NThkNjgzMWUzYjk1
ZTU0YjQ2MDQ1NmVhNmQ1NC4uMTllMzYyZTc5NmRiNzUwMmU5M2IzYjQ5NjFmYjAyMWYzZDcxZDM1
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ5dGVjb2Rl
SW50cmluc2ljUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCiAjaW5jbHVkZSAi
Tm9kZUNvbnN0cnVjdG9ycy5oIgogI2luY2x1ZGUgIlN5bnRheENoZWNrZXIuaCIKICNpbmNsdWRl
ICJWYXJpYWJsZUVudmlyb25tZW50LmgiCkBAIC0xNDMsNiArMTQ0LDcgQEAgY2xhc3MgQVNUQnVp
bGRlciB7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VEZWxldGVOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQpOwog
ICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlTmVnYXRlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBFeHByZXNzaW9uTm9kZSopOwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlQml0d2lzZU5vdE5v
ZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKKyAgICBFeHByZXNz
aW9uTm9kZSogbWFrZVBvd05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5v
ZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRz
KTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZU11bHROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cyk7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VEaXZOb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBFeHByZXNzaW9uTm9kZSog
cmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1h
a2VNb2ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBF
eHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CkBAIC03ODQs
OSArNzg2LDE0IEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgICAgICBvcGVyYXRvclN0YWNrRGVw
dGgtLTsKICAgICAgICAgbV9iaW5hcnlPcGVyYXRvclN0YWNrLnJlbW92ZUxhc3QoKTsKICAgICB9
Ci0gICAgYm9vbCBvcGVyYXRvclN0YWNrSGFzSGlnaGVyUHJlY2VkZW5jZShpbnQmLCBpbnQgcHJl
Y2VkZW5jZSkKKyAgICBib29sIG9wZXJhdG9yU3RhY2tTaG91bGRSZWR1Y2UoaW50IHByZWNlZGVu
Y2UpCiAgICAgewotICAgICAgICByZXR1cm4gcHJlY2VkZW5jZSA8PSBtX2JpbmFyeU9wZXJhdG9y
U3RhY2subGFzdCgpLnNlY29uZDsKKyAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgcHJlY2VkZW5j
ZSBvZiB0aGUgb3BlcmF0b3Igc3RhY2sgaXMgdGhlIHNhbWUgdG8gdGhlIG9uZSBvZiB0aGUgZ2l2
ZW4gb3BlcmF0b3IsCisgICAgICAgIC8vIGl0IGRlcGVuZHMgb24gdGhlIGFzc29jaWF0aXZlIHdo
ZXRoZXIgd2UgcmVkdWNlIHRoZSBzdGFjay4KKyAgICAgICAgLy8gSWYgdGhlIG9wZXJhdG9yIGlz
IHJpZ2h0IGFzc29jaWF0aXZlLCB3ZSBzaG91bGQgbm90IHJlZHVjZSB0aGUgc3RhY2sgcmlnaHQg
bm93LgorICAgICAgICBpZiAocHJlY2VkZW5jZSA9PSBtX2JpbmFyeU9wZXJhdG9yU3RhY2subGFz
dCgpLnNlY29uZCkKKyAgICAgICAgICAgIHJldHVybiAhKG1fYmluYXJ5T3BlcmF0b3JTdGFjay5s
YXN0KCkuZmlyc3QgJiBSaWdodEFzc29jaWF0aXZlQmluYXJ5T3BUb2tlbkZsYWcpOworICAgICAg
ICByZXR1cm4gcHJlY2VkZW5jZSA8IG1fYmluYXJ5T3BlcmF0b3JTdGFjay5sYXN0KCkuc2Vjb25k
OwogICAgIH0KICAgICBjb25zdCBCaW5hcnlPcGVyYW5kJiBnZXRGcm9tT3BlcmFuZFN0YWNrKGlu
dCBpKSB7IHJldHVybiBtX2JpbmFyeU9wZXJhbmRTdGFja1ttX2JpbmFyeU9wZXJhbmRTdGFjay5z
aXplKCkgKyBpXTsgfQogICAgIHZvaWQgc2hyaW5rT3BlcmFuZFN0YWNrQnkoaW50JiBvcGVyYW5k
U3RhY2tEZXB0aCwgaW50IGFtb3VudCkKQEAgLTEwNDQsOCArMTA1MSwyOSBAQCBFeHByZXNzaW9u
Tm9kZSogQVNUQnVpbGRlcjo6bWFrZUJpdHdpc2VOb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sCiAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQml0d2lzZU5vdE5v
ZGUobG9jYXRpb24sIGV4cHIpOwogfQogCitFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFr
ZVBvd05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykK
K3sKKyAgICBhdXRvKiBzdHJpcHBlZEV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQbHVzKCk7Cisg
ICAgYXV0byogc3RyaXBwZWRFeHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOworCisgICAg
aWYgKHN0cmlwcGVkRXhwcjEtPmlzTnVtYmVyKCkgJiYgc3RyaXBwZWRFeHByMi0+aXNOdW1iZXIo
KSkgeworICAgICAgICBjb25zdCBOdW1iZXJOb2RlJiBudW1iZXJFeHByMSA9IHN0YXRpY19jYXN0
PE51bWJlck5vZGUmPigqc3RyaXBwZWRFeHByMSk7CisgICAgICAgIGNvbnN0IE51bWJlck5vZGUm
IG51bWJlckV4cHIyID0gc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSY+KCpzdHJpcHBlZEV4cHIyKTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZU51bWJlckZyb21CaW5hcnlPcGVyYXRpb24obG9jYXRpb24s
IG9wZXJhdGlvbk1hdGhQb3cobnVtYmVyRXhwcjEudmFsdWUoKSwgbnVtYmVyRXhwcjIudmFsdWUo
KSksIG51bWJlckV4cHIxLCBudW1iZXJFeHByMik7CisgICAgfQorCisgICAgaWYgKHN0cmlwcGVk
RXhwcjEtPmlzTnVtYmVyKCkpCisgICAgICAgIGV4cHIxID0gc3RyaXBwZWRFeHByMTsKKyAgICBp
ZiAoc3RyaXBwZWRFeHByMi0+aXNOdW1iZXIoKSkKKyAgICAgICAgZXhwcjIgPSBzdHJpcHBlZEV4
cHIyOworCisgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUG93Tm9kZShsb2NhdGlvbiwg
ZXhwcjEsIGV4cHIyLCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKK30KKwogRXhwcmVzc2lvbk5vZGUq
IEFTVEJ1aWxkZXI6Om1ha2VNdWx0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9u
LCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdo
dEhhc0Fzc2lnbm1lbnRzKQogeworICAgIC8vIEZJWE1FOiBVbmFyeSArIGNoYW5nZSB0aGUgZXZh
bHVhdGlvbiBvcmRlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU5OTY4CiAgICAgZXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsKICAgICBl
eHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwogCkBAIC0xMDY2LDYgKzEwOTQsOCBAQCBF
eHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZU11bHROb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIEV4cHJlcwogCiBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFr
ZURpdk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykK
IHsKKyAgICAvLyBGSVhNRTogVW5hcnkgKyBjaGFuZ2UgdGhlIGV2YWx1YXRpb24gb3JkZXIuCisg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2OAogICAg
IGV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQbHVzKCk7CiAgICAgZXhwcjIgPSBleHByMi0+c3Ry
aXBVbmFyeVBsdXMoKTsKIApAQCAtMTA4Miw2ICsxMTEyLDggQEAgRXhwcmVzc2lvbk5vZGUqIEFT
VEJ1aWxkZXI6Om1ha2VEaXZOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4
cHJlc3MKIAogRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VNb2ROb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lv
bk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCiB7CisgICAgLy8gRklYTUU6
IFVuYXJ5ICsgY2hhbmdlIHRoZSBldmFsdWF0aW9uIG9yZGVyLgorICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5NjgKICAgICBleHByMSA9IGV4cHIxLT5z
dHJpcFVuYXJ5UGx1cygpOwogICAgIGV4cHIyID0gZXhwcjItPnN0cmlwVW5hcnlQbHVzKCk7CiAK
QEAgLTExMDYsNiArMTEzOCw4IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlQWRk
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzCiAKIEV4cHJlc3Np
b25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlU3ViTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9v
bCByaWdodEhhc0Fzc2lnbm1lbnRzKQogeworICAgIC8vIEZJWE1FOiBVbmFyeSArIGNoYW5nZSB0
aGUgZXZhbHVhdGlvbiBvcmRlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU5OTY4CiAgICAgZXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsK
ICAgICBleHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwogCkBAIC0xMjk1LDYgKzEzMjks
OSBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUJpbmFyeU5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgaW50CiAKICAgICBjYXNlIE1PRDoKICAgICAgICAgcmV0
dXJuIG1ha2VNb2ROb2RlKGxvY2F0aW9uLCBsaHMuZmlyc3QsIHJocy5maXJzdCwgcmhzLnNlY29u
ZC5oYXNBc3NpZ25tZW50KTsKKworICAgIGNhc2UgUE9XOgorICAgICAgICByZXR1cm4gbWFrZVBv
d05vZGUobG9jYXRpb24sIGxocy5maXJzdCwgcmhzLmZpcnN0LCByaHMuc2Vjb25kLmhhc0Fzc2ln
bm1lbnQpOwogICAgIH0KICAgICBDUkFTSCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA1Yzc5NjczN2NjNDkyYWE1YzAwM2QyMGZmZTVl
YmE5YmQ3ZDdkYzlhLi5iMzZiM2FhOTMwOTI1ZjQ4OWIwYjg0M2NjMzgyZWMwYTM3ZjVlMWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtMTk1Niw2ICsxOTU2LDE2
IEBAIEpTVG9rZW5UeXBlIExleGVyPFQ+OjpsZXgoSlNUb2tlbiogdG9rZW5SZWNvcmQsIHVuc2ln
bmVkIGxleGVyRmxhZ3MsIGJvb2wgc3RyaWN0CiAgICAgICAgICAgICB0b2tlbiA9IE1VTFRFUVVB
TDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGlmIChVTkxJS0VMWSht
X2N1cnJlbnQgPT0gJyonKSkgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAgIGlm
IChtX2N1cnJlbnQgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAg
ICAgICAgICB0b2tlbiA9IFBPV0VRVUFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgdG9rZW4gPSBQT1c7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQogICAgICAgICB0b2tlbiA9IFRJTUVTOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENoYXJhY3RlclNsYXNoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVD
b25zdHJ1Y3RvcnMuaAppbmRleCA3ZjU0NmFiMGIwMTc3NWUwNGNlMjNjYzhmNThkODY4MjE0ZWI1
NDBhLi41ZDNmM2M5MjYxOTYzODU3NTU2OWI3OTdkYmRiNGY3OWMxMjZjNzY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtNDk3LDYg
KzQ5NywxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCisgICAgaW5saW5lIFBv
d05vZGU6OlBvd05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lv
bk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25t
ZW50cykKKyAgICAgICAgOiBCaW5hcnlPcE5vZGUobG9jYXRpb24sIFJlc3VsdFR5cGU6Om51bWJl
clR5cGUoKSwgZXhwcjEsIGV4cHIyLCBvcF9wb3csIHJpZ2h0SGFzQXNzaWdubWVudHMpCisgICAg
eworICAgIH0KKwogICAgIGlubGluZSBNdWx0Tm9kZTo6TXVsdE5vZGUoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykKICAgICAgICAgOiBCaW5hcnlPcE5vZGUo
bG9jYXRpb24sIFJlc3VsdFR5cGU6Om51bWJlclR5cGUoKSwgZXhwcjEsIGV4cHIyLCBvcF9tdWws
IHJpZ2h0SGFzQXNzaWdubWVudHMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rl
cy5oCmluZGV4IDFkYzc0ZTJjNWIyYTE3MjNmM2Y0YzhiMTJjZjhhYjJkYTAwZmZjZjkuLjFlMDg4
Mjc5ZmM3MjRjYTkzYjJiNjMzZmYwNzljYzNhZTMwMTRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKQEAgLTY3LDYgKzY3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IE9wWE9yRXEsCiAgICAgICAgIE9wT3JFcSwKICAgICAgICAgT3BNb2RFcSwKKyAgICAgICAgT3BQ
b3dFcSwKICAgICAgICAgT3BMU2hpZnQsCiAgICAgICAgIE9wUlNoaWZ0LAogICAgICAgICBPcFVS
U2hpZnQKQEAgLTEwMzksNiArMTA0MCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9v
bCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CiAgICAgfTsKIAorICAgIGNsYXNzIFBvd05vZGUgOiBw
dWJsaWMgQmluYXJ5T3BOb2RlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFBvd05vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CisgICAgfTsKKwogICAgIGNsYXNzIE11
bHROb2RlIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBNdWx0
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJl
c3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA0ZWVhZTE0ODAwNDY1MzZjZjIyOGUwZDc4
Mjg2YzhmNTRmOTE5NmIyLi5kOWYxMDU4ODM2N2Q0ZWI3ODVkMDUzYjdjYWU5MjA0ZDc1NTkxZmY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zMTI2LDYgKzMx
MjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBh
cnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBjYXNlIFhPUkVRVUFMOiBv
cCA9IE9wWE9yRXE7IGJyZWFrOwogICAgICAgICBjYXNlIE9SRVFVQUw6IG9wID0gT3BPckVxOyBi
cmVhazsKICAgICAgICAgY2FzZSBNT0RFUVVBTDogb3AgPSBPcE1vZEVxOyBicmVhazsKKyAgICAg
ICAgY2FzZSBQT1dFUVVBTDogb3AgPSBPcFBvd0VxOyBicmVhazsKICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CkBAIC0zMjE4LDkgKzMyMTksMTEgQEAg
dGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VDb25kaXRpb25hbEUKICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVDb25kaXRp
b25hbEV4cHIobG9jYXRpb24sIGNvbmQsIGxocywgcmhzKTsKIH0KIAotQUxXQVlTX0lOTElORSBz
dGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCitBTFdBWVNfSU5MSU5FIHN0
YXRpYyBib29sIGlzVW5hcnlPcEV4Y2x1ZGluZ1VwZGF0ZU9wKEpTVG9rZW5UeXBlIHRva2VuKQog
ewotICAgIHJldHVybiB0b2tlbiAmIFVuYXJ5T3BUb2tlbkZsYWc7CisgICAgaWYgKGlzVXBkYXRl
T3AodG9rZW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzVW5hcnlPcCh0
b2tlbik7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CkBAIC0zMjQxLDEwICsz
MjQ0LDM1IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgd2hpbGUgKHRydWUpIHsKICAg
ICAgICAgSlNUZXh0UG9zaXRpb24gZXhwclN0YXJ0ID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7CiAg
ICAgICAgIGludCBpbml0aWFsQXNzaWdubWVudHMgPSBtX3BhcnNlclN0YXRlLmFzc2lnbm1lbnRD
b3VudDsKKyAgICAgICAgSlNUb2tlblR5cGUgbGVhZGluZ1Rva2VuVHlwZUZvclVuYXJ5RXhwcmVz
c2lvbiA9IG1fdG9rZW4ubV90eXBlOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBjdXJyZW50ID0g
cGFyc2VVbmFyeUV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGN1cnJl
bnQsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogICAgICAgICAKICAgICAgICAgY29udGV4
dC5hcHBlbmRCaW5hcnlFeHByZXNzaW9uSW5mbyhvcGVyYW5kU3RhY2tEZXB0aCwgY3VycmVudCwg
ZXhwclN0YXJ0LCBsYXN0VG9rZW5FbmRQb3NpdGlvbigpLCBsYXN0VG9rZW5FbmRQb3NpdGlvbigp
LCBpbml0aWFsQXNzaWdubWVudHMgIT0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQpOwor
CisgICAgICAgIC8vIDEyLjYgaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtZXhw
LW9wZXJhdG9yCisgICAgICAgIC8vIEV4cG9uZW50aWF0aW9uRXhwcmVzaW9uIGlzIGRlc2NyaWJl
ZCBhcyBmb2xsb3dzLgorICAgICAgICAvLworICAgICAgICAvLyAgICAgRXhwb25lbnRpYXRpb25F
eHByZXNzaW9uW1lpZWxkXToKKyAgICAgICAgLy8gICAgICAgICBVbmFyeUV4cHJlc3Npb25bP1lp
ZWxkXQorICAgICAgICAvLyAgICAgICAgIFVwZGF0ZUV4cHJlc3Npb25bP1lpZWxkXSAqKiBFeHBv
bmVudGlhdGlvbkV4cHJlc3Npb25bP1lpZWxkXQorICAgICAgICAvLworICAgICAgICAvLyBBcyB3
ZSBjYW4gc2VlLCB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIEV4cG9uZW50aWF0aW9uRXhwcmVz
c2lvbiBpcyBVcGRhdGVFeHByZXNzaW9uLCBub3QgVW5hcnlFeHByZXNzaW9uLgorICAgICAgICAv
LyBTbyBwbGFjaW5nIFVuYXJ5RXhwcmVzc2lvbiBub3QgaW5jbHVkZWQgaW4gVXBkYXRlRXhwcmVz
c2lvbiBoZXJlIGlzIGEgc3ludGF4IGVycm9yLgorICAgICAgICAvLyBUaGlzIGlzIGludGVudGlv
bmFsLiBGb3IgZXhhbXBsZSwgaWYgVW5hcnlFeHByZXNzaW9uIGlzIGFsbG93ZWQsIHdlIGNhbiBo
YXZlIHRoZSBjb2RlIGxpa2UgYC14Kip5YC4KKyAgICAgICAgLy8gQnV0IHRoaXMgaXMgY29uZnVz
aW5nOiBgLSh4Kip5KWAgT1IgYCgteCkqKnlgLCB3aGljaCBpbnRlcnByZXRhdGlvbiBpcyBjb3Jy
ZWN0PworICAgICAgICAvLyBUbyBhdm9pZCB0aGlzIHByb2JsZW0sIEVDTUEyNjIgbWFrZXMgdW5w
YXJlbnRoZXNpemVkIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24gYXMgb3BlcmFuZCBvZiB1bmFy
eSBvcGVyYXRvcnMgYW4gZWFybHkgZXJyb3IuCisgICAgICAgIC8vIE1vcmUgcmF0aW9uYWxlOiBo
dHRwczovL21haWwubW96aWxsYS5vcmcvcGlwZXJtYWlsL2VzLWRpc2N1c3MvMjAxNS1TZXB0ZW1i
ZXIvMDQ0MjMyLmh0bWwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gSGVyZSwgd2UgZ3VhcmFudGVl
IHRoYXQgdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHRoaXMgZXhwcmVzc2lvbiBpcyBub3QgdW5hcnkg
ZXhwcmVzc2lvbiBieSBjaGVja2luZyB0aGUgbGVhZGluZyBvcGVyYXRvciBvZiB0aGUgcGFyc2VV
bmFyeUV4cHJlc3Npb24uCisgICAgICAgIC8vIFRoaXMgY2hlY2sganVzdCB3b3Jrcy4gTGV0J3Mg
Y29uc2lkZXIgdGhlIGV4YW1wbGUsCisgICAgICAgIC8vICAgICB5IDw+IC14ICoqIHoKKyAgICAg
ICAgLy8gICAgICAgICAgXgorICAgICAgICAvLyAgICAgICAgICBDaGVjayB0aGlzLgorICAgICAg
ICAvLyBJZiB0aGUgYmluYXJ5IG9wZXJhdG9yIDw+IGhhcyBoaWdoZXIgcHJlY2VkZW5jZSB0aGFu
IG9uZSBvZiAiKioiLCB0aGlzIGNoZWNrIGRvZXMgbm90IHdvcmsuCisgICAgICAgIC8vIEJ1dCBp
dCdzIE9LIGZvciAqKiBiZWNhdXNlIHRoZSBvcGVyYXRvciAiKioiIGhhcyB0aGUgaGlnaGVzdCBv
cGVyYXRvciBwcmVjZWRlbmNlIGluIHRoZSBiaW5hcnkgb3BlcmF0b3JzLgorICAgICAgICBmYWls
SWZUcnVlKG1hdGNoKFBPVykgJiYgaXNVbmFyeU9wRXhjbHVkaW5nVXBkYXRlT3AobGVhZGluZ1Rv
a2VuVHlwZUZvclVuYXJ5RXhwcmVzc2lvbiksICJFeHBlY3RlZCBhIHVwZGF0ZSBleHByZXNzaW9u
IG9uIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiBhbiBleHBvbmVudGlhdGlvbiBleHByZXNzaW9uIik7
CisKICAgICAgICAgaW50IHByZWNlZGVuY2UgPSBpc0JpbmFyeU9wZXJhdG9yKG1fdG9rZW4ubV90
eXBlKTsKICAgICAgICAgaWYgKCFwcmVjZWRlbmNlKQogICAgICAgICAgICAgYnJlYWs7CkBAIC0z
MjUzLDcgKzMyODEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNz
aW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4cHJlcwogICAgICAgICBpbnQgb3Bl
cmF0b3JUb2tlbiA9IG1fdG9rZW4ubV90eXBlOwogICAgICAgICBuZXh0KFRyZWVCdWlsZGVyOjpE
b250QnVpbGRTdHJpbmdzKTsKICAgICAgICAgCi0gICAgICAgIHdoaWxlIChvcGVyYXRvclN0YWNr
RGVwdGggJiYgIGNvbnRleHQub3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVuY2Uob3BlcmF0
b3JTdGFja0RlcHRoLCBwcmVjZWRlbmNlKSkgeworICAgICAgICB3aGlsZSAob3BlcmF0b3JTdGFj
a0RlcHRoICYmIGNvbnRleHQub3BlcmF0b3JTdGFja1Nob3VsZFJlZHVjZShwcmVjZWRlbmNlKSkg
ewogICAgICAgICAgICAgQVNTRVJUKG9wZXJhbmRTdGFja0RlcHRoID4gMSk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpCaW5hcnlPcGVyYW5kIHJocyA9
IGNvbnRleHQuZ2V0RnJvbU9wZXJhbmRTdGFjaygtMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCBhZmY0YTMwMTMzYzc1MWU2MWZhZjEyM2VkNTY4
MGU5MGRhOTY0NzE3Li5lYjI2M2JiMmNmYjVkNzYzYWNlZjc5YzY5Y2QyOGY4MjNjMmE3ZTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTQxLDcg
KzQxLDggQEAgZW51bSB7CiAgICAgQmluYXJ5T3BUb2tlbkFsbG93c0luUHJlY2VkZW5jZUFkZGl0
aW9uYWxTaGlmdCA9IDQsCiAgICAgQmluYXJ5T3BUb2tlblByZWNlZGVuY2VNYXNrID0gMTUgPDwg
QmluYXJ5T3BUb2tlblByZWNlZGVuY2VTaGlmdCwKICAgICBFcnJvclRva2VuRmxhZyA9IDEgPDwg
KEJpbmFyeU9wVG9rZW5BbGxvd3NJblByZWNlZGVuY2VBZGRpdGlvbmFsU2hpZnQgKyBCaW5hcnlP
cFRva2VuUHJlY2VkZW5jZVNoaWZ0ICsgNyksCi0gICAgVW50ZXJtaW5hdGVkRXJyb3JUb2tlbkZs
YWcgPSBFcnJvclRva2VuRmxhZyA8PCAxCisgICAgVW50ZXJtaW5hdGVkRXJyb3JUb2tlbkZsYWcg
PSBFcnJvclRva2VuRmxhZyA8PCAxLAorICAgIFJpZ2h0QXNzb2NpYXRpdmVCaW5hcnlPcFRva2Vu
RmxhZyA9IFVudGVybWluYXRlZEVycm9yVG9rZW5GbGFnIDw8IDEKIH07CiAKICNkZWZpbmUgQklO
QVJZX09QX1BSRUNFREVOQ0UocHJlYykgKCgocHJlYykgPDwgQmluYXJ5T3BUb2tlblByZWNlZGVu
Y2VTaGlmdCkgfCAoKHByZWMpIDw8IChCaW5hcnlPcFRva2VuUHJlY2VkZW5jZVNoaWZ0ICsgQmlu
YXJ5T3BUb2tlbkFsbG93c0luUHJlY2VkZW5jZUFkZGl0aW9uYWxTaGlmdCkpKQpAQCAtMTA5LDYg
KzExMCw3IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIFVSU0hJRlRFUVVBTCwKICAgICBBTkRF
UVVBTCwKICAgICBNT0RFUVVBTCwKKyAgICBQT1dFUVVBTCwKICAgICBYT1JFUVVBTCwKICAgICBP
UkVRVUFMLAogICAgIERPVERPVERPVCwKQEAgLTExOCwxMCArMTIwLDEwIEBAIGVudW0gSlNUb2tl
blR5cGUgewogICAgIC8vIEJlZ2luIHRhZ2dlZCB0b2tlbnMKICAgICBQTFVTUExVUyA9IDAgfCBV
bmFyeU9wVG9rZW5GbGFnLAogICAgIE1JTlVTTUlOVVMgPSAxIHwgVW5hcnlPcFRva2VuRmxhZywK
LSAgICBFWENMQU1BVElPTiA9IDIgfCBVbmFyeU9wVG9rZW5GbGFnLAotICAgIFRJTERFID0gMyB8
IFVuYXJ5T3BUb2tlbkZsYWcsCi0gICAgQVVUT1BMVVNQTFVTID0gNCB8IFVuYXJ5T3BUb2tlbkZs
YWcsCi0gICAgQVVUT01JTlVTTUlOVVMgPSA1IHwgVW5hcnlPcFRva2VuRmxhZywKKyAgICBBVVRP
UExVU1BMVVMgPSAyIHwgVW5hcnlPcFRva2VuRmxhZywKKyAgICBBVVRPTUlOVVNNSU5VUyA9IDMg
fCBVbmFyeU9wVG9rZW5GbGFnLAorICAgIEVYQ0xBTUFUSU9OID0gNCB8IFVuYXJ5T3BUb2tlbkZs
YWcsCisgICAgVElMREUgPSA1IHwgVW5hcnlPcFRva2VuRmxhZywKICAgICBUWVBFT0YgPSA2IHwg
VW5hcnlPcFRva2VuRmxhZyB8IEtleXdvcmRUb2tlbkZsYWcsCiAgICAgVk9JRFRPS0VOID0gNyB8
IFVuYXJ5T3BUb2tlbkZsYWcgfCBLZXl3b3JkVG9rZW5GbGFnLAogICAgIERFTEVURVRPS0VOID0g
OCB8IFVuYXJ5T3BUb2tlbkZsYWcgfCBLZXl3b3JkVG9rZW5GbGFnLApAQCAtMTQ4LDYgKzE1MCw3
IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIFRJTUVTID0gMjAgfCBCSU5BUllfT1BfUFJFQ0VE
RU5DRSgxMCksCiAgICAgRElWSURFID0gMjEgfCBCSU5BUllfT1BfUFJFQ0VERU5DRSgxMCksCiAg
ICAgTU9EID0gMjIgfCBCSU5BUllfT1BfUFJFQ0VERU5DRSgxMCksCisgICAgUE9XID0gMjMgfCBC
SU5BUllfT1BfUFJFQ0VERU5DRSgxMSkgfCBSaWdodEFzc29jaWF0aXZlQmluYXJ5T3BUb2tlbkZs
YWcsIC8vIE1ha2Ugc3VyZSB0aGF0IFBPVyBoYXMgdGhlIGhpZ2hlc3Qgb3BlcmF0b3IgcHJlY2Vk
ZW5jZS4KICAgICBFUlJPUlRPSyA9IDAgfCBFcnJvclRva2VuRmxhZywKICAgICBVTlRFUk1JTkFU
RURfSURFTlRJRklFUl9FU0NBUEVfRVJST1JUT0sgPSAwIHwgRXJyb3JUb2tlbkZsYWcgfCBVbnRl
cm1pbmF0ZWRFcnJvclRva2VuRmxhZywKICAgICBJTlZBTElEX0lERU5USUZJRVJfRVNDQVBFX0VS
Uk9SVE9LID0gMSB8IEVycm9yVG9rZW5GbGFnLApAQCAtMjIyLDYgKzIyNSwxNiBAQCBzdHJ1Y3Qg
SlNUb2tlbiB7CiAgICAgSlNUZXh0UG9zaXRpb24gbV9lbmRQb3NpdGlvbjsKIH07CiAKK0FMV0FZ
U19JTkxJTkUgYm9vbCBpc1VwZGF0ZU9wKEpTVG9rZW5UeXBlIHRva2VuKQoreworICAgIHJldHVy
biB0b2tlbiA+PSBQTFVTUExVUyAmJiB0b2tlbiA8PSBBVVRPTUlOVVNNSU5VUzsKK30KKworQUxX
QVlTX0lOTElORSBib29sIGlzVW5hcnlPcChKU1Rva2VuVHlwZSB0b2tlbikKK3sKKyAgICByZXR1
cm4gdG9rZW4gJiBVbmFyeU9wVG9rZW5GbGFnOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAog
I2VuZGlmIC8vIFBhcnNlclRva2Vuc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oCmluZGV4IGJmMGQ4ZmZmNzJiM2JlNjJmZTIzZWUzYTEyZTQ3ZjliOGM0
OWUyNTAuLjAzNzgyY2U0YWVlOTUyZWQyNWRhOWIzMmVlYzJjZDBjN2QwMzk3OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCkBAIC0zMDEsNyArMzAx
LDcgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgCiAgICAgLy8gTG9naWMgdG8gaGFuZGxl
IGRhdGFzdHJ1Y3R1cmVzIHVzZWQgZHVyaW5nIHBhcnNpbmcgb2YgYmluYXJ5IGV4cHJlc3Npb25z
CiAgICAgdm9pZCBvcGVyYXRvclN0YWNrUG9wKGludCYgb3BlcmF0b3JTdGFja0RlcHRoKSB7IG9w
ZXJhdG9yU3RhY2tEZXB0aC0tOyB9Ci0gICAgYm9vbCBvcGVyYXRvclN0YWNrSGFzSGlnaGVyUHJl
Y2VkZW5jZShpbnQmLCBpbnQpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIG9wZXJhdG9yU3Rh
Y2tTaG91bGRSZWR1Y2UoaW50KSB7IHJldHVybiB0cnVlOyB9CiAgICAgQmluYXJ5T3BlcmFuZCBn
ZXRGcm9tT3BlcmFuZFN0YWNrKGludCkgeyByZXR1cm4gbV90b3BCaW5hcnlFeHByOyB9CiAgICAg
dm9pZCBzaHJpbmtPcGVyYW5kU3RhY2tCeShpbnQmIG9wZXJhbmRTdGFja0RlcHRoLCBpbnQgYW1v
dW50KSB7IG9wZXJhbmRTdGFja0RlcHRoIC09IGFtb3VudDsgfQogICAgIHZvaWQgYXBwZW5kQmlu
YXJ5T3BlcmF0aW9uKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCYgb3BlcmFuZFN0YWNrRGVw
dGgsIGludCYsIEJpbmFyeU9wZXJhbmQsIEJpbmFyeU9wZXJhbmQpIHsgb3BlcmFuZFN0YWNrRGVw
dGgrKzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAKaW5kZXggMDA2MTI0NWM1YjUyZDI1ZmQ1YzM1NGZhYmU2YzViNzZjOTEwOTQyMy4u
NjVmZGE2ODU0Y2NjZThkYzk0MTkzMDA0YTlmMDI5NTQ4Zjk4YmM1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC00NzAsNiAr
NDcwLDE0IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9tb2QpCiAgICAgUkVUVVJOKGpzTnVt
YmVyKGpzTW9kKGEsIGIpKSk7CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wb3cpCit7
CisgICAgQkVHSU4oKTsKKyAgICBkb3VibGUgYSA9IE9QX0MoMikuanNWYWx1ZSgpLnRvTnVtYmVy
KGV4ZWMpOworICAgIGRvdWJsZSBiID0gT1BfQygzKS5qc1ZhbHVlKCkudG9OdW1iZXIoZXhlYyk7
CisgICAgUkVUVVJOKGpzTnVtYmVyKG9wZXJhdGlvbk1hdGhQb3coYSwgYikpKTsKK30KKwogU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX2xzaGlmdCkKIHsKICAgICBCRUdJTigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAppbmRleCBlYmM5MTMw
NmY4M2E4MWI3YWEyZWUwZTNiM2ZiZTI5MjdlOWZhZDYyLi44YzcwNzg0MjgwMmQ2YTAzZDEyOGNk
OGQyOTJhZmY3MzVjZGEwMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuaApAQCAtMjE5LDYgKzIxOSw3IEBAIFNMT1dfUEFUSF9ISURERU5f
REVDTChzbG93X3BhdGhfbXVsKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfc3Vi
KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGl2KTsKIFNMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfbW9kKTsKK1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
cG93KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbHNoaWZ0KTsKIFNMT1dfUEFU
SF9ISURERU5fREVDTChzbG93X3BhdGhfcnNoaWZ0KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfdXJzaGlmdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3Bvdy1iYXNpY3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Bvdy1iYXNpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FmOWNlNmVhODQwMmEyMWQ0ZmY4ZDdjOWQ4
MGQ5ZWJhMGVmODQ3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvcG93LWJhc2ljcy5qcwpAQCAtMCwwICsxLDI4NiBAQAorZnVuY3Rpb24gdmFs
dWVzQXJlQ2xvc2UoYSwgYikgeworICAgIHJldHVybiBNYXRoLmFicyhhIC8gYikgLSAxIDwgMWUt
MTA7Cit9CisKKy8vIFNvbWUgcmFuZG9tIHZhbHVlcy4KK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVE
b3VibGUxKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0Rv
dWJsZURvdWJsZTEpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50MSh4LCB5KSB7CisgICAg
cmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQxKTsKKworZnVuY3Rp
b24gdGVzdDEoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVE
b3VibGUxKHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0
ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJs
ZURvdWJsZTEoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQg
YSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdlclkg
PSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQxKHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYg
KCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQxKCIgKyB4ICsgIiwgIiArIGludGVn
ZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBl
eHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDEpOwordGVzdDEoMzc2Ljc2NTIyNzY0
Mzc3Mjk2LCAxMC44MTY5OTIyNjA1MTU2OSwgNy4zMzM5NTE5MjkxMDkyNTJlKzI3LCA1Ljc2Mzc4
OTg5NTc1MDg5ZSsyNSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGUyKHgsIHkpIHsK
KyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTIpOwor
CitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50Mih4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsK
K30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQyKTsKK2Z1bmN0aW9uIHRlc3QyKHgsIHksIGV4
cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlMih4LCB5KTsKKyAg
ICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGUyKCIgKyB4ICsg
IiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8g
IiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRo
UG93RG91YmxlSW50Mih4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2Uo
cmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
LCBtYXRoUG93RG91YmxlSW50MigiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJl
c3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0K
K30KK25vSW5saW5lKHRlc3QyKTsKK3Rlc3QyKDM3Ni43NjUyMjc2NDM3NzI5NiwgLTUuODE2OTky
MjYwNTE1NjksIDEuMDM1MTgwMzMxMTg3NTc5ZS0xNSwgMS4zMTcxODI0MzEwNDAwMjY1ZS0xMyk7
CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGUzKHgsIHkpIHsKKyAgICByZXR1cm4geCAq
KiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTMpOworCitmdW5jdGlvbiBtYXRo
UG93RG91YmxlSW50Myh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1h
dGhQb3dEb3VibGVJbnQzKTsKK2Z1bmN0aW9uIHRlc3QzKHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0
ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlMyh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1
ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGUzKCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9
ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsK
KyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50Myh4
LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3Rl
ZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91Ymxl
SW50MygiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0
ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRl
c3QzKTsKK3Rlc3QzKC0zNy42NzY1MjI3NjQzNzcyOTYsIDEwLjAsIDU3NjM3ODk4OTU3NTA4OTIs
IDU3NjM3ODk4OTU3NTA4OTIpOworCisvLyBFeHBvbmVudCB6ZXJvLgorZnVuY3Rpb24gbWF0aFBv
d0RvdWJsZURvdWJsZTQoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZSht
YXRoUG93RG91YmxlRG91YmxlNCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ0KHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDQpOwor
ZnVuY3Rpb24gdGVzdDQoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dE
b3VibGVEb3VibGU0KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwg
ZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBv
d0RvdWJsZURvdWJsZTQoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50
ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ0KHgsIGludGVnZXJZKTsKKyAgICAg
ICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ0KCIgKyB4ICsgIiwgIiAr
IGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRv
ICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDQpOwordGVzdDQoLTM3LjY3
NjUyMjc2NDM3NzI5NiwgMCwgMSwgMSk7CisKKy8vIEV4cG9uZW50IG1pbnVzIHplcm8uCitmdW5j
dGlvbiBtYXRoUG93RG91YmxlRG91YmxlNSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30K
K25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGU1KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJs
ZUludDUoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91
YmxlSW50NSk7CitmdW5jdGlvbiB0ZXN0NSh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgewor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0
ID0gbWF0aFBvd0RvdWJsZURvdWJsZTUoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xv
c2UocmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0LCBtYXRoUG93RG91YmxlRG91YmxlNSgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVz
dWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQor
ICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDUoeCwgaW50ZWdl
clkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludCgiICsg
eCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1
ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q1KTsKK3Rl
c3Q1KC0zNy42NzY1MjI3NjQzNzcyOTYsIC0wLCAxLCAxKTsKKworLy8gRXhwb25lbnQgMS4KK2Z1
bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGU2KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5Owor
fQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTYpOworCitmdW5jdGlvbiBtYXRoUG93RG91
YmxlSW50Nih4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dE
b3VibGVJbnQ2KTsKK2Z1bmN0aW9uIHRlc3Q2KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBtYXRoUG93RG91YmxlRG91YmxlNih4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVD
bG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGU2KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyBy
ZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9
CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50Nih4LCBpbnRl
Z2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50Nigi
ICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2
YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q2KTsK
K3Rlc3Q2KC0zNy42NzY1MjI3NjQzNzcyOTYsIDEuMCwgLTM3LjY3NjUyMjc2NDM3NzI5NiwgLTM3
LjY3NjUyMjc2NDM3NzI5Nik7CisKKy8vIEV4cG9uZW50IC0xLgorZnVuY3Rpb24gbWF0aFBvd0Rv
dWJsZURvdWJsZTcoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRo
UG93RG91YmxlRG91YmxlNyk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ3KHgsIHkpIHsK
KyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDcpOworZnVu
Y3Rpb24gdGVzdDcoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3Vi
bGVEb3VibGU3KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhw
ZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0Rv
dWJsZURvdWJsZTcoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0
ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdl
clkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGU3KHgsIGludGVnZXJZKTsKKyAgICAg
ICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGU3KCIgKyB4ICsgIiwg
IiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3Nl
IHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDcpOwordGVzdDYoLTM3
LjY3NjUyMjc2NDM3NzI5NiwgLTEuMCwgLTAuMDI2NTQxNzI3NDkwNDU0Mjk2LCAtMC4wMjY1NDE3
Mjc0OTA0NTQyOTYpOworCisvLyBMZXQncyBzcXVhcmUgdGhpbmdzLgorZnVuY3Rpb24gbWF0aFBv
d0RvdWJsZURvdWJsZTgoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZSht
YXRoUG93RG91YmxlRG91YmxlOCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ4KHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDgpOwor
ZnVuY3Rpb24gdGVzdDgoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dE
b3VibGVEb3VibGU4KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwg
ZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBv
d0RvdWJsZURvdWJsZTgoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50
ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ4KHgsIGludGVnZXJZKTsKKyAgICAg
ICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ4KCIgKyB4ICsgIiwgIiAr
IGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRv
ICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDgpOwordGVzdDcoLTM3LjY3
NjUyMjc2NDM3NzI5NiwgMi4wLCAxNDE5LjUyMDM2NzYxNDY0MDcsIDE0MTkuNTIwMzY3NjE0NjQw
Nyk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGU5KHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTkpOworCitmdW5jdGlvbiBt
YXRoUG93RG91YmxlSW50OSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5l
KG1hdGhQb3dEb3VibGVJbnQ5KTsKK2Z1bmN0aW9uIHRlc3Q5KHgsIHksIGV4cGVjdGVkMSwgZXhw
ZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlOSh4LCB5KTsKKyAgICAgICAgaWYgKCF2
YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGU5KCIgKyB4ICsgIiwgIiArIHkgKyAi
KSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVk
MTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50
OSh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBl
Y3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91
YmxlSW50OSgiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5l
KHRlc3Q5KTsKK3Rlc3Q4KDM3LjY3NjUyMjc2NDM3NzI5NiwgMi4wLCAxNDE5LjUyMDM2NzYxNDY0
MDcsIDE0MTkuNTIwMzY3NjE0NjQwNyk7CisKKy8vIExldCdzIGN1YmUgdGhpbmdzLgorZnVuY3Rp
b24gbWF0aFBvd0RvdWJsZURvdWJsZTEwKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQor
bm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTEwKTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJs
ZUludDEwKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0Rv
dWJsZUludDEwKTsKK2Z1bmN0aW9uIHRlc3QxMCh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTEwKHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0Fy
ZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZSgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsg
cmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAg
fQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDEwKHgsIGlu
dGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQo
IiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEg
dmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0OSk7
Cit0ZXN0OSgtMzcuNjc2NTIyNzY0Mzc3Mjk2LCAzLjAsIC01MzQ4Mi41OTE0NDQ5MzAyMzYsIC01
MzQ4Mi41OTE0NDQ5MzAyMzYpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlMTEoeCwg
eSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91Ymxl
MTEpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50MTEoeCwgeSkgeworICAgIHJldHVybiB4
ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50MTEpOworZnVuY3Rpb24gdGVzdDEx
KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlMTEo
eCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91Ymxl
KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUg
Y2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBtYXRoUG93RG91YmxlSW50MTEoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVl
c0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludCgiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIp
ID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQy
OworICAgIH0KK30KK25vSW5saW5lKHRlc3QxMCk7Cit0ZXN0MTAoMzcuNjc2NTIyNzY0Mzc3Mjk2
LCAzLjAsIDUzNDgyLjU5MTQ0NDkzMDIzNiwgNTM0ODIuNTkxNDQ0OTMwMjM2KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWNvaGVyZW5jeS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWNvaGVyZW5jeS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yOTY3MWE0MmRiZDgyY2U1NjhjM2MyODY5YjE4YTMwOTNkODEzODIxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctY29oZXJl
bmN5LmpzCkBAIC0wLDAgKzEsOTUgQEAKKy8vQCBza2lwCisKKy8vIFRoaXMgdGVzdCBjaGVja3Mg
dGhhdCB0aGUgcG93IGZ1bmN0aW9uIHJldHVybnMgY29oZXJlbnQgcmVzdWx0czoKKy8vIChhKSBB
Y3Jvc3MgZGlmZmVyZW50IGNvbXBpbGF0aW9uIHRpZXJzCisvLyAoYikgV2l0aCBpbnRlZ2VyIGV4
cG9uZW50cyByZXByZXNlbnRlZCBhcyBpbnQzMiBvciBhcyBkb3VibGUKKworZnVuY3Rpb24gcG93
NDIoKSB7CisgICAgcmV0dXJuIHsgdmFsdWU6IDIuMSAqKiA0MiwgZnRsOiBpc0ZpbmFsVGllcigp
IH07Cit9CisKK2Z1bmN0aW9uIGJ1aWxkNDJBc0RvdWJsZSgpIHsKKyAgICBmdW5jdGlvbiBvcGFx
dWVBZGQoeCwgeSkgeyByZXR1cm4geCArIHk7IH0KKyAgICByZXR1cm4gb3BhcXVlQWRkKDQyIC0g
MC4xMjMsIDAuMTIzKTsKK30KKwordmFyIGRvdWJsZTQyID0gYnVpbGQ0MkFzRG91YmxlKCk7CisK
K2lmIChkb3VibGU0MiAhPT0gNDIpCisgICAgdGhyb3cgbmV3IEVycm9yKCI0MiAoYXMgZG91Ymxl
KSBzaG91bGQgYmUgPT09IHRvIDQyIChhcyBpbnQpIik7CisKK2Z1bmN0aW9uIHBvd0RvdWJsZTQy
KCkgeworICAgIHJldHVybiB7IHZhbHVlOiAyLjEgKiogZG91YmxlNDIsIGZ0bDogaXNGaW5hbFRp
ZXIoKSB9OworfQorCitmdW5jdGlvbiBjbG9iYmVyKCkgeyB9Citub0lubGluZShjbG9iYmVyKTsK
KworZnVuY3Rpb24gcG93NDJOb0NvbnN0YW50Rm9sZGluZygpIHsKKyAgICB2YXIgb2JqID0geyB4
OiAyLjEsIHk6IDQyIH07CisgICAgY2xvYmJlcihvYmopOworICAgIHJldHVybiB7IHZhbHVlOiBv
YmoueCAqKiBvYmoueSwgZnRsOiBpc0ZpbmFsVGllcigpIH07Cit9CisKK2Z1bmN0aW9uIHBvd0Rv
dWJsZTQyTm9Db25zdGFudEZvbGRpbmcoKSB7CisgICAgdmFyIG9iaiA9IHsgeDogMi4xLCB5OiBk
b3VibGU0MiB9OworICAgIGNsb2JiZXIob2JqKTsKKyAgICByZXR1cm4geyB2YWx1ZTogb2JqLngg
Kiogb2JqLnksIGZ0bDogaXNGaW5hbFRpZXIoKSB9OworfQorCit2YXIgcmVzdWx0cyA9IHsgJ2pp
dCc6IHt9LCAnZGZnJzoge30sICdmdGwnOiB7fSB9OwordmFyIGZ1bnMgPSBbCisgICAgWyAncG93
NDInLCBwb3c0MiBdLAorICAgIFsgJ3Bvd0RvdWJsZTQyJywgcG93RG91YmxlNDIgXSwKKyAgICBb
ICdwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nJywgcG93NDJOb0NvbnN0YW50Rm9sZGluZyBdLAorICAg
IFsgJ3Bvd0RvdWJsZTQyTm9Db25zdGFudEZvbGRpbmcnLCBwb3dEb3VibGU0Mk5vQ29uc3RhbnRG
b2xkaW5nIF0KK107Cit2YXIgdGllcnMgPSBbJ2ppdCcsICdkZmcnLCAnZnRsJ107CisKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICBmb3IgKHZhciBqIGluIGZ1bnMpIHsK
KyAgICAgICAgdmFyIG5hbWUgPSBmdW5zW2pdWzBdOworICAgICAgICB2YXIgZnVuID0gZnVuc1tq
XVsxXTsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGZ1bigpOworICAgICAgICBpZiAocmVzdWx0LmZ0
bCkKKyAgICAgICAgICAgIHJlc3VsdHNbJ2Z0bCddW25hbWVdID0gcmVzdWx0LnZhbHVlOworICAg
ICAgICBlbHNlIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKGZ1bikgPiAwKQorICAgICAgICAgICAg
cmVzdWx0c1snZGZnJ11bbmFtZV0gPSByZXN1bHQudmFsdWU7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHJlc3VsdHNbJ2ppdCddW25hbWVdID0gcmVzdWx0LnZhbHVlOworICAgIH0KK30KKwor
dmFyIGVycm9ycyA9IFtdOwordmFyIHZhbHVlc0ZvciA9IHt9OworZm9yICh2YXIgaSBpbiB0aWVy
cykgeworICAgIHZhciB0aWVyID0gdGllcnNbaV07CisgICAgdmFyIHJlc3VsdCA9IHJlc3VsdHNb
dGllcl07CisgICAgLy8gV2UgZG9uJ3QgaGF2ZSB0aGlzIHRpZXIKKyAgICBpZiAoT2JqZWN0Lmtl
eXMocmVzdWx0KS5sZW5ndGggPT09IDApCisgICAgICAgIGNvbnRpbnVlOworCisgICAgZm9yICh2
YXIgaiBpbiBmdW5zKSB7CisgICAgICAgIHZhciBuYW1lID0gZnVuc1tqXVswXTsKKyAgICAgICAg
aWYgKCEobmFtZSBpbiByZXN1bHQpKQorICAgICAgICAgICAgZXJyb3JzLnB1c2gobmFtZSArICIg
d2FzIG5vdCBjb21waWxlZCB0byAiICsgdGllcik7CisgICAgICAgIGVsc2UgaWYgKCEobmFtZSBp
biB2YWx1ZXNGb3IpKQorICAgICAgICAgICAgdmFsdWVzRm9yW25hbWVdID0geyB2YWx1ZTogcmVz
dWx0W25hbWVdLCB0aWVyczogW3RpZXJdIH07CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdFtuYW1l
XSAhPT0gdmFsdWVzRm9yW25hbWVdLnZhbHVlKQorICAgICAgICAgICAgZXJyb3JzLnB1c2gobmFt
ZSArICIgaGFzIGRpZmZlcmVudCByZXN1bHRzIGluICIgKyB0aWVyICsgIiAoIiArIHJlc3VsdFtu
YW1lXSArICIpIGFuZCAiICsgdmFsdWVzRm9yW25hbWVdLnRpZXJzICsgIiAoIiArIHZhbHVlc0Zv
cltuYW1lXS52YWx1ZSArICIpIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlc0Zv
cltuYW1lXS50aWVycy5wdXNoKHRpZXIpOworICAgIH0KK30KKwordmFyIHJlZmVyZW5jZSA9IGZ1
bnNbMF1bMF07Cit2YXIgcmVzdWx0ID0gdmFsdWVzRm9yW3JlZmVyZW5jZV0udmFsdWU7CisKK2Zv
ciAodmFyIGogaW4gZnVucykgeworICAgIHZhciBuYW1lID0gZnVuc1tqXVswXTsKKyAgICBpZiAo
dmFsdWVzRm9yW25hbWVdLnZhbHVlICE9PSByZXN1bHQpCisgICAgICAgIGVycm9ycy5wdXNoKG5h
bWUgKyAiICgiICsgdmFsdWVzRm9yW25hbWVdLnZhbHVlICsgIikgYW5kICIgKyByZWZlcmVuY2Ug
KyAiICgiICsgcmVzdWx0ICsgIikgaGF2ZSBkaWZmZXJlbnQgcmVzdWx0cyIpOworfQorCitpZiAo
ZXJyb3JzLmxlbmd0aCA+IDApCisgICAgdGhyb3cgbmV3IEVycm9yKGVycm9ycy5qb2luKCdcbicp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV2
YWx1YXRpb24tb3JkZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bv
dy1ldmFsdWF0aW9uLW9yZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNTQ2NDdkZDVmYWJhMGE3NWM1MzFk
ZjZlMGFjZTg4MDM0MDYwYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3Bvdy1ldmFsdWF0aW9uLW9yZGVyLmpzCkBAIC0wLDAgKzEsNDAgQEAK
Ky8vIENvcHlyaWdodCAoQykgMjAxNiBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUuCisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7
CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcign
YmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworeworICAgIGxldCBjYXB0dXJlID0gW107Cisg
ICAgbGV0IGxlZnRWYWx1ZSA9IHsgdmFsdWVPZigpIHsgY2FwdHVyZS5wdXNoKCJsZWZ0VmFsdWUi
KTsgcmV0dXJuIDM7IH19OworICAgIGxldCByaWdodFZhbHVlID0geyB2YWx1ZU9mKCkgeyBjYXB0
dXJlLnB1c2goInJpZ2h0VmFsdWUiKTsgcmV0dXJuIDI7IH19OworCisgICAgKGNhcHR1cmUucHVz
aCgibGVmdCIpLCBsZWZ0VmFsdWUpICoqICsoY2FwdHVyZS5wdXNoKCJyaWdodCIpLCByaWdodFZh
bHVlKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLy8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZXMgdGhlIG9yZGVyCisKKyAgICAvLyBF
eHBlY3RlZCBwZXIgb3BlcmF0b3IgZXZhbHVhdGlvbiBvcmRlcjogImxlZnQiLCAicmlnaHQiLCAi
cmlnaHRWYWx1ZSIsICJsZWZ0VmFsdWUiCisgICAgc2hvdWxkQmUoY2FwdHVyZVswXSwgImxlZnQi
KTsKKyAgICBzaG91bGRCZShjYXB0dXJlWzFdLCAicmlnaHQiKTsKKyAgICBzaG91bGRCZShjYXB0
dXJlWzJdLCAicmlnaHRWYWx1ZSIpOworICAgIHNob3VsZEJlKGNhcHR1cmVbM10sICJsZWZ0VmFs
dWUiKTsKK30KKworeworICAgIGxldCBjYXB0dXJlID0gW107CisgICAgbGV0IGxlZnRWYWx1ZSA9
IHsgdmFsdWVPZigpIHsgY2FwdHVyZS5wdXNoKCJsZWZ0VmFsdWUiKTsgcmV0dXJuIDM7IH19Owor
ICAgIGxldCByaWdodFZhbHVlID0geyB2YWx1ZU9mKCkgeyBjYXB0dXJlLnB1c2goInJpZ2h0VmFs
dWUiKTsgcmV0dXJuIDI7IH19OworCisgICAgKCsoY2FwdHVyZS5wdXNoKCJsZWZ0IiksIGxlZnRW
YWx1ZSkpICoqIChjYXB0dXJlLnB1c2goInJpZ2h0IiksIHJpZ2h0VmFsdWUpOworLy8gICBeCisv
LyAgIENoYW5nZXMgdGhlIG9yZGVyCisKKyAgICAvLyBFeHBlY3RlZCBwZXIgb3BlcmF0b3IgZXZh
bHVhdGlvbiBvcmRlcjogImxlZnQiLCAicmlnaHQiLCAicmlnaHRWYWx1ZSIsICJsZWZ0VmFsdWUi
CisgICAgc2hvdWxkQmUoY2FwdHVyZVswXSwgImxlZnQiKTsKKyAgICBzaG91bGRCZShjYXB0dXJl
WzFdLCAibGVmdFZhbHVlIik7CisgICAgc2hvdWxkQmUoY2FwdHVyZVsyXSwgInJpZ2h0Iik7Cisg
ICAgc2hvdWxkQmUoY2FwdHVyZVszXSwgInJpZ2h0VmFsdWUiKTsKK30KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV4cGVjdHMtdXBkYXRlLWV4cHJl
c3Npb24tb24tbGhzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ct
ZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lvbi1vbi1saHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZkNTIyYWFm
MmNlODM2ZmRiOGU2MTRmZjBjOTYwODIyZTJiMzNlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV4cGVjdHMtdXBkYXRlLWV4cHJlc3Np
b24tb24tbGhzLmpzCkBAIC0wLDAgKzEsOTYgQEAKK2Z1bmN0aW9uIHRlc3RTeW50YXgoc2NyaXB0
KSB7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGVycm9y
KSB7CisgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAgICB9
Cit9CisKK2Z1bmN0aW9uIHRlc3RTeW50YXhFcnJvcihzY3JpcHQsIG1lc3NhZ2UpIHsKKyAgICB2
YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBzeW50YXggZXJyb3Igbm90IHRocm93
biIpOworCisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IG1lc3NhZ2UpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7Cit9CisKK3sKKyAgICBs
ZXQgdG9rZW5zID0gWworICAgICAgICAnLScsCisgICAgICAgICcrJywKKyAgICAgICAgJ34nLAor
ICAgICAgICAnIScsCisgICAgICAgICd0eXBlb2YnLAorICAgICAgICAndm9pZCcsCisgICAgICAg
ICdkZWxldGUnLAorICAgIF07CisKKyAgICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsKKyAg
ICAgICAgdGVzdFN5bnRheEVycm9yKGAKKyAgICAgICAgZnVuY3Rpb24gcG93KGEsIGIpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiAke3Rva2VufSBhICoqIGI7CisgICAgICAgIH0KKyAg
ICAgICAgYCwgYFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqKicuIEV4cGVjdGVkIGEg
dXBkYXRlIGV4cHJlc3Npb24gb24gdGhlIGxlZnQgaGFuZCBzaWRlIG9mIGFuIGV4cG9uZW50aWF0
aW9uIGV4cHJlc3Npb24uYCk7CisgICAgfQorfQorCit7CisgICAgbGV0IHRva2VucyA9IFsKKyAg
ICAgICAgJy0nLAorICAgICAgICAnKycsCisgICAgICAgICd+JywKKyAgICAgICAgJyEnLAorICAg
ICAgICAndHlwZW9mJywKKyAgICAgICAgJ3ZvaWQnLAorICAgICAgICAnZGVsZXRlJywKKyAgICBd
OworCisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAgIHRlc3RTeW50YXgo
YAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuICgke3Rva2VufSBhKSAqKiBiOworICAgICAgICB9CisgICAgICAgIGApOworICAgIH0KK30K
KworeworICAgIGxldCB0b2tlbnMgPSBbCisgICAgICAgICcrKycsCisgICAgICAgICctLScsCisg
ICAgXTsKKworICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAgICAgICB0ZXN0U3lu
dGF4KGAKKyAgICAgICAgZnVuY3Rpb24gcG93KGEsIGIpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHJldHVybiAke3Rva2VufSBhICoqIGI7CisgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgfQor
fQorCit7CisgICAgbGV0IHRva2VucyA9IFsKKyAgICAgICAgJysrJywKKyAgICAgICAgJy0tJywK
KyAgICBdOworCisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAgIHRlc3RT
eW50YXgoYAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGEgJHt0b2tlbn0gKiogYjsKKyAgICAgICAgfQorICAgICAgICBgKTsKKyAgICB9
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1p
bnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRoLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9wb3ctaW50ZWdlci1leHBvbmVudC1mYXN0cGF0aC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMWVl
MjdjYjZhMTIyNTgzYjlmNjFmOGM5M2QxNzM4YmE2N2I1ODAyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctaW50ZWdlci1leHBvbmVudC1m
YXN0cGF0aC5qcwpAQCAtMCwwICsxLDU2IEBACitmdW5jdGlvbiB2YWx1ZXNBcmVDbG9zZShhLCBi
KSB7CisgICAgcmV0dXJuIE1hdGguYWJzKGEgLyBiKSAtIDEgPCAxZS0xMDsKK30KKworLy8gU21h
bGwgZXhwb25lbnQgdmFsdWVzIGFyZSBoYW5kbGVkIHRocm91Z2ggYSBzaW1wbGVyIGlubGluZSBs
b29wLiBUZXN0IHRoYXQgaXQgaXMgbm90IG9ic2VydmFibGUuCitmdW5jdGlvbiBtYXRoUG93RG91
YmxlRG91YmxlVGVzdEV4cG9uZW50RmlmdHkoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHkKK30K
K25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRGaWZ0eSk7CisKK2Z1bmN0
aW9uIG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRGaWZ0eSh4LCB5KSB7CisgICAgcmV0dXJu
IHggKiogeQorfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5KTsK
K2Z1bmN0aW9uIHRlc3RFeHBvbmVudEZpZnR5KHgsIHksIGV4cGVjdGVkKSB7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93
RG91YmxlRG91YmxlVGVzdEV4cG9uZW50RmlmdHkoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVz
QXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQsICgiICsgeCArICIpICoqICgiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkOworICAgIH0KKyAgICB2YXIgaW50ZWdl
clkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRGaWZ0eSh4LCBpbnRl
Z2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZCkpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsICgiICsgeCArICIpICoqICgiICsg
aW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIHZhbHVlIGNsb3NlIHRvICIg
KyBleHBlY3RlZDsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0RXhwb25lbnRGaWZ0eSk7Cit0ZXN0
RXhwb25lbnRGaWZ0eSg1My43MDkwMTE2NDEzMzEwMiwgNTAuMCwgMy4xNzk0OTQxMTgxMjAxNDRl
Kzg2KTsKK3Rlc3RFeHBvbmVudEZpZnR5KDUzLjcwOTAxMTY0MTMzMTAyLCAtMTAuMCwgNS4wMDY0
MzI4NDI2MjExOTJlLTE4KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZVRlc3RFeHBv
bmVudFRlblRob3VzYW5kcyh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeQorfQorbm9JbmxpbmUo
bWF0aFBvd0RvdWJsZURvdWJsZVRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk7CisKK2Z1bmN0aW9u
IG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwgeSkgeworICAgIHJl
dHVybiB4ICoqIHkKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRUZW5U
aG91c2FuZHMpOworZnVuY3Rpb24gdGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKHgsIHksIGV4cGVj
dGVkKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKHgs
IHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQpKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAoIiArIHggKyAiKSAqKiAoIiArIHkg
KyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3Rl
ZDsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50
VGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1
ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgKCIgKyB4ICsgIikgKiogKCIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3Vs
dCArICIgZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkOworICAgIH0KK30KK25v
SW5saW5lKHRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk7Cit0ZXN0RXhwb25lbnRUZW5UaG91c2Fu
ZHMoMS4wMDEsIDEwMDAwLjAsIDIxOTE2LjY4MTMzOTA0ODM3Myk7Cit0ZXN0RXhwb25lbnRUZW5U
aG91c2FuZHMoMS4wMDEsIC0xLjAsIDAuOTk5MDAwOTk5MDAwOTk5MSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZpb3JzLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctbmFuLWJlaGF2aW9ycy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MWM3MGM0ZjI2MDMyMzhkMjBiOTRhYTBhNGE5YWU5NWU5OGI3NjI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctbmFu
LWJlaGF2aW9ycy5qcwpAQCAtMCwwICsxLDIwOSBAQAorLy8gSWYgeSBpcyBOYU4sIHRoZSByZXN1
bHQgaXMgTmFOLgorZnVuY3Rpb24gdGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGlj
KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gNSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgNSAqKiBOYU4gPSAiICsgcmVzdWx0OworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IGkgKiogTmFOOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIGkgKiogTmFOID0gIiArIHJlc3VsdCArICIgd2l0
aCBpID0gIiArIGk7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEludGVnZXJCYXNlV2l0aE5hTkV4
cG9uZW50U3RhdGljKTsKK3Rlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYygpOwor
CitmdW5jdGlvbiBtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0ludGVnZXJCYXNlV2l0
aE5hTkV4cG9uZW50RHluYW1pYyk7CitmdW5jdGlvbiB0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhw
b25lbnREeW5hbWljKCkgeworICAgIC8vIFdhcm0gdXAgd2l0aCAyIGludGVnZXJzLgorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0
aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLCA1KTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPT0gMzIpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1h
dGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoMiwgNSkgPSAiICsgcmVzdWx0
ICsgIiwgZXhwZWN0ZWQgMzIuIgorICAgIH0KKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0ludGVnZXJCYXNlV2l0aE5h
TkV4cG9uZW50RHluYW1pYyhpLCBOYU4pOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbnRlZ2VyQmFzZVdp
dGhOYU5FeHBvbmVudER5bmFtaWMoaSwgTmFOKSA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIg
KyBpICsgIiwgZXhwZWN0ZWQgTmFOIjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0SW50ZWdlckJh
c2VXaXRoTmFORXhwb25lbnREeW5hbWljKTsKK3Rlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVu
dER5bmFtaWMoKTsKKworZnVuY3Rpb24gdGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9u
ZW50U3RhdGljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gNS41ICoqIE5hTjsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQp
KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCA1LjUgKiogTmFOID0gIiAr
IHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7Cisg
ICAgICAgIHZhciByZXN1bHQgPSAoaSArIDAuNSkgKiogTmFOOworICAgICAgICBpZiAoIWlzTmFO
KHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIChpICsgMC41
KSAqKiBOYU4gPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9Cit9Citub0lu
bGluZSh0ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMpOwordGVzdEZs
b2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKCk7CisKK2Z1bmN0aW9uIG1hdGhQ
b3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoeCwgeSkgeworICAgIHJl
dHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFO
RXhwb25lbnREeW5hbWljKTsKK2Z1bmN0aW9uIHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5F
eHBvbmVudER5bmFtaWMoKSB7CisgICAgLy8gV2FybSB1cCB3aXRoIDIgZG91YmxlLgorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0
aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLjUsIDUuMSk7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT09IDEwNy4wMjcxNzA1NDU0MzEzNSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4
cG9uZW50RHluYW1pYygyLjUsIDUuMSkgPSAiICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgMTA3LjAy
NzE3MDU0NTQzMTM1LiIKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhO
YU5FeHBvbmVudER5bmFtaWMoaSArIDAuNSwgTmFOKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1
bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RmxvYXRp
bmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKGkgKyAwLjUsIE5hTikgPSAiICsgcmVz
dWx0ICsgIiB3aXRoIGkgPSAiICsgaSArICIsIGV4cGVjdGVkIE5hTiI7CisgICAgfQorfQorbm9J
bmxpbmUodGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk7Cit0ZXN0
RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKCk7CisKKy8vIElmIHkgaXMg
KzAsIHRoZSByZXN1bHQgaXMgMSwgZXZlbiBpZiB4IGlzIE5hTi4KKy8vIElmIHkgaXMg4oiSMCwg
dGhlIHJlc3VsdCBpcyAxLCBldmVuIGlmIHggaXMgTmFOLgorLy8gSWYgeCBpcyBOYU4gYW5kIHkg
aXMgbm9uemVybywgdGhlIHJlc3VsdCBpcyBOYU4uCitmdW5jdGlvbiB0ZXN0TmFOQmFzZVN0YXRp
YygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IE5hTiAqKiAoaSArIDEpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE5hTiAqKiAoaSArIDEpID0gIiAr
IHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gTmFOICoqIChpICsgMS41KTsK
KyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0LCBOYU4gKiogKGkgKyAxLjUpID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiAr
IGk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gTmFOICoqIDA7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE5hTiAqKiAwID0gIiArIHJlc3VsdDsK
KyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBOYU4gKiogLTA7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE5hTiAqKiAtMCA9ICIgKyByZXN1bHQ7Cisg
ICAgfQorfQorbm9JbmxpbmUodGVzdE5hTkJhc2VTdGF0aWMpOwordGVzdE5hTkJhc2VTdGF0aWMo
KTsKKworZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5hbWljMSh4LCB5KSB7CisgICAgcmV0dXJu
IHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dOYU5CYXNlRHluYW1pYzIoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMzKHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5hbWlj
NCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dOYU5CYXNl
RHluYW1pYzEpOworbm9JbmxpbmUobWF0aFBvd05hTkJhc2VEeW5hbWljMik7Citub0lubGluZSht
YXRoUG93TmFOQmFzZUR5bmFtaWMzKTsKK25vSW5saW5lKG1hdGhQb3dOYU5CYXNlRHluYW1pYzQp
OworZnVuY3Rpb24gdGVzdE5hTkJhc2VEeW5hbWljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd05hTkJhc2VEeW5h
bWljMShOYU4sIGkgKyAxKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFzZUR5bmFtaWMxKE5hTiwg
aSArIDEpID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CisgICAgfQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBv
d05hTkJhc2VEeW5hbWljMihOYU4sIGkgKyAxLjUpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3Vs
dCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5CYXNl
RHluYW1pYzIoTmFOLCBpICsgMS41KSA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIgKyBpOwor
ICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IG1hdGhQb3dOYU5CYXNlRHluYW1pYzMoTmFOLCAwKTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gMSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBv
d05hTkJhc2VEeW5hbWljMyhOYU4sIDApID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93
TmFOQmFzZUR5bmFtaWM0KE5hTiwgLTApOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFzZUR5bmFtaWM0
KE5hTiwgLTApID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0TmFOQmFzZUR5
bmFtaWMpOwordGVzdE5hTkJhc2VEeW5hbWljKCk7CisKKy8vIElmIGFicyh4KSBpcyAxIGFuZCB5
IGlzICviiJ4sIHRoZSByZXN1bHQgaXMgTmFOLgorLy8gSWYgYWJzKHgpIGlzIDEgYW5kIHkgaXMg
4oiS4oieLCB0aGUgcmVzdWx0IGlzIE5hTi4KK2Z1bmN0aW9uIGluZmluaXRlRXhwb25lbnRzU3Rh
dGljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gMSAqKiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgICAgIGlmICgh
aXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgMSAq
KiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9ICgtMSkg
KiogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIC0xICoqIE51bWJlci5QT1NJ
VElWRV9JTkZJTklUWSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gMSAqKiBOdW1iZXIuTkVHQVRJ
VkVfSU5GSU5JVFk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgMSAqKiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPSAi
ICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9ICgtMSkgKiogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOwor
ICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQsIC0xICoqIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSA9ICIgKyByZXN1bHQ7Cisg
ICAgfQorfQorbm9JbmxpbmUoaW5maW5pdGVFeHBvbmVudHNTdGF0aWMpOworaW5maW5pdGVFeHBv
bmVudHNTdGF0aWMoKTsKKworZnVuY3Rpb24gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1p
YzEoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93SW5maW5p
dGVFeHBvbmVudHNEeW5hbWljMih4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK2Z1bmN0
aW9uIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQoeCwg
eSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBv
bmVudHNEeW5hbWljMSk7Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWlj
Mik7Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMyk7Citub0lubGlu
ZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljNCk7CitmdW5jdGlvbiBpbmZpbml0ZUV4
cG9uZW50c0R5bmFtaWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMSgx
LCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4
cG9uZW50c0R5bmFtaWMxKDEsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMyKC0xLCBOdW1iZXIu
UE9TSVRJVkVfSU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5
bmFtaWMyKC0xLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAgICB9
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMygxLCBOdW1iZXIuTkVHQVRJVkVf
SU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKDEs
IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQ
b3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KC0xLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkp
OworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KC0xLCBOdW1iZXIu
TkVHQVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Citub0lubGluZShpbmZp
bml0ZUV4cG9uZW50c0R5bmFtaWMpOworaW5maW5pdGVFeHBvbmVudHNEeW5hbWljKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zaW1wbGUuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zaW1wbGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmU1ZTljZjg0NDRkZDYwMjBiNGU0OGZlNTg3YTU5YTBmOTM5ZDlhMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXNpbXBsZS5q
cwpAQCAtMCwwICsxLDM5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQor
eworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
J2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3sKKyAgICBsZXQgaSA9IDI7CisgICAgbGV0
IGogPSAzOworICAgIHNob3VsZEJlKDIgKiogMywgOCk7CisgICAgc2hvdWxkQmUoaSAqKiAzLCA4
KTsKKyAgICBzaG91bGRCZSgyICoqIGosIDgpOworICAgIHNob3VsZEJlKGkgKiogaiwgOCk7Cit9
CisKK3sKKyAgICBzaG91bGRCZSgyICoqIDMgKiogMywgMTM0MjE3NzI4KTsKKyAgICBzaG91bGRC
ZSgyICoqIDMgKyAzLCAxMSk7CisgICAgc2hvdWxkQmUoMiAqKiAzICsgMyAqKiAzLCAzNSk7Cisg
ICAgc2hvdWxkQmUoMiAqKiAzICogMywgMjQpOworICAgIHNob3VsZEJlKDIgKiogMyAqIDMgKiog
MywgMjE2KTsKKworICAgIHNob3VsZEJlKDIgKyAzICoqIDMsIDI5KTsKKyAgICBzaG91bGRCZSgy
ICogMyAqKiAzLCA1NCk7Cit9CisKK3sKKyAgICBsZXQgaSA9IDI7CisgICAgaSAqKj0gNDsKKyAg
ICBzaG91bGRCZShpLCAxNik7CisgICAgaSAqKj0gMSArIDE7CisgICAgc2hvdWxkQmUoaSwgMjU2
KTsKK30KKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIGxldCBhID0gTWF0
aC5yYW5kb20oKTsKKyAgICBsZXQgYiA9IE1hdGgucmFuZG9tKCk7CisgICAgc2hvdWxkQmUoYSAq
KiBiLCBNYXRoLnBvdyhhLCBiKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL3Bvdy1zdGFibGUtcmVzdWx0cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvcG93LXN0YWJsZS1yZXN1bHRzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4Mjhm
YTlhZTY0YmUxZjY5YTYwODk3NzI0NzVkMDU2MDU1MDdjNzEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zdGFibGUtcmVzdWx0cy5qcwpA
QCAtMCwwICsxLDg1IEBACisvLyBUaGlzIHRlc3QgdmVyaWZ5IHRoZSByZXN1bHRzIG9mIGAqKmAg
ZG8gbm90IGNoYW5nZSBhcyB3ZSBjaGFuZ2Ugb3B0aW1pemF0aW9uIHRpZXIuCisKK2Z1bmN0aW9u
IG9wYXF1ZVBvdyhhLCBiKQoreworICAgIHJldHVybiBhICoqIGI7Cit9Citub0lubGluZShvcGFx
dWVQb3cpOworCisKK2xldCBjYXNlU3RyaW5ncyA9IFsKKyAgICAiMCIsCisgICAgIi0wLiIsCisg
ICAgIjAuNSIsCisgICAgIjEiLAorICAgICIyIiwKKyAgICAiLTAuNSIsCisgICAgIi0xIiwKKyAg
ICAiOTk5IiwKKyAgICAiMTAwMCIsCisgICAgIjEwMDEiLAorICAgICJOYU4iLAorICAgICJJbmZp
bml0eSIsCisgICAgIi1JbmZpbml0eSIsCisgICAgIk1hdGguUEkiLAorICAgICJNYXRoLkxOMiIs
CisgICAgIk1hdGguTE4xMCIsCisgICAgIk1hdGguRSIsCisgICAgIk1hdGguTE9HMTBFIiwKKyAg
ICAiTWF0aC5MT0cyRSIsCisgICAgIk1hdGguU1FSVDIiCitdOworbGV0IGNhc2VzID0gW107Citm
b3IgKGxldCBjYXNlU3RyaW5nIG9mIGNhc2VTdHJpbmdzKSB7CisgICAgY2FzZXMucHVzaChldmFs
KGNhc2VTdHJpbmcpKTsKK30KKworbGV0IGV4cGVjdGVkUmVzdWx0cyA9IFtdOworbGV0IGNvbnN0
YW50QmFzZUZ1bmN0aW9ucyA9IFtdOworbGV0IGNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnMgPSBb
XTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgY2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICBsZXQgYmFz
ZSA9IGNhc2VzW2ldOworCisgICAgZXhwZWN0ZWRSZXN1bHRzW2ldID0gW107CisgICAgZm9yIChs
ZXQgaiA9IDA7IGogPCBjYXNlcy5sZW5ndGg7ICsraikgeworICAgICAgICBsZXQgZXhwb25lbnQg
PSBjYXNlc1tqXTsKKyAgICAgICAgZXhwZWN0ZWRSZXN1bHRzW2ldW2pdID0gYmFzZSAqKiBleHBv
bmVudDsKKyAgICB9CisKKyAgICBldmFsKCJjb25zdGFudEJhc2VGdW5jdGlvbnNbaV0gPSBmdW5j
dGlvbiAoZXhwb25lbnQpIHsgcmV0dXJuICgiICsgY2FzZVN0cmluZ3NbaV0gKyAiKSAqKiBleHBv
bmVudDsgfSIpOworICAgIGV2YWwoImNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnNbaV0gPSBmdW5j
dGlvbiAoYmFzZSkgeyByZXR1cm4gYmFzZSAqKiAoIiArIGNhc2VTdHJpbmdzW2ldICsgIik7IH0i
KTsKK30KKworZnVuY3Rpb24gaXNJZGVudGljYWwocmVzdWx0LCBleHBlY3RlZCkKK3sKKyAgICBp
ZiAoZXhwZWN0ZWQgPT09IGV4cGVjdGVkKSB7CisgICAgICAgIGlmIChyZXN1bHQgIT09IGV4cGVj
dGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWV4cGVjdGVkICYm
IDEgLyBleHBlY3RlZCA9PT0gLUluZmluaXR5ICYmIDEgLyByZXN1bHQgIT09IC1JbmZpbml0eSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgcmV0dXJuIHJlc3VsdCAhPT0gcmVzdWx0OworfQorCitmb3IgKGxldCB0aWVyVXBMb29w
Q291bnRlciA9IDA7IHRpZXJVcExvb3BDb3VudGVyIDwgMWUzOyArK3RpZXJVcExvb3BDb3VudGVy
KSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICBsZXQgYmFzZSA9IGNhc2VzW2ldOworICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNhc2Vz
Lmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBsZXQgZXhwb25lbnQgPSBjYXNlc1tqXTsKKyAg
ICAgICAgICAgIGxldCBleHBlY3RlZFJlc3VsdCA9IGV4cGVjdGVkUmVzdWx0c1tpXVtqXTsKKyAg
ICAgICAgICAgIGxldCByZXN1bHQgPSBvcGFxdWVQb3coYmFzZSwgZXhwb25lbnQpOworICAgICAg
ICAgICAgaWYgKCFpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVkUmVzdWx0KSkKKyAgICAgICAg
ICAgICAgICB0aHJvdyBgRmFpbGVkIG9wYXF1ZVBvdyB3aXRoIGJhc2UgPSAke2Jhc2V9IGV4cG9u
ZW50ID0gJHtleHBvbmVudH0gZXhwZWN0ZWQgKCR7ZXhwZWN0ZWRSZXN1bHR9KSBnb3QgKCR7cmVz
dWx0fSlgOworCisgICAgICAgICAgICByZXN1bHQgPSBjb25zdGFudEJhc2VGdW5jdGlvbnNbaV0o
ZXhwb25lbnQpOworICAgICAgICAgICAgaWYgKCFpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVk
UmVzdWx0KSkKKyAgICAgICAgICAgICAgICB0aHJvdyBgRmFpbGVkIGNvbnN0YW50QmFzZUZ1bmN0
aW9ucyB3aXRoIGJhc2UgPSAke2Jhc2V9IGV4cG9uZW50ID0gJHtleHBvbmVudH0gZXhwZWN0ZWQg
KCR7ZXhwZWN0ZWRSZXN1bHR9KSBnb3QgKCR7cmVzdWx0fSlgOworCisgICAgICAgICAgICByZXN1
bHQgPSBjb25zdGFudEV4cG9uZW50RnVuY3Rpb25zW2pdKGJhc2UpOworICAgICAgICAgICAgaWYg
KCFpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVkUmVzdWx0KSkKKyAgICAgICAgICAgICAgICB0
aHJvdyBgRmFpbGVkIGNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnMgd2l0aCBiYXNlID0gJHtiYXNl
fSBleHBvbmVudCA9ICR7ZXhwb25lbnR9IGV4cGVjdGVkICgke2V4cGVjdGVkUmVzdWx0fSkgZ290
ICgke3Jlc3VsdH0pYDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXRvLW51bWJlci1zaG91bGQtYmUtZXhlY3V0
ZWQtaW4tY29kZS1zaWRlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9w
b3ctdG8tbnVtYmVyLXNob3VsZC1iZS1leGVjdXRlZC1pbi1jb2RlLXNpZGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODczMTA3YTRlNDk2NzliMmE1NzMwNWRhZWY3ZGUyMmQyMWVjYzNhMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXRvLW51bWJlci1z
aG91bGQtYmUtZXhlY3V0ZWQtaW4tY29kZS1zaWRlLmpzCkBAIC0wLDAgKzEsNzcgQEAKK2Z1bmN0
aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhw
ZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsK
K30KKworeworICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFsdWVPZigpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgfQorICAgIH07Cisg
ICAgbGV0IGVycm9yID0gbnVsbDsKKworICAgIHRyeSB7CisgICAgICAgIDIgKiogdmFsdWU7Cisg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIC8vIGdsb2Jh
bCwgYW5kIHZhbHVlT2YuCisgICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQoIlxuIikubGVu
Z3RoLCAyKTsKK30KKworeworICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFsdWVPZigpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgfQor
ICAgIH07CisgICAgbGV0IGVycm9yID0gbnVsbDsKKworICAgIHRyeSB7CisgICAgICAgIHZhbHVl
ICoqIDI7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAg
IC8vIGdsb2JhbCwgYW5kIHZhbHVlT2YuCisgICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQo
IlxuIikubGVuZ3RoLCAyKTsKK30KKworeworICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFs
dWVPZigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAg
ICAgICAgfQorICAgIH07CisgICAgbGV0IGVycm9yID0gbnVsbDsKKworICAgIHRyeSB7CisgICAg
ICAgIE1hdGgucG93KHZhbHVlLCAyKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9y
ID0gZTsKKyAgICB9CisgICAgLy8gZ2xvYmFsLCBNYXRoLnBvdywgYW5kIHZhbHVlT2YuCisgICAg
c2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQoIlxuIikubGVuZ3RoLCAzKTsKK30KKworeworICAg
IGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFsdWVPZigpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgfQorICAgIH07CisgICAgbGV0IGVycm9y
ID0gbnVsbDsKKworICAgIHRyeSB7CisgICAgICAgIE1hdGgucG93KDIsIHZhbHVlKTsKKyAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgLy8gZ2xvYmFsLCBN
YXRoLnBvdywgYW5kIHZhbHVlT2YuCisgICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQoIlxu
IikubGVuZ3RoLCAzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcG93LXdpdGgtY29uc3RhbnRzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wb3ctd2l0aC1jb25zdGFudHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzllNmFmNzQxZDE2
OTgzYTFiOWI5ZWYzMjU3N2QyYmQ0YWRlMDNmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXdpdGgtY29uc3RhbnRzLmpzCkBAIC0wLDAg
KzEsMjg1IEBACitmdW5jdGlvbiBleHBvbmVudElzWmVybyh4KSB7CisgICAgcmV0dXJuIHggKiog
MDsKK30KK25vSW5saW5lKGV4cG9uZW50SXNaZXJvKTsKKworZnVuY3Rpb24gdGVzdEV4cG9uZW50
SXNaZXJvKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc1plcm8oNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09
IDEpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHplcm9FeHBvbmVudCg1KSBzaG91bGQgYmUg
MSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzWmVybyg1LjUpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSAxKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiB6ZXJvRXhw
b25lbnQoNS41KSBzaG91bGQgYmUgMSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0
RXhwb25lbnRJc1plcm8oKTsKKworCitmdW5jdGlvbiBleHBvbmVudElzT25lKHgpIHsKKyAgICBy
ZXR1cm4geCAqKiAxOworfQorbm9JbmxpbmUoZXhwb25lbnRJc09uZSk7CisKK2Z1bmN0aW9uIHRl
c3RFeHBvbmVudElzT25lKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkg
eworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc09uZSg1KTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gNSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc09uZSg1KSBz
aG91bGQgYmUgNSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzT25lKDUu
NSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUuNSkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogZXhwb25lbnRJc09uZSg1LjUpIHNob3VsZCBiZSA1LjUsIHdhcyA9ICIgKyByZXN1bHQ7Cisg
ICAgfQorfQordGVzdEV4cG9uZW50SXNPbmUoKTsKKworCitmdW5jdGlvbiBwb3dVc2VkQXNTcXJ0
KHgpIHsKKyAgICByZXR1cm4geCAqKiAwLjU7Cit9Citub0lubGluZShwb3dVc2VkQXNTcXJ0KTsK
KworZnVuY3Rpb24gdGVzdFBvd1VzZWRBc1NxcnQoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCAxZTQ7ICsraSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gcG93VXNlZEFzU3FydCg0KTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPT0gTWF0aC5zcXJ0KDQpKQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBwb3dVc2VkQXNTcXJ0KDQpIHNob3VsZCBiZSAyLCB3YXMgPSAiICsgcmVzdWx0OworICAg
ICAgICByZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KDQuNCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09
IE1hdGguc3FydCg0LjQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNTcXJ0
KDQpIHNob3VsZCBiZSAiICsgTWF0aC5zcXJ0KDQuNCkgKyAiLCB3YXMgPSAiICsgcmVzdWx0Owor
ICAgICAgICBpZiAocG93VXNlZEFzU3FydChJbmZpbml0eSkgIT09IEluZmluaXR5KQorICAgICAg
ICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KEluZmluaXR5KSI7CisgICAgICAgIGlm
IChwb3dVc2VkQXNTcXJ0KC1JbmZpbml0eSkgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhy
b3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KC1JbmZpbml0eSkiOworICAgICAgICBsZXQgbmFuUmVz
dWx0ID0gcG93VXNlZEFzU3FydChOYU4pCisgICAgICAgIGlmIChuYW5SZXN1bHQgPT09IG5hblJl
c3VsdCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3FydChOYU4pIjsKKyAg
ICAgICAgbGV0IHplcm9SZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KDAuKQorICAgICAgICBpZiAoemVy
b1Jlc3VsdCB8fCAoMSAvIHplcm9SZXN1bHQpICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRo
cm93ICJGYWlsZWQgcG93VXNlZEFzU3FydCgwLikiOworICAgICAgICBsZXQgbmVnYXRpdmVaZXJv
UmVzdWx0ID0gcG93VXNlZEFzU3FydCgtMCkKKyAgICAgICAgaWYgKG5lZ2F0aXZlWmVyb1Jlc3Vs
dCB8fCAoMSAvIG5lZ2F0aXZlWmVyb1Jlc3VsdCkgIT09IEluZmluaXR5KQorICAgICAgICAgICAg
dGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KC0wKSI7CisgICAgfQorfQordGVzdFBvd1VzZWRB
c1NxcnQoKTsKKworZnVuY3Rpb24gcG93VXNlZEFzT25lT3ZlclNxcnQoeCkgeworICAgIHJldHVy
biB4ICoqIC0wLjU7Cit9Citub0lubGluZShwb3dVc2VkQXNPbmVPdmVyU3FydCk7CisKK2Z1bmN0
aW9uIHRlc3RQb3dVc2VkQXNPbmVPdmVyU3FydCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8
IDFlNDsgKytpKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBwb3dVc2VkQXNPbmVPdmVyU3FydCg0
KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMC41KQorICAgICAgICAgICAgdGhyb3cgIkVycm9y
OiBwb3dVc2VkQXNPbmVPdmVyU3FydCg0KSBzaG91bGQgYmUgMC41LCB3YXMgPSAiICsgcmVzdWx0
OworICAgICAgICByZXN1bHQgPSBwb3dVc2VkQXNPbmVPdmVyU3FydCg0LjQpOworICAgICAgICBp
ZiAocmVzdWx0ICE9PSAxL01hdGguc3FydCg0LjQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9y
OiBwb3dVc2VkQXNPbmVPdmVyU3FydCg0KSBzaG91bGQgYmUgIiArIDEvTWF0aC5zcXJ0KDQuNCkg
KyAiLCB3YXMgPSAiICsgcmVzdWx0OworICAgICAgICBpZiAocG93VXNlZEFzT25lT3ZlclNxcnQo
SW5maW5pdHkpICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNPbmVP
dmVyU3FydChJbmZpbml0eSkiOworICAgICAgICBpZiAocG93VXNlZEFzT25lT3ZlclNxcnQoLUlu
ZmluaXR5KSAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzT25lT3Zl
clNxcnQoLUluZmluaXR5KSI7CisgICAgICAgIGxldCBuYW5SZXN1bHQgPSBwb3dVc2VkQXNPbmVP
dmVyU3FydChOYU4pCisgICAgICAgIGlmIChuYW5SZXN1bHQgPT09IG5hblJlc3VsdCkKKyAgICAg
ICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzT25lT3ZlclNxcnQoTmFOKSI7CisgICAgICAg
IGlmIChwb3dVc2VkQXNPbmVPdmVyU3FydCgwKSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0
aHJvdyAiRmFpbGVkIHBvd1VzZWRBc09uZU92ZXJTcXJ0KDApIjsKKyAgICAgICAgaWYgKHBvd1Vz
ZWRBc09uZU92ZXJTcXJ0KC0wLikgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkZh
aWxlZCBwb3dVc2VkQXNPbmVPdmVyU3FydCgtMC4pIjsKKyAgICB9Cit9Cit0ZXN0UG93VXNlZEFz
T25lT3ZlclNxcnQoKTsKKworZnVuY3Rpb24gcG93VXNlZEFzU3F1YXJlKHgpIHsKKyAgICByZXR1
cm4geCAqKiAyOworfQorbm9JbmxpbmUocG93VXNlZEFzU3F1YXJlKTsKKworZnVuY3Rpb24gdGVz
dFBvd1VzZWRBc1NxdWFyZSgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7
CisgICAgICAgIGxldCByZXN1bHQgPSBwb3dVc2VkQXNTcXVhcmUoMik7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IDQpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1VzZWRBc1NxdWFyZSg0
KSBzaG91bGQgYmUgMiwgd2FzID0gIiArIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gcG93VXNl
ZEFzU3F1YXJlKDQuNCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDE5LjM2MDAwMDAwMDAwMDAw
MykKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNlZEFzU3F1YXJlKDQpIHNob3VsZCBi
ZSAiICsgMTkuMzYwMDAwMDAwMDAwMDAzICsgIiwgd2FzID0gIiArIHJlc3VsdDsKKyAgICAgICAg
cmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKE1hdGguUEkpOworICAgICAgICBpZiAocmVzdWx0ICE9
PSA5Ljg2OTYwNDQwMTA4OTM1OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNlZEFz
U3F1YXJlKDQpIHNob3VsZCBiZSAiICsgOS44Njk2MDQ0MDEwODkzNTggKyAiLCB3YXMgPSAiICsg
cmVzdWx0OworICAgICAgICBpZiAocG93VXNlZEFzU3F1YXJlKEluZmluaXR5KSAhPT0gSW5maW5p
dHkpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZShJbmZpbml0eSki
OworICAgICAgICBpZiAocG93VXNlZEFzU3F1YXJlKC1JbmZpbml0eSkgIT09IEluZmluaXR5KQor
ICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVhcmUoLUluZmluaXR5KSI7Cisg
ICAgICAgIGxldCBuYW5SZXN1bHQgPSBwb3dVc2VkQXNTcXVhcmUoTmFOKQorICAgICAgICBpZiAo
bmFuUmVzdWx0ID09PSBuYW5SZXN1bHQpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1Vz
ZWRBc1NxdWFyZShOYU4pIjsKKyAgICAgICAgbGV0IHplcm9SZXN1bHQgPSBwb3dVc2VkQXNTcXVh
cmUoMC4pCisgICAgICAgIGlmICh6ZXJvUmVzdWx0IHx8ICgxIC8gemVyb1Jlc3VsdCkgIT09IElu
ZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVhcmUoMC4pIjsK
KyAgICAgICAgbGV0IG5lZ2F0aXZlWmVyb1Jlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZSgtMCkKKyAg
ICAgICAgaWYgKG5lZ2F0aXZlWmVyb1Jlc3VsdCB8fCAoMSAvIG5lZ2F0aXZlWmVyb1Jlc3VsdCkg
IT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVhcmUo
LTApIjsKKyAgICB9Cit9Cit0ZXN0UG93VXNlZEFzU3F1YXJlKCk7CisKK2Z1bmN0aW9uIGludElu
dENvbnN0YW50c1NtYWxsTnVtYmVycygpIHsKKyAgICByZXR1cm4gNDIgKiogMzsKK30KK2Z1bmN0
aW9uIGludEludENvbnN0YW50c0xhcmdlTnVtYmVycygpIHsKKyAgICAvLyBUaGUgcmVzdWx0IGRv
ZXMgbm90IGZpdCBpbiBhIGludGVnZXIuCisgICAgcmV0dXJuIDQyICoqIDQyOworfQorZnVuY3Rp
b24gaW50SW50U21hbGxDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDQyICoqIDM7Cit9CitmdW5j
dGlvbiBpbnREb3VibGVDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDE0ICoqIDQyLjU7Cit9Citm
dW5jdGlvbiBkb3VibGVEb3VibGVDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDEzLjUgKiogNDIu
NTsKK30KK2Z1bmN0aW9uIGRvdWJsZUludENvbnN0YW50cygpIHsKKyAgICByZXR1cm4gMTMuNSAq
KiA1MjsKK30KK25vSW5saW5lKGludEludENvbnN0YW50c1NtYWxsTnVtYmVycyk7Citub0lubGlu
ZShpbnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMpOworbm9JbmxpbmUoaW50RG91YmxlQ29uc3Rh
bnRzKTsKK25vSW5saW5lKGRvdWJsZURvdWJsZUNvbnN0YW50cyk7Citub0lubGluZShkb3VibGVJ
bnRDb25zdGFudHMpOworCitmdW5jdGlvbiB0ZXN0QmFzZUFuZEV4cG9uZW50Q29uc3RhbnRMaXRl
cmFscygpCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBpbnRJbnRDb25zdGFudHNTbWFsbE51bWJlcnMoKTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPT0gNzQwODgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGludEludENvbnN0
YW50c1NtYWxsTnVtYmVycygpIHNob3VsZCBiZSA3NDA4OCwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBpbnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMoKTsKKyAgICAgICAgaWYgKHJlc3Vs
dCAhPT0gMS41MDEzMDkzNzU0NTI5NjU2ZSs2OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
aW50SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKCkgc2hvdWxkIGJlIDEuNTAxMzA5Mzc1NDUyOTY1
NmUrNjgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gaW50RG91YmxlQ29uc3RhbnRzKCk7
CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUuMTMzODMwMzg4MjAxNTc2NWUrNDgpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGludERvdWJsZUNvbnN0YW50cygpIHNob3VsZCBiZSA1LjEzMzgz
MDM4ODIwMTU3NjVlKzQ4LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGRvdWJsZURvdWJs
ZUNvbnN0YW50cygpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxLjA5NDQyMjg3Mjk2NDc4Mjll
KzQ4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBkb3VibGVEb3VibGVDb25zdGFudHMoKSBz
aG91bGQgYmUgMS4wOTQ0MjI4NzI5NjQ3ODI5ZSs0OCwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBkb3VibGVJbnRDb25zdGFudHMoKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNS45ODkw
MjI3MzUzMTExNThlKzU4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBkb3VibGVJbnRDb25z
dGFudHMoKSBzaG91bGQgYmUgNS45ODkwMjI3MzUzMTExNThlKzU4LCB3YXMgPSAiICsgcmVzdWx0
OworICAgIH0KK30KK3Rlc3RCYXNlQW5kRXhwb25lbnRDb25zdGFudExpdGVyYWxzKCk7CisKKwor
ZnVuY3Rpb24gZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCh4KSB7CisgICAgcmV0dXJuIHggKiog
NDI7Cit9Citub0lubGluZShleHBvbmVudElzSW50ZWdlckNvbnN0YW50KTsKKworZnVuY3Rpb24g
dGVzdEV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbnRlZ2VyQ29u
c3RhbnQoMik7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDQzOTgwNDY1MTExMDQpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoMikgc2hvdWxkIGJl
IDQzOTgwNDY1MTExMDQsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzSW50
ZWdlckNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAyLjI3MzczNjc1NDQzMjMy
MDdlKzI5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzSW50ZWdlckNvbnN0
YW50KDUpIHNob3VsZCBiZSAyLjI3MzczNjc1NDQzMjMyMDdlKzI5LCB3YXMgPSAiICsgcmVzdWx0
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgyLjEpOworICAgICAgICBpZiAo
cmVzdWx0ICE9PSAzNDEzNTgyMzA2NzQxMi40MikKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
ZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgyLjEpIHNob3VsZCBiZSAzNDEzNTgyMzA2NzQxMi40
Miwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc0ludGVnZXJDb25z
dGFudCgpOworCisKK2Z1bmN0aW9uIGV4cG9uZW50SXNEb3VibGVDb25zdGFudCh4KSB7CisgICAg
cmV0dXJuIHggKiogNDIuNTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNEb3VibGVDb25zdGFudCk7
CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQoKSB7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50
SXNEb3VibGVDb25zdGFudCgyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNjIxOTc3NzAyMzk1
MC45NSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50
KDIpIHNob3VsZCBiZSA2MjE5Nzc3MDIzOTUwLjk1LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0
ID0gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA1
LjA4NDIyOTk0NTg1MDQxNWUrMjkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50
SXNEb3VibGVDb25zdGFudCg1KSBzaG91bGQgYmUgNS4wODQyMjk5NDU4NTA0MTVlKzI5LCB3YXMg
PSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkg
eworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDIuMSk7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT09IDQ5NDY3NTA3MjYxMTEzLjgwNSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIDQ5NDY3
NTA3MjYxMTEzLjgwNSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJ
c0RvdWJsZUNvbnN0YW50KCk7CisKKworZnVuY3Rpb24gZXhwb25lbnRJc0luZmluaXR5Q29uc3Rh
bnQoeCkgeworICAgIHJldHVybiB4ICoqIEluZmluaXR5OworfQorbm9JbmxpbmUoZXhwb25lbnRJ
c0luZmluaXR5Q29uc3RhbnQpOworCitmdW5jdGlvbiB0ZXN0RXhwb25lbnRJc0luZmluaXR5Q29u
c3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDIpOworICAgICAgICBpZiAo
cmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJ
c0luZmluaXR5Q29uc3RhbnQoMikgc2hvdWxkIGJlIEluZmluaXR5LCB3YXMgPSAiICsgcmVzdWx0
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoNSk7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElz
SW5maW5pdHlDb25zdGFudCg1KSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCgyLjEpOworICAgICAgICBpZiAo
cmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJ
c0luZmluaXR5Q29uc3RhbnQoMi4xKSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIgKyByZXN1
bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KCk7CisKKworZnVu
Y3Rpb24gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCh4KSB7CisgICAgcmV0dXJu
IHggKiogLUluZmluaXR5OworfQorbm9JbmxpbmUoZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlD
b25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0
YW50KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIpOworICAgICAg
ICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElz
TmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIpIHNob3VsZCBiZSB6ZXJvLCB3YXMgPSAiICsgcmVz
dWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCg1KTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25l
bnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCg1KSBzaG91bGQgYmUgemVybywgd2FzID0gIiAr
IHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoMi4x
KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
ZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgyLjEpIHNob3VsZCBiZSB6ZXJvLCB3
YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElzTmVnYXRpdmVJbmZpbml0
eUNvbnN0YW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Bvdy13aXRoLW5ldmVyLU5hTi1leHBvbmVudC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNkNmI5OTFhYTIwMmE0MjRjYWYyNWQyYWYxOTlkNTk5MmVhYTFjMmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy13aXRoLW5ldmVyLU5h
Ti1leHBvbmVudC5qcwpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBleHBvbmVudElzTm9uTmFu
RG91YmxlMSh4LCBkb3VibGVBcnJheUluZGV4KSB7CisgICAgdmFyIGRvdWJsZUFycmF5ID0gWzQu
NF07CisgICAgcmV0dXJuIHggKiogZG91YmxlQXJyYXlbZG91YmxlQXJyYXlJbmRleF07Cit9Citu
b0lubGluZShleHBvbmVudElzTm9uTmFuRG91YmxlMSk7CisKK2Z1bmN0aW9uIGV4cG9uZW50SXNO
b25OYW5Eb3VibGUyKHgsIGRvdWJsZUFycmF5KSB7CisgICAgcmV0dXJuIHggKiogZG91YmxlQXJy
YXlbMF07Cit9Citub0lubGluZShleHBvbmVudElzTm9uTmFuRG91YmxlMik7CisKK2Z1bmN0aW9u
IHRlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzTm9uTmFuRG91
YmxlMSgyLCAwKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMjEuMTEyMTI2NTcyMzY2MzE0KQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzTm9uTmFuRG91YmxlMSgyLCAwKSBz
aG91bGQgYmUgMjEuMTEyMTI2NTcyMzY2MzE0LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9
IGV4cG9uZW50SXNOb25OYW5Eb3VibGUyKDMsIFstMS41XSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IDAuMTkyNDUwMDg5NzI5ODc1MjYpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9u
ZW50SXNOb25OYW5Eb3VibGUyKDMsIFstMS41XSkgc2hvdWxkIGJlIDAuMTkyNDUwMDg5NzI5ODc1
MjYsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNEb3VibGVDb25z
dGFudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3Rlc3QyNjIu
eWFtbCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy90ZXN0MjYyLnlhbWwKaW5kZXggMGM4
NDViMzVjNTQyNThhZjI1ZDhiMWE0OGZlNGUyYjFhN2FjYWY1Mi4uODQ1ZDU0ZDBhOTEzMzgzODI5
YjhjNTBjODFkYjAwNTQyZjUyZTUwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3Rlc3QyNjIueWFtbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvdGVz
dDI2Mi55YW1sCkBAIC02MDgyMiwxMTMgKzYwODIyLDExMyBAQAogLSBwYXRoOiB0ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXF1YWxzL3N5bWJvbC1zdHJpY3QtZXF1YWxpdHktY29t
cGFyaXNvbi5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEuanMKLSAgY21kOiBy
dW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhw
LW9wZXJhdG9yX0ExLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMC5qcwog
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBw
bHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTAuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJh
dG9yX0ExMS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
W10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTExLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYy
IDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0ExMi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEyLmpzCi0gIGNtZDogcnVu
VGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBs
eWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEzLmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlh
dGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNC5qcwotICBjbWQ6IHJ1blRlc3QyNjIg
OmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3Jt
YWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3Jf
QTE0LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
OnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9l
eHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNS5qcwotICBjbWQ6IHJ1
blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0
MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAt
b3BlcmF0b3JfQTE1LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNi5qcwot
ICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21k
OiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDog
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5n
LXRoZS1leHAtb3BlcmF0b3JfQTE2LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9y
X0ExNy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
W10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10K
IC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9u
L2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE3LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFp
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpu
b3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhw
LW9wZXJhdG9yX0ExOC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9u
ZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE4LmpzCi0gIGNtZDogcnVuVGVz
dDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5U
ZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWlu
Zy10aGUtZXhwLW9wZXJhdG9yX0ExOS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE5LmpzCi0gIGNt
ZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3Rd
CiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlv
bi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFp
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMi5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMjAuanMKLSAgY21kOiBydW5UZXN0
MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6
bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJh
dG9yX0EyMC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMjEuanMKLSAgY21k
OiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVu
VGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0EyMS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMjIu
anMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisg
IGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBs
eWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVy
YXRvcl9BMjMuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlh
dGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIg
OmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2
MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhl
LWV4cC1vcGVyYXRvcl9BMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTMuanMKLSAgY21kOiBydW5U
ZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1
blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5
aW5nLXRoZS1leHAtb3BlcmF0b3JfQTQuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E0LmpzCi0gIGNt
ZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3Rd
CiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlv
bi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E1LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFp
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNS5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNi5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpu
b3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTYuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTcuanMKLSAgY21kOiBy
dW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhw
LW9wZXJhdG9yX0E3LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E4LmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmct
dGhlLWV4cC1vcGVyYXRvcl9BOC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
OS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0g
cGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2Fw
cGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTkuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1hc3NpZ25tZW50LW9wZXJh
dG9yLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
ZXhwLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1ldmFsdWF0aW9u
LW9yZGVyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRp
b24vZXhwLW9wZXJhdG9yLWV2YWx1YXRpb24tb3JkZXIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpm
YWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIg
Om5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1w
cmVjZWRlbmNlLXVuYXJ5LWV4cHJlc3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVzdDI2
MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVuY2Ut
dW5hcnktZXhwcmVzc2lvbi1zZW1hbnRpY3MuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1wcmVjZWRl
bmNlLXVwZGF0ZS1leHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZh
aWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1wcmVjZWRlbmNlLXVwZGF0
ZS1leHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXN5bnRheC1lcnJv
ci1iaXRub3QtdW5hcnktZXhwcmVzc2lvbi1iYXNlLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9y
bWFsLCAiU3ludGF4RXJyb3IiLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3Itc3ludGF4LWVycm9y
LWJpdG5vdC11bmFyeS1leHByZXNzaW9uLWJhc2UuanMKQEAgLTYwOTU4LDkgKzYwOTU4LDkgQEAK
IC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9u
L2V4cC1vcGVyYXRvci1zeW50YXgtZXJyb3Itdm9pZC11bmFyeS1leHByZXNzaW9uLWJhc2UuanMK
ICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJTeW50YXhFcnJvciIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlh
dGlvbi9leHAtb3BlcmF0b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRp
b24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5l
c3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24i
LCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9l
eHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2Z1bmN0aW9uL1MxMC4xLjFfQTFfVDIuanMKICAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2Z1bmN0aW9uL1MxMC4xLjFfQTFfVDIuanMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284116</attachid>
            <date>2016-07-20 09:58:36 -0700</date>
            <delta_ts>2016-07-20 10:13:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159969-20160721015738.patch</filename>
            <type>text/plain</type>
            <size>98947</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NGEyNmJhYThkZjM5YzNhZWE5ZmEzYWJjNGE2MWZkNDdiNDMwMGM3Li5hMTQ0MjcwMDYxNDQwMTU1
YTRmZjI1OWZkYzhiYzBlNjAyYjZlOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjcgQEAKKzIwMTYtMDctMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTN10gSW50cm9kdWNlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyB0aGUgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiwgZS5nLiBgeCAq
KiB5YC4KKyAgICAgICAgVGhlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24gaXMgaW50cm9kdWNl
ZCBpbiBFQ01BMjYyIDIwMTYgYW5kIEVDTUEyNjIgMjAxNgorICAgICAgICBpcyBhbHJlYWR5IHJl
bGVhc2VkLiBTbyB0aGlzIGlzIG5vdCB0aGUgZHJhZnQgc3BlYy4KKworICAgICAgICBUaGUgZXhw
b25lbnRpYXRpb24gZXhwcmVzc2lvbiBoYXMgMiBpbnRlcmVzdGluZyBwb2ludHMuCisKKyAgICAg
ICAgMS4gUmlnaHQgYXNzb2NpYXRpdmUKKworICAgICAgICAgICAgVG8gZm9sbG93IHRoZSBNYXRo
IGV4cHJlc3Npb24sIHRoaXMgKiogb3BlcmF0b3IgaXMgcmlnaHQgYXNzb2NpYXRpdmUuCisgICAg
ICAgICAgICBXaGVuIHdlIGV4ZWN1dGUgYHggKiogeSAqKiB6YCwgdGhpcyBpcyBoYW5kbGVkIGFz
IGB4ICoqICh5ICoqIHopYCwgbm90IGAoeCAqKiB5KSAqKiB6YC4KKyAgICAgICAgICAgIFRoaXMg
cGF0Y2ggaW50cm9kdWNlcyB0aGUgcmlnaHQgYXNzb2NpYXRpdml0eSB0byB0aGUgYmluYXJ5IG9w
ZXJhdG9yIGFuZCBoYW5kbGVzIGl0CisgICAgICAgICAgICBpbiBvcGVyYXRvciBwcmVjZWRlbmNl
IHBhcnNlciBpbiBQYXJzZXIuY3BwLgorCisgICAgICAgIDIuIExIUyBvZiB0aGUgZXhwb25lbnRp
YXRpb24gZXhwcmVzc2lvbiBpcyBVcGRhdGVFeHByZXNzaW9uCisKKyAgICAgICAgICAgIEV4cG9u
ZW50aWF0aW9uRXhwcmVzc2lvbltZaWVsZF06CisgICAgICAgICAgICAgICAgVW5hcnlFeHByZXNz
aW9uWz9ZaWVsZF0KKyAgICAgICAgICAgICAgICBVcGRhdGVFeHByZXNzaW9uWz9ZaWVsZF0gKiog
RXhwb25lbnRpYXRpb25FeHByZXNzaW9uWz9ZaWVsZF0KKworICAgICAgICAgICAgQXMgd2UgY2Fu
IHNlZSwgdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHRoZSBFeHBvbmVudGlhdGlvbkV4cHJlc3Npb24g
aXMgVXBkYXRlRXhwcmVzc2lvbiwgbm90IFVuYXJ5RXhwcmVzc2lvbi4KKyAgICAgICAgICAgIEl0
IG1lYW5zIHRoYXQgYCt4ICoqIHlgIGJlY29tZXMgYSBzeW50YXggZXJyb3IuIFRoaXMgaXMgaW50
ZW50aW9uYWwuIFdpdGhvdXQgc21hbGwgZm9udCBpbiB0aGUgc2NyaXB0LCBgLXgqKnlgCisgICAg
ICAgICAgICBpcyBjb25mdXNpbmcgYmV0d2VlbiBgLSh4ICoqIHkpYCBhbmQgYCgteCkgKiogeWAu
IFNvIEVDTUEyNjIgaW50ZW50aW9uYWxseSBhdm9pZCBVbmFyeUV4cHJlc3Npb24gaGVyZS4KKyAg
ICAgICAgICAgIElmIHdlIG5lZWQgdG8gdXNlIGEgbmVnYXRlZCB2YWx1ZSwgd2UgbmVlZCB0byB3
cml0ZSBwYXJlbnRoZXNlcyBleHBsaWNpdGx5IGUuZy4gYCgteCkgKiogeWAuCisgICAgICAgICAg
ICBJbiB0aGlzIHBhdGNoIHdlIGVuc3VyZSB0aGF0IHRoZSBsZWZ0IGhhbmQgc2lkZSBpcyBub3Qg
dW5hcnkgZXhwcmVzc2lvbiBieSBjaGVja2luZyB0aGUgb3BlcmF0b3IgaW4KKyAgICAgICAgICAg
IHBhcnNlQmluYXJ5RXhwcmVzc2lvbi4gVGhpcyB3b3JrcyBzaW5jZSBgKipgIGhhcyB0aGUgaGln
aGVzdCBvcGVyYXRvciBwcmVjZWRlbmNlIGluIHRoZSBiaW5hcnkgb3BlcmF0b3JzLgorCisgICAg
ICAgIFdlIGludHJvZHVjZSBhIG5ldyBieXRlY29kZSwgb3BfcG93LiBUaGF0IHNpbXBseSB3b3Jr
cyBhcyBzaW1pbGFyIGFzIHRoZSBvdGhlciBiaW5hcnkgb3BlcmF0b3JzLgorICAgICAgICBBbmQg
aXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gQXJpdGhQb3cgaW4gREZHIGFuZCBoYW5kbGVkIGluIERG
RyBhbmQgRlRMLgorICAgICAgICBIZXJlLCB3ZSBqdXN0IGludHJvZHVlYyBhIG5ldyBieXRlY29k
ZSBpbnN0ZWFkIG9mIGNhbGxpbmcgTWF0aC5wb3cuIFRoaXMgaXMgYmVjYXVzZSB3ZSB3b3VsZCBs
aWtlIHRvIGV4ZWN1dGUgVG9OdW1iZXIKKyAgICAgICAgaW4gdGhlIGNhbGxlciBzaWRlLCBub3Qg
aW4gTWF0aC5wb3cuIEFuZCB3ZSBkb24ndCB3YW50IHRvIGNvbXBpbGUgKiogaW50byB0aGUgZm9s
bG93aW5nLgorCisgICAgICAgICAgICBsaHNOdW1iZXIgPSB0b19udW1iZXIgKGxocykKKyAgICAg
ICAgICAgIHJoc051bWJlciA9IHRvX251bWJlciAocmhzKQorICAgICAgICAgICAgY2FsbCBNYXRo
LnBvdyhsaHNOdW1iZXIsIHJoc051bWJlcikKKworICAgICAgICBXZSBlbnN1cmVkIHRoYXQgdGhp
cyBwYXRjaCBwYXNzIGFsbCB0aGUgdGVzdDI2MiB0ZXN0cyByZWxhdGVkIHRvIHRoZSBleHBvbmVu
dGlhdGlvbiBleHByZXNzaW9uLgorCisgICAgICAgIFRoZSBvbmx5IHNlbnNpdGl2ZSBwYXJ0IHRv
IHRoZSBwZXJmb3JtYW5jZSBpbiB0aGlzIHBhdGNoIGlzIHRoZSBwYXJzZXIgY2hhbmdlLgorICAg
ICAgICBUaGUgY29kZSBsb2FkIHBlcmZvcm1hbmNlIGluIG15IHg2NCBsaW51eCBib3ggKGhhbmF5
YW1hdGEpIGlzIG5ldXRyYWwuCisKKyAgICAgICAgICAgIENvbGxlY3RlZCAzMCBzYW1wbGVzIHBl
ciBiZW5jaG1hcmsvVk0sIHdpdGggMzAgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1p
dHRlZCBhIGNhbGwgdG8KKyAgICAgICAgICAgIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1l
bnRzLiBVc2VkIDEgYmVuY2htYXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2Fy
bS11cC4gVXNlZAorICAgICAgICAgICAgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1
bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbCB0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1h
cmsKKyAgICAgICAgICAgIGV4ZWN1dGlvbiB0aW1lcyB3aXRoIDk1JSBjb25maWRlbmNlIGludGVy
dmFscyBpbiBtaWxsaXNlY29uZHMuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiYXNlbGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKworICAgICAgICAgICAgY2xv
c3VyZSAgICAgICAgICAgICAgMC42MDI4OSstMC4wMDIzNCAgICAgICAgICAwLjYwMjY4Ky0wLjAw
NjAzCisgICAgICAgICAgICBqcXVlcnkgICAgICAgICAgICAgICA3LjkxODIyKy0wLjAzOTcxICAg
ICAgICAgIDcuOTAzODErLTAuMDQ0MjQKKworICAgICAgICAgICAgPGdlb21ldHJpYz4gICAgICAg
ICAgMi4xODQ4MystMC4wMDY4OCAgICAgICAgICAyLjE4MjMzKy0wLjAxMzI4ICAgICAgICAgbWln
aHQgYmUgMS4wMDExeCBmYXN0ZXIKKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5q
c29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmg6CisgICAgICAgIChKU0M6
OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAoSlNDOjpjb21wdXRlRGVm
c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgICogYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OmVtaXRSZWFkTW9kaWZ5QXNz
aWdubWVudCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToK
KyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVEFyaXRo
bWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcG93KToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBwYXJzZXIvQVNUQnVpbGRl
ci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpvcGVyYXRvclN0YWNrU2hvdWxkUmVkdWNl
KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6bWFrZVBvd05vZGUpOgorICAgICAgICAoSlND
OjpBU1RCdWlsZGVyOjptYWtlTXVsdE5vZGUpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpt
YWtlRGl2Tm9kZSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VNb2ROb2RlKToKKyAg
ICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6bWFrZVN1Yk5vZGUpOgorICAgICAgICAoSlNDOjpBU1RC
dWlsZGVyOjptYWtlQmluYXJ5Tm9kZSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om9wZXJh
dG9yU3RhY2tIYXNIaWdoZXJQcmVjZWRlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYXJzZXIv
TGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4KToKKyAgICAgICAgKiBwYXJz
ZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpQb3dOb2RlOjpQb3dOb2RlKToK
KyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoK
KyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVudEV4cHJlc3Np
b24pOgorICAgICAgICAoSlNDOjppc1VuYXJ5T3BFeGNsdWRpbmdVcGRhdGVPcCk6CisgICAgICAg
IChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4cHJlc3Npb24pOgorICAgICAg
ICAoSlNDOjppc1VuYXJ5T3ApOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9QYXJzZXJUb2tl
bnMuaDoKKyAgICAgICAgKEpTQzo6aXNVcGRhdGVPcCk6CisgICAgICAgIChKU0M6OmlzVW5hcnlP
cCk6CisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3lu
dGF4Q2hlY2tlcjo6b3BlcmF0b3JTdGFja1BvcCk6CisgICAgICAgICogcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVDTCk6CisgICAgICAgICog
cnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LWJh
c2ljcy5qczogQWRkZWQuCisgICAgICAgICh2YWx1ZXNBcmVDbG9zZSk6CisgICAgICAgIChtYXRo
UG93RG91YmxlRG91YmxlMSk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50MSk6CisgICAgICAg
ICh0ZXN0MSk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlMik6CisgICAgICAgIChtYXRo
UG93RG91YmxlSW50Mik6CisgICAgICAgICh0ZXN0Mik6CisgICAgICAgIChtYXRoUG93RG91Ymxl
RG91YmxlMyk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50Myk6CisgICAgICAgICh0ZXN0Myk6
CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlNCk6CisgICAgICAgIChtYXRoUG93RG91Ymxl
SW50NCk6CisgICAgICAgICh0ZXN0NCk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlNSk6
CisgICAgICAgIChtYXRoUG93RG91YmxlSW50NSk6CisgICAgICAgICh0ZXN0NSk6CisgICAgICAg
IChtYXRoUG93RG91YmxlRG91YmxlNik6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50Nik6Cisg
ICAgICAgICh0ZXN0Nik6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlNyk6CisgICAgICAg
IChtYXRoUG93RG91YmxlSW50Nyk6CisgICAgICAgICh0ZXN0Nyk6CisgICAgICAgIChtYXRoUG93
RG91YmxlRG91YmxlOCk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50OCk6CisgICAgICAgICh0
ZXN0OCk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlOSk6CisgICAgICAgIChtYXRoUG93
RG91YmxlSW50OSk6CisgICAgICAgICh0ZXN0OSk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91
YmxlMTApOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDEwKToKKyAgICAgICAgKHRlc3QxMCk6
CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlMTEpOgorICAgICAgICAobWF0aFBvd0RvdWJs
ZUludDExKToKKyAgICAgICAgKHRlc3QxMSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1j
b2hlcmVuY3kuanM6IEFkZGVkLgorICAgICAgICAocG93NDIpOgorICAgICAgICAoYnVpbGQ0MkFz
RG91YmxlLm9wYXF1ZUFkZCk6CisgICAgICAgIChidWlsZDQyQXNEb3VibGUpOgorICAgICAgICAo
cG93RG91YmxlNDIpOgorICAgICAgICAoY2xvYmJlcik6CisgICAgICAgIChwb3c0Mk5vQ29uc3Rh
bnRGb2xkaW5nKToKKyAgICAgICAgKHBvd0RvdWJsZTQyTm9Db25zdGFudEZvbGRpbmcpOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctZXZhbHVhdGlvbi1vcmRlci5qczogQWRkZWQuCisgICAg
ICAgIChzaG91bGRCZSk6CisgICAgICAgICh0aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9wb3ctZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lvbi1vbi1saHMuanM6IEFkZGVk
LgorICAgICAgICAodGVzdFN5bnRheCk6CisgICAgICAgICh0ZXN0U3ludGF4RXJyb3IpOgorICAg
ICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKGxldC50b2tlbi5vZi50b2tlbnMudGVz
dFN5bnRheC5wb3cpOgorICAgICAgICAodGVzdFN5bnRheC5wb3cpOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9wb3ctaW50ZWdlci1leHBvbmVudC1mYXN0cGF0aC5qczogQWRkZWQuCisgICAgICAg
ICh2YWx1ZXNBcmVDbG9zZSk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9u
ZW50RmlmdHkpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5KToK
KyAgICAgICAgKHRlc3RFeHBvbmVudEZpZnR5KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3Vi
bGVUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludFRl
c3RFeHBvbmVudFRlblRob3VzYW5kcyk6CisgICAgICAgICh0ZXN0RXhwb25lbnRUZW5UaG91c2Fu
ZHMpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctbmFuLWJlaGF2aW9ycy5qczogQWRkZWQu
CisgICAgICAgICh0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMpOgorICAgICAg
ICAobWF0aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk6CisgICAgICAgICh0
ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToKKyAgICAgICAgKHRlc3RGbG9h
dGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYyk6CisgICAgICAgIChtYXRoUG93Rmxv
YXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToKKyAgICAgICAgKHRlc3RGbG9h
dGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgorICAgICAgICAodGVzdE5hTkJh
c2VTdGF0aWMpOgorICAgICAgICAobWF0aFBvd05hTkJhc2VEeW5hbWljMSk6CisgICAgICAgICht
YXRoUG93TmFOQmFzZUR5bmFtaWMyKToKKyAgICAgICAgKG1hdGhQb3dOYU5CYXNlRHluYW1pYzMp
OgorICAgICAgICAobWF0aFBvd05hTkJhc2VEeW5hbWljNCk6CisgICAgICAgICh0ZXN0TmFOQmFz
ZUR5bmFtaWMpOgorICAgICAgICAoaW5maW5pdGVFeHBvbmVudHNTdGF0aWMpOgorICAgICAgICAo
bWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzEpOgorICAgICAgICAobWF0aFBvd0luZmlu
aXRlRXhwb25lbnRzRHluYW1pYzIpOgorICAgICAgICAobWF0aFBvd0luZmluaXRlRXhwb25lbnRz
RHluYW1pYzMpOgorICAgICAgICAobWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQpOgor
ICAgICAgICAoaW5maW5pdGVFeHBvbmVudHNEeW5hbWljKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvcG93LXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0
aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctc3RhYmxlLXJlc3Vs
dHMuanM6IEFkZGVkLgorICAgICAgICAob3BhcXVlUG93KToKKyAgICAgICAgKGlzSWRlbnRpY2Fs
KToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXRvLW51bWJlci1zaG91bGQtYmUtZXhlY3V0
ZWQtaW4tY29kZS1zaWRlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAg
KHRocm93Lm5ldy5FcnJvcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy13aXRoLWNvbnN0
YW50cy5qczogQWRkZWQuCisgICAgICAgIChleHBvbmVudElzWmVybyk6CisgICAgICAgICh0ZXN0
RXhwb25lbnRJc1plcm8pOgorICAgICAgICAoZXhwb25lbnRJc09uZSk6CisgICAgICAgICh0ZXN0
RXhwb25lbnRJc09uZSk6CisgICAgICAgIChwb3dVc2VkQXNTcXJ0KToKKyAgICAgICAgKHRlc3RQ
b3dVc2VkQXNTcXJ0KToKKyAgICAgICAgKHBvd1VzZWRBc09uZU92ZXJTcXJ0KToKKyAgICAgICAg
KHRlc3RQb3dVc2VkQXNPbmVPdmVyU3FydCk6CisgICAgICAgIChwb3dVc2VkQXNTcXVhcmUpOgor
ICAgICAgICAodGVzdFBvd1VzZWRBc1NxdWFyZSk6CisgICAgICAgIChpbnRJbnRDb25zdGFudHNT
bWFsbE51bWJlcnMpOgorICAgICAgICAoaW50SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKToKKyAg
ICAgICAgKGludEludFNtYWxsQ29uc3RhbnRzKToKKyAgICAgICAgKGludERvdWJsZUNvbnN0YW50
cyk6CisgICAgICAgIChkb3VibGVEb3VibGVDb25zdGFudHMpOgorICAgICAgICAoZG91YmxlSW50
Q29uc3RhbnRzKToKKyAgICAgICAgKHRlc3RCYXNlQW5kRXhwb25lbnRDb25zdGFudExpdGVyYWxz
KToKKyAgICAgICAgKGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQpOgorICAgICAgICAodGVzdEV4
cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQpOgorICAgICAgICAoZXhwb25lbnRJc0RvdWJsZUNvbnN0
YW50KToKKyAgICAgICAgKHRlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQpOgorICAgICAgICAo
ZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQpOgorICAgICAgICAodGVzdEV4cG9uZW50SXNJbmZp
bml0eUNvbnN0YW50KToKKyAgICAgICAgKGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3Rh
bnQpOgorICAgICAgICAodGVzdEV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQpOgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctd2l0aC1uZXZlci1OYU4tZXhwb25lbnQuanM6IEFk
ZGVkLgorICAgICAgICAoZXhwb25lbnRJc05vbk5hbkRvdWJsZTEpOgorICAgICAgICAoZXhwb25l
bnRJc05vbk5hbkRvdWJsZTIpOgorICAgICAgICAodGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFu
dCk6CisgICAgICAgICogdGVzdHMvdGVzdDI2Mi55YW1sOgorCiAyMDE2LTA3LTIwICBNaWNoYWVs
IFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoT25PdmVyZmxvdyBp
biBKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OnNldHVwQWx0ZXJuYXRpdmVPZmZz
ZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpz
b24KaW5kZXggNWRmOTlkOWU5Y2NlYmJjZDUxZGM0NzFhNTliMzMyODY1MDFhMDU0MS4uMTNlOTgy
Y2U3MjRiYzJiYzlkN2ExZDQ1NzJlOTQwMDVjNTcxZGFiNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtMzksNiArMzksNyBAQAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGl2IiwgImxlbmd0aCIgOiA1IH0sCiAgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJvcF9tb2QiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX3N1YiIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfcG93IiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9s
c2hpZnQiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3JzaGlm
dCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdXJzaGlmdCIs
ICJsZW5ndGgiIDogNCB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuaAppbmRleCAzYTJiYjA1NzM4YTEyYjBjMDI0MjdkNWRiOTgxZGE4NTc0ZjQ1
OTdjLi41NzA4NDRjMzVkOTAyNWVlOTFhZDQ2OThiYWI5YmMxYTY3ZmQ4MzQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtMjA4LDYg
KzIwOCw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9w
X2RpdjoKICAgICBjYXNlIG9wX21vZDoKICAgICBjYXNlIG9wX3N1YjoKKyAgICBjYXNlIG9wX3Bv
dzoKICAgICBjYXNlIG9wX2xzaGlmdDoKICAgICBjYXNlIG9wX3JzaGlmdDoKICAgICBjYXNlIG9w
X3Vyc2hpZnQ6CkBAIC00MzEsNiArNDMyLDcgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2Rl
T2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAg
ICBjYXNlIG9wX2RpdjoKICAgICBjYXNlIG9wX21vZDoKICAgICBjYXNlIG9wX3N1YjoKKyAgICBj
YXNlIG9wX3BvdzoKICAgICBjYXNlIG9wX2xzaGlmdDoKICAgICBjYXNlIG9wX3JzaGlmdDoKICAg
ICBjYXNlIG9wX3Vyc2hpZnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwCmluZGV4IDJkZjllYjViMDUwZDVhMzFlNjE1MzhkOGY5YTljNWFkNDVhYjUzZDEu
LjNmN2QyZjA1Yjk5MDA1MzJiOTZhN2Q2YjJkNjFlZDJhM2U2OGQ4YjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0xMDI0LDYgKzEwMjQsMTAg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAgIHByaW50QmluYXJ5
T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJtb2QiKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfcG93OiB7CisgICAgICAgICAgICBwcmludEJpbmFy
eU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicG93Iik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N1YjogewogICAgICAgICAgICAgcHJpbnRCaW5h
cnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInN1YiIpOwogICAgICAgICAgICAgKytpdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcAppbmRleCBkMDdlYWNhMjRkMWZmZjQ0Y2Y3YWEyYTg0MDY0OGJkMmRjMzUzN2UzLi41Yzhm
OTNmZTJhMmE0NGYwNTYyNjFhOTUzNmYzZGQ3NjQwODgxZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0xOTkzLDYg
KzE5OTMsOSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBSZWdpc3RlcklEKiBlbWl0UmVhZE1vZGlm
eUFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbgogICAgICAgICBjYXNlIE9wTW9kRXE6
CiAgICAgICAgICAgICBvcGNvZGVJRCA9IG9wX21vZDsKICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIE9wUG93RXE6CisgICAgICAgICAgICBvcGNvZGVJRCA9IG9wX3BvdzsKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBkc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDE4YjRjMzJkYTA5
MmU1NzM5ZjM3ODk3MjVlZWNmMWI0NDQ0ZGM0NWEuLjAyNjFiYWI2OWIwNTc1NTUxZGRlM2ZjNzg1
N2U0ZTlmMTVlMmZjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCkBAIC0zODE5LDYgKzM4MTksMTMgQEAgYm9vbCBCeXRlQ29kZVBhcnNl
cjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9w
X21vZCk7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIG9wX3BvdzogeworICAgICAgICAgICAg
Tm9kZSogb3AxID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBvcDIgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIHNldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIGFkZFRvR3JhcGgoQXJp
dGhQb3csIG9wMSwgb3AyKSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9wb3cpOworICAg
ICAgICB9CisKICAgICAgICAgY2FzZSBvcF9kaXY6IHsKICAgICAgICAgICAgIE5vZGUqIG9wMSA9
IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwog
ICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nh
cGFiaWxpdGllcy5jcHAKaW5kZXggYjAxYjA3MDU4NzIwZmIxYTNlYmE0OWM0NmM3YmRlNDkzMzkx
NTE3MS4uYmM1MTFjNTNhNDUwM2Y1MzcwZjVhNGYyYmVhNDk3Yzg5MzYzNTY0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTIzLDYgKzEy
Myw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQs
IENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9uZWdhdGU6CiAgICAg
Y2FzZSBvcF9tdWw6CiAgICAgY2FzZSBvcF9tb2Q6CisgICAgY2FzZSBvcF9wb3c6CiAgICAgY2Fz
ZSBvcF9kaXY6CiAgICAgY2FzZSBvcF9kZWJ1ZzoKICAgICBjYXNlIG9wX3Byb2ZpbGVfdHlwZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBmMjdkMzlhNmVhOGQ5NDNiNGJlODYyY2Rk
MGNkYjdlYWVkNWExMzQ3Li44ZmQzZjU4ZWQ0MTZhNzc0YmIyNzY1ZTRkNGQ1M2Q2OGJlOTE4MmU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0zMDAsNiArMzAwLDcgQEAgdm9pZCBK
SVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfbnN0cmlj
dGVxKQogICAgICAgICBERUZJTkVfT1Aob3BfZGVjKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5j
KQorICAgICAgICBERUZJTkVfT1Aob3BfcG93KQogICAgICAgICBERUZJTkVfT1Aob3BfcHJvZmls
ZV90eXBlKQogICAgICAgICBERUZJTkVfT1Aob3BfcHJvZmlsZV9jb250cm9sX2Zsb3cpCiAgICAg
ICAgIERFRklORV9PUChvcF9wdXNoX3dpdGhfc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApp
bmRleCA3MzExZGZhMTZiOWE0ZDhmOWMxNzVjZWRlZDczNzU5ZTJiMmNiMTNjLi4wOTNkN2RhYmQz
MDNmNTdjNGFkYmJlNTBhZDliMmU0MGY2ZmFkNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
QEAgLTU2Niw2ICs1NjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29w
X25zdHJpY3RlcShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfZGVjKEluc3Ry
dWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbmMoSW5zdHJ1Y3Rpb24qKTsKKyAgICAg
ICAgdm9pZCBlbWl0X29wX3BvdyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3Bf
cHJvZmlsZV90eXBlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxl
X2NvbnRyb2xfZmxvdyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHVzaF93
aXRoX3Njb3BlKEluc3RydWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVEFyaXRobWV0aWMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRB
cml0aG1ldGljLmNwcAppbmRleCAzMDM4ZmY3NDliYjA3Njc1MWFmYWNjZjhiM2RmZWZiNDZmMDZi
MGRhLi40ODU1ZjFkMjIzMWZmMWE0NGU3YmZhYjU5ZDJhNWFiZDQyNTYzNzBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKQEAgLTEwMzIsNyArMTAzMiwx
MyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bfc3ViKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5PgogICAgIH0KIH0KIAotLyogLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIEVORDogT1BfQURELCBPUF9TVUIsIE9QX01VTCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK3ZvaWQgSklUOjplbWl0X29wX3BvdyhJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENh
bGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfcG93KTsKKyAgICBzbG93UGF0
aENhbGwuY2FsbCgpOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5E
OiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMLCBPUF9QT1cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggMDE5OTMxNTQ1OGVh
MTUyMzE4ODcxMWNiYTgyYTY4YzMzM2Y3YTYzYy4uM2UwZGJkODk4NmI5ZGIxYWIwYTIzNWEzOTA4
NGMxMGFlZjQ1NjUxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTMyMCw2ICsxMzIwLDEyIEBAIF9sbGludF9vcF9t
b2Q6CiAgICAgZGlzcGF0Y2goNCkKIAogCitfbGxpbnRfb3BfcG93OgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjYWxsT3Bjb2RlU2xvd1BhdGgoX3Nsb3dfcGF0aF9wb3cpCisgICAgZGlzcGF0
Y2goNCkKKworCiBfbGxpbnRfb3BfdHlwZW9mOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBj
YWxsT3Bjb2RlU2xvd1BhdGgoX3Nsb3dfcGF0aF90eXBlb2YpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDlhYzkwNGFkZTM3NDU4ZDY4MzFlM2I5NWU1NGI0
NjA0NTZlYTZkNTQuLjE5ZTM2MmU3OTZkYjc1MDJlOTNiM2I0OTYxZmIwMjFmM2Q3MWQzNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNsdWRlICJCeXRlY29kZUludHJp
bnNpY1JlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgogI2luY2x1ZGUgIk5vZGVD
b25zdHJ1Y3RvcnMuaCIKICNpbmNsdWRlICJTeW50YXhDaGVja2VyLmgiCiAjaW5jbHVkZSAiVmFy
aWFibGVFbnZpcm9ubWVudC5oIgpAQCAtMTQzLDYgKzE0NCw3IEBAIGNsYXNzIEFTVEJ1aWxkZXIg
ewogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlRGVsZXRlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZW5kKTsKICAgICBF
eHByZXNzaW9uTm9kZSogbWFrZU5lZ2F0ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhw
cmVzc2lvbk5vZGUqKTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZUJpdHdpc2VOb3ROb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7CisgICAgRXhwcmVzc2lvbk5v
ZGUqIG1ha2VQb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBs
ZWZ0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VNdWx0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBF
eHByZXNzaW9uTm9kZSogbGVmdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFz
QXNzaWdubWVudHMpOwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlRGl2Tm9kZShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbGVmdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlTW9k
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbGVmdCwgRXhwcmVz
c2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwpAQCAtNzg0LDkgKzc4
NiwxNCBAQCBjbGFzcyBBU1RCdWlsZGVyIHsKICAgICAgICAgb3BlcmF0b3JTdGFja0RlcHRoLS07
CiAgICAgICAgIG1fYmluYXJ5T3BlcmF0b3JTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgfQotICAg
IGJvb2wgb3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVuY2UoaW50JiwgaW50IHByZWNlZGVu
Y2UpCisgICAgYm9vbCBvcGVyYXRvclN0YWNrU2hvdWxkUmVkdWNlKGludCBwcmVjZWRlbmNlKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHByZWNlZGVuY2UgPD0gbV9iaW5hcnlPcGVyYXRvclN0YWNr
Lmxhc3QoKS5zZWNvbmQ7CisgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHByZWNlZGVuY2Ugb2Yg
dGhlIG9wZXJhdG9yIHN0YWNrIGlzIHRoZSBzYW1lIHRvIHRoZSBvbmUgb2YgdGhlIGdpdmVuIG9w
ZXJhdG9yLAorICAgICAgICAvLyBpdCBkZXBlbmRzIG9uIHRoZSBhc3NvY2lhdGl2ZSB3aGV0aGVy
IHdlIHJlZHVjZSB0aGUgc3RhY2suCisgICAgICAgIC8vIElmIHRoZSBvcGVyYXRvciBpcyByaWdo
dCBhc3NvY2lhdGl2ZSwgd2Ugc2hvdWxkIG5vdCByZWR1Y2UgdGhlIHN0YWNrIHJpZ2h0IG5vdy4K
KyAgICAgICAgaWYgKHByZWNlZGVuY2UgPT0gbV9iaW5hcnlPcGVyYXRvclN0YWNrLmxhc3QoKS5z
ZWNvbmQpCisgICAgICAgICAgICByZXR1cm4gIShtX2JpbmFyeU9wZXJhdG9yU3RhY2subGFzdCgp
LmZpcnN0ICYgUmlnaHRBc3NvY2lhdGl2ZUJpbmFyeU9wVG9rZW5GbGFnKTsKKyAgICAgICAgcmV0
dXJuIHByZWNlZGVuY2UgPCBtX2JpbmFyeU9wZXJhdG9yU3RhY2subGFzdCgpLnNlY29uZDsKICAg
ICB9CiAgICAgY29uc3QgQmluYXJ5T3BlcmFuZCYgZ2V0RnJvbU9wZXJhbmRTdGFjayhpbnQgaSkg
eyByZXR1cm4gbV9iaW5hcnlPcGVyYW5kU3RhY2tbbV9iaW5hcnlPcGVyYW5kU3RhY2suc2l6ZSgp
ICsgaV07IH0KICAgICB2b2lkIHNocmlua09wZXJhbmRTdGFja0J5KGludCYgb3BlcmFuZFN0YWNr
RGVwdGgsIGludCBhbW91bnQpCkBAIC0xMDQ0LDggKzEwNTEsMjkgQEAgRXhwcmVzc2lvbk5vZGUq
IEFTVEJ1aWxkZXI6Om1ha2VCaXR3aXNlTm90Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxv
Y2F0aW9uLAogICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEJpdHdpc2VOb3ROb2RlKGxv
Y2F0aW9uLCBleHByKTsKIH0KIAorRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VQb3dO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHBy
MSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCit7Cisg
ICAgYXV0byogc3RyaXBwZWRFeHByMSA9IGV4cHIxLT5zdHJpcFVuYXJ5UGx1cygpOworICAgIGF1
dG8qIHN0cmlwcGVkRXhwcjIgPSBleHByMi0+c3RyaXBVbmFyeVBsdXMoKTsKKworICAgIGlmIChz
dHJpcHBlZEV4cHIxLT5pc051bWJlcigpICYmIHN0cmlwcGVkRXhwcjItPmlzTnVtYmVyKCkpIHsK
KyAgICAgICAgY29uc3QgTnVtYmVyTm9kZSYgbnVtYmVyRXhwcjEgPSBzdGF0aWNfY2FzdDxOdW1i
ZXJOb2RlJj4oKnN0cmlwcGVkRXhwcjEpOworICAgICAgICBjb25zdCBOdW1iZXJOb2RlJiBudW1i
ZXJFeHByMiA9IHN0YXRpY19jYXN0PE51bWJlck5vZGUmPigqc3RyaXBwZWRFeHByMik7CisgICAg
ICAgIHJldHVybiBjcmVhdGVOdW1iZXJGcm9tQmluYXJ5T3BlcmF0aW9uKGxvY2F0aW9uLCBvcGVy
YXRpb25NYXRoUG93KG51bWJlckV4cHIxLnZhbHVlKCksIG51bWJlckV4cHIyLnZhbHVlKCkpLCBu
dW1iZXJFeHByMSwgbnVtYmVyRXhwcjIpOworICAgIH0KKworICAgIGlmIChzdHJpcHBlZEV4cHIx
LT5pc051bWJlcigpKQorICAgICAgICBleHByMSA9IHN0cmlwcGVkRXhwcjE7CisgICAgaWYgKHN0
cmlwcGVkRXhwcjItPmlzTnVtYmVyKCkpCisgICAgICAgIGV4cHIyID0gc3RyaXBwZWRFeHByMjsK
KworICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFBvd05vZGUobG9jYXRpb24sIGV4cHIx
LCBleHByMiwgcmlnaHRIYXNBc3NpZ25tZW50cyk7Cit9CisKIEV4cHJlc3Npb25Ob2RlKiBBU1RC
dWlsZGVyOjptYWtlTXVsdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhw
cmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNB
c3NpZ25tZW50cykKIHsKKyAgICAvLyBGSVhNRTogVW5hcnkgKyBjaGFuZ2UgdGhlIGV2YWx1YXRp
b24gb3JkZXIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1OTk2OAogICAgIGV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQbHVzKCk7CiAgICAgZXhwcjIg
PSBleHByMi0+c3RyaXBVbmFyeVBsdXMoKTsKIApAQCAtMTA2Niw2ICsxMDk0LDggQEAgRXhwcmVz
c2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VNdWx0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBFeHByZXMKIAogRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VEaXZO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHBy
MSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCiB7Cisg
ICAgLy8gRklYTUU6IFVuYXJ5ICsgY2hhbmdlIHRoZSBldmFsdWF0aW9uIG9yZGVyLgorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5NjgKICAgICBleHBy
MSA9IGV4cHIxLT5zdHJpcFVuYXJ5UGx1cygpOwogICAgIGV4cHIyID0gZXhwcjItPnN0cmlwVW5h
cnlQbHVzKCk7CiAKQEAgLTEwODIsNiArMTExMiw4IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWls
ZGVyOjptYWtlRGl2Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNz
CiAKIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlTW9kTm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2Rl
KiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQogeworICAgIC8vIEZJWE1FOiBVbmFy
eSArIGNoYW5nZSB0aGUgZXZhbHVhdGlvbiBvcmRlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTY4CiAgICAgZXhwcjEgPSBleHByMS0+c3RyaXBV
bmFyeVBsdXMoKTsKICAgICBleHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwogCkBAIC0x
MTA2LDYgKzExMzgsOCBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUFkZE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzcwogCiBFeHByZXNzaW9uTm9k
ZSogQVNUQnVpbGRlcjo6bWFrZVN1Yk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlv
biwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmln
aHRIYXNBc3NpZ25tZW50cykKIHsKKyAgICAvLyBGSVhNRTogVW5hcnkgKyBjaGFuZ2UgdGhlIGV2
YWx1YXRpb24gb3JkZXIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1OTk2OAogICAgIGV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQbHVzKCk7CiAgICAg
ZXhwcjIgPSBleHByMi0+c3RyaXBVbmFyeVBsdXMoKTsKIApAQCAtMTI5NSw2ICsxMzI5LDkgQEAg
RXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VCaW5hcnlOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIGludAogCiAgICAgY2FzZSBNT0Q6CiAgICAgICAgIHJldHVybiBt
YWtlTW9kTm9kZShsb2NhdGlvbiwgbGhzLmZpcnN0LCByaHMuZmlyc3QsIHJocy5zZWNvbmQuaGFz
QXNzaWdubWVudCk7CisKKyAgICBjYXNlIFBPVzoKKyAgICAgICAgcmV0dXJuIG1ha2VQb3dOb2Rl
KGxvY2F0aW9uLCBsaHMuZmlyc3QsIHJocy5maXJzdCwgcmhzLnNlY29uZC5oYXNBc3NpZ25tZW50
KTsKICAgICB9CiAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9MZXhlci5jcHAKaW5kZXggNWM3OTY3MzdjYzQ5MmFhNWMwMDNkMjBmZmU1ZWJhOWJk
N2Q3ZGM5YS4uYjM2YjNhYTkzMDkyNWY0ODliMGI4NDNjYzM4MmVjMGEzN2Y1ZTFjYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTE5NTYsNiArMTk1NiwxNiBAQCBK
U1Rva2VuVHlwZSBMZXhlcjxUPjo6bGV4KEpTVG9rZW4qIHRva2VuUmVjb3JkLCB1bnNpZ25lZCBs
ZXhlckZsYWdzLCBib29sIHN0cmljdAogICAgICAgICAgICAgdG9rZW4gPSBNVUxURVFVQUw7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBpZiAoVU5MSUtFTFkobV9jdXJy
ZW50ID09ICcqJykpIHsKKyAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICBpZiAobV9j
dXJyZW50ID09ICc9JykgeworICAgICAgICAgICAgICAgIHNoaWZ0KCk7CisgICAgICAgICAgICAg
ICAgdG9rZW4gPSBQT1dFUVVBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHRva2VuID0gUE9XOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KICAgICAgICAgdG9rZW4gPSBUSU1FUzsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDaGFy
YWN0ZXJTbGFzaDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3Ry
dWN0b3JzLmgKaW5kZXggN2Y1NDZhYjBiMDE3NzVlMDRjZTIzY2M4ZjU4ZDg2ODIxNGViNTQwYS4u
NWQzZjNjOTI2MTk2Mzg1NzU1NjliNzk3ZGJkYjRmNzljMTI2Yzc2NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTQ5Nyw2ICs0OTcs
MTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgIH0KIAorICAgIGlubGluZSBQb3dOb2Rl
OjpQb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2Rl
KiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMp
CisgICAgICAgIDogQmluYXJ5T3BOb2RlKGxvY2F0aW9uLCBSZXN1bHRUeXBlOjpudW1iZXJUeXBl
KCksIGV4cHIxLCBleHByMiwgb3BfcG93LCByaWdodEhhc0Fzc2lnbm1lbnRzKQorICAgIHsKKyAg
ICB9CisKICAgICBpbmxpbmUgTXVsdE5vZGU6Ok11bHROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCiAgICAgICAgIDogQmluYXJ5T3BOb2RlKGxvY2F0
aW9uLCBSZXN1bHRUeXBlOjpudW1iZXJUeXBlKCksIGV4cHIxLCBleHByMiwgb3BfbXVsLCByaWdo
dEhhc0Fzc2lnbm1lbnRzKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaApp
bmRleCAxZGM3NGUyYzViMmExNzIzZjNmNGM4YjEyY2Y4YWIyZGEwMGZmY2Y5Li4xZTA4ODI3OWZj
NzI0Y2E5M2IyYjYzM2ZmMDc5Y2MzYWUzMDE0ZjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCkBAIC02Nyw2ICs2Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBPcFhP
ckVxLAogICAgICAgICBPcE9yRXEsCiAgICAgICAgIE9wTW9kRXEsCisgICAgICAgIE9wUG93RXEs
CiAgICAgICAgIE9wTFNoaWZ0LAogICAgICAgICBPcFJTaGlmdCwKICAgICAgICAgT3BVUlNoaWZ0
CkBAIC0xMDM5LDYgKzEwNDAsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGJvb2wgbV9y
aWdodEhhc0Fzc2lnbm1lbnRzOwogICAgIH07CiAKKyAgICBjbGFzcyBQb3dOb2RlIDogcHVibGlj
IEJpbmFyeU9wTm9kZSB7CisgICAgcHVibGljOgorICAgICAgICBQb3dOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIy
LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOworICAgIH07CisKICAgICBjbGFzcyBNdWx0Tm9k
ZSA6IHB1YmxpYyBCaW5hcnlPcE5vZGUgewogICAgIHB1YmxpYzoKICAgICAgICAgTXVsdE5vZGUo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9u
Tm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNGVlYWUxNDgwMDQ2NTM2Y2YyMjhlMGQ3ODI4NmM4
ZjU0ZjkxOTZiMi4uZDlmMTA1ODgzNjdkNGViNzg1ZDA1M2I3Y2FlOTIwNGQ3NTU5MWZmOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtMzEyNiw2ICszMTI2LDcg
QEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8
TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW4KICAgICAgICAgY2FzZSBYT1JFUVVBTDogb3AgPSBP
cFhPckVxOyBicmVhazsKICAgICAgICAgY2FzZSBPUkVRVUFMOiBvcCA9IE9wT3JFcTsgYnJlYWs7
CiAgICAgICAgIGNhc2UgTU9ERVFVQUw6IG9wID0gT3BNb2RFcTsgYnJlYWs7CisgICAgICAgIGNh
c2UgUE9XRVFVQUw6IG9wID0gT3BQb3dFcTsgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICBnb3RvIGVuZDsKICAgICAgICAgfQpAQCAtMzIxOCw5ICszMjE5LDExIEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46
OnBhcnNlQ29uZGl0aW9uYWxFCiAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlQ29uZGl0aW9uYWxF
eHByKGxvY2F0aW9uLCBjb25kLCBsaHMsIHJocyk7CiB9CiAKLUFMV0FZU19JTkxJTkUgc3RhdGlj
IGJvb2wgaXNVbmFyeU9wKEpTVG9rZW5UeXBlIHRva2VuKQorQUxXQVlTX0lOTElORSBzdGF0aWMg
Ym9vbCBpc1VuYXJ5T3BFeGNsdWRpbmdVcGRhdGVPcChKU1Rva2VuVHlwZSB0b2tlbikKIHsKLSAg
ICByZXR1cm4gdG9rZW4gJiBVbmFyeU9wVG9rZW5GbGFnOworICAgIGlmIChpc1VwZGF0ZU9wKHRv
a2VuKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc1VuYXJ5T3AodG9rZW4p
OwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgpAQCAtMzI0MSwxMCArMzI0NCwz
NSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxM
ZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4cHJlcwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg
IEpTVGV4dFBvc2l0aW9uIGV4cHJTdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgICAg
ICBpbnQgaW5pdGlhbEFzc2lnbm1lbnRzID0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQ7
CisgICAgICAgIEpTVG9rZW5UeXBlIGxlYWRpbmdUb2tlblR5cGVGb3JVbmFyeUV4cHJlc3Npb24g
PSBtX3Rva2VuLm1fdHlwZTsKICAgICAgICAgVHJlZUV4cHJlc3Npb24gY3VycmVudCA9IHBhcnNl
VW5hcnlFeHByZXNzaW9uKGNvbnRleHQpOwogICAgICAgICBmYWlsSWZGYWxzZShjdXJyZW50LCAi
Q2Fubm90IHBhcnNlIGV4cHJlc3Npb24iKTsKICAgICAgICAgCiAgICAgICAgIGNvbnRleHQuYXBw
ZW5kQmluYXJ5RXhwcmVzc2lvbkluZm8ob3BlcmFuZFN0YWNrRGVwdGgsIGN1cnJlbnQsIGV4cHJT
dGFydCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwgaW5p
dGlhbEFzc2lnbm1lbnRzICE9IG1fcGFyc2VyU3RhdGUuYXNzaWdubWVudENvdW50KTsKKworICAg
ICAgICAvLyAxMi42IGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWV4cC1vcGVy
YXRvcgorICAgICAgICAvLyBFeHBvbmVudGlhdGlvbkV4cHJlc2lvbiBpcyBkZXNjcmliZWQgYXMg
Zm9sbG93cy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gICAgIEV4cG9uZW50aWF0aW9uRXhwcmVz
c2lvbltZaWVsZF06CisgICAgICAgIC8vICAgICAgICAgVW5hcnlFeHByZXNzaW9uWz9ZaWVsZF0K
KyAgICAgICAgLy8gICAgICAgICBVcGRhdGVFeHByZXNzaW9uWz9ZaWVsZF0gKiogRXhwb25lbnRp
YXRpb25FeHByZXNzaW9uWz9ZaWVsZF0KKyAgICAgICAgLy8KKyAgICAgICAgLy8gQXMgd2UgY2Fu
IHNlZSwgdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHRoZSBFeHBvbmVudGlhdGlvbkV4cHJlc3Npb24g
aXMgVXBkYXRlRXhwcmVzc2lvbiwgbm90IFVuYXJ5RXhwcmVzc2lvbi4KKyAgICAgICAgLy8gU28g
cGxhY2luZyBVbmFyeUV4cHJlc3Npb24gbm90IGluY2x1ZGVkIGluIFVwZGF0ZUV4cHJlc3Npb24g
aGVyZSBpcyBhIHN5bnRheCBlcnJvci4KKyAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbC4g
Rm9yIGV4YW1wbGUsIGlmIFVuYXJ5RXhwcmVzc2lvbiBpcyBhbGxvd2VkLCB3ZSBjYW4gaGF2ZSB0
aGUgY29kZSBsaWtlIGAteCoqeWAuCisgICAgICAgIC8vIEJ1dCB0aGlzIGlzIGNvbmZ1c2luZzog
YC0oeCoqeSlgIE9SIGAoLXgpKip5YCwgd2hpY2ggaW50ZXJwcmV0YXRpb24gaXMgY29ycmVjdD8K
KyAgICAgICAgLy8gVG8gYXZvaWQgdGhpcyBwcm9ibGVtLCBFQ01BMjYyIG1ha2VzIHVucGFyZW50
aGVzaXplZCBleHBvbmVudGlhdGlvbiBleHByZXNzaW9uIGFzIG9wZXJhbmQgb2YgdW5hcnkgb3Bl
cmF0b3JzIGFuIGVhcmx5IGVycm9yLgorICAgICAgICAvLyBNb3JlIHJhdGlvbmFsZTogaHR0cHM6
Ly9tYWlsLm1vemlsbGEub3JnL3BpcGVybWFpbC9lcy1kaXNjdXNzLzIwMTUtU2VwdGVtYmVyLzA0
NDIzMi5odG1sCisgICAgICAgIC8vCisgICAgICAgIC8vIEhlcmUsIHdlIGd1YXJhbnRlZSB0aGF0
IHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiB0aGlzIGV4cHJlc3Npb24gaXMgbm90IHVuYXJ5IGV4cHJl
c3Npb24gYnkgY2hlY2tpbmcgdGhlIGxlYWRpbmcgb3BlcmF0b3Igb2YgdGhlIHBhcnNlVW5hcnlF
eHByZXNzaW9uLgorICAgICAgICAvLyBUaGlzIGNoZWNrIGp1c3Qgd29ya3MuIExldCdzIGNvbnNp
ZGVyIHRoZSBleGFtcGxlLAorICAgICAgICAvLyAgICAgeSA8PiAteCAqKiB6CisgICAgICAgIC8v
ICAgICAgICAgIF4KKyAgICAgICAgLy8gICAgICAgICAgQ2hlY2sgdGhpcy4KKyAgICAgICAgLy8g
SWYgdGhlIGJpbmFyeSBvcGVyYXRvciA8PiBoYXMgaGlnaGVyIHByZWNlZGVuY2UgdGhhbiBvbmUg
b2YgIioqIiwgdGhpcyBjaGVjayBkb2VzIG5vdCB3b3JrLgorICAgICAgICAvLyBCdXQgaXQncyBP
SyBmb3IgKiogYmVjYXVzZSB0aGUgb3BlcmF0b3IgIioqIiBoYXMgdGhlIGhpZ2hlc3Qgb3BlcmF0
b3IgcHJlY2VkZW5jZSBpbiB0aGUgYmluYXJ5IG9wZXJhdG9ycy4KKyAgICAgICAgZmFpbElmVHJ1
ZShtYXRjaChQT1cpICYmIGlzVW5hcnlPcEV4Y2x1ZGluZ1VwZGF0ZU9wKGxlYWRpbmdUb2tlblR5
cGVGb3JVbmFyeUV4cHJlc3Npb24pLCAiRXhwZWN0ZWQgYSB1cGRhdGUgZXhwcmVzc2lvbiBvbiB0
aGUgbGVmdCBoYW5kIHNpZGUgb2YgYW4gZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiIpOworCiAg
ICAgICAgIGludCBwcmVjZWRlbmNlID0gaXNCaW5hcnlPcGVyYXRvcihtX3Rva2VuLm1fdHlwZSk7
CiAgICAgICAgIGlmICghcHJlY2VkZW5jZSkKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzI1Myw3
ICszMjgxLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQ
YXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VCaW5hcnlFeHByZXMKICAgICAgICAgaW50IG9wZXJhdG9y
VG9rZW4gPSBtX3Rva2VuLm1fdHlwZTsKICAgICAgICAgbmV4dChUcmVlQnVpbGRlcjo6RG9udEJ1
aWxkU3RyaW5ncyk7CiAgICAgICAgIAotICAgICAgICB3aGlsZSAob3BlcmF0b3JTdGFja0RlcHRo
ICYmICBjb250ZXh0Lm9wZXJhdG9yU3RhY2tIYXNIaWdoZXJQcmVjZWRlbmNlKG9wZXJhdG9yU3Rh
Y2tEZXB0aCwgcHJlY2VkZW5jZSkpIHsKKyAgICAgICAgd2hpbGUgKG9wZXJhdG9yU3RhY2tEZXB0
aCAmJiBjb250ZXh0Lm9wZXJhdG9yU3RhY2tTaG91bGRSZWR1Y2UocHJlY2VkZW5jZSkpIHsKICAg
ICAgICAgICAgIEFTU0VSVChvcGVyYW5kU3RhY2tEZXB0aCA+IDEpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICB0eXBlbmFtZSBUcmVlQnVpbGRlcjo6QmluYXJ5T3BlcmFuZCByaHMgPSBjb250
ZXh0LmdldEZyb21PcGVyYW5kU3RhY2soLTEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyVG9rZW5zLmgKaW5kZXggYWZmNGEzMDEzM2M3NTFlNjFmYWYxMjNlZDU2ODBlOTBk
YTk2NDcxNy4uZWIyNjNiYjJjZmI1ZDc2M2FjZWY3OWM2OWNkMjhmODIzYzJhN2U4MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oCkBAIC00MSw3ICs0MSw4
IEBAIGVudW0gewogICAgIEJpbmFyeU9wVG9rZW5BbGxvd3NJblByZWNlZGVuY2VBZGRpdGlvbmFs
U2hpZnQgPSA0LAogICAgIEJpbmFyeU9wVG9rZW5QcmVjZWRlbmNlTWFzayA9IDE1IDw8IEJpbmFy
eU9wVG9rZW5QcmVjZWRlbmNlU2hpZnQsCiAgICAgRXJyb3JUb2tlbkZsYWcgPSAxIDw8IChCaW5h
cnlPcFRva2VuQWxsb3dzSW5QcmVjZWRlbmNlQWRkaXRpb25hbFNoaWZ0ICsgQmluYXJ5T3BUb2tl
blByZWNlZGVuY2VTaGlmdCArIDcpLAotICAgIFVudGVybWluYXRlZEVycm9yVG9rZW5GbGFnID0g
RXJyb3JUb2tlbkZsYWcgPDwgMQorICAgIFVudGVybWluYXRlZEVycm9yVG9rZW5GbGFnID0gRXJy
b3JUb2tlbkZsYWcgPDwgMSwKKyAgICBSaWdodEFzc29jaWF0aXZlQmluYXJ5T3BUb2tlbkZsYWcg
PSBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZyA8PCAxCiB9OwogCiAjZGVmaW5lIEJJTkFSWV9P
UF9QUkVDRURFTkNFKHByZWMpICgoKHByZWMpIDw8IEJpbmFyeU9wVG9rZW5QcmVjZWRlbmNlU2hp
ZnQpIHwgKChwcmVjKSA8PCAoQmluYXJ5T3BUb2tlblByZWNlZGVuY2VTaGlmdCArIEJpbmFyeU9w
VG9rZW5BbGxvd3NJblByZWNlZGVuY2VBZGRpdGlvbmFsU2hpZnQpKSkKQEAgLTEwOSw2ICsxMTAs
NyBAQCBlbnVtIEpTVG9rZW5UeXBlIHsKICAgICBVUlNISUZURVFVQUwsCiAgICAgQU5ERVFVQUws
CiAgICAgTU9ERVFVQUwsCisgICAgUE9XRVFVQUwsCiAgICAgWE9SRVFVQUwsCiAgICAgT1JFUVVB
TCwKICAgICBET1RET1RET1QsCkBAIC0xMTgsMTAgKzEyMCwxMCBAQCBlbnVtIEpTVG9rZW5UeXBl
IHsKICAgICAvLyBCZWdpbiB0YWdnZWQgdG9rZW5zCiAgICAgUExVU1BMVVMgPSAwIHwgVW5hcnlP
cFRva2VuRmxhZywKICAgICBNSU5VU01JTlVTID0gMSB8IFVuYXJ5T3BUb2tlbkZsYWcsCi0gICAg
RVhDTEFNQVRJT04gPSAyIHwgVW5hcnlPcFRva2VuRmxhZywKLSAgICBUSUxERSA9IDMgfCBVbmFy
eU9wVG9rZW5GbGFnLAotICAgIEFVVE9QTFVTUExVUyA9IDQgfCBVbmFyeU9wVG9rZW5GbGFnLAot
ICAgIEFVVE9NSU5VU01JTlVTID0gNSB8IFVuYXJ5T3BUb2tlbkZsYWcsCisgICAgQVVUT1BMVVNQ
TFVTID0gMiB8IFVuYXJ5T3BUb2tlbkZsYWcsCisgICAgQVVUT01JTlVTTUlOVVMgPSAzIHwgVW5h
cnlPcFRva2VuRmxhZywKKyAgICBFWENMQU1BVElPTiA9IDQgfCBVbmFyeU9wVG9rZW5GbGFnLAor
ICAgIFRJTERFID0gNSB8IFVuYXJ5T3BUb2tlbkZsYWcsCiAgICAgVFlQRU9GID0gNiB8IFVuYXJ5
T3BUb2tlbkZsYWcgfCBLZXl3b3JkVG9rZW5GbGFnLAogICAgIFZPSURUT0tFTiA9IDcgfCBVbmFy
eU9wVG9rZW5GbGFnIHwgS2V5d29yZFRva2VuRmxhZywKICAgICBERUxFVEVUT0tFTiA9IDggfCBV
bmFyeU9wVG9rZW5GbGFnIHwgS2V5d29yZFRva2VuRmxhZywKQEAgLTE0OCw2ICsxNTAsNyBAQCBl
bnVtIEpTVG9rZW5UeXBlIHsKICAgICBUSU1FUyA9IDIwIHwgQklOQVJZX09QX1BSRUNFREVOQ0Uo
MTApLAogICAgIERJVklERSA9IDIxIHwgQklOQVJZX09QX1BSRUNFREVOQ0UoMTApLAogICAgIE1P
RCA9IDIyIHwgQklOQVJZX09QX1BSRUNFREVOQ0UoMTApLAorICAgIFBPVyA9IDIzIHwgQklOQVJZ
X09QX1BSRUNFREVOQ0UoMTEpIHwgUmlnaHRBc3NvY2lhdGl2ZUJpbmFyeU9wVG9rZW5GbGFnLCAv
LyBNYWtlIHN1cmUgdGhhdCBQT1cgaGFzIHRoZSBoaWdoZXN0IG9wZXJhdG9yIHByZWNlZGVuY2Uu
CiAgICAgRVJST1JUT0sgPSAwIHwgRXJyb3JUb2tlbkZsYWcsCiAgICAgVU5URVJNSU5BVEVEX0lE
RU5USUZJRVJfRVNDQVBFX0VSUk9SVE9LID0gMCB8IEVycm9yVG9rZW5GbGFnIHwgVW50ZXJtaW5h
dGVkRXJyb3JUb2tlbkZsYWcsCiAgICAgSU5WQUxJRF9JREVOVElGSUVSX0VTQ0FQRV9FUlJPUlRP
SyA9IDEgfCBFcnJvclRva2VuRmxhZywKQEAgLTIyMiw2ICsyMjUsMTYgQEAgc3RydWN0IEpTVG9r
ZW4gewogICAgIEpTVGV4dFBvc2l0aW9uIG1fZW5kUG9zaXRpb247CiB9OwogCitBTFdBWVNfSU5M
SU5FIGJvb2wgaXNVcGRhdGVPcChKU1Rva2VuVHlwZSB0b2tlbikKK3sKKyAgICByZXR1cm4gdG9r
ZW4gPj0gUExVU1BMVVMgJiYgdG9rZW4gPD0gQVVUT01JTlVTTUlOVVM7Cit9CisKK0FMV0FZU19J
TkxJTkUgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCit7CisgICAgcmV0dXJuIHRv
a2VuICYgVW5hcnlPcFRva2VuRmxhZzsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRp
ZiAvLyBQYXJzZXJUb2tlbnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRh
eENoZWNrZXIuaAppbmRleCBiZjBkOGZmZjcyYjNiZTYyZmUyM2VlM2ExMmU0N2Y5YjhjNDllMjUw
Li4wMzc4MmNlNGFlZTk1MmVkMjVkYTliMzJlZWMyY2QwYzdkMDM5NzlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtMzAxLDcgKzMwMSw3IEBA
IGNsYXNzIFN5bnRheENoZWNrZXIgewogICAgIAogICAgIC8vIExvZ2ljIHRvIGhhbmRsZSBkYXRh
c3RydWN0dXJlcyB1c2VkIGR1cmluZyBwYXJzaW5nIG9mIGJpbmFyeSBleHByZXNzaW9ucwogICAg
IHZvaWQgb3BlcmF0b3JTdGFja1BvcChpbnQmIG9wZXJhdG9yU3RhY2tEZXB0aCkgeyBvcGVyYXRv
clN0YWNrRGVwdGgtLTsgfQotICAgIGJvb2wgb3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVu
Y2UoaW50JiwgaW50KSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBvcGVyYXRvclN0YWNrU2hv
dWxkUmVkdWNlKGludCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIEJpbmFyeU9wZXJhbmQgZ2V0RnJv
bU9wZXJhbmRTdGFjayhpbnQpIHsgcmV0dXJuIG1fdG9wQmluYXJ5RXhwcjsgfQogICAgIHZvaWQg
c2hyaW5rT3BlcmFuZFN0YWNrQnkoaW50JiBvcGVyYW5kU3RhY2tEZXB0aCwgaW50IGFtb3VudCkg
eyBvcGVyYW5kU3RhY2tEZXB0aCAtPSBhbW91bnQ7IH0KICAgICB2b2lkIGFwcGVuZEJpbmFyeU9w
ZXJhdGlvbihjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQmIG9wZXJhbmRTdGFja0RlcHRoLCBp
bnQmLCBCaW5hcnlPcGVyYW5kLCBCaW5hcnlPcGVyYW5kKSB7IG9wZXJhbmRTdGFja0RlcHRoKys7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
Y3BwCmluZGV4IDAwNjEyNDVjNWI1MmQyNWZkNWMzNTRmYWJlNmM1Yjc2YzkxMDk0MjMuLjY1ZmRh
Njg1NGNjY2U4ZGM5NDE5MzAwNGE5ZjAyOTU0OGY5OGJjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtNDcwLDYgKzQ3MCwx
NCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfbW9kKQogICAgIFJFVFVSTihqc051bWJlcihq
c01vZChhLCBiKSkpOwogfQogCitTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcG93KQoreworICAg
IEJFR0lOKCk7CisgICAgZG91YmxlIGEgPSBPUF9DKDIpLmpzVmFsdWUoKS50b051bWJlcihleGVj
KTsKKyAgICBkb3VibGUgYiA9IE9QX0MoMykuanNWYWx1ZSgpLnRvTnVtYmVyKGV4ZWMpOworICAg
IFJFVFVSTihqc051bWJlcihvcGVyYXRpb25NYXRoUG93KGEsIGIpKSk7Cit9CisKIFNMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9sc2hpZnQpCiB7CiAgICAgQkVHSU4oKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggZWJjOTEzMDZmODNh
ODFiN2FhMmVlMGUzYjNmYmUyOTI3ZTlmYWQ2Mi4uOGM3MDc4NDI4MDJkNmEwM2QxMjhjZDhkMjky
YWZmNzM1Y2RhMDMyZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmgKQEAgLTIxOSw2ICsyMTksNyBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0wo
c2xvd19wYXRoX211bCk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3N1Yik7CiBT
TE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2Rpdik7CiBTTE9XX1BBVEhfSElEREVOX0RF
Q0woc2xvd19wYXRoX21vZCk7CitTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Bvdyk7
CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2xzaGlmdCk7CiBTTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX3JzaGlmdCk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX3Vyc2hpZnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9wb3ctYmFzaWNzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9w
b3ctYmFzaWNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhZjljZTZlYTg0MDJhMjFkNGZmOGQ3YzlkODBkOWVi
YTBlZjg0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Bvdy1iYXNpY3MuanMKQEAgLTAsMCArMSwyODYgQEAKK2Z1bmN0aW9uIHZhbHVlc0Fy
ZUNsb3NlKGEsIGIpIHsKKyAgICByZXR1cm4gTWF0aC5hYnMoYSAvIGIpIC0gMSA8IDFlLTEwOwor
fQorCisvLyBTb21lIHJhbmRvbSB2YWx1ZXMuCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91Ymxl
MSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVE
b3VibGUxKTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDEoeCwgeSkgeworICAgIHJldHVy
biB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50MSk7CisKK2Z1bmN0aW9uIHRl
c3QxKHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91Ymxl
MSh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3Vi
bGUxKCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFs
dWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8
IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBtYXRoUG93RG91YmxlSW50MSh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFs
dWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50MSgiICsgeCArICIsICIgKyBpbnRlZ2VyWSAr
ICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0
ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3QxKTsKK3Rlc3QxKDM3Ni43NjUyMjc2NDM3NzI5
NiwgMTAuODE2OTkyMjYwNTE1NjksIDcuMzMzOTUxOTI5MTA5MjUyZSsyNywgNS43NjM3ODk4OTU3
NTA4OWUrMjUpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlMih4LCB5KSB7CisgICAg
cmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGUyKTsKKworZnVu
Y3Rpb24gbWF0aFBvd0RvdWJsZUludDIoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citu
b0lubGluZShtYXRoUG93RG91YmxlSW50Mik7CitmdW5jdGlvbiB0ZXN0Mih4LCB5LCBleHBlY3Rl
ZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewor
ICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTIoeCwgeSk7CisgICAgICAg
IGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91YmxlMigiICsgeCArICIsICIg
KyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBl
eHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0Rv
dWJsZUludDIoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3Vs
dCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0
aFBvd0RvdWJsZUludDIoIiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQg
KyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citu
b0lubGluZSh0ZXN0Mik7Cit0ZXN0MigzNzYuNzY1MjI3NjQzNzcyOTYsIC01LjgxNjk5MjI2MDUx
NTY5LCAxLjAzNTE4MDMzMTE4NzU3OWUtMTUsIDEuMzE3MTgyNDMxMDQwMDI2NWUtMTMpOworCitm
dW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlMyh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsK
K30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGUzKTsKKworZnVuY3Rpb24gbWF0aFBvd0Rv
dWJsZUludDMoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93
RG91YmxlSW50Myk7CitmdW5jdGlvbiB0ZXN0Myh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTMoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJl
Q2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0LCBtYXRoUG93RG91YmxlRG91YmxlMygiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsg
cmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAg
fQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDMoeCwgaW50
ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDMo
IiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEg
dmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0Myk7
Cit0ZXN0MygtMzcuNjc2NTIyNzY0Mzc3Mjk2LCAxMC4wLCA1NzYzNzg5ODk1NzUwODkyLCA1NzYz
Nzg5ODk1NzUwODkyKTsKKworLy8gRXhwb25lbnQgemVyby4KK2Z1bmN0aW9uIG1hdGhQb3dEb3Vi
bGVEb3VibGU0KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBv
d0RvdWJsZURvdWJsZTQpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50NCh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQ0KTsKK2Z1bmN0
aW9uIHRlc3Q0KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91Ymxl
RG91YmxlNCh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVj
dGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3Vi
bGVEb3VibGU0KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVk
IGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZ
ID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50NCh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlm
ICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50NCgiICsgeCArICIsICIgKyBpbnRl
Z2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsg
ZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q0KTsKK3Rlc3Q0KC0zNy42NzY1MjI3
NjQzNzcyOTYsIDAsIDEsIDEpOworCisvLyBFeHBvbmVudCBtaW51cyB6ZXJvLgorZnVuY3Rpb24g
bWF0aFBvd0RvdWJsZURvdWJsZTUoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lu
bGluZShtYXRoUG93RG91YmxlRG91YmxlNSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ1
KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUlu
dDUpOworZnVuY3Rpb24gdGVzdDUoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1h
dGhQb3dEb3VibGVEb3VibGU1KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJl
c3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwg
bWF0aFBvd0RvdWJsZURvdWJsZTUoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCAr
ICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2
YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ1KHgsIGludGVnZXJZKTsK
KyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQoIiArIHggKyAi
LCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xv
c2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0NSk7Cit0ZXN0NSgt
MzcuNjc2NTIyNzY0Mzc3Mjk2LCAtMCwgMSwgMSk7CisKKy8vIEV4cG9uZW50IDEuCitmdW5jdGlv
biBtYXRoUG93RG91YmxlRG91YmxlNih4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25v
SW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGU2KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUlu
dDYoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91Ymxl
SW50Nik7CitmdW5jdGlvbiB0ZXN0Nih4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
bWF0aFBvd0RvdWJsZURvdWJsZTYoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2Uo
cmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
LCBtYXRoUG93RG91YmxlRG91YmxlNigiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0
ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAg
IHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDYoeCwgaW50ZWdlclkp
OworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDYoIiArIHgg
KyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUg
Y2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0Nik7Cit0ZXN0
NigtMzcuNjc2NTIyNzY0Mzc3Mjk2LCAxLjAsIC0zNy42NzY1MjI3NjQzNzcyOTYsIC0zNy42NzY1
MjI3NjQzNzcyOTYpOworCisvLyBFeHBvbmVudCAtMS4KK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVE
b3VibGU3KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0Rv
dWJsZURvdWJsZTcpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50Nyh4LCB5KSB7CisgICAg
cmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQ3KTsKK2Z1bmN0aW9u
IHRlc3Q3KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91
YmxlNyh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVk
MSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVE
b3VibGU3KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEg
dmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0g
eSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlNyh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlm
ICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91YmxlNygiICsgeCArICIsICIgKyBp
bnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAi
ICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q3KTsKK3Rlc3Q2KC0zNy42NzY1
MjI3NjQzNzcyOTYsIC0xLjAsIC0wLjAyNjU0MTcyNzQ5MDQ1NDI5NiwgLTAuMDI2NTQxNzI3NDkw
NDU0Mjk2KTsKKworLy8gTGV0J3Mgc3F1YXJlIHRoaW5ncy4KK2Z1bmN0aW9uIG1hdGhQb3dEb3Vi
bGVEb3VibGU4KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBv
d0RvdWJsZURvdWJsZTgpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50OCh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQ4KTsKK2Z1bmN0
aW9uIHRlc3Q4KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91Ymxl
RG91YmxlOCh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVj
dGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3Vi
bGVEb3VibGU4KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVk
IGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZ
ID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50OCh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlm
ICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50OCgiICsgeCArICIsICIgKyBpbnRl
Z2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsg
ZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q4KTsKK3Rlc3Q3KC0zNy42NzY1MjI3
NjQzNzcyOTYsIDIuMCwgMTQxOS41MjAzNjc2MTQ2NDA3LCAxNDE5LjUyMDM2NzYxNDY0MDcpOwor
CitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlOSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiog
eTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGU5KTsKKworZnVuY3Rpb24gbWF0aFBv
d0RvdWJsZUludDkoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRo
UG93RG91YmxlSW50OSk7CitmdW5jdGlvbiB0ZXN0OSh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVk
MikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTkoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVz
QXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91YmxlOSgiICsgeCArICIsICIgKyB5ICsgIikgPSAi
ICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7Cisg
ICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDkoeCwg
aW50ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQy
KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUlu
dDkoIiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVk
IGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0
OSk7Cit0ZXN0OCgzNy42NzY1MjI3NjQzNzcyOTYsIDIuMCwgMTQxOS41MjAzNjc2MTQ2NDA3LCAx
NDE5LjUyMDM2NzYxNDY0MDcpOworCisvLyBMZXQncyBjdWJlIHRoaW5ncy4KK2Z1bmN0aW9uIG1h
dGhQb3dEb3VibGVEb3VibGUxMCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5s
aW5lKG1hdGhQb3dEb3VibGVEb3VibGUxMCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQx
MCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJ
bnQxMCk7CitmdW5jdGlvbiB0ZXN0MTAoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9
IG1hdGhQb3dEb3VibGVEb3VibGUxMCh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9z
ZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQsIG1hdGhQb3dEb3VibGVEb3VibGUoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3Vs
dCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAg
ICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQxMCh4LCBpbnRlZ2Vy
WSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50KCIgKyB4
ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVl
IGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDkpOwordGVz
dDkoLTM3LjY3NjUyMjc2NDM3NzI5NiwgMy4wLCAtNTM0ODIuNTkxNDQ0OTMwMjM2LCAtNTM0ODIu
NTkxNDQ0OTMwMjM2KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTExKHgsIHkpIHsK
KyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTExKTsK
KworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDExKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5
OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDExKTsKK2Z1bmN0aW9uIHRlc3QxMSh4LCB5
LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTExKHgsIHkp
OworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZSgiICsg
eCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3Nl
IHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
bWF0aFBvd0RvdWJsZUludDExKHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVD
bG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQoIiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIg
KyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAg
ICB9Cit9Citub0lubGluZSh0ZXN0MTApOwordGVzdDEwKDM3LjY3NjUyMjc2NDM3NzI5NiwgMy4w
LCA1MzQ4Mi41OTE0NDQ5MzAyMzYsIDUzNDgyLjU5MTQ0NDkzMDIzNik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1jb2hlcmVuY3kuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1jb2hlcmVuY3kuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjk2NzFhNDJkYmQ4MmNlNTY4YzNjMjg2OWIxOGEzMDkzZDgxMzgyMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWNvaGVyZW5jeS5q
cwpAQCAtMCwwICsxLDk1IEBACisvL0Agc2tpcAorCisvLyBUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
dGhlIHBvdyBmdW5jdGlvbiByZXR1cm5zIGNvaGVyZW50IHJlc3VsdHM6CisvLyAoYSkgQWNyb3Nz
IGRpZmZlcmVudCBjb21waWxhdGlvbiB0aWVycworLy8gKGIpIFdpdGggaW50ZWdlciBleHBvbmVu
dHMgcmVwcmVzZW50ZWQgYXMgaW50MzIgb3IgYXMgZG91YmxlCisKK2Z1bmN0aW9uIHBvdzQyKCkg
eworICAgIHJldHVybiB7IHZhbHVlOiAyLjEgKiogNDIsIGZ0bDogaXNGaW5hbFRpZXIoKSB9Owor
fQorCitmdW5jdGlvbiBidWlsZDQyQXNEb3VibGUoKSB7CisgICAgZnVuY3Rpb24gb3BhcXVlQWRk
KHgsIHkpIHsgcmV0dXJuIHggKyB5OyB9CisgICAgcmV0dXJuIG9wYXF1ZUFkZCg0MiAtIDAuMTIz
LCAwLjEyMyk7Cit9CisKK3ZhciBkb3VibGU0MiA9IGJ1aWxkNDJBc0RvdWJsZSgpOworCitpZiAo
ZG91YmxlNDIgIT09IDQyKQorICAgIHRocm93IG5ldyBFcnJvcigiNDIgKGFzIGRvdWJsZSkgc2hv
dWxkIGJlID09PSB0byA0MiAoYXMgaW50KSIpOworCitmdW5jdGlvbiBwb3dEb3VibGU0MigpIHsK
KyAgICByZXR1cm4geyB2YWx1ZTogMi4xICoqIGRvdWJsZTQyLCBmdGw6IGlzRmluYWxUaWVyKCkg
fTsKK30KKworZnVuY3Rpb24gY2xvYmJlcigpIHsgfQorbm9JbmxpbmUoY2xvYmJlcik7CisKK2Z1
bmN0aW9uIHBvdzQyTm9Db25zdGFudEZvbGRpbmcoKSB7CisgICAgdmFyIG9iaiA9IHsgeDogMi4x
LCB5OiA0MiB9OworICAgIGNsb2JiZXIob2JqKTsKKyAgICByZXR1cm4geyB2YWx1ZTogb2JqLngg
Kiogb2JqLnksIGZ0bDogaXNGaW5hbFRpZXIoKSB9OworfQorCitmdW5jdGlvbiBwb3dEb3VibGU0
Mk5vQ29uc3RhbnRGb2xkaW5nKCkgeworICAgIHZhciBvYmogPSB7IHg6IDIuMSwgeTogZG91Ymxl
NDIgfTsKKyAgICBjbG9iYmVyKG9iaik7CisgICAgcmV0dXJuIHsgdmFsdWU6IG9iai54ICoqIG9i
ai55LCBmdGw6IGlzRmluYWxUaWVyKCkgfTsKK30KKwordmFyIHJlc3VsdHMgPSB7ICdqaXQnOiB7
fSwgJ2RmZyc6IHt9LCAnZnRsJzoge30gfTsKK3ZhciBmdW5zID0gWworICAgIFsgJ3BvdzQyJywg
cG93NDIgXSwKKyAgICBbICdwb3dEb3VibGU0MicsIHBvd0RvdWJsZTQyIF0sCisgICAgWyAncG93
NDJOb0NvbnN0YW50Rm9sZGluZycsIHBvdzQyTm9Db25zdGFudEZvbGRpbmcgXSwKKyAgICBbICdw
b3dEb3VibGU0Mk5vQ29uc3RhbnRGb2xkaW5nJywgcG93RG91YmxlNDJOb0NvbnN0YW50Rm9sZGlu
ZyBdCitdOwordmFyIHRpZXJzID0gWydqaXQnLCAnZGZnJywgJ2Z0bCddOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDsgKytpKSB7CisgICAgZm9yICh2YXIgaiBpbiBmdW5zKSB7CisgICAg
ICAgIHZhciBuYW1lID0gZnVuc1tqXVswXTsKKyAgICAgICAgdmFyIGZ1biA9IGZ1bnNbal1bMV07
CisgICAgICAgIHZhciByZXN1bHQgPSBmdW4oKTsKKyAgICAgICAgaWYgKHJlc3VsdC5mdGwpCisg
ICAgICAgICAgICByZXN1bHRzWydmdGwnXVtuYW1lXSA9IHJlc3VsdC52YWx1ZTsKKyAgICAgICAg
ZWxzZSBpZiAobnVtYmVyT2ZERkdDb21waWxlcyhmdW4pID4gMCkKKyAgICAgICAgICAgIHJlc3Vs
dHNbJ2RmZyddW25hbWVdID0gcmVzdWx0LnZhbHVlOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICByZXN1bHRzWydqaXQnXVtuYW1lXSA9IHJlc3VsdC52YWx1ZTsKKyAgICB9Cit9CisKK3ZhciBl
cnJvcnMgPSBbXTsKK3ZhciB2YWx1ZXNGb3IgPSB7fTsKK2ZvciAodmFyIGkgaW4gdGllcnMpIHsK
KyAgICB2YXIgdGllciA9IHRpZXJzW2ldOworICAgIHZhciByZXN1bHQgPSByZXN1bHRzW3RpZXJd
OworICAgIC8vIFdlIGRvbid0IGhhdmUgdGhpcyB0aWVyCisgICAgaWYgKE9iamVjdC5rZXlzKHJl
c3VsdCkubGVuZ3RoID09PSAwKQorICAgICAgICBjb250aW51ZTsKKworICAgIGZvciAodmFyIGog
aW4gZnVucykgeworICAgICAgICB2YXIgbmFtZSA9IGZ1bnNbal1bMF07CisgICAgICAgIGlmICgh
KG5hbWUgaW4gcmVzdWx0KSkKKyAgICAgICAgICAgIGVycm9ycy5wdXNoKG5hbWUgKyAiIHdhcyBu
b3QgY29tcGlsZWQgdG8gIiArIHRpZXIpOworICAgICAgICBlbHNlIGlmICghKG5hbWUgaW4gdmFs
dWVzRm9yKSkKKyAgICAgICAgICAgIHZhbHVlc0ZvcltuYW1lXSA9IHsgdmFsdWU6IHJlc3VsdFtu
YW1lXSwgdGllcnM6IFt0aWVyXSB9OworICAgICAgICBlbHNlIGlmIChyZXN1bHRbbmFtZV0gIT09
IHZhbHVlc0ZvcltuYW1lXS52YWx1ZSkKKyAgICAgICAgICAgIGVycm9ycy5wdXNoKG5hbWUgKyAi
IGhhcyBkaWZmZXJlbnQgcmVzdWx0cyBpbiAiICsgdGllciArICIgKCIgKyByZXN1bHRbbmFtZV0g
KyAiKSBhbmQgIiArIHZhbHVlc0ZvcltuYW1lXS50aWVycyArICIgKCIgKyB2YWx1ZXNGb3JbbmFt
ZV0udmFsdWUgKyAiKSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWx1ZXNGb3JbbmFt
ZV0udGllcnMucHVzaCh0aWVyKTsKKyAgICB9Cit9CisKK3ZhciByZWZlcmVuY2UgPSBmdW5zWzBd
WzBdOwordmFyIHJlc3VsdCA9IHZhbHVlc0ZvcltyZWZlcmVuY2VdLnZhbHVlOworCitmb3IgKHZh
ciBqIGluIGZ1bnMpIHsKKyAgICB2YXIgbmFtZSA9IGZ1bnNbal1bMF07CisgICAgaWYgKHZhbHVl
c0ZvcltuYW1lXS52YWx1ZSAhPT0gcmVzdWx0KQorICAgICAgICBlcnJvcnMucHVzaChuYW1lICsg
IiAoIiArIHZhbHVlc0ZvcltuYW1lXS52YWx1ZSArICIpIGFuZCAiICsgcmVmZXJlbmNlICsgIiAo
IiArIHJlc3VsdCArICIpIGhhdmUgZGlmZmVyZW50IHJlc3VsdHMiKTsKK30KKworaWYgKGVycm9y
cy5sZW5ndGggPiAwKQorICAgIHRocm93IG5ldyBFcnJvcihlcnJvcnMuam9pbignXG4nKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1ldmFsdWF0
aW9uLW9yZGVyLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXZh
bHVhdGlvbi1vcmRlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTU0NjQ3ZGQ1ZmFiYTBhNzVjNTMxZGY2ZTBh
Y2U4ODAzNDA2MGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wb3ctZXZhbHVhdGlvbi1vcmRlci5qcwpAQCAtMCwwICsxLDQwIEBACisvLyBD
b3B5cmlnaHQgKEMpIDIwMTYgUmljayBXYWxkcm9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8g
VGhpcyBjb2RlIGlzIGdvdmVybmVkIGJ5IHRoZSBCU0QgbGljZW5zZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlLgorCitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQoreworICAg
IGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2
YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3sKKyAgICBsZXQgY2FwdHVyZSA9IFtdOworICAgIGxl
dCBsZWZ0VmFsdWUgPSB7IHZhbHVlT2YoKSB7IGNhcHR1cmUucHVzaCgibGVmdFZhbHVlIik7IHJl
dHVybiAzOyB9fTsKKyAgICBsZXQgcmlnaHRWYWx1ZSA9IHsgdmFsdWVPZigpIHsgY2FwdHVyZS5w
dXNoKCJyaWdodFZhbHVlIik7IHJldHVybiAyOyB9fTsKKworICAgIChjYXB0dXJlLnB1c2goImxl
ZnQiKSwgbGVmdFZhbHVlKSAqKiArKGNhcHR1cmUucHVzaCgicmlnaHQiKSwgcmlnaHRWYWx1ZSk7
CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy8vICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDaGFuZ2VzIHRoZSBvcmRlcgorCisgICAgLy8gRXhwZWN0
ZWQgcGVyIG9wZXJhdG9yIGV2YWx1YXRpb24gb3JkZXI6ICJsZWZ0IiwgInJpZ2h0IiwgInJpZ2h0
VmFsdWUiLCAibGVmdFZhbHVlIgorICAgIHNob3VsZEJlKGNhcHR1cmVbMF0sICJsZWZ0Iik7Cisg
ICAgc2hvdWxkQmUoY2FwdHVyZVsxXSwgInJpZ2h0Iik7CisgICAgc2hvdWxkQmUoY2FwdHVyZVsy
XSwgInJpZ2h0VmFsdWUiKTsKKyAgICBzaG91bGRCZShjYXB0dXJlWzNdLCAibGVmdFZhbHVlIik7
Cit9CisKK3sKKyAgICBsZXQgY2FwdHVyZSA9IFtdOworICAgIGxldCBsZWZ0VmFsdWUgPSB7IHZh
bHVlT2YoKSB7IGNhcHR1cmUucHVzaCgibGVmdFZhbHVlIik7IHJldHVybiAzOyB9fTsKKyAgICBs
ZXQgcmlnaHRWYWx1ZSA9IHsgdmFsdWVPZigpIHsgY2FwdHVyZS5wdXNoKCJyaWdodFZhbHVlIik7
IHJldHVybiAyOyB9fTsKKworICAgICgrKGNhcHR1cmUucHVzaCgibGVmdCIpLCBsZWZ0VmFsdWUp
KSAqKiAoY2FwdHVyZS5wdXNoKCJyaWdodCIpLCByaWdodFZhbHVlKTsKKy8vICAgXgorLy8gICBD
aGFuZ2VzIHRoZSBvcmRlcgorCisgICAgLy8gRXhwZWN0ZWQgcGVyIG9wZXJhdG9yIGV2YWx1YXRp
b24gb3JkZXI6ICJsZWZ0IiwgInJpZ2h0IiwgInJpZ2h0VmFsdWUiLCAibGVmdFZhbHVlIgorICAg
IHNob3VsZEJlKGNhcHR1cmVbMF0sICJsZWZ0Iik7CisgICAgc2hvdWxkQmUoY2FwdHVyZVsxXSwg
ImxlZnRWYWx1ZSIpOworICAgIHNob3VsZEJlKGNhcHR1cmVbMl0sICJyaWdodCIpOworICAgIHNo
b3VsZEJlKGNhcHR1cmVbM10sICJyaWdodFZhbHVlIik7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1leHBlY3RzLXVwZGF0ZS1leHByZXNzaW9u
LW9uLWxocy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV4cGVj
dHMtdXBkYXRlLWV4cHJlc3Npb24tb24tbGhzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmZDUyMmFhZjJjZTgz
NmZkYjhlNjE0ZmYwYzk2MDgyMmUyYjMzZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1leHBlY3RzLXVwZGF0ZS1leHByZXNzaW9uLW9u
LWxocy5qcwpAQCAtMCwwICsxLDk2IEBACitmdW5jdGlvbiB0ZXN0U3ludGF4KHNjcmlwdCkgewor
ICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAgICB9IGNhdGNoIChlcnJvcikgewor
ICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikKKyAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7CisgICAgfQorfQor
CitmdW5jdGlvbiB0ZXN0U3ludGF4RXJyb3Ioc2NyaXB0LCBtZXNzYWdlKSB7CisgICAgdmFyIGVy
cm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICghZXJyb3IpCisgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgc3ludGF4IGVycm9yIG5vdCB0aHJvd24iKTsK
KworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBtZXNzYWdlKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworfQorCit7CisgICAgbGV0IHRv
a2VucyA9IFsKKyAgICAgICAgJy0nLAorICAgICAgICAnKycsCisgICAgICAgICd+JywKKyAgICAg
ICAgJyEnLAorICAgICAgICAndHlwZW9mJywKKyAgICAgICAgJ3ZvaWQnLAorICAgICAgICAnZGVs
ZXRlJywKKyAgICBdOworCisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAg
IHRlc3RTeW50YXhFcnJvcihgCisgICAgICAgIGZ1bmN0aW9uIHBvdyhhLCBiKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gJHt0b2tlbn0gYSAqKiBiOworICAgICAgICB9CisgICAgICAg
IGAsIGBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKionLiBFeHBlY3RlZCBhIHVwZGF0
ZSBleHByZXNzaW9uIG9uIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiBhbiBleHBvbmVudGlhdGlvbiBl
eHByZXNzaW9uLmApOworICAgIH0KK30KKworeworICAgIGxldCB0b2tlbnMgPSBbCisgICAgICAg
ICctJywKKyAgICAgICAgJysnLAorICAgICAgICAnficsCisgICAgICAgICchJywKKyAgICAgICAg
J3R5cGVvZicsCisgICAgICAgICd2b2lkJywKKyAgICAgICAgJ2RlbGV0ZScsCisgICAgXTsKKwor
ICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAgICAgICB0ZXN0U3ludGF4KGAKKyAg
ICAgICAgZnVuY3Rpb24gcG93KGEsIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAo
JHt0b2tlbn0gYSkgKiogYjsKKyAgICAgICAgfQorICAgICAgICBgKTsKKyAgICB9Cit9CisKK3sK
KyAgICBsZXQgdG9rZW5zID0gWworICAgICAgICAnKysnLAorICAgICAgICAnLS0nLAorICAgIF07
CisKKyAgICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsKKyAgICAgICAgdGVzdFN5bnRheChg
CisgICAgICAgIGZ1bmN0aW9uIHBvdyhhLCBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gJHt0b2tlbn0gYSAqKiBiOworICAgICAgICB9CisgICAgICAgIGApOworICAgIH0KK30KKwor
eworICAgIGxldCB0b2tlbnMgPSBbCisgICAgICAgICcrKycsCisgICAgICAgICctLScsCisgICAg
XTsKKworICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAgICAgICB0ZXN0U3ludGF4
KGAKKyAgICAgICAgZnVuY3Rpb24gcG93KGEsIGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiBhICR7dG9rZW59ICoqIGI7CisgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgfQorfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctaW50ZWdl
ci1leHBvbmVudC1mYXN0cGF0aC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcG93LWludGVnZXItZXhwb25lbnQtZmFzdHBhdGguanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFlZTI3Y2I2
YTEyMjU4M2I5ZjYxZjhjOTNkMTczOGJhNjdiNTgwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWludGVnZXItZXhwb25lbnQtZmFzdHBh
dGguanMKQEAgLTAsMCArMSw1NiBAQAorZnVuY3Rpb24gdmFsdWVzQXJlQ2xvc2UoYSwgYikgewor
ICAgIHJldHVybiBNYXRoLmFicyhhIC8gYikgLSAxIDwgMWUtMTA7Cit9CisKKy8vIFNtYWxsIGV4
cG9uZW50IHZhbHVlcyBhcmUgaGFuZGxlZCB0aHJvdWdoIGEgc2ltcGxlciBpbmxpbmUgbG9vcC4g
VGVzdCB0aGF0IGl0IGlzIG5vdCBvYnNlcnZhYmxlLgorZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURv
dWJsZVRlc3RFeHBvbmVudEZpZnR5KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5Cit9Citub0lu
bGluZShtYXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9uZW50RmlmdHkpOworCitmdW5jdGlvbiBt
YXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50RmlmdHkoeCwgeSkgeworICAgIHJldHVybiB4ICoq
IHkKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRGaWZ0eSk7CitmdW5j
dGlvbiB0ZXN0RXhwb25lbnRGaWZ0eSh4LCB5LCBleHBlY3RlZCkgeworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJs
ZURvdWJsZVRlc3RFeHBvbmVudEZpZnR5KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNs
b3NlKHJlc3VsdCwgZXhwZWN0ZWQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0LCAoIiArIHggKyAiKSAqKiAoIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVk
IHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0g
eSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50RmlmdHkoeCwgaW50ZWdlclkp
OworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQpKQorICAgICAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAoIiArIHggKyAiKSAqKiAoIiArIGludGVn
ZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCB2YWx1ZSBjbG9zZSB0byAiICsgZXhw
ZWN0ZWQ7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEV4cG9uZW50RmlmdHkpOwordGVzdEV4cG9u
ZW50RmlmdHkoNTMuNzA5MDExNjQxMzMxMDIsIDUwLjAsIDMuMTc5NDk0MTE4MTIwMTQ0ZSs4Nik7
Cit0ZXN0RXhwb25lbnRGaWZ0eSg1My43MDkwMTE2NDEzMzEwMiwgLTEwLjAsIDUuMDA2NDMyODQy
NjIxMTkyZS0xOCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRU
ZW5UaG91c2FuZHMoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHkKK30KK25vSW5saW5lKG1hdGhQ
b3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMpOworCitmdW5jdGlvbiBtYXRo
UG93RG91YmxlSW50VGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50VGVuVGhvdXNh
bmRzKTsKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudFRlblRob3VzYW5kcyh4LCB5LCBleHBlY3RlZCkg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZVRlc3RFeHBvbmVudFRlblRob3VzYW5kcyh4LCB5KTsK
KyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgKCIgKyB4ICsgIikgKiogKCIgKyB5ICsgIikg
PSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQ7Cisg
ICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludFRlc3RF
eHBvbmVudFRlblRob3VzYW5kcyh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJl
Q2xvc2UocmVzdWx0LCBleHBlY3RlZCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQsICgiICsgeCArICIpICoqICgiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAi
IGV4cGVjdGVkIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDsKKyAgICB9Cit9Citub0lubGlu
ZSh0ZXN0RXhwb25lbnRUZW5UaG91c2FuZHMpOwordGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKDEu
MDAxLCAxMDAwMC4wLCAyMTkxNi42ODEzMzkwNDgzNzMpOwordGVzdEV4cG9uZW50VGVuVGhvdXNh
bmRzKDEuMDAxLCAtMS4wLCAwLjk5OTAwMDk5OTAwMDk5OTEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctbmFuLWJlaGF2aW9ycy5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LW5hbi1iZWhhdmlvcnMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTFjNzBjNGYyNjAzMjM4ZDIwYjk0YWEwYTRhOWFlOTVlOThiNzYyOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LW5hbi1iZWhh
dmlvcnMuanMKQEAgLTAsMCArMSwyMDkgQEAKKy8vIElmIHkgaXMgTmFOLCB0aGUgcmVzdWx0IGlz
IE5hTi4KK2Z1bmN0aW9uIHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYygpIHsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IDUgKiogTmFOOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIDUgKiogTmFOID0gIiArIHJlc3VsdDsKKyAgICB9Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQg
PSBpICoqIE5hTjsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0LCBpICoqIE5hTiA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9
ICIgKyBpOworICAgIH0KK30KK25vSW5saW5lKHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVu
dFN0YXRpYyk7Cit0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMoKTsKKworZnVu
Y3Rpb24gbWF0aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5F
eHBvbmVudER5bmFtaWMpOworZnVuY3Rpb24gdGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50
RHluYW1pYygpIHsKKyAgICAvLyBXYXJtIHVwIHdpdGggMiBpbnRlZ2Vycy4KKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJ
bnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoMiwgNSk7CisgICAgICAgIGlmIChyZXN1
bHQgIT09IDMyKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93
SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKDIsIDUpID0gIiArIHJlc3VsdCArICIs
IGV4cGVjdGVkIDMyLiIKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBv
bmVudER5bmFtaWMoaSwgTmFOKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFO
RXhwb25lbnREeW5hbWljKGksIE5hTikgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaSAr
ICIsIGV4cGVjdGVkIE5hTiI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEludGVnZXJCYXNlV2l0
aE5hTkV4cG9uZW50RHluYW1pYyk7Cit0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5h
bWljKCk7CisKK2Z1bmN0aW9uIHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0
YXRpYygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IDUuNSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgNS41ICoqIE5hTiA9ICIgKyByZXN1
bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gKGkgKyAwLjUpICoqIE5hTjsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1
bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAoaSArIDAuNSkgKiog
TmFOID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CisgICAgfQorfQorbm9JbmxpbmUo
dGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKTsKK3Rlc3RGbG9hdGlu
Z1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYygpOworCitmdW5jdGlvbiBtYXRoUG93Rmxv
YXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9u
ZW50RHluYW1pYyk7CitmdW5jdGlvbiB0ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25l
bnREeW5hbWljKCkgeworICAgIC8vIFdhcm0gdXAgd2l0aCAyIGRvdWJsZS4KKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dG
bG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoMi41LCA1LjEpOworICAgICAg
ICBpZiAocmVzdWx0ICE9PSAxMDcuMDI3MTcwNTQ1NDMxMzUpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVu
dER5bmFtaWMoMi41LCA1LjEpID0gIiArIHJlc3VsdCArICIsIGV4cGVjdGVkIDEwNy4wMjcxNzA1
NDU0MzEzNS4iCisgICAgfQorCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhw
b25lbnREeW5hbWljKGkgKyAwLjUsIE5hTik7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0Zsb2F0aW5nUG9p
bnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyhpICsgMC41LCBOYU4pID0gIiArIHJlc3VsdCAr
ICIgd2l0aCBpID0gIiArIGkgKyAiLCBleHBlY3RlZCBOYU4iOworICAgIH0KK30KK25vSW5saW5l
KHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOwordGVzdEZsb2F0
aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygpOworCisvLyBJZiB5IGlzICswLCB0
aGUgcmVzdWx0IGlzIDEsIGV2ZW4gaWYgeCBpcyBOYU4uCisvLyBJZiB5IGlzIOKIkjAsIHRoZSBy
ZXN1bHQgaXMgMSwgZXZlbiBpZiB4IGlzIE5hTi4KKy8vIElmIHggaXMgTmFOIGFuZCB5IGlzIG5v
bnplcm8sIHRoZSByZXN1bHQgaXMgTmFOLgorZnVuY3Rpb24gdGVzdE5hTkJhc2VTdGF0aWMoKSB7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBOYU4gKiogKGkgKyAxKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBOYU4gKiogKGkgKyAxKSA9ICIgKyByZXN1
bHQgKyAiIHdpdGggaSA9ICIgKyBpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IE5hTiAqKiAoaSArIDEuNSk7CisgICAg
ICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdCwgTmFOICoqIChpICsgMS41KSA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIgKyBpOwor
ICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IE5hTiAqKiAwOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxKQorICAgICAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBOYU4gKiogMCA9ICIgKyByZXN1bHQ7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gTmFOICoqIC0wOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxKQorICAgICAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBOYU4gKiogLTAgPSAiICsgcmVzdWx0OworICAgIH0K
K30KK25vSW5saW5lKHRlc3ROYU5CYXNlU3RhdGljKTsKK3Rlc3ROYU5CYXNlU3RhdGljKCk7CisK
K2Z1bmN0aW9uIG1hdGhQb3dOYU5CYXNlRHluYW1pYzEoeCwgeSkgeworICAgIHJldHVybiB4ICoq
IHk7Cit9CitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMyKHgsIHkpIHsKKyAgICByZXR1
cm4geCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5hbWljMyh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dOYU5CYXNlRHluYW1pYzQoeCwg
eSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93TmFOQmFzZUR5bmFt
aWMxKTsKK25vSW5saW5lKG1hdGhQb3dOYU5CYXNlRHluYW1pYzIpOworbm9JbmxpbmUobWF0aFBv
d05hTkJhc2VEeW5hbWljMyk7Citub0lubGluZShtYXRoUG93TmFOQmFzZUR5bmFtaWM0KTsKK2Z1
bmN0aW9uIHRlc3ROYU5CYXNlRHluYW1pYygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dOYU5CYXNlRHluYW1pYzEo
TmFOLCBpICsgMSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd05hTkJhc2VEeW5hbWljMShOYU4sIGkgKyAx
KSA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIgKyBpOworICAgIH0KKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dOYU5C
YXNlRHluYW1pYzIoTmFOLCBpICsgMS41KTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFzZUR5bmFt
aWMyKE5hTiwgaSArIDEuNSkgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBtYXRoUG93TmFOQmFzZUR5bmFtaWMzKE5hTiwgMCk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IDEpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5C
YXNlRHluYW1pYzMoTmFOLCAwKSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd05hTkJh
c2VEeW5hbWljNChOYU4sIC0wKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd05hTkJhc2VEeW5hbWljNChOYU4s
IC0wKSA9ICIgKyByZXN1bHQ7CisgICAgfQorfQorbm9JbmxpbmUodGVzdE5hTkJhc2VEeW5hbWlj
KTsKK3Rlc3ROYU5CYXNlRHluYW1pYygpOworCisvLyBJZiBhYnMoeCkgaXMgMSBhbmQgeSBpcyAr
4oieLCB0aGUgcmVzdWx0IGlzIE5hTi4KKy8vIElmIGFicyh4KSBpcyAxIGFuZCB5IGlzIOKIkuKI
niwgdGhlIHJlc3VsdCBpcyBOYU4uCitmdW5jdGlvbiBpbmZpbml0ZUV4cG9uZW50c1N0YXRpYygp
IHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IDEgKiogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAgICAgICBpZiAoIWlzTmFO
KHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIDEgKiogTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRZID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSAoLTEpICoqIE51
bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAtMSAqKiBOdW1iZXIuUE9TSVRJVkVf
SU5GSU5JVFkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IDEgKiogTnVtYmVyLk5FR0FUSVZFX0lO
RklOSVRZOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQsIDEgKiogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID0gIiArIHJl
c3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSAoLTEpICoqIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICAg
ICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0LCAtMSAqKiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPSAiICsgcmVzdWx0OworICAgIH0K
K30KK25vSW5saW5lKGluZmluaXRlRXhwb25lbnRzU3RhdGljKTsKK2luZmluaXRlRXhwb25lbnRz
U3RhdGljKCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMxKHgs
IHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd0luZmluaXRlRXhw
b25lbnRzRHluYW1pYzIoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBt
YXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMyh4LCB5KSB7CisgICAgcmV0dXJuIHggKiog
eTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KHgsIHkpIHsK
KyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0luZmluaXRlRXhwb25lbnRz
RHluYW1pYzEpOworbm9JbmxpbmUobWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzIpOwor
bm9JbmxpbmUobWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMpOworbm9JbmxpbmUobWF0
aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQpOworZnVuY3Rpb24gaW5maW5pdGVFeHBvbmVu
dHNEeW5hbWljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzEoMSwgTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRZKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93SW5maW5pdGVFeHBvbmVu
dHNEeW5hbWljMSgxLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMigtMSwgTnVtYmVyLlBPU0lU
SVZFX0lORklOSVRZKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAg
dGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWlj
MigtMSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
bWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMoMSwgTnVtYmVyLk5FR0FUSVZFX0lORklO
SVRZKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMygxLCBOdW1i
ZXIuTkVHQVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW5m
aW5pdGVFeHBvbmVudHNEeW5hbWljNCgtMSwgTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZKTsKKyAg
ICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0LCBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljNCgtMSwgTnVtYmVyLk5FR0FU
SVZFX0lORklOSVRZKSA9ICIgKyByZXN1bHQ7CisgICAgfQorfQorbm9JbmxpbmUoaW5maW5pdGVF
eHBvbmVudHNEeW5hbWljKTsKK2luZmluaXRlRXhwb25lbnRzRHluYW1pYygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctc2ltcGxlLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctc2ltcGxlLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJlNWU5Y2Y4NDQ0ZGQ2MDIwYjRlNDhmZTU4N2E1OWEwZjkzOWQ5YTMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zaW1wbGUuanMKQEAg
LTAsMCArMSwzOSBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit7CisgICAgbGV0IGkgPSAyOworICAgIGxldCBqID0g
MzsKKyAgICBzaG91bGRCZSgyICoqIDMsIDgpOworICAgIHNob3VsZEJlKGkgKiogMywgOCk7Cisg
ICAgc2hvdWxkQmUoMiAqKiBqLCA4KTsKKyAgICBzaG91bGRCZShpICoqIGosIDgpOworfQorCit7
CisgICAgc2hvdWxkQmUoMiAqKiAzICoqIDMsIDEzNDIxNzcyOCk7CisgICAgc2hvdWxkQmUoMiAq
KiAzICsgMywgMTEpOworICAgIHNob3VsZEJlKDIgKiogMyArIDMgKiogMywgMzUpOworICAgIHNo
b3VsZEJlKDIgKiogMyAqIDMsIDI0KTsKKyAgICBzaG91bGRCZSgyICoqIDMgKiAzICoqIDMsIDIx
Nik7CisKKyAgICBzaG91bGRCZSgyICsgMyAqKiAzLCAyOSk7CisgICAgc2hvdWxkQmUoMiAqIDMg
KiogMywgNTQpOworfQorCit7CisgICAgbGV0IGkgPSAyOworICAgIGkgKio9IDQ7CisgICAgc2hv
dWxkQmUoaSwgMTYpOworICAgIGkgKio9IDEgKyAxOworICAgIHNob3VsZEJlKGksIDI1Nik7Cit9
CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBsZXQgYSA9IE1hdGgucmFu
ZG9tKCk7CisgICAgbGV0IGIgPSBNYXRoLnJhbmRvbSgpOworICAgIHNob3VsZEJlKGEgKiogYiwg
TWF0aC5wb3coYSwgYikpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wb3ctc3RhYmxlLXJlc3VsdHMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3Bvdy1zdGFibGUtcmVzdWx0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODI4ZmE5YWU2
NGJlMWY2OWE2MDg5NzcyNDc1ZDA1NjA1NTA3YzcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctc3RhYmxlLXJlc3VsdHMuanMKQEAgLTAs
MCArMSw4NSBAQAorLy8gVGhpcyB0ZXN0IHZlcmlmeSB0aGUgcmVzdWx0cyBvZiBgKipgIGRvIG5v
dCBjaGFuZ2UgYXMgd2UgY2hhbmdlIG9wdGltaXphdGlvbiB0aWVyLgorCitmdW5jdGlvbiBvcGFx
dWVQb3coYSwgYikKK3sKKyAgICByZXR1cm4gYSAqKiBiOworfQorbm9JbmxpbmUob3BhcXVlUG93
KTsKKworCitsZXQgY2FzZVN0cmluZ3MgPSBbCisgICAgIjAiLAorICAgICItMC4iLAorICAgICIw
LjUiLAorICAgICIxIiwKKyAgICAiMiIsCisgICAgIi0wLjUiLAorICAgICItMSIsCisgICAgIjk5
OSIsCisgICAgIjEwMDAiLAorICAgICIxMDAxIiwKKyAgICAiTmFOIiwKKyAgICAiSW5maW5pdHki
LAorICAgICItSW5maW5pdHkiLAorICAgICJNYXRoLlBJIiwKKyAgICAiTWF0aC5MTjIiLAorICAg
ICJNYXRoLkxOMTAiLAorICAgICJNYXRoLkUiLAorICAgICJNYXRoLkxPRzEwRSIsCisgICAgIk1h
dGguTE9HMkUiLAorICAgICJNYXRoLlNRUlQyIgorXTsKK2xldCBjYXNlcyA9IFtdOworZm9yIChs
ZXQgY2FzZVN0cmluZyBvZiBjYXNlU3RyaW5ncykgeworICAgIGNhc2VzLnB1c2goZXZhbChjYXNl
U3RyaW5nKSk7Cit9CisKK2xldCBleHBlY3RlZFJlc3VsdHMgPSBbXTsKK2xldCBjb25zdGFudEJh
c2VGdW5jdGlvbnMgPSBbXTsKK2xldCBjb25zdGFudEV4cG9uZW50RnVuY3Rpb25zID0gW107Citm
b3IgKGxldCBpID0gMDsgaSA8IGNhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgbGV0IGJhc2UgPSBj
YXNlc1tpXTsKKworICAgIGV4cGVjdGVkUmVzdWx0c1tpXSA9IFtdOworICAgIGZvciAobGV0IGog
PSAwOyBqIDwgY2FzZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgbGV0IGV4cG9uZW50ID0gY2Fz
ZXNbal07CisgICAgICAgIGV4cGVjdGVkUmVzdWx0c1tpXVtqXSA9IGJhc2UgKiogZXhwb25lbnQ7
CisgICAgfQorCisgICAgZXZhbCgiY29uc3RhbnRCYXNlRnVuY3Rpb25zW2ldID0gZnVuY3Rpb24g
KGV4cG9uZW50KSB7IHJldHVybiAoIiArIGNhc2VTdHJpbmdzW2ldICsgIikgKiogZXhwb25lbnQ7
IH0iKTsKKyAgICBldmFsKCJjb25zdGFudEV4cG9uZW50RnVuY3Rpb25zW2ldID0gZnVuY3Rpb24g
KGJhc2UpIHsgcmV0dXJuIGJhc2UgKiogKCIgKyBjYXNlU3RyaW5nc1tpXSArICIpOyB9Iik7Cit9
CisKK2Z1bmN0aW9uIGlzSWRlbnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGV4
cGVjdGVkID09PSBleHBlY3RlZCkgeworICAgICAgICBpZiAocmVzdWx0ICE9PSBleHBlY3RlZCkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCFleHBlY3RlZCAmJiAxIC8g
ZXhwZWN0ZWQgPT09IC1JbmZpbml0eSAmJiAxIC8gcmVzdWx0ICE9PSAtSW5maW5pdHkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IHJldHVybiByZXN1bHQgIT09IHJlc3VsdDsKK30KKworZm9yIChsZXQgdGllclVwTG9vcENvdW50
ZXIgPSAwOyB0aWVyVXBMb29wQ291bnRlciA8IDFlMzsgKyt0aWVyVXBMb29wQ291bnRlcikgewor
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgbGV0
IGJhc2UgPSBjYXNlc1tpXTsKKyAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjYXNlcy5sZW5n
dGg7ICsraikgeworICAgICAgICAgICAgbGV0IGV4cG9uZW50ID0gY2FzZXNbal07CisgICAgICAg
ICAgICBsZXQgZXhwZWN0ZWRSZXN1bHQgPSBleHBlY3RlZFJlc3VsdHNbaV1bal07CisgICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gb3BhcXVlUG93KGJhc2UsIGV4cG9uZW50KTsKKyAgICAgICAgICAg
IGlmICghaXNJZGVudGljYWwocmVzdWx0LCBleHBlY3RlZFJlc3VsdCkpCisgICAgICAgICAgICAg
ICAgdGhyb3cgYEZhaWxlZCBvcGFxdWVQb3cgd2l0aCBiYXNlID0gJHtiYXNlfSBleHBvbmVudCA9
ICR7ZXhwb25lbnR9IGV4cGVjdGVkICgke2V4cGVjdGVkUmVzdWx0fSkgZ290ICgke3Jlc3VsdH0p
YDsKKworICAgICAgICAgICAgcmVzdWx0ID0gY29uc3RhbnRCYXNlRnVuY3Rpb25zW2ldKGV4cG9u
ZW50KTsKKyAgICAgICAgICAgIGlmICghaXNJZGVudGljYWwocmVzdWx0LCBleHBlY3RlZFJlc3Vs
dCkpCisgICAgICAgICAgICAgICAgdGhyb3cgYEZhaWxlZCBjb25zdGFudEJhc2VGdW5jdGlvbnMg
d2l0aCBiYXNlID0gJHtiYXNlfSBleHBvbmVudCA9ICR7ZXhwb25lbnR9IGV4cGVjdGVkICgke2V4
cGVjdGVkUmVzdWx0fSkgZ290ICgke3Jlc3VsdH0pYDsKKworICAgICAgICAgICAgcmVzdWx0ID0g
Y29uc3RhbnRFeHBvbmVudEZ1bmN0aW9uc1tqXShiYXNlKTsKKyAgICAgICAgICAgIGlmICghaXNJ
ZGVudGljYWwocmVzdWx0LCBleHBlY3RlZFJlc3VsdCkpCisgICAgICAgICAgICAgICAgdGhyb3cg
YEZhaWxlZCBjb25zdGFudEV4cG9uZW50RnVuY3Rpb25zIHdpdGggYmFzZSA9ICR7YmFzZX0gZXhw
b25lbnQgPSAke2V4cG9uZW50fSBleHBlY3RlZCAoJHtleHBlY3RlZFJlc3VsdH0pIGdvdCAoJHty
ZXN1bHR9KWA7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy10by1udW1iZXItc2hvdWxkLWJlLWV4ZWN1dGVkLWlu
LWNvZGUtc2lkZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXRv
LW51bWJlci1zaG91bGQtYmUtZXhlY3V0ZWQtaW4tY29kZS1zaWRlLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3
MzEwN2E0ZTQ5Njc5YjJhNTczMDVkYWVmN2RlMjJkMjFlY2MzYTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy10by1udW1iZXItc2hvdWxk
LWJlLWV4ZWN1dGVkLWluLWNvZGUtc2lkZS5qcwpAQCAtMCwwICsxLDc3IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K3sKKyAgICBsZXQgdmFsdWUgPSB7CisgICAgICAgIHZhbHVlT2YoKQorICAgICAgICB7CisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgIH0KKyAgICB9OworICAgIGxl
dCBlcnJvciA9IG51bGw7CisKKyAgICB0cnkgeworICAgICAgICAyICoqIHZhbHVlOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICAvLyBnbG9iYWwsIGFu
ZCB2YWx1ZU9mLgorICAgIHNob3VsZEJlKGVycm9yLnN0YWNrLnNwbGl0KCJcbiIpLmxlbmd0aCwg
Mik7Cit9CisKK3sKKyAgICBsZXQgdmFsdWUgPSB7CisgICAgICAgIHZhbHVlT2YoKQorICAgICAg
ICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgIH0KKyAgICB9
OworICAgIGxldCBlcnJvciA9IG51bGw7CisKKyAgICB0cnkgeworICAgICAgICB2YWx1ZSAqKiAy
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICAvLyBn
bG9iYWwsIGFuZCB2YWx1ZU9mLgorICAgIHNob3VsZEJlKGVycm9yLnN0YWNrLnNwbGl0KCJcbiIp
Lmxlbmd0aCwgMik7Cit9CisKK3sKKyAgICBsZXQgdmFsdWUgPSB7CisgICAgICAgIHZhbHVlT2Yo
KQorICAgICAgICB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAg
IH0KKyAgICB9OworICAgIGxldCBlcnJvciA9IG51bGw7CisKKyAgICB0cnkgeworICAgICAgICBN
YXRoLnBvdyh2YWx1ZSwgMik7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7
CisgICAgfQorICAgIC8vIGdsb2JhbCwgTWF0aC5wb3csIGFuZCB2YWx1ZU9mLgorICAgIHNob3Vs
ZEJlKGVycm9yLnN0YWNrLnNwbGl0KCJcbiIpLmxlbmd0aCwgMyk7Cit9CisKK3sKKyAgICBsZXQg
dmFsdWUgPSB7CisgICAgICAgIHZhbHVlT2YoKQorICAgICAgICB7CisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIk5HIik7CisgICAgICAgIH0KKyAgICB9OworICAgIGxldCBlcnJvciA9IG51
bGw7CisKKyAgICB0cnkgeworICAgICAgICBNYXRoLnBvdygyLCB2YWx1ZSk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIC8vIGdsb2JhbCwgTWF0aC5w
b3csIGFuZCB2YWx1ZU9mLgorICAgIHNob3VsZEJlKGVycm9yLnN0YWNrLnNwbGl0KCJcbiIpLmxl
bmd0aCwgMyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Bvdy13aXRoLWNvbnN0YW50cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvcG93LXdpdGgtY29uc3RhbnRzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5ZTZhZjc0MWQxNjk4M2Ex
YjliOWVmMzI1NzdkMmJkNGFkZTAzZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy13aXRoLWNvbnN0YW50cy5qcwpAQCAtMCwwICsxLDI4
NSBAQAorZnVuY3Rpb24gZXhwb25lbnRJc1plcm8oeCkgeworICAgIHJldHVybiB4ICoqIDA7Cit9
Citub0lubGluZShleHBvbmVudElzWmVybyk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzWmVy
bygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IGV4cG9uZW50SXNaZXJvKDUpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiB6ZXJvRXhwb25lbnQoNSkgc2hvdWxkIGJlIDEsIHdh
cyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc1plcm8oNS41KTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPT0gMSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogemVyb0V4cG9uZW50
KDUuNSkgc2hvdWxkIGJlIDEsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9u
ZW50SXNaZXJvKCk7CisKKworZnVuY3Rpb24gZXhwb25lbnRJc09uZSh4KSB7CisgICAgcmV0dXJu
IHggKiogMTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNPbmUpOworCitmdW5jdGlvbiB0ZXN0RXhw
b25lbnRJc09uZSgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNPbmUoNSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IDUpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNPbmUoNSkgc2hvdWxk
IGJlIDUsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc09uZSg1LjUpOwor
ICAgICAgICBpZiAocmVzdWx0ICE9PSA1LjUpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4
cG9uZW50SXNPbmUoNS41KSBzaG91bGQgYmUgNS41LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0K
K30KK3Rlc3RFeHBvbmVudElzT25lKCk7CisKKworZnVuY3Rpb24gcG93VXNlZEFzU3FydCh4KSB7
CisgICAgcmV0dXJuIHggKiogMC41OworfQorbm9JbmxpbmUocG93VXNlZEFzU3FydCk7CisKK2Z1
bmN0aW9uIHRlc3RQb3dVc2VkQXNTcXJ0KCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHBvd1VzZWRBc1NxcnQoNCk7CisgICAgICAg
IGlmIChyZXN1bHQgIT09IE1hdGguc3FydCg0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
cG93VXNlZEFzU3FydCg0KSBzaG91bGQgYmUgMiwgd2FzID0gIiArIHJlc3VsdDsKKyAgICAgICAg
cmVzdWx0ID0gcG93VXNlZEFzU3FydCg0LjQpOworICAgICAgICBpZiAocmVzdWx0ICE9PSBNYXRo
LnNxcnQoNC40KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNlZEFzU3FydCg0KSBz
aG91bGQgYmUgIiArIE1hdGguc3FydCg0LjQpICsgIiwgd2FzID0gIiArIHJlc3VsdDsKKyAgICAg
ICAgaWYgKHBvd1VzZWRBc1NxcnQoSW5maW5pdHkpICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAg
IHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3FydChJbmZpbml0eSkiOworICAgICAgICBpZiAocG93
VXNlZEFzU3FydCgtSW5maW5pdHkpICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJG
YWlsZWQgcG93VXNlZEFzU3FydCgtSW5maW5pdHkpIjsKKyAgICAgICAgbGV0IG5hblJlc3VsdCA9
IHBvd1VzZWRBc1NxcnQoTmFOKQorICAgICAgICBpZiAobmFuUmVzdWx0ID09PSBuYW5SZXN1bHQp
CisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxcnQoTmFOKSI7CisgICAgICAg
IGxldCB6ZXJvUmVzdWx0ID0gcG93VXNlZEFzU3FydCgwLikKKyAgICAgICAgaWYgKHplcm9SZXN1
bHQgfHwgKDEgLyB6ZXJvUmVzdWx0KSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAi
RmFpbGVkIHBvd1VzZWRBc1NxcnQoMC4pIjsKKyAgICAgICAgbGV0IG5lZ2F0aXZlWmVyb1Jlc3Vs
dCA9IHBvd1VzZWRBc1NxcnQoLTApCisgICAgICAgIGlmIChuZWdhdGl2ZVplcm9SZXN1bHQgfHwg
KDEgLyBuZWdhdGl2ZVplcm9SZXN1bHQpICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93
ICJGYWlsZWQgcG93VXNlZEFzU3FydCgtMCkiOworICAgIH0KK30KK3Rlc3RQb3dVc2VkQXNTcXJ0
KCk7CisKK2Z1bmN0aW9uIHBvd1VzZWRBc09uZU92ZXJTcXJ0KHgpIHsKKyAgICByZXR1cm4geCAq
KiAtMC41OworfQorbm9JbmxpbmUocG93VXNlZEFzT25lT3ZlclNxcnQpOworCitmdW5jdGlvbiB0
ZXN0UG93VXNlZEFzT25lT3ZlclNxcnQoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7
ICsraSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gcG93VXNlZEFzT25lT3ZlclNxcnQoNCk7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT09IDAuNSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93
VXNlZEFzT25lT3ZlclNxcnQoNCkgc2hvdWxkIGJlIDAuNSwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICAgICAgcmVzdWx0ID0gcG93VXNlZEFzT25lT3ZlclNxcnQoNC40KTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gMS9NYXRoLnNxcnQoNC40KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93
VXNlZEFzT25lT3ZlclNxcnQoNCkgc2hvdWxkIGJlICIgKyAxL01hdGguc3FydCg0LjQpICsgIiwg
d2FzID0gIiArIHJlc3VsdDsKKyAgICAgICAgaWYgKHBvd1VzZWRBc09uZU92ZXJTcXJ0KEluZmlu
aXR5KSAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzT25lT3ZlclNx
cnQoSW5maW5pdHkpIjsKKyAgICAgICAgaWYgKHBvd1VzZWRBc09uZU92ZXJTcXJ0KC1JbmZpbml0
eSkgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc09uZU92ZXJTcXJ0
KC1JbmZpbml0eSkiOworICAgICAgICBsZXQgbmFuUmVzdWx0ID0gcG93VXNlZEFzT25lT3ZlclNx
cnQoTmFOKQorICAgICAgICBpZiAobmFuUmVzdWx0ID09PSBuYW5SZXN1bHQpCisgICAgICAgICAg
ICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc09uZU92ZXJTcXJ0KE5hTikiOworICAgICAgICBpZiAo
cG93VXNlZEFzT25lT3ZlclNxcnQoMCkgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cg
IkZhaWxlZCBwb3dVc2VkQXNPbmVPdmVyU3FydCgwKSI7CisgICAgICAgIGlmIChwb3dVc2VkQXNP
bmVPdmVyU3FydCgtMC4pICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQg
cG93VXNlZEFzT25lT3ZlclNxcnQoLTAuKSI7CisgICAgfQorfQordGVzdFBvd1VzZWRBc09uZU92
ZXJTcXJ0KCk7CisKK2Z1bmN0aW9uIHBvd1VzZWRBc1NxdWFyZSh4KSB7CisgICAgcmV0dXJuIHgg
KiogMjsKK30KK25vSW5saW5lKHBvd1VzZWRBc1NxdWFyZSk7CisKK2Z1bmN0aW9uIHRlc3RQb3dV
c2VkQXNTcXVhcmUoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAg
ICAgICBsZXQgcmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKDIpOworICAgICAgICBpZiAocmVzdWx0
ICE9PSA0KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNTcXVhcmUoNCkgc2hv
dWxkIGJlIDIsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgICAgIHJlc3VsdCA9IHBvd1VzZWRBc1Nx
dWFyZSg0LjQpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxOS4zNjAwMDAwMDAwMDAwMDMpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1VzZWRBc1NxdWFyZSg0KSBzaG91bGQgYmUgIiAr
IDE5LjM2MDAwMDAwMDAwMDAwMyArICIsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgICAgIHJlc3Vs
dCA9IHBvd1VzZWRBc1NxdWFyZShNYXRoLlBJKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gOS44
Njk2MDQ0MDEwODkzNTgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1VzZWRBc1NxdWFy
ZSg0KSBzaG91bGQgYmUgIiArIDkuODY5NjA0NDAxMDg5MzU4ICsgIiwgd2FzID0gIiArIHJlc3Vs
dDsKKyAgICAgICAgaWYgKHBvd1VzZWRBc1NxdWFyZShJbmZpbml0eSkgIT09IEluZmluaXR5KQor
ICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVhcmUoSW5maW5pdHkpIjsKKyAg
ICAgICAgaWYgKHBvd1VzZWRBc1NxdWFyZSgtSW5maW5pdHkpICE9PSBJbmZpbml0eSkKKyAgICAg
ICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3F1YXJlKC1JbmZpbml0eSkiOworICAgICAg
ICBsZXQgbmFuUmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKE5hTikKKyAgICAgICAgaWYgKG5hblJl
c3VsdCA9PT0gbmFuUmVzdWx0KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNT
cXVhcmUoTmFOKSI7CisgICAgICAgIGxldCB6ZXJvUmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKDAu
KQorICAgICAgICBpZiAoemVyb1Jlc3VsdCB8fCAoMSAvIHplcm9SZXN1bHQpICE9PSBJbmZpbml0
eSkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3F1YXJlKDAuKSI7CisgICAg
ICAgIGxldCBuZWdhdGl2ZVplcm9SZXN1bHQgPSBwb3dVc2VkQXNTcXVhcmUoLTApCisgICAgICAg
IGlmIChuZWdhdGl2ZVplcm9SZXN1bHQgfHwgKDEgLyBuZWdhdGl2ZVplcm9SZXN1bHQpICE9PSBJ
bmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3F1YXJlKC0wKSI7
CisgICAgfQorfQordGVzdFBvd1VzZWRBc1NxdWFyZSgpOworCitmdW5jdGlvbiBpbnRJbnRDb25z
dGFudHNTbWFsbE51bWJlcnMoKSB7CisgICAgcmV0dXJuIDQyICoqIDM7Cit9CitmdW5jdGlvbiBp
bnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMoKSB7CisgICAgLy8gVGhlIHJlc3VsdCBkb2VzIG5v
dCBmaXQgaW4gYSBpbnRlZ2VyLgorICAgIHJldHVybiA0MiAqKiA0MjsKK30KK2Z1bmN0aW9uIGlu
dEludFNtYWxsQ29uc3RhbnRzKCkgeworICAgIHJldHVybiA0MiAqKiAzOworfQorZnVuY3Rpb24g
aW50RG91YmxlQ29uc3RhbnRzKCkgeworICAgIHJldHVybiAxNCAqKiA0Mi41OworfQorZnVuY3Rp
b24gZG91YmxlRG91YmxlQ29uc3RhbnRzKCkgeworICAgIHJldHVybiAxMy41ICoqIDQyLjU7Cit9
CitmdW5jdGlvbiBkb3VibGVJbnRDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDEzLjUgKiogNTI7
Cit9Citub0lubGluZShpbnRJbnRDb25zdGFudHNTbWFsbE51bWJlcnMpOworbm9JbmxpbmUoaW50
SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKTsKK25vSW5saW5lKGludERvdWJsZUNvbnN0YW50cyk7
Citub0lubGluZShkb3VibGVEb3VibGVDb25zdGFudHMpOworbm9JbmxpbmUoZG91YmxlSW50Q29u
c3RhbnRzKTsKKworZnVuY3Rpb24gdGVzdEJhc2VBbmRFeHBvbmVudENvbnN0YW50TGl0ZXJhbHMo
KQoreworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gaW50SW50Q29uc3RhbnRzU21hbGxOdW1iZXJzKCk7CisgICAgICAgIGlmIChyZXN1
bHQgIT09IDc0MDg4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBpbnRJbnRDb25zdGFudHNT
bWFsbE51bWJlcnMoKSBzaG91bGQgYmUgNzQwODgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0
ID0gaW50SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09
IDEuNTAxMzA5Mzc1NDUyOTY1NmUrNjgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGludElu
dENvbnN0YW50c0xhcmdlTnVtYmVycygpIHNob3VsZCBiZSAxLjUwMTMwOTM3NTQ1Mjk2NTZlKzY4
LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGludERvdWJsZUNvbnN0YW50cygpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSA1LjEzMzgzMDM4ODIwMTU3NjVlKzQ4KQorICAgICAgICAgICAg
dGhyb3cgIkVycm9yOiBpbnREb3VibGVDb25zdGFudHMoKSBzaG91bGQgYmUgNS4xMzM4MzAzODgy
MDE1NzY1ZSs0OCwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBkb3VibGVEb3VibGVDb25z
dGFudHMoKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMS4wOTQ0MjI4NzI5NjQ3ODI5ZSs0OCkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZG91YmxlRG91YmxlQ29uc3RhbnRzKCkgc2hvdWxk
IGJlIDEuMDk0NDIyODcyOTY0NzgyOWUrNDgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
ZG91YmxlSW50Q29uc3RhbnRzKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUuOTg5MDIyNzM1
MzExMTU4ZSs1OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZG91YmxlSW50Q29uc3RhbnRz
KCkgc2hvdWxkIGJlIDUuOTg5MDIyNzM1MzExMTU4ZSs1OCwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9Cit9Cit0ZXN0QmFzZUFuZEV4cG9uZW50Q29uc3RhbnRMaXRlcmFscygpOworCisKK2Z1bmN0
aW9uIGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoeCkgeworICAgIHJldHVybiB4ICoqIDQyOwor
fQorbm9JbmxpbmUoZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RF
eHBvbmVudElzSW50ZWdlckNvbnN0YW50KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzSW50ZWdlckNvbnN0YW50
KDIpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA0Mzk4MDQ2NTExMTA0KQorICAgICAgICAgICAg
dGhyb3cgIkVycm9yOiBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KDIpIHNob3VsZCBiZSA0Mzk4
MDQ2NTExMTA0LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0ludGVnZXJD
b25zdGFudCg1KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMi4yNzM3MzY3NTQ0MzIzMjA3ZSsy
OSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCg1
KSBzaG91bGQgYmUgMi4yNzM3MzY3NTQ0MzIzMjA3ZSsyOSwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoMi4xKTsKKyAgICAgICAgaWYgKHJlc3Vs
dCAhPT0gMzQxMzU4MjMwNjc0MTIuNDIpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9u
ZW50SXNJbnRlZ2VyQ29uc3RhbnQoMi4xKSBzaG91bGQgYmUgMzQxMzU4MjMwNjc0MTIuNDIsIHdh
cyA9ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQo
KTsKKworCitmdW5jdGlvbiBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoeCkgeworICAgIHJldHVy
biB4ICoqIDQyLjU7Cit9Citub0lubGluZShleHBvbmVudElzRG91YmxlQ29uc3RhbnQpOworCitm
dW5jdGlvbiB0ZXN0RXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KCkgeworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzRG91
YmxlQ29uc3RhbnQoMik7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDYyMTk3NzcwMjM5NTAuOTUp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNEb3VibGVDb25zdGFudCgyKSBz
aG91bGQgYmUgNjIxOTc3NzAyMzk1MC45NSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4
cG9uZW50SXNEb3VibGVDb25zdGFudCg1KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNS4wODQy
Mjk5NDU4NTA0MTVlKzI5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzRG91
YmxlQ29uc3RhbnQoNSkgc2hvdWxkIGJlIDUuMDg0MjI5OTQ1ODUwNDE1ZSsyOSwgd2FzID0gIiAr
IHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNEb3VibGVDb25zdGFudCgyLjEpOworICAgICAg
ICBpZiAocmVzdWx0ICE9PSA0OTQ2NzUwNzI2MTExMy44MDUpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGV4cG9uZW50SXNEb3VibGVDb25zdGFudCgyLjEpIHNob3VsZCBiZSA0OTQ2NzUwNzI2
MTExMy44MDUsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNEb3Vi
bGVDb25zdGFudCgpOworCisKK2Z1bmN0aW9uIGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KHgp
IHsKKyAgICByZXR1cm4geCAqKiBJbmZpbml0eTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNJbmZp
bml0eUNvbnN0YW50KTsKKworZnVuY3Rpb24gdGVzdEV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50
KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCgyKTsKKyAgICAgICAgaWYgKHJlc3Vs
dCAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbmZp
bml0eUNvbnN0YW50KDIpIHNob3VsZCBiZSBJbmZpbml0eSwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0
ICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0luZmlu
aXR5Q29uc3RhbnQoNSkgc2hvdWxkIGJlIEluZmluaXR5LCB3YXMgPSAiICsgcmVzdWx0OworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoMi4xKTsKKyAgICAgICAgaWYgKHJlc3Vs
dCAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbmZp
bml0eUNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIEluZmluaXR5LCB3YXMgPSAiICsgcmVzdWx0Owor
ICAgIH0KK30KK3Rlc3RFeHBvbmVudElzSW5maW5pdHlDb25zdGFudCgpOworCisKK2Z1bmN0aW9u
IGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoeCkgeworICAgIHJldHVybiB4ICoq
IC1JbmZpbml0eTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3Rh
bnQpOworCitmdW5jdGlvbiB0ZXN0RXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgp
IHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgyKTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc05lZ2F0
aXZlSW5maW5pdHlDb25zdGFudCgyKSBzaG91bGQgYmUgemVybywgd2FzID0gIiArIHJlc3VsdDsK
KyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoNSk7CisgICAgICAg
IGlmIChyZXN1bHQgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNO
ZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoNSkgc2hvdWxkIGJlIHplcm8sIHdhcyA9ICIgKyByZXN1
bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIuMSk7Cisg
ICAgICAgIGlmIChyZXN1bHQgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9u
ZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoMi4xKSBzaG91bGQgYmUgemVybywgd2FzID0g
IiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25z
dGFudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9w
b3ctd2l0aC1uZXZlci1OYU4tZXhwb25lbnQuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3Bvdy13aXRoLW5ldmVyLU5hTi1leHBvbmVudC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDZi
OTkxYWEyMDJhNDI0Y2FmMjVkMmFmMTk5ZDU5OTJlYWExYzJlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctd2l0aC1uZXZlci1OYU4tZXhw
b25lbnQuanMKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZXhwb25lbnRJc05vbk5hbkRvdWJs
ZTEoeCwgZG91YmxlQXJyYXlJbmRleCkgeworICAgIHZhciBkb3VibGVBcnJheSA9IFs0LjRdOwor
ICAgIHJldHVybiB4ICoqIGRvdWJsZUFycmF5W2RvdWJsZUFycmF5SW5kZXhdOworfQorbm9Jbmxp
bmUoZXhwb25lbnRJc05vbk5hbkRvdWJsZTEpOworCitmdW5jdGlvbiBleHBvbmVudElzTm9uTmFu
RG91YmxlMih4LCBkb3VibGVBcnJheSkgeworICAgIHJldHVybiB4ICoqIGRvdWJsZUFycmF5WzBd
OworfQorbm9JbmxpbmUoZXhwb25lbnRJc05vbk5hbkRvdWJsZTIpOworCitmdW5jdGlvbiB0ZXN0
RXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc05vbk5hbkRvdWJsZTEo
MiwgMCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDIxLjExMjEyNjU3MjM2NjMxNCkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc05vbk5hbkRvdWJsZTEoMiwgMCkgc2hvdWxk
IGJlIDIxLjExMjEyNjU3MjM2NjMxNCwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBv
bmVudElzTm9uTmFuRG91YmxlMigzLCBbLTEuNV0pOworICAgICAgICBpZiAocmVzdWx0ICE9PSAw
LjE5MjQ1MDA4OTcyOTg3NTI2KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElz
Tm9uTmFuRG91YmxlMigzLCBbLTEuNV0pIHNob3VsZCBiZSAwLjE5MjQ1MDA4OTcyOTg3NTI2LCB3
YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy90ZXN0MjYyLnlhbWwg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvdGVzdDI2Mi55YW1sCmluZGV4IDBjODQ1YjM1
YzU0MjU4YWYyNWQ4YjFhNDhmZTRlMmIxYTdhY2FmNTIuLjg0NWQ1NGQwYTkxMzM4MzgyOWI4YzUw
YzgxZGIwMDU0MmY1MmU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy90ZXN0MjYyLnlhbWwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3Rlc3QyNjIu
eWFtbApAQCAtNjA4MjIsMTEzICs2MDgyMiwxMTMgQEAKIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2VxdWFscy9zeW1ib2wtc3RyaWN0LWVxdWFsaXR5LWNvbXBhcmlz
b24uanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
WzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBv
bmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExLmpzCi0gIGNtZDogcnVuVGVz
dDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIg
Om5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVy
YXRvcl9BMS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTAuanMKICAgY21k
OiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDog
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5n
LXRoZS1leHAtb3BlcmF0b3JfQTEwLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
MTEuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtd
CisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAt
IHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9h
cHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9y
bWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1v
cGVyYXRvcl9BMTIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMi5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmct
dGhlLWV4cC1vcGVyYXRvcl9BMTMuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRp
b24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5l
c3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMy5qcwotICBjbWQ6
IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNt
ZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
YXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTQuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNC5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTUuanMKLSAgY21kOiBydW5UZXN0
MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6
bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJh
dG9yX0ExNS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTYuanMKLSAgY21k
OiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVu
VGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0ExNi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTcu
anMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisg
IGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBs
eWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVy
YXRvcl9BMTguanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlh
dGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExOC5qcwotICBjbWQ6IHJ1blRlc3QyNjIg
OmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2
MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhl
LWV4cC1vcGVyYXRvcl9BMTkuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRp
b24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5l
c3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24i
LCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9l
eHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExOS5qcwotICBjbWQ6IHJ1
blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDog
cnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBw
bHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIuanMKLSAg
Y21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQor
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIwLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
MjAuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIxLmpzCi0gIGNtZDogcnVu
VGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3Qy
NjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1v
cGVyYXRvcl9BMjEuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIyLmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmct
dGhlLWV4cC1vcGVyYXRvcl9BMjIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3Jf
QTIzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
YXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMjMuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAt
b3BlcmF0b3JfQTMuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EzLmpzCi0gIGNtZDogcnVuVGVzdDI2
MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0
MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10
aGUtZXhwLW9wZXJhdG9yX0E0LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
ZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNC5qcwotICBjbWQ6IHJ1
blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDog
cnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBw
bHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTUuanMKLSAg
Y21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQor
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTYuanMKLSAgY21kOiBydW5UZXN0MjYyIDpm
YWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E2
LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0
cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
WzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBv
bmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E3LmpzCi0gIGNtZDogcnVuVGVz
dDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIg
Om5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVy
YXRvcl9BNy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lv
bnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BOC5qcwotICBjbWQ6
IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5U
ZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1l
eHAtb3BlcmF0b3JfQTguanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24i
LCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTkuanMK
LSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNt
ZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWlu
Zy10aGUtZXhwLW9wZXJhdG9yX0E5LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtYXNzaWdubWVudC1vcGVyYXRvci5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1h
c3NpZ25tZW50LW9wZXJhdG9yLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3ItZXZhbHVhdGlvbi1vcmRl
ci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0g
cGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4
cC1vcGVyYXRvci1ldmFsdWF0aW9uLW9yZGVyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3Jt
YWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3ItcHJlY2Vk
ZW5jZS11bmFyeS1leHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZh
aWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1wcmVjZWRlbmNlLXVuYXJ5
LWV4cHJlc3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3ItcHJlY2VkZW5jZS11
cGRhdGUtZXhwcmVzc2lvbi1zZW1hbnRpY3MuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3ItcHJlY2VkZW5jZS11cGRhdGUtZXhw
cmVzc2lvbi1zZW1hbnRpY3MuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRp
b24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5l
c3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1zeW50YXgtZXJyb3ItYml0
bm90LXVuYXJ5LWV4cHJlc3Npb24tYmFzZS5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
IlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXN5bnRheC1lcnJvci1iaXRu
b3QtdW5hcnktZXhwcmVzc2lvbi1iYXNlLmpzCkBAIC02MDk1OCw5ICs2MDk1OCw5IEBACiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAt
b3BlcmF0b3Itc3ludGF4LWVycm9yLXZvaWQtdW5hcnktZXhwcmVzc2lvbi1iYXNlLmpzCiAgIGNt
ZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiU3ludGF4RXJyb3IiLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
ZXhwLW9wZXJhdG9yLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vZXhwLW9wZXJhdG9yLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9mdW5jdGlvbi9TMTAuMS4xX0ExX1QyLmpzCiAgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9mdW5jdGlvbi9TMTAuMS4xX0ExX1QyLmpzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284119</attachid>
            <date>2016-07-20 10:13:32 -0700</date>
            <delta_ts>2016-07-20 10:26:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159969-20160721021233.patch</filename>
            <type>text/plain</type>
            <size>98945</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NGEyNmJhYThkZjM5YzNhZWE5ZmEzYWJjNGE2MWZkNDdiNDMwMGM3Li5lMGVkZGZhY2JkOGYyMjg1
MjI4ODcwMGMyOWUxNjVmYWU5ZDAwYTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjcgQEAKKzIwMTYtMDctMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTN10gSW50cm9kdWNlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyB0aGUgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiwgZS5nLiBgeCAq
KiB5YC4KKyAgICAgICAgVGhlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24gaXMgaW50cm9kdWNl
ZCBpbiBFQ01BMjYyIDIwMTYgYW5kIEVDTUEyNjIgMjAxNgorICAgICAgICBpcyBhbHJlYWR5IHJl
bGVhc2VkLiBTbyB0aGlzIGlzIG5vdCB0aGUgZHJhZnQgc3BlYy4KKworICAgICAgICBUaGUgZXhw
b25lbnRpYXRpb24gZXhwcmVzc2lvbiBoYXMgMiBpbnRlcmVzdGluZyBwb2ludHMuCisKKyAgICAg
ICAgMS4gUmlnaHQgYXNzb2NpYXRpdmUKKworICAgICAgICAgICAgVG8gZm9sbG93IHRoZSBNYXRo
IGV4cHJlc3Npb24sIHRoaXMgKiogb3BlcmF0b3IgaXMgcmlnaHQgYXNzb2NpYXRpdmUuCisgICAg
ICAgICAgICBXaGVuIHdlIGV4ZWN1dGUgYHggKiogeSAqKiB6YCwgdGhpcyBpcyBoYW5kbGVkIGFz
IGB4ICoqICh5ICoqIHopYCwgbm90IGAoeCAqKiB5KSAqKiB6YC4KKyAgICAgICAgICAgIFRoaXMg
cGF0Y2ggaW50cm9kdWNlcyB0aGUgcmlnaHQgYXNzb2NpYXRpdml0eSB0byB0aGUgYmluYXJ5IG9w
ZXJhdG9yIGFuZCBoYW5kbGVzIGl0CisgICAgICAgICAgICBpbiBvcGVyYXRvciBwcmVjZWRlbmNl
IHBhcnNlciBpbiBQYXJzZXIuY3BwLgorCisgICAgICAgIDIuIExIUyBvZiB0aGUgZXhwb25lbnRp
YXRpb24gZXhwcmVzc2lvbiBpcyBVcGRhdGVFeHByZXNzaW9uCisKKyAgICAgICAgICAgIEV4cG9u
ZW50aWF0aW9uRXhwcmVzc2lvbltZaWVsZF06CisgICAgICAgICAgICAgICAgVW5hcnlFeHByZXNz
aW9uWz9ZaWVsZF0KKyAgICAgICAgICAgICAgICBVcGRhdGVFeHByZXNzaW9uWz9ZaWVsZF0gKiog
RXhwb25lbnRpYXRpb25FeHByZXNzaW9uWz9ZaWVsZF0KKworICAgICAgICAgICAgQXMgd2UgY2Fu
IHNlZSwgdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHRoZSBFeHBvbmVudGlhdGlvbkV4cHJlc3Npb24g
aXMgVXBkYXRlRXhwcmVzc2lvbiwgbm90IFVuYXJ5RXhwcmVzc2lvbi4KKyAgICAgICAgICAgIEl0
IG1lYW5zIHRoYXQgYCt4ICoqIHlgIGJlY29tZXMgYSBzeW50YXggZXJyb3IuIFRoaXMgaXMgaW50
ZW50aW9uYWwuIFdpdGhvdXQgc21hbGwgZm9udCBpbiB0aGUgc2NyaXB0LCBgLXgqKnlgCisgICAg
ICAgICAgICBpcyBjb25mdXNpbmcgYmV0d2VlbiBgLSh4ICoqIHkpYCBhbmQgYCgteCkgKiogeWAu
IFNvIEVDTUEyNjIgaW50ZW50aW9uYWxseSBhdm9pZCBVbmFyeUV4cHJlc3Npb24gaGVyZS4KKyAg
ICAgICAgICAgIElmIHdlIG5lZWQgdG8gdXNlIGEgbmVnYXRlZCB2YWx1ZSwgd2UgbmVlZCB0byB3
cml0ZSBwYXJlbnRoZXNlcyBleHBsaWNpdGx5IGUuZy4gYCgteCkgKiogeWAuCisgICAgICAgICAg
ICBJbiB0aGlzIHBhdGNoIHdlIGVuc3VyZSB0aGF0IHRoZSBsZWZ0IGhhbmQgc2lkZSBpcyBub3Qg
dW5hcnkgZXhwcmVzc2lvbiBieSBjaGVja2luZyB0aGUgb3BlcmF0b3IgaW4KKyAgICAgICAgICAg
IHBhcnNlQmluYXJ5RXhwcmVzc2lvbi4gVGhpcyB3b3JrcyBzaW5jZSBgKipgIGhhcyB0aGUgaGln
aGVzdCBvcGVyYXRvciBwcmVjZWRlbmNlIGluIHRoZSBiaW5hcnkgb3BlcmF0b3JzLgorCisgICAg
ICAgIFdlIGludHJvZHVjZSBhIG5ldyBieXRlY29kZSwgb3BfcG93LiBUaGF0IHNpbXBseSB3b3Jr
cyBhcyBzaW1pbGFyIGFzIHRoZSBvdGhlciBiaW5hcnkgb3BlcmF0b3JzLgorICAgICAgICBBbmQg
aXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gQXJpdGhQb3cgaW4gREZHIGFuZCBoYW5kbGVkIGluIERG
RyBhbmQgRlRMLgorICAgICAgICBIZXJlLCB3ZSBqdXN0IGludHJvZHVlYyBhIG5ldyBieXRlY29k
ZSBpbnN0ZWFkIG9mIGNhbGxpbmcgTWF0aC5wb3cuIFRoaXMgaXMgYmVjYXVzZSB3ZSB3b3VsZCBs
aWtlIHRvIGV4ZWN1dGUgVG9OdW1iZXIKKyAgICAgICAgaW4gdGhlIGNhbGxlciBzaWRlLCBub3Qg
aW4gTWF0aC5wb3cuIEFuZCB3ZSBkb24ndCB3YW50IHRvIGNvbXBpbGUgKiogaW50byB0aGUgZm9s
bG93aW5nLgorCisgICAgICAgICAgICBsaHNOdW1iZXIgPSB0b19udW1iZXIgKGxocykKKyAgICAg
ICAgICAgIHJoc051bWJlciA9IHRvX251bWJlciAocmhzKQorICAgICAgICAgICAgY2FsbCBNYXRo
LnBvdyhsaHNOdW1iZXIsIHJoc051bWJlcikKKworICAgICAgICBXZSBlbnN1cmVkIHRoYXQgdGhp
cyBwYXRjaCBwYXNzIGFsbCB0aGUgdGVzdDI2MiB0ZXN0cyByZWxhdGVkIHRvIHRoZSBleHBvbmVu
dGlhdGlvbiBleHByZXNzaW9uLgorCisgICAgICAgIFRoZSBvbmx5IHNlbnNpdGl2ZSBwYXJ0IHRv
IHRoZSBwZXJmb3JtYW5jZSBpbiB0aGlzIHBhdGNoIGlzIHRoZSBwYXJzZXIgY2hhbmdlLgorICAg
ICAgICBUaGUgY29kZSBsb2FkIHBlcmZvcm1hbmNlIGluIG15IHg2NCBsaW51eCBib3ggKGhhbmF5
YW1hdGEpIGlzIG5ldXRyYWwuCisKKyAgICAgICAgICAgIENvbGxlY3RlZCAzMCBzYW1wbGVzIHBl
ciBiZW5jaG1hcmsvVk0sIHdpdGggMzAgVk0gaW52b2NhdGlvbnMgcGVyIGJlbmNobWFyay4gRW1p
dHRlZCBhIGNhbGwgdG8KKyAgICAgICAgICAgIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1l
bnRzLiBVc2VkIDEgYmVuY2htYXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2Fy
bS11cC4gVXNlZAorICAgICAgICAgICAgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1
bmN0aW9uIHRvIGdldCBtaWNyb3NlY29uZC1sZXZlbCB0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1h
cmsKKyAgICAgICAgICAgIGV4ZWN1dGlvbiB0aW1lcyB3aXRoIDk1JSBjb25maWRlbmNlIGludGVy
dmFscyBpbiBtaWxsaXNlY29uZHMuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiYXNlbGluZSAgICAgICAgICAgICAgICAgIHBhdGNoZWQKKworICAgICAgICAgICAgY2xv
c3VyZSAgICAgICAgICAgICAgMC42MDQ5OSstMC4wMDI1MCAgICAgICAgICAwLjYwMTgwKy0wLjAw
MjQ0CisgICAgICAgICAgICBqcXVlcnkgICAgICAgICAgICAgICA3Ljg5MTc1Ky0wLjAyNDMzICAg
ID8gICAgIDcuOTEyODcrLTAuMDQ3NTkgICAgICAgPworCisgICAgICAgICAgICA8Z2VvbWV0cmlj
PiAgICAgICAgICAyLjE4NDk5Ky0wLjAwNTIzICAgICAgICAgIDIuMTgyMDcrLTAuMDA2ODkgICAg
ICAgICBtaWdodCBiZSAxLjAwMTN4IGZhc3RlcgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVMaXN0Lmpzb246CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAg
ICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OmNv
bXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAg
KiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6ZW1pdFJlYWRN
b2RpZnlBc3NpZ25tZW50KToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAg
KiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYXBhYmlsaXR5
TGV2ZWwpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQv
SklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wb3cpOgorICAg
ICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBhcnNlci9B
U1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6Om9wZXJhdG9yU3RhY2tTaG91
bGRSZWR1Y2UpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlUG93Tm9kZSk6CisgICAg
ICAgIChKU0M6OkFTVEJ1aWxkZXI6Om1ha2VNdWx0Tm9kZSk6CisgICAgICAgIChKU0M6OkFTVEJ1
aWxkZXI6Om1ha2VEaXZOb2RlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6bWFrZU1vZE5v
ZGUpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlU3ViTm9kZSk6CisgICAgICAgIChK
U0M6OkFTVEJ1aWxkZXI6Om1ha2VCaW5hcnlOb2RlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRl
cjo6b3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVuY2UpOiBEZWxldGVkLgorICAgICAgICAq
IHBhcnNlci9MZXhlci5jcHA6CisgICAgICAgIChKU0M6OkxleGVyPFQ+OjpsZXgpOgorICAgICAg
ICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6CisgICAgICAgIChKU0M6OlBvd05vZGU6OlBv
d05vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAqIHBhcnNlci9QYXJz
ZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBc3NpZ25tZW50
RXhwcmVzc2lvbik6CisgICAgICAgIChKU0M6OmlzVW5hcnlPcEV4Y2x1ZGluZ1VwZGF0ZU9wKToK
KyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgIChKU0M6OmlzVW5hcnlPcCk6IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL1Bh
cnNlclRva2Vucy5oOgorICAgICAgICAoSlNDOjppc1VwZGF0ZU9wKToKKyAgICAgICAgKEpTQzo6
aXNVbmFyeU9wKToKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAo
SlNDOjpTeW50YXhDaGVja2VyOjpvcGVyYXRvclN0YWNrUG9wKToKKyAgICAgICAgKiBydW50aW1l
L0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAg
ICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9wb3ctYmFzaWNzLmpzOiBBZGRlZC4KKyAgICAgICAgKHZhbHVlc0FyZUNsb3NlKToKKyAgICAg
ICAgKG1hdGhQb3dEb3VibGVEb3VibGUxKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQxKToK
KyAgICAgICAgKHRlc3QxKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGUyKToKKyAgICAg
ICAgKG1hdGhQb3dEb3VibGVJbnQyKToKKyAgICAgICAgKHRlc3QyKToKKyAgICAgICAgKG1hdGhQ
b3dEb3VibGVEb3VibGUzKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQzKToKKyAgICAgICAg
KHRlc3QzKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU0KToKKyAgICAgICAgKG1hdGhQ
b3dEb3VibGVJbnQ0KToKKyAgICAgICAgKHRlc3Q0KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVE
b3VibGU1KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQ1KToKKyAgICAgICAgKHRlc3Q1KToK
KyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU2KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJ
bnQ2KToKKyAgICAgICAgKHRlc3Q2KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU3KToK
KyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQ3KToKKyAgICAgICAgKHRlc3Q3KToKKyAgICAgICAg
KG1hdGhQb3dEb3VibGVEb3VibGU4KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVJbnQ4KToKKyAg
ICAgICAgKHRlc3Q4KToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGU5KToKKyAgICAgICAg
KG1hdGhQb3dEb3VibGVJbnQ5KToKKyAgICAgICAgKHRlc3Q5KToKKyAgICAgICAgKG1hdGhQb3dE
b3VibGVEb3VibGUxMCk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50MTApOgorICAgICAgICAo
dGVzdDEwKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGUxMSk6CisgICAgICAgIChtYXRo
UG93RG91YmxlSW50MTEpOgorICAgICAgICAodGVzdDExKToKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3MvcG93LWNvaGVyZW5jeS5qczogQWRkZWQuCisgICAgICAgIChwb3c0Mik6CisgICAgICAgIChi
dWlsZDQyQXNEb3VibGUub3BhcXVlQWRkKToKKyAgICAgICAgKGJ1aWxkNDJBc0RvdWJsZSk6Cisg
ICAgICAgIChwb3dEb3VibGU0Mik6CisgICAgICAgIChjbG9iYmVyKToKKyAgICAgICAgKHBvdzQy
Tm9Db25zdGFudEZvbGRpbmcpOgorICAgICAgICAocG93RG91YmxlNDJOb0NvbnN0YW50Rm9sZGlu
Zyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1ldmFsdWF0aW9uLW9yZGVyLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3Bvdy1leHBlY3RzLXVwZGF0ZS1leHByZXNzaW9uLW9uLWxocy5q
czogQWRkZWQuCisgICAgICAgICh0ZXN0U3ludGF4KToKKyAgICAgICAgKHRlc3RTeW50YXhFcnJv
cik6CisgICAgICAgICh0aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAobGV0LnRva2VuLm9mLnRv
a2Vucy50ZXN0U3ludGF4LnBvdyk6CisgICAgICAgICh0ZXN0U3ludGF4LnBvdyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3Bvdy1pbnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRoLmpzOiBBZGRlZC4K
KyAgICAgICAgKHZhbHVlc0FyZUNsb3NlKToKKyAgICAgICAgKG1hdGhQb3dEb3VibGVEb3VibGVU
ZXN0RXhwb25lbnRGaWZ0eSk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50
RmlmdHkpOgorICAgICAgICAodGVzdEV4cG9uZW50RmlmdHkpOgorICAgICAgICAobWF0aFBvd0Rv
dWJsZURvdWJsZVRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk6CisgICAgICAgIChtYXRoUG93RG91
YmxlSW50VGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKToKKyAgICAgICAgKHRlc3RFeHBvbmVudFRl
blRob3VzYW5kcyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZpb3JzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYyk6
CisgICAgICAgIChtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToKKyAg
ICAgICAgKHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgorICAgICAgICAo
dGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKToKKyAgICAgICAgKG1h
dGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgorICAgICAgICAo
dGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk6CisgICAgICAgICh0
ZXN0TmFOQmFzZVN0YXRpYyk6CisgICAgICAgIChtYXRoUG93TmFOQmFzZUR5bmFtaWMxKToKKyAg
ICAgICAgKG1hdGhQb3dOYU5CYXNlRHluYW1pYzIpOgorICAgICAgICAobWF0aFBvd05hTkJhc2VE
eW5hbWljMyk6CisgICAgICAgIChtYXRoUG93TmFOQmFzZUR5bmFtaWM0KToKKyAgICAgICAgKHRl
c3ROYU5CYXNlRHluYW1pYyk6CisgICAgICAgIChpbmZpbml0ZUV4cG9uZW50c1N0YXRpYyk6Cisg
ICAgICAgIChtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMSk6CisgICAgICAgIChtYXRo
UG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMik6CisgICAgICAgIChtYXRoUG93SW5maW5pdGVF
eHBvbmVudHNEeW5hbWljMyk6CisgICAgICAgIChtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5h
bWljNCk6CisgICAgICAgIChpbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9wb3ctc2ltcGxlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy1zdGFi
bGUtcmVzdWx0cy5qczogQWRkZWQuCisgICAgICAgIChvcGFxdWVQb3cpOgorICAgICAgICAoaXNJ
ZGVudGljYWwpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctdG8tbnVtYmVyLXNob3VsZC1i
ZS1leGVjdXRlZC1pbi1jb2RlLXNpZGUuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgor
ICAgICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXdp
dGgtY29uc3RhbnRzLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9uZW50SXNaZXJvKToKKyAgICAg
ICAgKHRlc3RFeHBvbmVudElzWmVybyk6CisgICAgICAgIChleHBvbmVudElzT25lKToKKyAgICAg
ICAgKHRlc3RFeHBvbmVudElzT25lKToKKyAgICAgICAgKHBvd1VzZWRBc1NxcnQpOgorICAgICAg
ICAodGVzdFBvd1VzZWRBc1NxcnQpOgorICAgICAgICAocG93VXNlZEFzT25lT3ZlclNxcnQpOgor
ICAgICAgICAodGVzdFBvd1VzZWRBc09uZU92ZXJTcXJ0KToKKyAgICAgICAgKHBvd1VzZWRBc1Nx
dWFyZSk6CisgICAgICAgICh0ZXN0UG93VXNlZEFzU3F1YXJlKToKKyAgICAgICAgKGludEludENv
bnN0YW50c1NtYWxsTnVtYmVycyk6CisgICAgICAgIChpbnRJbnRDb25zdGFudHNMYXJnZU51bWJl
cnMpOgorICAgICAgICAoaW50SW50U21hbGxDb25zdGFudHMpOgorICAgICAgICAoaW50RG91Ymxl
Q29uc3RhbnRzKToKKyAgICAgICAgKGRvdWJsZURvdWJsZUNvbnN0YW50cyk6CisgICAgICAgIChk
b3VibGVJbnRDb25zdGFudHMpOgorICAgICAgICAodGVzdEJhc2VBbmRFeHBvbmVudENvbnN0YW50
TGl0ZXJhbHMpOgorICAgICAgICAoZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCk6CisgICAgICAg
ICh0ZXN0RXhwb25lbnRJc0ludGVnZXJDb25zdGFudCk6CisgICAgICAgIChleHBvbmVudElzRG91
YmxlQ29uc3RhbnQpOgorICAgICAgICAodGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFudCk6Cisg
ICAgICAgIChleHBvbmVudElzSW5maW5pdHlDb25zdGFudCk6CisgICAgICAgICh0ZXN0RXhwb25l
bnRJc0luZmluaXR5Q29uc3RhbnQpOgorICAgICAgICAoZXhwb25lbnRJc05lZ2F0aXZlSW5maW5p
dHlDb25zdGFudCk6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25z
dGFudCk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL3Bvdy13aXRoLW5ldmVyLU5hTi1leHBvbmVu
dC5qczogQWRkZWQuCisgICAgICAgIChleHBvbmVudElzTm9uTmFuRG91YmxlMSk6CisgICAgICAg
IChleHBvbmVudElzTm9uTmFuRG91YmxlMik6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc0RvdWJs
ZUNvbnN0YW50KToKKyAgICAgICAgKiB0ZXN0cy90ZXN0MjYyLnlhbWw6CisKIDIwMTYtMDctMjAg
IE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hPbk92
ZXJmbG93IGluIEpTQzo6WWFycjo6WWFyclBhdHRlcm5Db25zdHJ1Y3Rvcjo6c2V0dXBBbHRlcm5h
dGl2ZU9mZnNldHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUxpc3QuanNvbgppbmRleCA1ZGY5OWQ5ZTljY2ViYmNkNTFkYzQ3MWE1OWIzMzI4NjUwMWEwNTQx
Li4xM2U5ODJjZTcyNGJjMmJjOWQ3YTFkNDU3MmU5NDAwNWM1NzFkYWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC0zOSw2ICsz
OSw3IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9kaXYiLCAibGVuZ3RoIiA6IDUgfSwK
ICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX21vZCIsICJsZW5ndGgiIDogNCB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3Bfc3ViIiwgImxlbmd0aCIgOiA1IH0sCisgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9wb3ciLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2xzaGlmdCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfcnNoaWZ0IiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF91
cnNoaWZ0IiwgImxlbmd0aCIgOiA0IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDNhMmJiMDU3MzhhMTJiMGMwMjQyN2Q1ZGI5ODFk
YTg1NzRmNDU5N2MuLjU3MDg0NGMzNWQ5MDI1ZWU5MWFkNDY5OGJhYjliYzFhNjdmZDgzNDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBA
IC0yMDgsNiArMjA4LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAg
IGNhc2Ugb3BfZGl2OgogICAgIGNhc2Ugb3BfbW9kOgogICAgIGNhc2Ugb3Bfc3ViOgorICAgIGNh
c2Ugb3BfcG93OgogICAgIGNhc2Ugb3BfbHNoaWZ0OgogICAgIGNhc2Ugb3BfcnNoaWZ0OgogICAg
IGNhc2Ugb3BfdXJzaGlmdDoKQEAgLTQzMSw2ICs0MzIsNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVPZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQmFzaWNCbG9jayog
YmxvYwogICAgIGNhc2Ugb3BfZGl2OgogICAgIGNhc2Ugb3BfbW9kOgogICAgIGNhc2Ugb3Bfc3Vi
OgorICAgIGNhc2Ugb3BfcG93OgogICAgIGNhc2Ugb3BfbHNoaWZ0OgogICAgIGNhc2Ugb3BfcnNo
aWZ0OgogICAgIGNhc2Ugb3BfdXJzaGlmdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMmRmOWViNWIwNTBkNWEzMWU2MTUzOGQ4ZjlhOWM1YWQ0
NWFiNTNkMS4uM2Y3ZDJmMDViOTkwMDUzMmI5NmE3ZDZiMmQ2MWVkMmEzZTY4ZDhiMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTEwMjQsNiAr
MTAyNCwxMCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgcHJp
bnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgIm1vZCIpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9wb3c6IHsKKyAgICAgICAgICAgIHBy
aW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwb3ciKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfc3ViOiB7CiAgICAgICAgICAgICBw
cmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAic3ViIik7CiAgICAgICAgICAg
ICArK2l0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCmluZGV4IGQwN2VhY2EyNGQxZmZmNDRjZjdhYTJhODQwNjQ4YmQyZGMzNTM3
ZTMuLjVjOGY5M2ZlMmEyYTQ0ZjA1NjI2MWE5NTM2ZjNkZDc2NDA4ODFlZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAg
LTE5OTMsNiArMTk5Myw5IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIFJlZ2lzdGVySUQqIGVtaXRS
ZWFkTW9kaWZ5QXNzaWdubWVudChCeXRlY29kZUdlbmVyYXRvciYgZ2VuCiAgICAgICAgIGNhc2Ug
T3BNb2RFcToKICAgICAgICAgICAgIG9wY29kZUlEID0gb3BfbW9kOwogICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgT3BQb3dFcToKKyAgICAgICAgICAgIG9wY29kZUlEID0gb3BfcG93
OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuIGRzdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggMThi
NGMzMmRhMDkyZTU3MzlmMzc4OTcyNWVlY2YxYjQ0NDRkYzQ1YS4uMDI2MWJhYjY5YjA1NzU1NTFk
ZGUzZmM3ODU3ZTRlOWYxNWUyZmNhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTM4MTksNiArMzgxOSwxMyBAQCBib29sIEJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9P
UENPREUob3BfbW9kKTsKICAgICAgICAgfQogCisgICAgICAgIGNhc2Ugb3BfcG93OiB7CisgICAg
ICAgICAgICBOb2RlKiBvcDEgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsyXS51Lm9wZXJhbmQpKTsKKyAgICAgICAgICAgIE5vZGUqIG9wMiA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwgYWRkVG9H
cmFwaChBcml0aFBvdywgb3AxLCBvcDIpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Bv
dyk7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIG9wX2RpdjogewogICAgICAgICAgICAgTm9k
ZSogb3AxID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVy
YW5kKSk7CiAgICAgICAgICAgICBOb2RlKiBvcDIgPSBnZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBiMDFiMDcwNTg3MjBmYjFhM2ViYTQ5YzQ2Yzdi
ZGU0OTMzOTE1MTcxLi5iYzUxMWM1M2E0NTAzZjUzNzBmNWE0ZjJiZWE0OTdjODkzNjM1NjRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0x
MjMsNiArMTIzLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBv
cGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX25lZ2F0
ZToKICAgICBjYXNlIG9wX211bDoKICAgICBjYXNlIG9wX21vZDoKKyAgICBjYXNlIG9wX3BvdzoK
ICAgICBjYXNlIG9wX2RpdjoKICAgICBjYXNlIG9wX2RlYnVnOgogICAgIGNhc2Ugb3BfcHJvZmls
ZV90eXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGYyN2QzOWE2ZWE4ZDk0M2I0
YmU4NjJjZGQwY2RiN2VhZWQ1YTEzNDcuLjhmZDNmNThlZDQxNmE3NzRiYjI3NjVlNGQ0ZDUzZDY4
YmU5MTgyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTMwMCw2ICszMDAsNyBA
QCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChv
cF9uc3RyaWN0ZXEpCiAgICAgICAgIERFRklORV9PUChvcF9kZWMpCiAgICAgICAgIERFRklORV9P
UChvcF9pbmMpCisgICAgICAgIERFRklORV9PUChvcF9wb3cpCiAgICAgICAgIERFRklORV9PUChv
cF9wcm9maWxlX3R5cGUpCiAgICAgICAgIERFRklORV9PUChvcF9wcm9maWxlX2NvbnRyb2xfZmxv
dykKICAgICAgICAgREVGSU5FX09QKG9wX3B1c2hfd2l0aF9zY29wZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5oCmluZGV4IDczMTFkZmExNmI5YTRkOGY5YzE3NWNlZGVkNzM3NTllMmIyY2IxM2MuLjA5
M2Q3ZGFiZDMwM2Y1N2M0YWRiYmU1MGFkOWIyZTQwZjZmYWQ2MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaApAQCAtNTY2LDYgKzU2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
IGVtaXRfb3BfbnN0cmljdGVxKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9k
ZWMoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2luYyhJbnN0cnVjdGlvbiop
OworICAgICAgICB2b2lkIGVtaXRfb3BfcG93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF9wcm9maWxlX3R5cGUoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29w
X3Byb2ZpbGVfY29udHJvbF9mbG93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9v
cF9wdXNoX3dpdGhfc2NvcGUoSW5zdHJ1Y3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFyaXRobWV0aWMuY3BwCmluZGV4IDMwMzhmZjc0OWJiMDc2NzUxYWZhY2NmOGIzZGZl
ZmI0NmYwNmIwZGEuLjQ4NTVmMWQyMjMxZmYxYTQ0ZTdiZmFiNTlkMmE1YWJkNDI1NjM3MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcApAQCAtMTAzMiw3
ICsxMDMyLDEzIEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9zdWIoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+CiAgICAgfQogfQogCi0vKiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5EOiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwordm9pZCBKSVQ6OmVtaXRfb3BfcG93KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgSklUU2xvd1BhdGhDYWxsIHNs
b3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9wb3cpOworICAg
IHNsb3dQYXRoQ2FsbC5jYWxsKCk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBFTkQ6IE9QX0FERCwgT1BfU1VCLCBPUF9NVUwsIE9QX1BPVyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gKi8KIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAwMTk5
MzE1NDU4ZWExNTIzMTg4NzExY2JhODJhNjhjMzMzZjdhNjNjLi4zZTBkYmQ4OTg2YjlkYjFhYjBh
MjM1YTM5MDg0YzEwYWVmNDU2NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xMzIwLDYgKzEzMjAsMTIgQEAgX2xs
aW50X29wX21vZDoKICAgICBkaXNwYXRjaCg0KQogCiAKK19sbGludF9vcF9wb3c6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxPcGNvZGVTbG93UGF0aChfc2xvd19wYXRoX3BvdykKKyAg
ICBkaXNwYXRjaCg0KQorCisKIF9sbGludF9vcF90eXBlb2Y6CiAgICAgdHJhY2VFeGVjdXRpb24o
KQogICAgIGNhbGxPcGNvZGVTbG93UGF0aChfc2xvd19wYXRoX3R5cGVvZikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKaW5kZXggOWFjOTA0YWRlMzc0NThkNjgzMWUz
Yjk1ZTU0YjQ2MDQ1NmVhNmQ1NC4uMTllMzYyZTc5NmRiNzUwMmU5M2IzYjQ5NjFmYjAyMWYzZDcx
ZDM1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVy
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgKQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkJ1aWx0aW5OYW1lcy5oIgogI2luY2x1ZGUgIkJ5dGVj
b2RlSW50cmluc2ljUmVnaXN0cnkuaCIKKyNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCiAjaW5jbHVk
ZSAiTm9kZUNvbnN0cnVjdG9ycy5oIgogI2luY2x1ZGUgIlN5bnRheENoZWNrZXIuaCIKICNpbmNs
dWRlICJWYXJpYWJsZUVudmlyb25tZW50LmgiCkBAIC0xNDMsNiArMTQ0LDcgQEAgY2xhc3MgQVNU
QnVpbGRlciB7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VEZWxldGVOb2RlKGNvbnN0IEpTVG9r
ZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmQp
OwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlTmVnYXRlTm9kZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBFeHByZXNzaW9uTm9kZSopOwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlQml0d2lzZU5v
dE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKKyAgICBFeHBy
ZXNzaW9uTm9kZSogbWFrZVBvd05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lv
bk5vZGUqIGxlZnQsIEV4cHJlc3Npb25Ob2RlKiByaWdodCwgYm9vbCByaWdodEhhc0Fzc2lnbm1l
bnRzKTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZU11bHROb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wg
cmlnaHRIYXNBc3NpZ25tZW50cyk7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VEaXZOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBFeHByZXNzaW9uTm9k
ZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CiAgICAgRXhwcmVzc2lvbk5vZGUq
IG1ha2VNb2ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBsZWZ0
LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CkBAIC03
ODQsOSArNzg2LDE0IEBAIGNsYXNzIEFTVEJ1aWxkZXIgewogICAgICAgICBvcGVyYXRvclN0YWNr
RGVwdGgtLTsKICAgICAgICAgbV9iaW5hcnlPcGVyYXRvclN0YWNrLnJlbW92ZUxhc3QoKTsKICAg
ICB9Ci0gICAgYm9vbCBvcGVyYXRvclN0YWNrSGFzSGlnaGVyUHJlY2VkZW5jZShpbnQmLCBpbnQg
cHJlY2VkZW5jZSkKKyAgICBib29sIG9wZXJhdG9yU3RhY2tTaG91bGRSZWR1Y2UoaW50IHByZWNl
ZGVuY2UpCiAgICAgewotICAgICAgICByZXR1cm4gcHJlY2VkZW5jZSA8PSBtX2JpbmFyeU9wZXJh
dG9yU3RhY2subGFzdCgpLnNlY29uZDsKKyAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgcHJlY2Vk
ZW5jZSBvZiB0aGUgb3BlcmF0b3Igc3RhY2sgaXMgdGhlIHNhbWUgdG8gdGhlIG9uZSBvZiB0aGUg
Z2l2ZW4gb3BlcmF0b3IsCisgICAgICAgIC8vIGl0IGRlcGVuZHMgb24gdGhlIGFzc29jaWF0aXZl
IHdoZXRoZXIgd2UgcmVkdWNlIHRoZSBzdGFjay4KKyAgICAgICAgLy8gSWYgdGhlIG9wZXJhdG9y
IGlzIHJpZ2h0IGFzc29jaWF0aXZlLCB3ZSBzaG91bGQgbm90IHJlZHVjZSB0aGUgc3RhY2sgcmln
aHQgbm93LgorICAgICAgICBpZiAocHJlY2VkZW5jZSA9PSBtX2JpbmFyeU9wZXJhdG9yU3RhY2su
bGFzdCgpLnNlY29uZCkKKyAgICAgICAgICAgIHJldHVybiAhKG1fYmluYXJ5T3BlcmF0b3JTdGFj
ay5sYXN0KCkuZmlyc3QgJiBSaWdodEFzc29jaWF0aXZlQmluYXJ5T3BUb2tlbkZsYWcpOworICAg
ICAgICByZXR1cm4gcHJlY2VkZW5jZSA8IG1fYmluYXJ5T3BlcmF0b3JTdGFjay5sYXN0KCkuc2Vj
b25kOwogICAgIH0KICAgICBjb25zdCBCaW5hcnlPcGVyYW5kJiBnZXRGcm9tT3BlcmFuZFN0YWNr
KGludCBpKSB7IHJldHVybiBtX2JpbmFyeU9wZXJhbmRTdGFja1ttX2JpbmFyeU9wZXJhbmRTdGFj
ay5zaXplKCkgKyBpXTsgfQogICAgIHZvaWQgc2hyaW5rT3BlcmFuZFN0YWNrQnkoaW50JiBvcGVy
YW5kU3RhY2tEZXB0aCwgaW50IGFtb3VudCkKQEAgLTEwNDQsOCArMTA1MSwyOSBAQCBFeHByZXNz
aW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUJpdHdpc2VOb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sCiAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQml0d2lzZU5v
dE5vZGUobG9jYXRpb24sIGV4cHIpOwogfQogCitFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6
bWFrZVBvd05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cykKK3sKKyAgICBhdXRvKiBzdHJpcHBlZEV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQbHVzKCk7
CisgICAgYXV0byogc3RyaXBwZWRFeHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOworCisg
ICAgaWYgKHN0cmlwcGVkRXhwcjEtPmlzTnVtYmVyKCkgJiYgc3RyaXBwZWRFeHByMi0+aXNOdW1i
ZXIoKSkgeworICAgICAgICBjb25zdCBOdW1iZXJOb2RlJiBudW1iZXJFeHByMSA9IHN0YXRpY19j
YXN0PE51bWJlck5vZGUmPigqc3RyaXBwZWRFeHByMSk7CisgICAgICAgIGNvbnN0IE51bWJlck5v
ZGUmIG51bWJlckV4cHIyID0gc3RhdGljX2Nhc3Q8TnVtYmVyTm9kZSY+KCpzdHJpcHBlZEV4cHIy
KTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZU51bWJlckZyb21CaW5hcnlPcGVyYXRpb24obG9jYXRp
b24sIG9wZXJhdGlvbk1hdGhQb3cobnVtYmVyRXhwcjEudmFsdWUoKSwgbnVtYmVyRXhwcjIudmFs
dWUoKSksIG51bWJlckV4cHIxLCBudW1iZXJFeHByMik7CisgICAgfQorCisgICAgaWYgKHN0cmlw
cGVkRXhwcjEtPmlzTnVtYmVyKCkpCisgICAgICAgIGV4cHIxID0gc3RyaXBwZWRFeHByMTsKKyAg
ICBpZiAoc3RyaXBwZWRFeHByMi0+aXNOdW1iZXIoKSkKKyAgICAgICAgZXhwcjIgPSBzdHJpcHBl
ZEV4cHIyOworCisgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUG93Tm9kZShsb2NhdGlv
biwgZXhwcjEsIGV4cHIyLCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKK30KKwogRXhwcmVzc2lvbk5v
ZGUqIEFTVEJ1aWxkZXI6Om1ha2VNdWx0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0
aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCBy
aWdodEhhc0Fzc2lnbm1lbnRzKQogeworICAgIC8vIEZJWE1FOiBVbmFyeSArIGNoYW5nZSB0aGUg
ZXZhbHVhdGlvbiBvcmRlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU5OTY4CiAgICAgZXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsKICAg
ICBleHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwogCkBAIC0xMDY2LDYgKzEwOTQsOCBA
QCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZU11bHROb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlcwogCiBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6
bWFrZURpdk5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50
cykKIHsKKyAgICAvLyBGSVhNRTogVW5hcnkgKyBjaGFuZ2UgdGhlIGV2YWx1YXRpb24gb3JkZXIu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2OAog
ICAgIGV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQbHVzKCk7CiAgICAgZXhwcjIgPSBleHByMi0+
c3RyaXBVbmFyeVBsdXMoKTsKIApAQCAtMTA4Miw2ICsxMTEyLDggQEAgRXhwcmVzc2lvbk5vZGUq
IEFTVEJ1aWxkZXI6Om1ha2VEaXZOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24s
IEV4cHJlc3MKIAogRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VNb2ROb2RlKGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVz
c2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCiB7CisgICAgLy8gRklY
TUU6IFVuYXJ5ICsgY2hhbmdlIHRoZSBldmFsdWF0aW9uIG9yZGVyLgorICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk5NjgKICAgICBleHByMSA9IGV4cHIx
LT5zdHJpcFVuYXJ5UGx1cygpOwogICAgIGV4cHIyID0gZXhwcjItPnN0cmlwVW5hcnlQbHVzKCk7
CiAKQEAgLTExMDYsNiArMTEzOCw4IEBAIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtl
QWRkTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzCiAKIEV4cHJl
c3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlU3ViTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQogeworICAgIC8vIEZJWE1FOiBVbmFyeSArIGNoYW5n
ZSB0aGUgZXZhbHVhdGlvbiBvcmRlci4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU5OTY4CiAgICAgZXhwcjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMo
KTsKICAgICBleHByMiA9IGV4cHIyLT5zdHJpcFVuYXJ5UGx1cygpOwogCkBAIC0xMjk1LDYgKzEz
MjksOSBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZUJpbmFyeU5vZGUoY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgaW50CiAKICAgICBjYXNlIE1PRDoKICAgICAgICAg
cmV0dXJuIG1ha2VNb2ROb2RlKGxvY2F0aW9uLCBsaHMuZmlyc3QsIHJocy5maXJzdCwgcmhzLnNl
Y29uZC5oYXNBc3NpZ25tZW50KTsKKworICAgIGNhc2UgUE9XOgorICAgICAgICByZXR1cm4gbWFr
ZVBvd05vZGUobG9jYXRpb24sIGxocy5maXJzdCwgcmhzLmZpcnN0LCByaHMuc2Vjb25kLmhhc0Fz
c2lnbm1lbnQpOwogICAgIH0KICAgICBDUkFTSCgpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAppbmRleCA1Yzc5NjczN2NjNDkyYWE1YzAwM2QyMGZm
ZTVlYmE5YmQ3ZDdkYzlhLi5iNzI2ZGRhNDUyZTY5MjEzZjJkZTk3MTVhYmMxYTNkZGNjN2JiNjcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmNwcApAQCAtMTk1Niw2ICsxOTU2
LDE2IEBAIEpTVG9rZW5UeXBlIExleGVyPFQ+OjpsZXgoSlNUb2tlbiogdG9rZW5SZWNvcmQsIHVu
c2lnbmVkIGxleGVyRmxhZ3MsIGJvb2wgc3RyaWN0CiAgICAgICAgICAgICB0b2tlbiA9IE1VTFRF
UVVBTDsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGlmIChtX2N1cnJl
bnQgPT0gJyonKSB7CisgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgaWYgKG1fY3Vy
cmVudCA9PSAnPScpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCgpOworICAgICAgICAgICAgICAg
IHRva2VuID0gUE9XRVFVQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICB0b2tlbiA9IFBPVzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CiAgICAgICAgIHRva2VuID0gVElNRVM7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2hhcmFj
dGVyU2xhc2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVD
b25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVj
dG9ycy5oCmluZGV4IDdmNTQ2YWIwYjAxNzc1ZTA0Y2UyM2NjOGY1OGQ4NjgyMTRlYjU0MGEuLjVk
M2YzYzkyNjE5NjM4NTc1NTY5Yjc5N2RiZGI0Zjc5YzEyNmM3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC00OTcsNiArNDk3LDEx
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHsKICAgICB9CiAKKyAgICBpbmxpbmUgUG93Tm9kZTo6
UG93Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSog
ZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQor
ICAgICAgICA6IEJpbmFyeU9wTm9kZShsb2NhdGlvbiwgUmVzdWx0VHlwZTo6bnVtYmVyVHlwZSgp
LCBleHByMSwgZXhwcjIsIG9wX3BvdywgcmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICB7CisgICAg
fQorCiAgICAgaW5saW5lIE11bHROb2RlOjpNdWx0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQogICAgICAgICA6IEJpbmFyeU9wTm9kZShsb2NhdGlv
biwgUmVzdWx0VHlwZTo6bnVtYmVyVHlwZSgpLCBleHByMSwgZXhwcjIsIG9wX211bCwgcmlnaHRI
YXNBc3NpZ25tZW50cykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKaW5k
ZXggMWRjNzRlMmM1YjJhMTcyM2YzZjRjOGIxMmNmOGFiMmRhMDBmZmNmOS4uMWUwODgyNzlmYzcy
NGNhOTNiMmI2MzNmZjA3OWNjM2FlMzAxNGY2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9Ob2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZXMuaApAQCAtNjcsNiArNjcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgT3BYT3JF
cSwKICAgICAgICAgT3BPckVxLAogICAgICAgICBPcE1vZEVxLAorICAgICAgICBPcFBvd0VxLAog
ICAgICAgICBPcExTaGlmdCwKICAgICAgICAgT3BSU2hpZnQsCiAgICAgICAgIE9wVVJTaGlmdApA
QCAtMTAzOSw2ICsxMDQwLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIG1fcmln
aHRIYXNBc3NpZ25tZW50czsKICAgICB9OwogCisgICAgY2xhc3MgUG93Tm9kZSA6IHB1YmxpYyBC
aW5hcnlPcE5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgUG93Tm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwg
Ym9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKKyAgICB9OworCiAgICAgY2xhc3MgTXVsdE5vZGUg
OiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIE11bHROb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5v
ZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuY3BwCmluZGV4IDRlZWFlMTQ4MDA0NjUzNmNmMjI4ZTBkNzgyODZjOGY1
NGY5MTk2YjIuLmQ5ZjEwNTg4MzY3ZDRlYjc4NWQwNTNiN2NhZTkyMDRkNzU1OTFmZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKQEAgLTMxMjYsNiArMzEyNiw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlQXNzaWdubWVuCiAgICAgICAgIGNhc2UgWE9SRVFVQUw6IG9wID0gT3BY
T3JFcTsgYnJlYWs7CiAgICAgICAgIGNhc2UgT1JFUVVBTDogb3AgPSBPcE9yRXE7IGJyZWFrOwog
ICAgICAgICBjYXNlIE1PREVRVUFMOiBvcCA9IE9wTW9kRXE7IGJyZWFrOworICAgICAgICBjYXNl
IFBPV0VRVUFMOiBvcCA9IE9wUG93RXE7IGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgZ290byBlbmQ7CiAgICAgICAgIH0KQEAgLTMyMTgsOSArMzIxOSwxMSBAQCB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+Ojpw
YXJzZUNvbmRpdGlvbmFsRQogICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUNvbmRpdGlvbmFsRXhw
cihsb2NhdGlvbiwgY29uZCwgbGhzLCByaHMpOwogfQogCi1BTFdBWVNfSU5MSU5FIHN0YXRpYyBi
b29sIGlzVW5hcnlPcChKU1Rva2VuVHlwZSB0b2tlbikKK0FMV0FZU19JTkxJTkUgc3RhdGljIGJv
b2wgaXNVbmFyeU9wRXhjbHVkaW5nVXBkYXRlT3AoSlNUb2tlblR5cGUgdG9rZW4pCiB7Ci0gICAg
cmV0dXJuIHRva2VuICYgVW5hcnlPcFRva2VuRmxhZzsKKyAgICBpZiAoaXNVcGRhdGVPcCh0b2tl
bikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNVbmFyeU9wKHRva2VuKTsK
IH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KQEAgLTMyNDEsMTAgKzMyNDQsMzUg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VCaW5hcnlFeHByZXMKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBK
U1RleHRQb3NpdGlvbiBleHByU3RhcnQgPSB0b2tlblN0YXJ0UG9zaXRpb24oKTsKICAgICAgICAg
aW50IGluaXRpYWxBc3NpZ25tZW50cyA9IG1fcGFyc2VyU3RhdGUuYXNzaWdubWVudENvdW50Owor
ICAgICAgICBKU1Rva2VuVHlwZSBsZWFkaW5nVG9rZW5UeXBlRm9yVW5hcnlFeHByZXNzaW9uID0g
bV90b2tlbi5tX3R5cGU7CiAgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1cnJlbnQgPSBwYXJzZVVu
YXJ5RXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgZmFpbElmRmFsc2UoY3VycmVudCwgIkNh
bm5vdCBwYXJzZSBleHByZXNzaW9uIik7CiAgICAgICAgIAogICAgICAgICBjb250ZXh0LmFwcGVu
ZEJpbmFyeUV4cHJlc3Npb25JbmZvKG9wZXJhbmRTdGFja0RlcHRoLCBjdXJyZW50LCBleHByU3Rh
cnQsIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCksIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCksIGluaXRp
YWxBc3NpZ25tZW50cyAhPSBtX3BhcnNlclN0YXRlLmFzc2lnbm1lbnRDb3VudCk7CisKKyAgICAg
ICAgLy8gMTIuNiBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1leHAtb3BlcmF0
b3IKKyAgICAgICAgLy8gRXhwb25lbnRpYXRpb25FeHByZXNpb24gaXMgZGVzY3JpYmVkIGFzIGZv
bGxvd3MuCisgICAgICAgIC8vCisgICAgICAgIC8vICAgICBFeHBvbmVudGlhdGlvbkV4cHJlc3Np
b25bWWllbGRdOgorICAgICAgICAvLyAgICAgICAgIFVuYXJ5RXhwcmVzc2lvbls/WWllbGRdCisg
ICAgICAgIC8vICAgICAgICAgVXBkYXRlRXhwcmVzc2lvbls/WWllbGRdICoqIEV4cG9uZW50aWF0
aW9uRXhwcmVzc2lvbls/WWllbGRdCisgICAgICAgIC8vCisgICAgICAgIC8vIEFzIHdlIGNhbiBz
ZWUsIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiB0aGUgRXhwb25lbnRpYXRpb25FeHByZXNzaW9uIGlz
IFVwZGF0ZUV4cHJlc3Npb24sIG5vdCBVbmFyeUV4cHJlc3Npb24uCisgICAgICAgIC8vIFNvIHBs
YWNpbmcgVW5hcnlFeHByZXNzaW9uIG5vdCBpbmNsdWRlZCBpbiBVcGRhdGVFeHByZXNzaW9uIGhl
cmUgaXMgYSBzeW50YXggZXJyb3IuCisgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWwuIEZv
ciBleGFtcGxlLCBpZiBVbmFyeUV4cHJlc3Npb24gaXMgYWxsb3dlZCwgd2UgY2FuIGhhdmUgdGhl
IGNvZGUgbGlrZSBgLXgqKnlgLgorICAgICAgICAvLyBCdXQgdGhpcyBpcyBjb25mdXNpbmc6IGAt
KHgqKnkpYCBPUiBgKC14KSoqeWAsIHdoaWNoIGludGVycHJldGF0aW9uIGlzIGNvcnJlY3Q/Cisg
ICAgICAgIC8vIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgRUNNQTI2MiBtYWtlcyB1bnBhcmVudGhl
c2l6ZWQgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiBhcyBvcGVyYW5kIG9mIHVuYXJ5IG9wZXJh
dG9ycyBhbiBlYXJseSBlcnJvci4KKyAgICAgICAgLy8gTW9yZSByYXRpb25hbGU6IGh0dHBzOi8v
bWFpbC5tb3ppbGxhLm9yZy9waXBlcm1haWwvZXMtZGlzY3Vzcy8yMDE1LVNlcHRlbWJlci8wNDQy
MzIuaHRtbAorICAgICAgICAvLworICAgICAgICAvLyBIZXJlLCB3ZSBndWFyYW50ZWUgdGhhdCB0
aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhpcyBleHByZXNzaW9uIGlzIG5vdCB1bmFyeSBleHByZXNz
aW9uIGJ5IGNoZWNraW5nIHRoZSBsZWFkaW5nIG9wZXJhdG9yIG9mIHRoZSBwYXJzZVVuYXJ5RXhw
cmVzc2lvbi4KKyAgICAgICAgLy8gVGhpcyBjaGVjayBqdXN0IHdvcmtzLiBMZXQncyBjb25zaWRl
ciB0aGUgZXhhbXBsZSwKKyAgICAgICAgLy8gICAgIHkgPD4gLXggKiogegorICAgICAgICAvLyAg
ICAgICAgICBeCisgICAgICAgIC8vICAgICAgICAgIENoZWNrIHRoaXMuCisgICAgICAgIC8vIElm
IHRoZSBiaW5hcnkgb3BlcmF0b3IgPD4gaGFzIGhpZ2hlciBwcmVjZWRlbmNlIHRoYW4gb25lIG9m
ICIqKiIsIHRoaXMgY2hlY2sgZG9lcyBub3Qgd29yay4KKyAgICAgICAgLy8gQnV0IGl0J3MgT0sg
Zm9yICoqIGJlY2F1c2UgdGhlIG9wZXJhdG9yICIqKiIgaGFzIHRoZSBoaWdoZXN0IG9wZXJhdG9y
IHByZWNlZGVuY2UgaW4gdGhlIGJpbmFyeSBvcGVyYXRvcnMuCisgICAgICAgIGZhaWxJZlRydWUo
bWF0Y2goUE9XKSAmJiBpc1VuYXJ5T3BFeGNsdWRpbmdVcGRhdGVPcChsZWFkaW5nVG9rZW5UeXBl
Rm9yVW5hcnlFeHByZXNzaW9uKSwgIkV4cGVjdGVkIGEgdXBkYXRlIGV4cHJlc3Npb24gb24gdGhl
IGxlZnQgaGFuZCBzaWRlIG9mIGFuIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24iKTsKKwogICAg
ICAgICBpbnQgcHJlY2VkZW5jZSA9IGlzQmluYXJ5T3BlcmF0b3IobV90b2tlbi5tX3R5cGUpOwog
ICAgICAgICBpZiAoIXByZWNlZGVuY2UpCiAgICAgICAgICAgICBicmVhazsKQEAgLTMyNTMsNyAr
MzI4MSw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgICAgIGludCBvcGVyYXRvclRv
a2VuID0gbV90b2tlbi5tX3R5cGU7CiAgICAgICAgIG5leHQoVHJlZUJ1aWxkZXI6OkRvbnRCdWls
ZFN0cmluZ3MpOwogICAgICAgICAKLSAgICAgICAgd2hpbGUgKG9wZXJhdG9yU3RhY2tEZXB0aCAm
JiAgY29udGV4dC5vcGVyYXRvclN0YWNrSGFzSGlnaGVyUHJlY2VkZW5jZShvcGVyYXRvclN0YWNr
RGVwdGgsIHByZWNlZGVuY2UpKSB7CisgICAgICAgIHdoaWxlIChvcGVyYXRvclN0YWNrRGVwdGgg
JiYgY29udGV4dC5vcGVyYXRvclN0YWNrU2hvdWxkUmVkdWNlKHByZWNlZGVuY2UpKSB7CiAgICAg
ICAgICAgICBBU1NFUlQob3BlcmFuZFN0YWNrRGVwdGggPiAxKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkJpbmFyeU9wZXJhbmQgcmhzID0gY29udGV4
dC5nZXRGcm9tT3BlcmFuZFN0YWNrKC0xKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlclRva2Vucy5oCmluZGV4IGFmZjRhMzAxMzNjNzUxZTYxZmFmMTIzZWQ1NjgwZTkwZGE5
NjQ3MTcuLmViMjYzYmIyY2ZiNWQ3NjNhY2VmNzljNjljZDI4ZjgyM2MyYTdlODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaApAQCAtNDEsNyArNDEsOCBA
QCBlbnVtIHsKICAgICBCaW5hcnlPcFRva2VuQWxsb3dzSW5QcmVjZWRlbmNlQWRkaXRpb25hbFNo
aWZ0ID0gNCwKICAgICBCaW5hcnlPcFRva2VuUHJlY2VkZW5jZU1hc2sgPSAxNSA8PCBCaW5hcnlP
cFRva2VuUHJlY2VkZW5jZVNoaWZ0LAogICAgIEVycm9yVG9rZW5GbGFnID0gMSA8PCAoQmluYXJ5
T3BUb2tlbkFsbG93c0luUHJlY2VkZW5jZUFkZGl0aW9uYWxTaGlmdCArIEJpbmFyeU9wVG9rZW5Q
cmVjZWRlbmNlU2hpZnQgKyA3KSwKLSAgICBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZyA9IEVy
cm9yVG9rZW5GbGFnIDw8IDEKKyAgICBVbnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZyA9IEVycm9y
VG9rZW5GbGFnIDw8IDEsCisgICAgUmlnaHRBc3NvY2lhdGl2ZUJpbmFyeU9wVG9rZW5GbGFnID0g
VW50ZXJtaW5hdGVkRXJyb3JUb2tlbkZsYWcgPDwgMQogfTsKIAogI2RlZmluZSBCSU5BUllfT1Bf
UFJFQ0VERU5DRShwcmVjKSAoKChwcmVjKSA8PCBCaW5hcnlPcFRva2VuUHJlY2VkZW5jZVNoaWZ0
KSB8ICgocHJlYykgPDwgKEJpbmFyeU9wVG9rZW5QcmVjZWRlbmNlU2hpZnQgKyBCaW5hcnlPcFRv
a2VuQWxsb3dzSW5QcmVjZWRlbmNlQWRkaXRpb25hbFNoaWZ0KSkpCkBAIC0xMDksNiArMTEwLDcg
QEAgZW51bSBKU1Rva2VuVHlwZSB7CiAgICAgVVJTSElGVEVRVUFMLAogICAgIEFOREVRVUFMLAog
ICAgIE1PREVRVUFMLAorICAgIFBPV0VRVUFMLAogICAgIFhPUkVRVUFMLAogICAgIE9SRVFVQUws
CiAgICAgRE9URE9URE9ULApAQCAtMTE4LDEwICsxMjAsMTAgQEAgZW51bSBKU1Rva2VuVHlwZSB7
CiAgICAgLy8gQmVnaW4gdGFnZ2VkIHRva2VucwogICAgIFBMVVNQTFVTID0gMCB8IFVuYXJ5T3BU
b2tlbkZsYWcsCiAgICAgTUlOVVNNSU5VUyA9IDEgfCBVbmFyeU9wVG9rZW5GbGFnLAotICAgIEVY
Q0xBTUFUSU9OID0gMiB8IFVuYXJ5T3BUb2tlbkZsYWcsCi0gICAgVElMREUgPSAzIHwgVW5hcnlP
cFRva2VuRmxhZywKLSAgICBBVVRPUExVU1BMVVMgPSA0IHwgVW5hcnlPcFRva2VuRmxhZywKLSAg
ICBBVVRPTUlOVVNNSU5VUyA9IDUgfCBVbmFyeU9wVG9rZW5GbGFnLAorICAgIEFVVE9QTFVTUExV
UyA9IDIgfCBVbmFyeU9wVG9rZW5GbGFnLAorICAgIEFVVE9NSU5VU01JTlVTID0gMyB8IFVuYXJ5
T3BUb2tlbkZsYWcsCisgICAgRVhDTEFNQVRJT04gPSA0IHwgVW5hcnlPcFRva2VuRmxhZywKKyAg
ICBUSUxERSA9IDUgfCBVbmFyeU9wVG9rZW5GbGFnLAogICAgIFRZUEVPRiA9IDYgfCBVbmFyeU9w
VG9rZW5GbGFnIHwgS2V5d29yZFRva2VuRmxhZywKICAgICBWT0lEVE9LRU4gPSA3IHwgVW5hcnlP
cFRva2VuRmxhZyB8IEtleXdvcmRUb2tlbkZsYWcsCiAgICAgREVMRVRFVE9LRU4gPSA4IHwgVW5h
cnlPcFRva2VuRmxhZyB8IEtleXdvcmRUb2tlbkZsYWcsCkBAIC0xNDgsNiArMTUwLDcgQEAgZW51
bSBKU1Rva2VuVHlwZSB7CiAgICAgVElNRVMgPSAyMCB8IEJJTkFSWV9PUF9QUkVDRURFTkNFKDEw
KSwKICAgICBESVZJREUgPSAyMSB8IEJJTkFSWV9PUF9QUkVDRURFTkNFKDEwKSwKICAgICBNT0Qg
PSAyMiB8IEJJTkFSWV9PUF9QUkVDRURFTkNFKDEwKSwKKyAgICBQT1cgPSAyMyB8IEJJTkFSWV9P
UF9QUkVDRURFTkNFKDExKSB8IFJpZ2h0QXNzb2NpYXRpdmVCaW5hcnlPcFRva2VuRmxhZywgLy8g
TWFrZSBzdXJlIHRoYXQgUE9XIGhhcyB0aGUgaGlnaGVzdCBvcGVyYXRvciBwcmVjZWRlbmNlLgog
ICAgIEVSUk9SVE9LID0gMCB8IEVycm9yVG9rZW5GbGFnLAogICAgIFVOVEVSTUlOQVRFRF9JREVO
VElGSUVSX0VTQ0FQRV9FUlJPUlRPSyA9IDAgfCBFcnJvclRva2VuRmxhZyB8IFVudGVybWluYXRl
ZEVycm9yVG9rZW5GbGFnLAogICAgIElOVkFMSURfSURFTlRJRklFUl9FU0NBUEVfRVJST1JUT0sg
PSAxIHwgRXJyb3JUb2tlbkZsYWcsCkBAIC0yMjIsNiArMjI1LDE2IEBAIHN0cnVjdCBKU1Rva2Vu
IHsKICAgICBKU1RleHRQb3NpdGlvbiBtX2VuZFBvc2l0aW9uOwogfTsKIAorQUxXQVlTX0lOTElO
RSBib29sIGlzVXBkYXRlT3AoSlNUb2tlblR5cGUgdG9rZW4pCit7CisgICAgcmV0dXJuIHRva2Vu
ID49IFBMVVNQTFVTICYmIHRva2VuIDw9IEFVVE9NSU5VU01JTlVTOworfQorCitBTFdBWVNfSU5M
SU5FIGJvb2wgaXNVbmFyeU9wKEpTVG9rZW5UeXBlIHRva2VuKQoreworICAgIHJldHVybiB0b2tl
biAmIFVuYXJ5T3BUb2tlbkZsYWc7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYg
Ly8gUGFyc2VyVG9rZW5zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhD
aGVja2VyLmgKaW5kZXggYmYwZDhmZmY3MmIzYmU2MmZlMjNlZTNhMTJlNDdmOWI4YzQ5ZTI1MC4u
MDM3ODJjZTRhZWU5NTJlZDI1ZGE5YjMyZWVjMmNkMGM3ZDAzOTc5YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTMwMSw3ICszMDEsNyBAQCBj
bGFzcyBTeW50YXhDaGVja2VyIHsKICAgICAKICAgICAvLyBMb2dpYyB0byBoYW5kbGUgZGF0YXN0
cnVjdHVyZXMgdXNlZCBkdXJpbmcgcGFyc2luZyBvZiBiaW5hcnkgZXhwcmVzc2lvbnMKICAgICB2
b2lkIG9wZXJhdG9yU3RhY2tQb3AoaW50JiBvcGVyYXRvclN0YWNrRGVwdGgpIHsgb3BlcmF0b3JT
dGFja0RlcHRoLS07IH0KLSAgICBib29sIG9wZXJhdG9yU3RhY2tIYXNIaWdoZXJQcmVjZWRlbmNl
KGludCYsIGludCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgb3BlcmF0b3JTdGFja1Nob3Vs
ZFJlZHVjZShpbnQpIHsgcmV0dXJuIHRydWU7IH0KICAgICBCaW5hcnlPcGVyYW5kIGdldEZyb21P
cGVyYW5kU3RhY2soaW50KSB7IHJldHVybiBtX3RvcEJpbmFyeUV4cHI7IH0KICAgICB2b2lkIHNo
cmlua09wZXJhbmRTdGFja0J5KGludCYgb3BlcmFuZFN0YWNrRGVwdGgsIGludCBhbW91bnQpIHsg
b3BlcmFuZFN0YWNrRGVwdGggLT0gYW1vdW50OyB9CiAgICAgdm9pZCBhcHBlbmRCaW5hcnlPcGVy
YXRpb24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50JiBvcGVyYW5kU3RhY2tEZXB0aCwgaW50
JiwgQmluYXJ5T3BlcmFuZCwgQmluYXJ5T3BlcmFuZCkgeyBvcGVyYW5kU3RhY2tEZXB0aCsrOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNw
cAppbmRleCAwMDYxMjQ1YzViNTJkMjVmZDVjMzU0ZmFiZTZjNWI3NmM5MTA5NDIzLi42NWZkYTY4
NTRjY2NlOGRjOTQxOTMwMDRhOWYwMjk1NDhmOThiYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKQEAgLTQ3MCw2ICs0NzAsMTQg
QEAgU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX21vZCkKICAgICBSRVRVUk4oanNOdW1iZXIoanNN
b2QoYSwgYikpKTsKIH0KIAorU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3BvdykKK3sKKyAgICBC
RUdJTigpOworICAgIGRvdWJsZSBhID0gT1BfQygyKS5qc1ZhbHVlKCkudG9OdW1iZXIoZXhlYyk7
CisgICAgZG91YmxlIGIgPSBPUF9DKDMpLmpzVmFsdWUoKS50b051bWJlcihleGVjKTsKKyAgICBS
RVRVUk4oanNOdW1iZXIob3BlcmF0aW9uTWF0aFBvdyhhLCBiKSkpOworfQorCiBTTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfbHNoaWZ0KQogewogICAgIEJFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGViYzkxMzA2ZjgzYTgx
YjdhYTJlZTBlM2IzZmJlMjkyN2U5ZmFkNjIuLjhjNzA3ODQyODAyZDZhMDNkMTI4Y2Q4ZDI5MmFm
ZjczNWNkYTAzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1v
blNsb3dQYXRocy5oCkBAIC0yMTksNiArMjE5LDcgQEAgU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9tdWwpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9zdWIpOwogU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9kaXYpOwogU0xPV19QQVRIX0hJRERFTl9ERUNM
KHNsb3dfcGF0aF9tb2QpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wb3cpOwog
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9sc2hpZnQpOwogU0xPV19QQVRIX0hJRERF
Tl9ERUNMKHNsb3dfcGF0aF9yc2hpZnQpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF91cnNoaWZ0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJl
c3MvcG93LWJhc2ljcy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93
LWJhc2ljcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWY5Y2U2ZWE4NDAyYTIxZDRmZjhkN2M5ZDgwZDllYmEw
ZWY4NDdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9wb3ctYmFzaWNzLmpzCkBAIC0wLDAgKzEsMjg2IEBACitmdW5jdGlvbiB2YWx1ZXNBcmVD
bG9zZShhLCBiKSB7CisgICAgcmV0dXJuIE1hdGguYWJzKGEgLyBiKSAtIDEgPCAxZS0xMDsKK30K
KworLy8gU29tZSByYW5kb20gdmFsdWVzLgorZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTEo
eCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91
YmxlMSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQxKHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDEpOworCitmdW5jdGlvbiB0ZXN0
MSh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTEo
eCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91Ymxl
MSgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVl
IGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAw
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gbWF0aFBvd0RvdWJsZUludDEoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVl
c0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDEoIiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAi
KSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVk
MjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0MSk7Cit0ZXN0MSgzNzYuNzY1MjI3NjQzNzcyOTYs
IDEwLjgxNjk5MjI2MDUxNTY5LCA3LjMzMzk1MTkyOTEwOTI1MmUrMjcsIDUuNzYzNzg5ODk1NzUw
ODllKzI1KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTIoeCwgeSkgeworICAgIHJl
dHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlMik7CisKK2Z1bmN0
aW9uIG1hdGhQb3dEb3VibGVJbnQyKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9J
bmxpbmUobWF0aFBvd0RvdWJsZUludDIpOworZnVuY3Rpb24gdGVzdDIoeCwgeSwgZXhwZWN0ZWQx
LCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGUyKHgsIHkpOworICAgICAgICBp
ZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTIoIiArIHggKyAiLCAiICsg
eSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhw
ZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3Vi
bGVJbnQyKHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQs
IGV4cGVjdGVkMikpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQ
b3dEb3VibGVJbnQyKCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsg
IiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9J
bmxpbmUodGVzdDIpOwordGVzdDIoMzc2Ljc2NTIyNzY0Mzc3Mjk2LCAtNS44MTY5OTIyNjA1MTU2
OSwgMS4wMzUxODAzMzExODc1NzllLTE1LCAxLjMxNzE4MjQzMTA0MDAyNjVlLTEzKTsKKworZnVu
Y3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTMoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9
Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlMyk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3Vi
bGVJbnQzKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0Rv
dWJsZUludDMpOworZnVuY3Rpb24gdGVzdDMoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IG1hdGhQb3dEb3VibGVEb3VibGUzKHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNs
b3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTMoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJl
c3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0K
KyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQzKHgsIGludGVn
ZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQzKCIg
KyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZh
bHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDMpOwor
dGVzdDMoLTM3LjY3NjUyMjc2NDM3NzI5NiwgMTAuMCwgNTc2Mzc4OTg5NTc1MDg5MiwgNTc2Mzc4
OTg5NTc1MDg5Mik7CisKKy8vIEV4cG9uZW50IHplcm8uCitmdW5jdGlvbiBtYXRoUG93RG91Ymxl
RG91YmxlNCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dE
b3VibGVEb3VibGU0KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDQoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50NCk7CitmdW5jdGlv
biB0ZXN0NCh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURv
dWJsZTQoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3Rl
ZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91Ymxl
RG91YmxlNCgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBh
IHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9
IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDQoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAo
IXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDQoIiArIHggKyAiLCAiICsgaW50ZWdl
clkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4
cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0NCk7Cit0ZXN0NCgtMzcuNjc2NTIyNzY0
Mzc3Mjk2LCAwLCAxLCAxKTsKKworLy8gRXhwb25lbnQgbWludXMgemVyby4KK2Z1bmN0aW9uIG1h
dGhQb3dEb3VibGVEb3VibGU1KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9Jbmxp
bmUobWF0aFBvd0RvdWJsZURvdWJsZTUpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50NSh4
LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQ1
KTsKK2Z1bmN0aW9uIHRlc3Q1KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRo
UG93RG91YmxlRG91YmxlNSh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1
bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1h
dGhQb3dEb3VibGVEb3VibGU1KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAi
IGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFy
IGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50NSh4LCBpbnRlZ2VyWSk7Cisg
ICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50KCIgKyB4ICsgIiwg
IiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3Nl
IHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDUpOwordGVzdDUoLTM3
LjY3NjUyMjc2NDM3NzI5NiwgLTAsIDEsIDEpOworCisvLyBFeHBvbmVudCAxLgorZnVuY3Rpb24g
bWF0aFBvd0RvdWJsZURvdWJsZTYoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lu
bGluZShtYXRoUG93RG91YmxlRG91YmxlNik7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ2
KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUlu
dDYpOworZnVuY3Rpb24gdGVzdDYoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1h
dGhQb3dEb3VibGVEb3VibGU2KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJl
c3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwg
bWF0aFBvd0RvdWJsZURvdWJsZTYoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCAr
ICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2
YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ2KHgsIGludGVnZXJZKTsK
KyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ2KCIgKyB4ICsg
IiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNs
b3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDYpOwordGVzdDYo
LTM3LjY3NjUyMjc2NDM3NzI5NiwgMS4wLCAtMzcuNjc2NTIyNzY0Mzc3Mjk2LCAtMzcuNjc2NTIy
NzY0Mzc3Mjk2KTsKKworLy8gRXhwb25lbnQgLTEuCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91
YmxlNyh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3Vi
bGVEb3VibGU3KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDcoeCwgeSkgeworICAgIHJl
dHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50Nyk7CitmdW5jdGlvbiB0
ZXN0Nyh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJs
ZTcoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDEp
KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91
YmxlNygiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZh
bHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkg
fCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTcoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAo
IXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTcoIiArIHggKyAiLCAiICsgaW50
ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiAr
IGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0Nyk7Cit0ZXN0NigtMzcuNjc2NTIy
NzY0Mzc3Mjk2LCAtMS4wLCAtMC4wMjY1NDE3Mjc0OTA0NTQyOTYsIC0wLjAyNjU0MTcyNzQ5MDQ1
NDI5Nik7CisKKy8vIExldCdzIHNxdWFyZSB0aGluZ3MuCitmdW5jdGlvbiBtYXRoUG93RG91Ymxl
RG91YmxlOCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dE
b3VibGVEb3VibGU4KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZUludDgoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50OCk7CitmdW5jdGlv
biB0ZXN0OCh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikgeworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZURv
dWJsZTgoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3Rl
ZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91Ymxl
RG91YmxlOCgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBh
IHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9
IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDgoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAo
IXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludDgoIiArIHggKyAiLCAiICsgaW50ZWdl
clkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4
cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0OCk7Cit0ZXN0NygtMzcuNjc2NTIyNzY0
Mzc3Mjk2LCAyLjAsIDE0MTkuNTIwMzY3NjE0NjQwNywgMTQxOS41MjAzNjc2MTQ2NDA3KTsKKwor
ZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTkoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7
Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91YmxlOSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dE
b3VibGVJbnQ5KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBv
d0RvdWJsZUludDkpOworZnVuY3Rpb24gdGVzdDkoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIp
IHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGU5KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0Fy
ZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZTkoIiArIHggKyAiLCAiICsgeSArICIpID0gIiAr
IHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAg
IH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ5KHgsIGlu
dGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ5
KCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBh
IHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDkp
OwordGVzdDgoMzcuNjc2NTIyNzY0Mzc3Mjk2LCAyLjAsIDE0MTkuNTIwMzY3NjE0NjQwNywgMTQx
OS41MjAzNjc2MTQ2NDA3KTsKKworLy8gTGV0J3MgY3ViZSB0aGluZ3MuCitmdW5jdGlvbiBtYXRo
UG93RG91YmxlRG91YmxlMTAoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGlu
ZShtYXRoUG93RG91YmxlRG91YmxlMTApOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50MTAo
eCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50
MTApOworZnVuY3Rpb24gdGVzdDEwKHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBt
YXRoUG93RG91YmxlRG91YmxlMTAoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2Uo
cmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0
LCBtYXRoUG93RG91YmxlRG91YmxlKCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQg
KyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAg
dmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50MTAoeCwgaW50ZWdlclkp
OworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludCgiICsgeCAr
ICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBj
bG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q5KTsKK3Rlc3Q5
KC0zNy42NzY1MjI3NjQzNzcyOTYsIDMuMCwgLTUzNDgyLjU5MTQ0NDkzMDIzNiwgLTUzNDgyLjU5
MTQ0NDkzMDIzNik7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGUxMSh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGUxMSk7CisK
K2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQxMSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsK
K30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQxMSk7CitmdW5jdGlvbiB0ZXN0MTEoeCwgeSwg
ZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGUxMSh4LCB5KTsK
KyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGUoIiArIHgg
KyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0
byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1h
dGhQb3dEb3VibGVJbnQxMSh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xv
c2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0LCBtYXRoUG93RG91YmxlSW50KCIgKyB4ICsgIiwgIiArIGludGVnZXJZICsgIikgPSAiICsg
cmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAg
fQorfQorbm9JbmxpbmUodGVzdDEwKTsKK3Rlc3QxMCgzNy42NzY1MjI3NjQzNzcyOTYsIDMuMCwg
NTM0ODIuNTkxNDQ0OTMwMjM2LCA1MzQ4Mi41OTE0NDQ5MzAyMzYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctY29oZXJlbmN5LmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctY29oZXJlbmN5LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjI5NjcxYTQyZGJkODJjZTU2OGMzYzI4NjliMThhMzA5M2Q4MTM4MjEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1jb2hlcmVuY3kuanMK
QEAgLTAsMCArMSw5NSBAQAorLy9AIHNraXAKKworLy8gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRo
ZSBwb3cgZnVuY3Rpb24gcmV0dXJucyBjb2hlcmVudCByZXN1bHRzOgorLy8gKGEpIEFjcm9zcyBk
aWZmZXJlbnQgY29tcGlsYXRpb24gdGllcnMKKy8vIChiKSBXaXRoIGludGVnZXIgZXhwb25lbnRz
IHJlcHJlc2VudGVkIGFzIGludDMyIG9yIGFzIGRvdWJsZQorCitmdW5jdGlvbiBwb3c0MigpIHsK
KyAgICByZXR1cm4geyB2YWx1ZTogMi4xICoqIDQyLCBmdGw6IGlzRmluYWxUaWVyKCkgfTsKK30K
KworZnVuY3Rpb24gYnVpbGQ0MkFzRG91YmxlKCkgeworICAgIGZ1bmN0aW9uIG9wYXF1ZUFkZCh4
LCB5KSB7IHJldHVybiB4ICsgeTsgfQorICAgIHJldHVybiBvcGFxdWVBZGQoNDIgLSAwLjEyMywg
MC4xMjMpOworfQorCit2YXIgZG91YmxlNDIgPSBidWlsZDQyQXNEb3VibGUoKTsKKworaWYgKGRv
dWJsZTQyICE9PSA0MikKKyAgICB0aHJvdyBuZXcgRXJyb3IoIjQyIChhcyBkb3VibGUpIHNob3Vs
ZCBiZSA9PT0gdG8gNDIgKGFzIGludCkiKTsKKworZnVuY3Rpb24gcG93RG91YmxlNDIoKSB7Cisg
ICAgcmV0dXJuIHsgdmFsdWU6IDIuMSAqKiBkb3VibGU0MiwgZnRsOiBpc0ZpbmFsVGllcigpIH07
Cit9CisKK2Z1bmN0aW9uIGNsb2JiZXIoKSB7IH0KK25vSW5saW5lKGNsb2JiZXIpOworCitmdW5j
dGlvbiBwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nKCkgeworICAgIHZhciBvYmogPSB7IHg6IDIuMSwg
eTogNDIgfTsKKyAgICBjbG9iYmVyKG9iaik7CisgICAgcmV0dXJuIHsgdmFsdWU6IG9iai54ICoq
IG9iai55LCBmdGw6IGlzRmluYWxUaWVyKCkgfTsKK30KKworZnVuY3Rpb24gcG93RG91YmxlNDJO
b0NvbnN0YW50Rm9sZGluZygpIHsKKyAgICB2YXIgb2JqID0geyB4OiAyLjEsIHk6IGRvdWJsZTQy
IH07CisgICAgY2xvYmJlcihvYmopOworICAgIHJldHVybiB7IHZhbHVlOiBvYmoueCAqKiBvYmou
eSwgZnRsOiBpc0ZpbmFsVGllcigpIH07Cit9CisKK3ZhciByZXN1bHRzID0geyAnaml0Jzoge30s
ICdkZmcnOiB7fSwgJ2Z0bCc6IHt9IH07Cit2YXIgZnVucyA9IFsKKyAgICBbICdwb3c0MicsIHBv
dzQyIF0sCisgICAgWyAncG93RG91YmxlNDInLCBwb3dEb3VibGU0MiBdLAorICAgIFsgJ3BvdzQy
Tm9Db25zdGFudEZvbGRpbmcnLCBwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nIF0sCisgICAgWyAncG93
RG91YmxlNDJOb0NvbnN0YW50Rm9sZGluZycsIHBvd0RvdWJsZTQyTm9Db25zdGFudEZvbGRpbmcg
XQorXTsKK3ZhciB0aWVycyA9IFsnaml0JywgJ2RmZycsICdmdGwnXTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIGZvciAodmFyIGogaW4gZnVucykgeworICAgICAg
ICB2YXIgbmFtZSA9IGZ1bnNbal1bMF07CisgICAgICAgIHZhciBmdW4gPSBmdW5zW2pdWzFdOwor
ICAgICAgICB2YXIgcmVzdWx0ID0gZnVuKCk7CisgICAgICAgIGlmIChyZXN1bHQuZnRsKQorICAg
ICAgICAgICAgcmVzdWx0c1snZnRsJ11bbmFtZV0gPSByZXN1bHQudmFsdWU7CisgICAgICAgIGVs
c2UgaWYgKG51bWJlck9mREZHQ29tcGlsZXMoZnVuKSA+IDApCisgICAgICAgICAgICByZXN1bHRz
WydkZmcnXVtuYW1lXSA9IHJlc3VsdC52YWx1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmVzdWx0c1snaml0J11bbmFtZV0gPSByZXN1bHQudmFsdWU7CisgICAgfQorfQorCit2YXIgZXJy
b3JzID0gW107Cit2YXIgdmFsdWVzRm9yID0ge307Citmb3IgKHZhciBpIGluIHRpZXJzKSB7Cisg
ICAgdmFyIHRpZXIgPSB0aWVyc1tpXTsKKyAgICB2YXIgcmVzdWx0ID0gcmVzdWx0c1t0aWVyXTsK
KyAgICAvLyBXZSBkb24ndCBoYXZlIHRoaXMgdGllcgorICAgIGlmIChPYmplY3Qua2V5cyhyZXN1
bHQpLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgY29udGludWU7CisKKyAgICBmb3IgKHZhciBqIGlu
IGZ1bnMpIHsKKyAgICAgICAgdmFyIG5hbWUgPSBmdW5zW2pdWzBdOworICAgICAgICBpZiAoIShu
YW1lIGluIHJlc3VsdCkpCisgICAgICAgICAgICBlcnJvcnMucHVzaChuYW1lICsgIiB3YXMgbm90
IGNvbXBpbGVkIHRvICIgKyB0aWVyKTsKKyAgICAgICAgZWxzZSBpZiAoIShuYW1lIGluIHZhbHVl
c0ZvcikpCisgICAgICAgICAgICB2YWx1ZXNGb3JbbmFtZV0gPSB7IHZhbHVlOiByZXN1bHRbbmFt
ZV0sIHRpZXJzOiBbdGllcl0gfTsKKyAgICAgICAgZWxzZSBpZiAocmVzdWx0W25hbWVdICE9PSB2
YWx1ZXNGb3JbbmFtZV0udmFsdWUpCisgICAgICAgICAgICBlcnJvcnMucHVzaChuYW1lICsgIiBo
YXMgZGlmZmVyZW50IHJlc3VsdHMgaW4gIiArIHRpZXIgKyAiICgiICsgcmVzdWx0W25hbWVdICsg
IikgYW5kICIgKyB2YWx1ZXNGb3JbbmFtZV0udGllcnMgKyAiICgiICsgdmFsdWVzRm9yW25hbWVd
LnZhbHVlICsgIikiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsdWVzRm9yW25hbWVd
LnRpZXJzLnB1c2godGllcik7CisgICAgfQorfQorCit2YXIgcmVmZXJlbmNlID0gZnVuc1swXVsw
XTsKK3ZhciByZXN1bHQgPSB2YWx1ZXNGb3JbcmVmZXJlbmNlXS52YWx1ZTsKKworZm9yICh2YXIg
aiBpbiBmdW5zKSB7CisgICAgdmFyIG5hbWUgPSBmdW5zW2pdWzBdOworICAgIGlmICh2YWx1ZXNG
b3JbbmFtZV0udmFsdWUgIT09IHJlc3VsdCkKKyAgICAgICAgZXJyb3JzLnB1c2gobmFtZSArICIg
KCIgKyB2YWx1ZXNGb3JbbmFtZV0udmFsdWUgKyAiKSBhbmQgIiArIHJlZmVyZW5jZSArICIgKCIg
KyByZXN1bHQgKyAiKSBoYXZlIGRpZmZlcmVudCByZXN1bHRzIik7Cit9CisKK2lmIChlcnJvcnMu
bGVuZ3RoID4gMCkKKyAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JzLmpvaW4oJ1xuJykpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXZhbHVhdGlv
bi1vcmRlci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV2YWx1
YXRpb24tb3JkZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE1NDY0N2RkNWZhYmEwYTc1YzUzMWRmNmUwYWNl
ODgwMzQwNjBjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcG93LWV2YWx1YXRpb24tb3JkZXIuanMKQEAgLTAsMCArMSw0MCBAQAorLy8gQ29w
eXJpZ2h0IChDKSAyMDE2IFJpY2sgV2FsZHJvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFRo
aXMgY29kZSBpcyBnb3Zlcm5lZCBieSB0aGUgQlNEIGxpY2Vuc2UgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZS4KKworZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sKKyAgICBp
ZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFs
dWU6ICcgKyBhY3R1YWwpOworfQorCit7CisgICAgbGV0IGNhcHR1cmUgPSBbXTsKKyAgICBsZXQg
bGVmdFZhbHVlID0geyB2YWx1ZU9mKCkgeyBjYXB0dXJlLnB1c2goImxlZnRWYWx1ZSIpOyByZXR1
cm4gMzsgfX07CisgICAgbGV0IHJpZ2h0VmFsdWUgPSB7IHZhbHVlT2YoKSB7IGNhcHR1cmUucHVz
aCgicmlnaHRWYWx1ZSIpOyByZXR1cm4gMjsgfX07CisKKyAgICAoY2FwdHVyZS5wdXNoKCJsZWZ0
IiksIGxlZnRWYWx1ZSkgKiogKyhjYXB0dXJlLnB1c2goInJpZ2h0IiksIHJpZ2h0VmFsdWUpOwor
Ly8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisvLyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQ2hhbmdlcyB0aGUgb3JkZXIKKworICAgIC8vIEV4cGVjdGVk
IHBlciBvcGVyYXRvciBldmFsdWF0aW9uIG9yZGVyOiAibGVmdCIsICJyaWdodCIsICJyaWdodFZh
bHVlIiwgImxlZnRWYWx1ZSIKKyAgICBzaG91bGRCZShjYXB0dXJlWzBdLCAibGVmdCIpOworICAg
IHNob3VsZEJlKGNhcHR1cmVbMV0sICJyaWdodCIpOworICAgIHNob3VsZEJlKGNhcHR1cmVbMl0s
ICJyaWdodFZhbHVlIik7CisgICAgc2hvdWxkQmUoY2FwdHVyZVszXSwgImxlZnRWYWx1ZSIpOwor
fQorCit7CisgICAgbGV0IGNhcHR1cmUgPSBbXTsKKyAgICBsZXQgbGVmdFZhbHVlID0geyB2YWx1
ZU9mKCkgeyBjYXB0dXJlLnB1c2goImxlZnRWYWx1ZSIpOyByZXR1cm4gMzsgfX07CisgICAgbGV0
IHJpZ2h0VmFsdWUgPSB7IHZhbHVlT2YoKSB7IGNhcHR1cmUucHVzaCgicmlnaHRWYWx1ZSIpOyBy
ZXR1cm4gMjsgfX07CisKKyAgICAoKyhjYXB0dXJlLnB1c2goImxlZnQiKSwgbGVmdFZhbHVlKSkg
KiogKGNhcHR1cmUucHVzaCgicmlnaHQiKSwgcmlnaHRWYWx1ZSk7CisvLyAgIF4KKy8vICAgQ2hh
bmdlcyB0aGUgb3JkZXIKKworICAgIC8vIEV4cGVjdGVkIHBlciBvcGVyYXRvciBldmFsdWF0aW9u
IG9yZGVyOiAibGVmdCIsICJyaWdodCIsICJyaWdodFZhbHVlIiwgImxlZnRWYWx1ZSIKKyAgICBz
aG91bGRCZShjYXB0dXJlWzBdLCAibGVmdCIpOworICAgIHNob3VsZEJlKGNhcHR1cmVbMV0sICJs
ZWZ0VmFsdWUiKTsKKyAgICBzaG91bGRCZShjYXB0dXJlWzJdLCAicmlnaHQiKTsKKyAgICBzaG91
bGRCZShjYXB0dXJlWzNdLCAicmlnaHRWYWx1ZSIpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lvbi1v
bi1saHMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1leHBlY3Rz
LXVwZGF0ZS1leHByZXNzaW9uLW9uLWxocy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZmQ1MjJhYWYyY2U4MzZm
ZGI4ZTYxNGZmMGM5NjA4MjJlMmIzM2VmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lvbi1vbi1s
aHMuanMKQEAgLTAsMCArMSw5NiBAQAorZnVuY3Rpb24gdGVzdFN5bnRheChzY3JpcHQpIHsKKyAg
ICB0cnkgeworICAgICAgICBldmFsKHNjcmlwdCk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAg
ICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOworICAgIH0KK30KKwor
ZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkgeworICAgIHZhciBlcnJv
ciA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICBpZiAoIWVycm9yKQorICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIHN5bnRheCBlcnJvciBub3QgdGhyb3duIik7CisK
KyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gbWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30KKworeworICAgIGxldCB0b2tl
bnMgPSBbCisgICAgICAgICctJywKKyAgICAgICAgJysnLAorICAgICAgICAnficsCisgICAgICAg
ICchJywKKyAgICAgICAgJ3R5cGVvZicsCisgICAgICAgICd2b2lkJywKKyAgICAgICAgJ2RlbGV0
ZScsCisgICAgXTsKKworICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAgICAgICB0
ZXN0U3ludGF4RXJyb3IoYAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuICR7dG9rZW59IGEgKiogYjsKKyAgICAgICAgfQorICAgICAgICBg
LCBgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyoqJy4gRXhwZWN0ZWQgYSB1cGRhdGUg
ZXhwcmVzc2lvbiBvbiB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgYW4gZXhwb25lbnRpYXRpb24gZXhw
cmVzc2lvbi5gKTsKKyAgICB9Cit9CisKK3sKKyAgICBsZXQgdG9rZW5zID0gWworICAgICAgICAn
LScsCisgICAgICAgICcrJywKKyAgICAgICAgJ34nLAorICAgICAgICAnIScsCisgICAgICAgICd0
eXBlb2YnLAorICAgICAgICAndm9pZCcsCisgICAgICAgICdkZWxldGUnLAorICAgIF07CisKKyAg
ICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsKKyAgICAgICAgdGVzdFN5bnRheChgCisgICAg
ICAgIGZ1bmN0aW9uIHBvdyhhLCBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gKCR7
dG9rZW59IGEpICoqIGI7CisgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgfQorfQorCit7Cisg
ICAgbGV0IHRva2VucyA9IFsKKyAgICAgICAgJysrJywKKyAgICAgICAgJy0tJywKKyAgICBdOwor
CisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAgIHRlc3RTeW50YXgoYAor
ICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
ICR7dG9rZW59IGEgKiogYjsKKyAgICAgICAgfQorICAgICAgICBgKTsKKyAgICB9Cit9CisKK3sK
KyAgICBsZXQgdG9rZW5zID0gWworICAgICAgICAnKysnLAorICAgICAgICAnLS0nLAorICAgIF07
CisKKyAgICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsKKyAgICAgICAgdGVzdFN5bnRheChg
CisgICAgICAgIGZ1bmN0aW9uIHBvdyhhLCBiKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gYSAke3Rva2VufSAqKiBiOworICAgICAgICB9CisgICAgICAgIGApOworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWludGVnZXIt
ZXhwb25lbnQtZmFzdHBhdGguanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3Bvdy1pbnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxZWUyN2NiNmEx
MjI1ODNiOWY2MWY4YzkzZDE3MzhiYTY3YjU4MDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1pbnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRo
LmpzCkBAIC0wLDAgKzEsNTYgQEAKK2Z1bmN0aW9uIHZhbHVlc0FyZUNsb3NlKGEsIGIpIHsKKyAg
ICByZXR1cm4gTWF0aC5hYnMoYSAvIGIpIC0gMSA8IDFlLTEwOworfQorCisvLyBTbWFsbCBleHBv
bmVudCB2YWx1ZXMgYXJlIGhhbmRsZWQgdGhyb3VnaCBhIHNpbXBsZXIgaW5saW5lIGxvb3AuIFRl
c3QgdGhhdCBpdCBpcyBub3Qgb2JzZXJ2YWJsZS4KK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3Vi
bGVUZXN0RXhwb25lbnRGaWZ0eSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeQorfQorbm9Jbmxp
bmUobWF0aFBvd0RvdWJsZURvdWJsZVRlc3RFeHBvbmVudEZpZnR5KTsKKworZnVuY3Rpb24gbWF0
aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5
Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50VGVzdEV4cG9uZW50RmlmdHkpOworZnVuY3Rp
b24gdGVzdEV4cG9uZW50RmlmdHkoeCwgeSwgZXhwZWN0ZWQpIHsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVE
b3VibGVUZXN0RXhwb25lbnRGaWZ0eSh4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9z
ZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dCwgKCIgKyB4ICsgIikgKiogKCIgKyB5ICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCB2
YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQ7CisgICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkg
fCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5KHgsIGludGVnZXJZKTsK
KyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgKCIgKyB4ICsgIikgKiogKCIgKyBpbnRlZ2Vy
WSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVj
dGVkOworICAgIH0KK30KK25vSW5saW5lKHRlc3RFeHBvbmVudEZpZnR5KTsKK3Rlc3RFeHBvbmVu
dEZpZnR5KDUzLjcwOTAxMTY0MTMzMTAyLCA1MC4wLCAzLjE3OTQ5NDExODEyMDE0NGUrODYpOwor
dGVzdEV4cG9uZW50RmlmdHkoNTMuNzA5MDExNjQxMzMxMDIsIC0xMC4wLCA1LjAwNjQzMjg0MjYy
MTE5MmUtMTgpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9uZW50VGVu
VGhvdXNhbmRzKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5Cit9Citub0lubGluZShtYXRoUG93
RG91YmxlRG91YmxlVGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKTsKKworZnVuY3Rpb24gbWF0aFBv
d0RvdWJsZUludFRlc3RFeHBvbmVudFRlblRob3VzYW5kcyh4LCB5KSB7CisgICAgcmV0dXJuIHgg
KiogeQorfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudFRlblRob3VzYW5k
cyk7CitmdW5jdGlvbiB0ZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwgeSwgZXhwZWN0ZWQpIHsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IG1hdGhQb3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwgeSk7Cisg
ICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZCkpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsICgiICsgeCArICIpICoqICgiICsgeSArICIpID0g
IiArIHJlc3VsdCArICIgZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkOworICAg
IH0KKyAgICB2YXIgaW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnRUZXN0RXhw
b25lbnRUZW5UaG91c2FuZHMoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNs
b3NlKHJlc3VsdCwgZXhwZWN0ZWQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0LCAoIiArIHggKyAiKSAqKiAoIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBl
eHBlY3RlZCB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQ7CisgICAgfQorfQorbm9JbmxpbmUo
dGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKTsKK3Rlc3RFeHBvbmVudFRlblRob3VzYW5kcygxLjAw
MSwgMTAwMDAuMCwgMjE5MTYuNjgxMzM5MDQ4MzczKTsKK3Rlc3RFeHBvbmVudFRlblRob3VzYW5k
cygxLjAwMSwgLTEuMCwgMC45OTkwMDA5OTkwMDA5OTkxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LW5hbi1iZWhhdmlvcnMuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZpb3JzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkxYzcwYzRmMjYwMzIzOGQyMGI5NGFhMGE0YTlhZTk1ZTk4Yjc2MjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZp
b3JzLmpzCkBAIC0wLDAgKzEsMjA5IEBACisvLyBJZiB5IGlzIE5hTiwgdGhlIHJlc3VsdCBpcyBO
YU4uCitmdW5jdGlvbiB0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMoKSB7Cisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQg
PSA1ICoqIE5hTjsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhy
b3cgIkVycm9yOiBiYWQgcmVzdWx0LCA1ICoqIE5hTiA9ICIgKyByZXN1bHQ7CisgICAgfQorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
aSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdCwgaSAqKiBOYU4gPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAi
ICsgaTsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnRT
dGF0aWMpOwordGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKCk7CisKK2Z1bmN0
aW9uIG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhw
b25lbnREeW5hbWljKTsKK2Z1bmN0aW9uIHRlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5
bmFtaWMoKSB7CisgICAgLy8gV2FybSB1cCB3aXRoIDIgaW50ZWdlcnMuCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW50
ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKDIsIDUpOworICAgICAgICBpZiAocmVzdWx0
ICE9PSAzMikKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0lu
dGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLCA1KSA9ICIgKyByZXN1bHQgKyAiLCBl
eHBlY3RlZCAzMi4iCisgICAgfQorCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25l
bnREeW5hbWljKGksIE5hTik7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4
cG9uZW50RHluYW1pYyhpLCBOYU4pID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGkgKyAi
LCBleHBlY3RlZCBOYU4iOworICAgIH0KK30KK25vSW5saW5lKHRlc3RJbnRlZ2VyQmFzZVdpdGhO
YU5FeHBvbmVudER5bmFtaWMpOwordGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1p
YygpOworCitmdW5jdGlvbiB0ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnRTdGF0
aWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSA1LjUgKiogTmFOOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIDUuNSAqKiBOYU4gPSAiICsgcmVzdWx0
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IChpICsgMC41KSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0
KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgKGkgKyAwLjUpICoqIE5h
TiA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIgKyBpOworICAgIH0KK30KK25vSW5saW5lKHRl
c3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYyk7Cit0ZXN0RmxvYXRpbmdQ
b2ludEJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMoKTsKKworZnVuY3Rpb24gbWF0aFBvd0Zsb2F0
aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyh4LCB5KSB7CisgICAgcmV0dXJuIHgg
KiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVu
dER5bmFtaWMpOworZnVuY3Rpb24gdGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50
RHluYW1pYygpIHsKKyAgICAvLyBXYXJtIHVwIHdpdGggMiBkb3VibGUuCisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93Rmxv
YXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKDIuNSwgNS4xKTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPT0gMTA3LjAyNzE3MDU0NTQzMTM1KQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnRE
eW5hbWljKDIuNSwgNS4xKSA9ICIgKyByZXN1bHQgKyAiLCBleHBlY3RlZCAxMDcuMDI3MTcwNTQ1
NDMxMzUuIgorICAgIH0KKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewor
ICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9u
ZW50RHluYW1pYyhpICsgMC41LCBOYU4pOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dGbG9hdGluZ1BvaW50
QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoaSArIDAuNSwgTmFOKSA9ICIgKyByZXN1bHQgKyAi
IHdpdGggaSA9ICIgKyBpICsgIiwgZXhwZWN0ZWQgTmFOIjsKKyAgICB9Cit9Citub0lubGluZSh0
ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKTsKK3Rlc3RGbG9hdGlu
Z1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoKTsKKworLy8gSWYgeSBpcyArMCwgdGhl
IHJlc3VsdCBpcyAxLCBldmVuIGlmIHggaXMgTmFOLgorLy8gSWYgeSBpcyDiiJIwLCB0aGUgcmVz
dWx0IGlzIDEsIGV2ZW4gaWYgeCBpcyBOYU4uCisvLyBJZiB4IGlzIE5hTiBhbmQgeSBpcyBub256
ZXJvLCB0aGUgcmVzdWx0IGlzIE5hTi4KK2Z1bmN0aW9uIHRlc3ROYU5CYXNlU3RhdGljKCkgewor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0
ID0gTmFOICoqIChpICsgMSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTmFOICoqIChpICsgMSkgPSAiICsgcmVzdWx0
ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBOYU4gKiogKGkgKyAxLjUpOworICAgICAg
ICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1
bHQsIE5hTiAqKiAoaSArIDEuNSkgPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBOYU4gKiogMDsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAgICAgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTmFOICoqIDAgPSAiICsgcmVzdWx0OworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IE5hTiAqKiAtMDsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgTmFOICoqIC0wID0gIiArIHJlc3VsdDsKKyAgICB9Cit9
Citub0lubGluZSh0ZXN0TmFOQmFzZVN0YXRpYyk7Cit0ZXN0TmFOQmFzZVN0YXRpYygpOworCitm
dW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMxKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5
OworfQorZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5hbWljMih4LCB5KSB7CisgICAgcmV0dXJu
IHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dOYU5CYXNlRHluYW1pYzMoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWM0KHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd05hTkJhc2VEeW5hbWlj
MSk7Citub0lubGluZShtYXRoUG93TmFOQmFzZUR5bmFtaWMyKTsKK25vSW5saW5lKG1hdGhQb3dO
YU5CYXNlRHluYW1pYzMpOworbm9JbmxpbmUobWF0aFBvd05hTkJhc2VEeW5hbWljNCk7CitmdW5j
dGlvbiB0ZXN0TmFOQmFzZUR5bmFtaWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93TmFOQmFzZUR5bmFtaWMxKE5h
TiwgaSArIDEpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5CYXNlRHluYW1pYzEoTmFOLCBpICsgMSkg
PSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93TmFOQmFz
ZUR5bmFtaWMyKE5hTiwgaSArIDEuNSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd05hTkJhc2VEeW5hbWlj
MihOYU4sIGkgKyAxLjUpID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CisgICAgfQor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0
ID0gbWF0aFBvd05hTkJhc2VEeW5hbWljMyhOYU4sIDApOworICAgICAgICBpZiAocmVzdWx0ICE9
PSAxKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFz
ZUR5bmFtaWMzKE5hTiwgMCkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dOYU5CYXNl
RHluYW1pYzQoTmFOLCAtMCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5CYXNlRHluYW1pYzQoTmFOLCAt
MCkgPSAiICsgcmVzdWx0OworICAgIH0KK30KK25vSW5saW5lKHRlc3ROYU5CYXNlRHluYW1pYyk7
Cit0ZXN0TmFOQmFzZUR5bmFtaWMoKTsKKworLy8gSWYgYWJzKHgpIGlzIDEgYW5kIHkgaXMgK+KI
niwgdGhlIHJlc3VsdCBpcyBOYU4uCisvLyBJZiBhYnMoeCkgaXMgMSBhbmQgeSBpcyDiiJLiiJ4s
IHRoZSByZXN1bHQgaXMgTmFOLgorZnVuY3Rpb24gaW5maW5pdGVFeHBvbmVudHNTdGF0aWMoKSB7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSAxICoqIE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgaWYgKCFpc05hTihy
ZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAxICoqIE51bWJl
ci5QT1NJVElWRV9JTkZJTklUWSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gKC0xKSAqKiBOdW1i
ZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgLTEgKiogTnVtYmVyLlBPU0lUSVZFX0lO
RklOSVRZID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSAxICoqIE51bWJlci5ORUdBVElWRV9JTkZJ
TklUWTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBiYWQgcmVzdWx0LCAxICoqIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSA9ICIgKyByZXN1
bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gKC0xKSAqKiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgICAg
IGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dCwgLTEgKiogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID0gIiArIHJlc3VsdDsKKyAgICB9Cit9
Citub0lubGluZShpbmZpbml0ZUV4cG9uZW50c1N0YXRpYyk7CitpbmZpbml0ZUV4cG9uZW50c1N0
YXRpYygpOworCitmdW5jdGlvbiBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMSh4LCB5
KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dJbmZpbml0ZUV4cG9u
ZW50c0R5bmFtaWMyKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorZnVuY3Rpb24gbWF0
aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7
Cit9CitmdW5jdGlvbiBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljNCh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5
bmFtaWMxKTsKK25vSW5saW5lKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMyKTsKK25v
SW5saW5lKG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKTsKK25vSW5saW5lKG1hdGhQ
b3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KTsKK2Z1bmN0aW9uIGluZmluaXRlRXhwb25lbnRz
RHluYW1pYygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMxKDEsIE51bWJl
ci5QT1NJVElWRV9JTkZJTklUWSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRz
RHluYW1pYzEoMSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKSA9ICIgKyByZXN1bHQ7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzIoLTEsIE51bWJlci5QT1NJVElW
RV9JTkZJTklUWSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzIo
LTEsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1h
dGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKDEsIE51bWJlci5ORUdBVElWRV9JTkZJTklU
WSk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMoMSwgTnVtYmVy
Lk5FR0FUSVZFX0lORklOSVRZKSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0luZmlu
aXRlRXhwb25lbnRzRHluYW1pYzQoLTEsIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSk7CisgICAg
ICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJl
c3VsdCwgbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQoLTEsIE51bWJlci5ORUdBVElW
RV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KK30KK25vSW5saW5lKGluZmluaXRlRXhw
b25lbnRzRHluYW1pYyk7CitpbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXNpbXBsZS5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXNpbXBsZS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
ZTVlOWNmODQ0NGRkNjAyMGI0ZTQ4ZmU1ODdhNTlhMGY5MzlkOWEzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctc2ltcGxlLmpzCkBAIC0w
LDAgKzEsMzkgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKK30KKworeworICAgIGxldCBpID0gMjsKKyAgICBsZXQgaiA9IDM7
CisgICAgc2hvdWxkQmUoMiAqKiAzLCA4KTsKKyAgICBzaG91bGRCZShpICoqIDMsIDgpOworICAg
IHNob3VsZEJlKDIgKiogaiwgOCk7CisgICAgc2hvdWxkQmUoaSAqKiBqLCA4KTsKK30KKworewor
ICAgIHNob3VsZEJlKDIgKiogMyAqKiAzLCAxMzQyMTc3MjgpOworICAgIHNob3VsZEJlKDIgKiog
MyArIDMsIDExKTsKKyAgICBzaG91bGRCZSgyICoqIDMgKyAzICoqIDMsIDM1KTsKKyAgICBzaG91
bGRCZSgyICoqIDMgKiAzLCAyNCk7CisgICAgc2hvdWxkQmUoMiAqKiAzICogMyAqKiAzLCAyMTYp
OworCisgICAgc2hvdWxkQmUoMiArIDMgKiogMywgMjkpOworICAgIHNob3VsZEJlKDIgKiAzICoq
IDMsIDU0KTsKK30KKworeworICAgIGxldCBpID0gMjsKKyAgICBpICoqPSA0OworICAgIHNob3Vs
ZEJlKGksIDE2KTsKKyAgICBpICoqPSAxICsgMTsKKyAgICBzaG91bGRCZShpLCAyNTYpOworfQor
Citmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgbGV0IGEgPSBNYXRoLnJhbmRv
bSgpOworICAgIGxldCBiID0gTWF0aC5yYW5kb20oKTsKKyAgICBzaG91bGRCZShhICoqIGIsIE1h
dGgucG93KGEsIGIpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcG93LXN0YWJsZS1yZXN1bHRzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wb3ctc3RhYmxlLXJlc3VsdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTgyOGZhOWFlNjRi
ZTFmNjlhNjA4OTc3MjQ3NWQwNTYwNTUwN2M3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXN0YWJsZS1yZXN1bHRzLmpzCkBAIC0wLDAg
KzEsODUgQEAKKy8vIFRoaXMgdGVzdCB2ZXJpZnkgdGhlIHJlc3VsdHMgb2YgYCoqYCBkbyBub3Qg
Y2hhbmdlIGFzIHdlIGNoYW5nZSBvcHRpbWl6YXRpb24gdGllci4KKworZnVuY3Rpb24gb3BhcXVl
UG93KGEsIGIpCit7CisgICAgcmV0dXJuIGEgKiogYjsKK30KK25vSW5saW5lKG9wYXF1ZVBvdyk7
CisKKworbGV0IGNhc2VTdHJpbmdzID0gWworICAgICIwIiwKKyAgICAiLTAuIiwKKyAgICAiMC41
IiwKKyAgICAiMSIsCisgICAgIjIiLAorICAgICItMC41IiwKKyAgICAiLTEiLAorICAgICI5OTki
LAorICAgICIxMDAwIiwKKyAgICAiMTAwMSIsCisgICAgIk5hTiIsCisgICAgIkluZmluaXR5IiwK
KyAgICAiLUluZmluaXR5IiwKKyAgICAiTWF0aC5QSSIsCisgICAgIk1hdGguTE4yIiwKKyAgICAi
TWF0aC5MTjEwIiwKKyAgICAiTWF0aC5FIiwKKyAgICAiTWF0aC5MT0cxMEUiLAorICAgICJNYXRo
LkxPRzJFIiwKKyAgICAiTWF0aC5TUVJUMiIKK107CitsZXQgY2FzZXMgPSBbXTsKK2ZvciAobGV0
IGNhc2VTdHJpbmcgb2YgY2FzZVN0cmluZ3MpIHsKKyAgICBjYXNlcy5wdXNoKGV2YWwoY2FzZVN0
cmluZykpOworfQorCitsZXQgZXhwZWN0ZWRSZXN1bHRzID0gW107CitsZXQgY29uc3RhbnRCYXNl
RnVuY3Rpb25zID0gW107CitsZXQgY29uc3RhbnRFeHBvbmVudEZ1bmN0aW9ucyA9IFtdOworZm9y
IChsZXQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsraSkgeworICAgIGxldCBiYXNlID0gY2Fz
ZXNbaV07CisKKyAgICBleHBlY3RlZFJlc3VsdHNbaV0gPSBbXTsKKyAgICBmb3IgKGxldCBqID0g
MDsgaiA8IGNhc2VzLmxlbmd0aDsgKytqKSB7CisgICAgICAgIGxldCBleHBvbmVudCA9IGNhc2Vz
W2pdOworICAgICAgICBleHBlY3RlZFJlc3VsdHNbaV1bal0gPSBiYXNlICoqIGV4cG9uZW50Owor
ICAgIH0KKworICAgIGV2YWwoImNvbnN0YW50QmFzZUZ1bmN0aW9uc1tpXSA9IGZ1bmN0aW9uIChl
eHBvbmVudCkgeyByZXR1cm4gKCIgKyBjYXNlU3RyaW5nc1tpXSArICIpICoqIGV4cG9uZW50OyB9
Iik7CisgICAgZXZhbCgiY29uc3RhbnRFeHBvbmVudEZ1bmN0aW9uc1tpXSA9IGZ1bmN0aW9uIChi
YXNlKSB7IHJldHVybiBiYXNlICoqICgiICsgY2FzZVN0cmluZ3NbaV0gKyAiKTsgfSIpOworfQor
CitmdW5jdGlvbiBpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVkKQoreworICAgIGlmIChleHBl
Y3RlZCA9PT0gZXhwZWN0ZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gZXhwZWN0ZWQpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZXhwZWN0ZWQgJiYgMSAvIGV4
cGVjdGVkID09PSAtSW5maW5pdHkgJiYgMSAvIHJlc3VsdCAhPT0gLUluZmluaXR5KQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gcmVzdWx0ICE9PSByZXN1bHQ7Cit9CisKK2ZvciAobGV0IHRpZXJVcExvb3BDb3VudGVy
ID0gMDsgdGllclVwTG9vcENvdW50ZXIgPCAxZTM7ICsrdGllclVwTG9vcENvdW50ZXIpIHsKKyAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IGNhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGxldCBi
YXNlID0gY2FzZXNbaV07CisgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2FzZXMubGVuZ3Ro
OyArK2opIHsKKyAgICAgICAgICAgIGxldCBleHBvbmVudCA9IGNhc2VzW2pdOworICAgICAgICAg
ICAgbGV0IGV4cGVjdGVkUmVzdWx0ID0gZXhwZWN0ZWRSZXN1bHRzW2ldW2pdOworICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IG9wYXF1ZVBvdyhiYXNlLCBleHBvbmVudCk7CisgICAgICAgICAgICBp
ZiAoIWlzSWRlbnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKQorICAgICAgICAgICAgICAg
IHRocm93IGBGYWlsZWQgb3BhcXVlUG93IHdpdGggYmFzZSA9ICR7YmFzZX0gZXhwb25lbnQgPSAk
e2V4cG9uZW50fSBleHBlY3RlZCAoJHtleHBlY3RlZFJlc3VsdH0pIGdvdCAoJHtyZXN1bHR9KWA7
CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbnN0YW50QmFzZUZ1bmN0aW9uc1tpXShleHBvbmVu
dCk7CisgICAgICAgICAgICBpZiAoIWlzSWRlbnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQp
KQorICAgICAgICAgICAgICAgIHRocm93IGBGYWlsZWQgY29uc3RhbnRCYXNlRnVuY3Rpb25zIHdp
dGggYmFzZSA9ICR7YmFzZX0gZXhwb25lbnQgPSAke2V4cG9uZW50fSBleHBlY3RlZCAoJHtleHBl
Y3RlZFJlc3VsdH0pIGdvdCAoJHtyZXN1bHR9KWA7CisKKyAgICAgICAgICAgIHJlc3VsdCA9IGNv
bnN0YW50RXhwb25lbnRGdW5jdGlvbnNbal0oYmFzZSk7CisgICAgICAgICAgICBpZiAoIWlzSWRl
bnRpY2FsKHJlc3VsdCwgZXhwZWN0ZWRSZXN1bHQpKQorICAgICAgICAgICAgICAgIHRocm93IGBG
YWlsZWQgY29uc3RhbnRFeHBvbmVudEZ1bmN0aW9ucyB3aXRoIGJhc2UgPSAke2Jhc2V9IGV4cG9u
ZW50ID0gJHtleHBvbmVudH0gZXhwZWN0ZWQgKCR7ZXhwZWN0ZWRSZXN1bHR9KSBnb3QgKCR7cmVz
dWx0fSlgOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctdG8tbnVtYmVyLXNob3VsZC1iZS1leGVjdXRlZC1pbi1j
b2RlLXNpZGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy10by1u
dW1iZXItc2hvdWxkLWJlLWV4ZWN1dGVkLWluLWNvZGUtc2lkZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzMx
MDdhNGU0OTY3OWIyYTU3MzA1ZGFlZjdkZTIyZDIxZWNjM2EwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctdG8tbnVtYmVyLXNob3VsZC1i
ZS1leGVjdXRlZC1pbi1jb2RlLXNpZGUuanMKQEAgLTAsMCArMSw3NyBAQAorZnVuY3Rpb24gc2hv
dWxkQmUoYWN0dWFsLCBleHBlY3RlZCkKK3sKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOworfQorCit7
CisgICAgbGV0IHZhbHVlID0geworICAgICAgICB2YWx1ZU9mKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICB9CisgICAgfTsKKyAgICBsZXQg
ZXJyb3IgPSBudWxsOworCisgICAgdHJ5IHsKKyAgICAgICAgMiAqKiB2YWx1ZTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgLy8gZ2xvYmFsLCBhbmQg
dmFsdWVPZi4KKyAgICBzaG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgiXG4iKS5sZW5ndGgsIDIp
OworfQorCit7CisgICAgbGV0IHZhbHVlID0geworICAgICAgICB2YWx1ZU9mKCkKKyAgICAgICAg
eworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICB9CisgICAgfTsK
KyAgICBsZXQgZXJyb3IgPSBudWxsOworCisgICAgdHJ5IHsKKyAgICAgICAgdmFsdWUgKiogMjsK
KyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgLy8gZ2xv
YmFsLCBhbmQgdmFsdWVPZi4KKyAgICBzaG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgiXG4iKS5s
ZW5ndGgsIDIpOworfQorCit7CisgICAgbGV0IHZhbHVlID0geworICAgICAgICB2YWx1ZU9mKCkK
KyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJORyIpOworICAgICAgICB9
CisgICAgfTsKKyAgICBsZXQgZXJyb3IgPSBudWxsOworCisgICAgdHJ5IHsKKyAgICAgICAgTWF0
aC5wb3codmFsdWUsIDIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOwor
ICAgIH0KKyAgICAvLyBnbG9iYWwsIE1hdGgucG93LCBhbmQgdmFsdWVPZi4KKyAgICBzaG91bGRC
ZShlcnJvci5zdGFjay5zcGxpdCgiXG4iKS5sZW5ndGgsIDMpOworfQorCit7CisgICAgbGV0IHZh
bHVlID0geworICAgICAgICB2YWx1ZU9mKCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJORyIpOworICAgICAgICB9CisgICAgfTsKKyAgICBsZXQgZXJyb3IgPSBudWxs
OworCisgICAgdHJ5IHsKKyAgICAgICAgTWF0aC5wb3coMiwgdmFsdWUpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKyAgICAvLyBnbG9iYWwsIE1hdGgucG93
LCBhbmQgdmFsdWVPZi4KKyAgICBzaG91bGRCZShlcnJvci5zdGFjay5zcGxpdCgiXG4iKS5sZW5n
dGgsIDMpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9wb3ctd2l0aC1jb25zdGFudHMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Bvdy13aXRoLWNvbnN0YW50cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWU2YWY3NDFkMTY5ODNhMWI5
YjllZjMyNTc3ZDJiZDRhZGUwM2YyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctd2l0aC1jb25zdGFudHMuanMKQEAgLTAsMCArMSwyODUg
QEAKK2Z1bmN0aW9uIGV4cG9uZW50SXNaZXJvKHgpIHsKKyAgICByZXR1cm4geCAqKiAwOworfQor
bm9JbmxpbmUoZXhwb25lbnRJc1plcm8pOworCitmdW5jdGlvbiB0ZXN0RXhwb25lbnRJc1plcm8o
KSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBleHBvbmVudElzWmVybyg1KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMSkKKyAg
ICAgICAgICAgIHRocm93ICJFcnJvcjogemVyb0V4cG9uZW50KDUpIHNob3VsZCBiZSAxLCB3YXMg
PSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNaZXJvKDUuNSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT09IDEpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHplcm9FeHBvbmVudCg1
LjUpIHNob3VsZCBiZSAxLCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVu
dElzWmVybygpOworCisKK2Z1bmN0aW9uIGV4cG9uZW50SXNPbmUoeCkgeworICAgIHJldHVybiB4
ICoqIDE7Cit9Citub0lubGluZShleHBvbmVudElzT25lKTsKKworZnVuY3Rpb24gdGVzdEV4cG9u
ZW50SXNPbmUoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzT25lKDUpOworICAgICAgICBpZiAocmVzdWx0ICE9
PSA1KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzT25lKDUpIHNob3VsZCBi
ZSA1LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNPbmUoNS41KTsKKyAg
ICAgICAgaWYgKHJlc3VsdCAhPT0gNS41KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBv
bmVudElzT25lKDUuNSkgc2hvdWxkIGJlIDUuNSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9
Cit0ZXN0RXhwb25lbnRJc09uZSgpOworCisKK2Z1bmN0aW9uIHBvd1VzZWRBc1NxcnQoeCkgewor
ICAgIHJldHVybiB4ICoqIDAuNTsKK30KK25vSW5saW5lKHBvd1VzZWRBc1NxcnQpOworCitmdW5j
dGlvbiB0ZXN0UG93VXNlZEFzU3FydCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsg
KytpKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KDQpOworICAgICAgICBp
ZiAocmVzdWx0ICE9PSBNYXRoLnNxcnQoNCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBv
d1VzZWRBc1NxcnQoNCkgc2hvdWxkIGJlIDIsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgICAgIHJl
c3VsdCA9IHBvd1VzZWRBc1NxcnQoNC40KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gTWF0aC5z
cXJ0KDQuNCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1VzZWRBc1NxcnQoNCkgc2hv
dWxkIGJlICIgKyBNYXRoLnNxcnQoNC40KSArICIsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgICAg
IGlmIChwb3dVc2VkQXNTcXJ0KEluZmluaXR5KSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0
aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxcnQoSW5maW5pdHkpIjsKKyAgICAgICAgaWYgKHBvd1Vz
ZWRBc1NxcnQoLUluZmluaXR5KSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFp
bGVkIHBvd1VzZWRBc1NxcnQoLUluZmluaXR5KSI7CisgICAgICAgIGxldCBuYW5SZXN1bHQgPSBw
b3dVc2VkQXNTcXJ0KE5hTikKKyAgICAgICAgaWYgKG5hblJlc3VsdCA9PT0gbmFuUmVzdWx0KQor
ICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KE5hTikiOworICAgICAgICBs
ZXQgemVyb1Jlc3VsdCA9IHBvd1VzZWRBc1NxcnQoMC4pCisgICAgICAgIGlmICh6ZXJvUmVzdWx0
IHx8ICgxIC8gemVyb1Jlc3VsdCkgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkZh
aWxlZCBwb3dVc2VkQXNTcXJ0KDAuKSI7CisgICAgICAgIGxldCBuZWdhdGl2ZVplcm9SZXN1bHQg
PSBwb3dVc2VkQXNTcXJ0KC0wKQorICAgICAgICBpZiAobmVnYXRpdmVaZXJvUmVzdWx0IHx8ICgx
IC8gbmVnYXRpdmVaZXJvUmVzdWx0KSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAi
RmFpbGVkIHBvd1VzZWRBc1NxcnQoLTApIjsKKyAgICB9Cit9Cit0ZXN0UG93VXNlZEFzU3FydCgp
OworCitmdW5jdGlvbiBwb3dVc2VkQXNPbmVPdmVyU3FydCh4KSB7CisgICAgcmV0dXJuIHggKiog
LTAuNTsKK30KK25vSW5saW5lKHBvd1VzZWRBc09uZU92ZXJTcXJ0KTsKKworZnVuY3Rpb24gdGVz
dFBvd1VzZWRBc09uZU92ZXJTcXJ0KCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyAr
K2kpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IHBvd1VzZWRBc09uZU92ZXJTcXJ0KDQpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSAwLjUpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1Vz
ZWRBc09uZU92ZXJTcXJ0KDQpIHNob3VsZCBiZSAwLjUsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAg
ICAgIHJlc3VsdCA9IHBvd1VzZWRBc09uZU92ZXJTcXJ0KDQuNCk7CisgICAgICAgIGlmIChyZXN1
bHQgIT09IDEvTWF0aC5zcXJ0KDQuNCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1Vz
ZWRBc09uZU92ZXJTcXJ0KDQpIHNob3VsZCBiZSAiICsgMS9NYXRoLnNxcnQoNC40KSArICIsIHdh
cyA9ICIgKyByZXN1bHQ7CisgICAgICAgIGlmIChwb3dVc2VkQXNPbmVPdmVyU3FydChJbmZpbml0
eSkgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc09uZU92ZXJTcXJ0
KEluZmluaXR5KSI7CisgICAgICAgIGlmIChwb3dVc2VkQXNPbmVPdmVyU3FydCgtSW5maW5pdHkp
ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNPbmVPdmVyU3FydCgt
SW5maW5pdHkpIjsKKyAgICAgICAgbGV0IG5hblJlc3VsdCA9IHBvd1VzZWRBc09uZU92ZXJTcXJ0
KE5hTikKKyAgICAgICAgaWYgKG5hblJlc3VsdCA9PT0gbmFuUmVzdWx0KQorICAgICAgICAgICAg
dGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNPbmVPdmVyU3FydChOYU4pIjsKKyAgICAgICAgaWYgKHBv
d1VzZWRBc09uZU92ZXJTcXJ0KDApICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJG
YWlsZWQgcG93VXNlZEFzT25lT3ZlclNxcnQoMCkiOworICAgICAgICBpZiAocG93VXNlZEFzT25l
T3ZlclNxcnQoLTAuKSAhPT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBv
d1VzZWRBc09uZU92ZXJTcXJ0KC0wLikiOworICAgIH0KK30KK3Rlc3RQb3dVc2VkQXNPbmVPdmVy
U3FydCgpOworCitmdW5jdGlvbiBwb3dVc2VkQXNTcXVhcmUoeCkgeworICAgIHJldHVybiB4ICoq
IDI7Cit9Citub0lubGluZShwb3dVc2VkQXNTcXVhcmUpOworCitmdW5jdGlvbiB0ZXN0UG93VXNl
ZEFzU3F1YXJlKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZSgyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAh
PT0gNCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNlZEFzU3F1YXJlKDQpIHNob3Vs
ZCBiZSAyLCB3YXMgPSAiICsgcmVzdWx0OworICAgICAgICByZXN1bHQgPSBwb3dVc2VkQXNTcXVh
cmUoNC40KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMTkuMzYwMDAwMDAwMDAwMDAzKQorICAg
ICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNTcXVhcmUoNCkgc2hvdWxkIGJlICIgKyAx
OS4zNjAwMDAwMDAwMDAwMDMgKyAiLCB3YXMgPSAiICsgcmVzdWx0OworICAgICAgICByZXN1bHQg
PSBwb3dVc2VkQXNTcXVhcmUoTWF0aC5QSSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDkuODY5
NjA0NDAxMDg5MzU4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNTcXVhcmUo
NCkgc2hvdWxkIGJlICIgKyA5Ljg2OTYwNDQwMTA4OTM1OCArICIsIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgICAgIGlmIChwb3dVc2VkQXNTcXVhcmUoSW5maW5pdHkpICE9PSBJbmZpbml0eSkKKyAg
ICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3F1YXJlKEluZmluaXR5KSI7CisgICAg
ICAgIGlmIChwb3dVc2VkQXNTcXVhcmUoLUluZmluaXR5KSAhPT0gSW5maW5pdHkpCisgICAgICAg
ICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZSgtSW5maW5pdHkpIjsKKyAgICAgICAg
bGV0IG5hblJlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZShOYU4pCisgICAgICAgIGlmIChuYW5SZXN1
bHQgPT09IG5hblJlc3VsdCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3F1
YXJlKE5hTikiOworICAgICAgICBsZXQgemVyb1Jlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZSgwLikK
KyAgICAgICAgaWYgKHplcm9SZXN1bHQgfHwgKDEgLyB6ZXJvUmVzdWx0KSAhPT0gSW5maW5pdHkp
CisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZSgwLikiOworICAgICAg
ICBsZXQgbmVnYXRpdmVaZXJvUmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKC0wKQorICAgICAgICBp
ZiAobmVnYXRpdmVaZXJvUmVzdWx0IHx8ICgxIC8gbmVnYXRpdmVaZXJvUmVzdWx0KSAhPT0gSW5m
aW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZSgtMCkiOwor
ICAgIH0KK30KK3Rlc3RQb3dVc2VkQXNTcXVhcmUoKTsKKworZnVuY3Rpb24gaW50SW50Q29uc3Rh
bnRzU21hbGxOdW1iZXJzKCkgeworICAgIHJldHVybiA0MiAqKiAzOworfQorZnVuY3Rpb24gaW50
SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKCkgeworICAgIC8vIFRoZSByZXN1bHQgZG9lcyBub3Qg
Zml0IGluIGEgaW50ZWdlci4KKyAgICByZXR1cm4gNDIgKiogNDI7Cit9CitmdW5jdGlvbiBpbnRJ
bnRTbWFsbENvbnN0YW50cygpIHsKKyAgICByZXR1cm4gNDIgKiogMzsKK30KK2Z1bmN0aW9uIGlu
dERvdWJsZUNvbnN0YW50cygpIHsKKyAgICByZXR1cm4gMTQgKiogNDIuNTsKK30KK2Z1bmN0aW9u
IGRvdWJsZURvdWJsZUNvbnN0YW50cygpIHsKKyAgICByZXR1cm4gMTMuNSAqKiA0Mi41OworfQor
ZnVuY3Rpb24gZG91YmxlSW50Q29uc3RhbnRzKCkgeworICAgIHJldHVybiAxMy41ICoqIDUyOwor
fQorbm9JbmxpbmUoaW50SW50Q29uc3RhbnRzU21hbGxOdW1iZXJzKTsKK25vSW5saW5lKGludElu
dENvbnN0YW50c0xhcmdlTnVtYmVycyk7Citub0lubGluZShpbnREb3VibGVDb25zdGFudHMpOwor
bm9JbmxpbmUoZG91YmxlRG91YmxlQ29uc3RhbnRzKTsKK25vSW5saW5lKGRvdWJsZUludENvbnN0
YW50cyk7CisKK2Z1bmN0aW9uIHRlc3RCYXNlQW5kRXhwb25lbnRDb25zdGFudExpdGVyYWxzKCkK
K3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJl
c3VsdCA9IGludEludENvbnN0YW50c1NtYWxsTnVtYmVycygpOworICAgICAgICBpZiAocmVzdWx0
ICE9PSA3NDA4OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogaW50SW50Q29uc3RhbnRzU21h
bGxOdW1iZXJzKCkgc2hvdWxkIGJlIDc0MDg4LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9
IGludEludENvbnN0YW50c0xhcmdlTnVtYmVycygpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAx
LjUwMTMwOTM3NTQ1Mjk2NTZlKzY4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBpbnRJbnRD
b25zdGFudHNMYXJnZU51bWJlcnMoKSBzaG91bGQgYmUgMS41MDEzMDkzNzU0NTI5NjU2ZSs2OCwg
d2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
KytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBpbnREb3VibGVDb25zdGFudHMoKTsKKyAgICAg
ICAgaWYgKHJlc3VsdCAhPT0gNS4xMzM4MzAzODgyMDE1NzY1ZSs0OCkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogaW50RG91YmxlQ29uc3RhbnRzKCkgc2hvdWxkIGJlIDUuMTMzODMwMzg4MjAx
NTc2NWUrNDgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZG91YmxlRG91YmxlQ29uc3Rh
bnRzKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEuMDk0NDIyODcyOTY0NzgyOWUrNDgpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGRvdWJsZURvdWJsZUNvbnN0YW50cygpIHNob3VsZCBi
ZSAxLjA5NDQyMjg3Mjk2NDc4MjllKzQ4LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGRv
dWJsZUludENvbnN0YW50cygpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA1Ljk4OTAyMjczNTMx
MTE1OGUrNTgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGRvdWJsZUludENvbnN0YW50cygp
IHNob3VsZCBiZSA1Ljk4OTAyMjczNTMxMTE1OGUrNTgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAg
fQorfQordGVzdEJhc2VBbmRFeHBvbmVudENvbnN0YW50TGl0ZXJhbHMoKTsKKworCitmdW5jdGlv
biBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KHgpIHsKKyAgICByZXR1cm4geCAqKiA0MjsKK30K
K25vSW5saW5lKGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQpOworCitmdW5jdGlvbiB0ZXN0RXhw
b25lbnRJc0ludGVnZXJDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7
ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgy
KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNDM5ODA0NjUxMTEwNCkKKyAgICAgICAgICAgIHRo
cm93ICJFcnJvcjogZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgyKSBzaG91bGQgYmUgNDM5ODA0
NjUxMTEwNCwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbnRlZ2VyQ29u
c3RhbnQoNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDIuMjczNzM2NzU0NDMyMzIwN2UrMjkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoNSkg
c2hvdWxkIGJlIDIuMjczNzM2NzU0NDMyMzIwN2UrMjksIHdhcyA9ICIgKyByZXN1bHQ7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBleHBvbmVudElzSW50ZWdlckNvbnN0YW50KDIuMSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IDM0MTM1ODIzMDY3NDEyLjQyKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVu
dElzSW50ZWdlckNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIDM0MTM1ODIzMDY3NDEyLjQyLCB3YXMg
PSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElzSW50ZWdlckNvbnN0YW50KCk7
CisKKworZnVuY3Rpb24gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KHgpIHsKKyAgICByZXR1cm4g
eCAqKiA0Mi41OworfQorbm9JbmxpbmUoZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KTsKKworZnVu
Y3Rpb24gdGVzdEV4cG9uZW50SXNEb3VibGVDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0RvdWJs
ZUNvbnN0YW50KDIpOworICAgICAgICBpZiAocmVzdWx0ICE9PSA2MjE5Nzc3MDIzOTUwLjk1KQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoMikgc2hv
dWxkIGJlIDYyMTk3NzcwMjM5NTAuOTUsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBv
bmVudElzRG91YmxlQ29uc3RhbnQoNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUuMDg0MjI5
OTQ1ODUwNDE1ZSsyOSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJs
ZUNvbnN0YW50KDUpIHNob3VsZCBiZSA1LjA4NDIyOTk0NTg1MDQxNWUrMjksIHdhcyA9ICIgKyBy
ZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoMi4xKTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPT0gNDk0Njc1MDcyNjExMTMuODA1KQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBleHBvbmVudElzRG91YmxlQ29uc3RhbnQoMi4xKSBzaG91bGQgYmUgNDk0Njc1MDcyNjEx
MTMuODA1LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElzRG91Ymxl
Q29uc3RhbnQoKTsKKworCitmdW5jdGlvbiBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCh4KSB7
CisgICAgcmV0dXJuIHggKiogSW5maW5pdHk7Cit9Citub0lubGluZShleHBvbmVudElzSW5maW5p
dHlDb25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzSW5maW5pdHlDb25zdGFudCgp
IHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoMik7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzSW5maW5p
dHlDb25zdGFudCgyKSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIgKyByZXN1bHQ7CisgICAg
fQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1
bHQgPSBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCg1KTsKKyAgICAgICAgaWYgKHJlc3VsdCAh
PT0gSW5maW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbmZpbml0
eUNvbnN0YW50KDUpIHNob3VsZCBiZSBJbmZpbml0eSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDIuMSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzSW5maW5p
dHlDb25zdGFudCgyLjEpIHNob3VsZCBiZSBJbmZpbml0eSwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9Cit9Cit0ZXN0RXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoKTsKKworCitmdW5jdGlvbiBl
eHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KHgpIHsKKyAgICByZXR1cm4geCAqKiAt
SW5maW5pdHk7Cit9Citub0lubGluZShleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50
KTsKKworZnVuY3Rpb24gdGVzdEV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoKSB7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQoMik7CisgICAgICAgIGlmIChy
ZXN1bHQgIT09IDApCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNOZWdhdGl2
ZUluZmluaXR5Q29uc3RhbnQoMikgc2hvdWxkIGJlIHplcm8sIHdhcyA9ICIgKyByZXN1bHQ7Cisg
ICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDUpOworICAgICAgICBp
ZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzTmVn
YXRpdmVJbmZpbml0eUNvbnN0YW50KDUpIHNob3VsZCBiZSB6ZXJvLCB3YXMgPSAiICsgcmVzdWx0
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgyLjEpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVu
dElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIHplcm8sIHdhcyA9ICIg
KyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3Rh
bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93
LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9wb3ctd2l0aC1uZXZlci1OYU4tZXhwb25lbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Q2Yjk5
MWFhMjAyYTQyNGNhZjI1ZDJhZjE5OWQ1OTkyZWFhMWMyZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9u
ZW50LmpzCkBAIC0wLDAgKzEsMjQgQEAKK2Z1bmN0aW9uIGV4cG9uZW50SXNOb25OYW5Eb3VibGUx
KHgsIGRvdWJsZUFycmF5SW5kZXgpIHsKKyAgICB2YXIgZG91YmxlQXJyYXkgPSBbNC40XTsKKyAg
ICByZXR1cm4geCAqKiBkb3VibGVBcnJheVtkb3VibGVBcnJheUluZGV4XTsKK30KK25vSW5saW5l
KGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKTsKKworZnVuY3Rpb24gZXhwb25lbnRJc05vbk5hbkRv
dWJsZTIoeCwgZG91YmxlQXJyYXkpIHsKKyAgICByZXR1cm4geCAqKiBkb3VibGVBcnJheVswXTsK
K30KK25vSW5saW5lKGV4cG9uZW50SXNOb25OYW5Eb3VibGUyKTsKKworZnVuY3Rpb24gdGVzdEV4
cG9uZW50SXNEb3VibGVDb25zdGFudCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKDIs
IDApOworICAgICAgICBpZiAocmVzdWx0ICE9PSAyMS4xMTIxMjY1NzIzNjYzMTQpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNOb25OYW5Eb3VibGUxKDIsIDApIHNob3VsZCBi
ZSAyMS4xMTIxMjY1NzIzNjYzMTQsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25l
bnRJc05vbk5hbkRvdWJsZTIoMywgWy0xLjVdKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMC4x
OTI0NTAwODk3Mjk4NzUyNikKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc05v
bk5hbkRvdWJsZTIoMywgWy0xLjVdKSBzaG91bGQgYmUgMC4xOTI0NTAwODk3Mjk4NzUyNiwgd2Fz
ID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvdGVzdDI2Mi55YW1sIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3Rlc3QyNjIueWFtbAppbmRleCAwYzg0NWIzNWM1
NDI1OGFmMjVkOGIxYTQ4ZmU0ZTJiMWE3YWNhZjUyLi44NDVkNTRkMGE5MTMzODM4MjliOGM1MGM4
MWRiMDA1NDJmNTJlNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
dGVzdDI2Mi55YW1sCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy90ZXN0MjYyLnlh
bWwKQEAgLTYwODIyLDExMyArNjA4MjIsMTEzIEBACiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5n
dWFnZS9leHByZXNzaW9ucy9lcXVhbHMvc3ltYm9sLXN0cmljdC1lcXVhbGl0eS1jb21wYXJpc29u
LmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMS5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpu
b3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTEuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEwLmpzCiAgIGNtZDog
cnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10
aGUtZXhwLW9wZXJhdG9yX0ExMC5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEx
LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQor
ICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBw
YXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBw
bHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTEuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3Bl
cmF0b3JfQTEyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRp
YXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTIuanMKLSAgY21kOiBydW5UZXN0MjYy
IDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3Qy
NjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRo
ZS1leHAtb3BlcmF0b3JfQTEzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMv
ZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTMuanMKLSAgY21kOiBy
dW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0g
cGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2Fw
cGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE0LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhw
cmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTQuanMK
LSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0
XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0
cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50
aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE1LmpzCi0gIGNtZDogcnVuVGVzdDI2
MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRv
cl9BMTUuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE2LmpzCi0gIGNtZDog
cnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRl
c3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4
cC1vcGVyYXRvcl9BMTYuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24i
LCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE3Lmpz
Ci0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBj
bWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRo
OiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlp
bmctdGhlLWV4cC1vcGVyYXRvcl9BMTcuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTE4LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRp
b24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTguanMKLSAgY21kOiBydW5UZXN0MjYyIDpm
YWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIg
Om5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1l
eHAtb3BlcmF0b3JfQTE5LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhw
b25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTkuanMKLSAgY21kOiBydW5U
ZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1
blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5
aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyLmpzCi0gIGNt
ZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3Rd
CiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlv
bi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZh
aWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdl
L2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIw
LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0
cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
WzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBv
bmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMS5qcwotICBjbWQ6IHJ1blRl
c3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYy
IDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3Bl
cmF0b3JfQTIxLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMi5qcwotICBj
bWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRo
ZS1leHAtb3BlcmF0b3JfQTIyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0
aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFn
ZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0Ey
My5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0g
cGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2Fw
cGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTIzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3Jt
YWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9w
ZXJhdG9yX0EzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRp
YXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIg
OmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2
MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0
MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhl
LWV4cC1vcGVyYXRvcl9BNC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTQuanMKLSAgY21kOiBydW5U
ZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1
blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5
aW5nLXRoZS1leHAtb3BlcmF0b3JfQTUuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNz
aW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E1LmpzCi0gIGNt
ZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3Rd
CiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlv
bi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E2LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFp
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNi5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6
c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25l
bnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNy5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpu
b3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTcuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTguanMKLSAgY21kOiBy
dW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIv
dGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhw
LW9wZXJhdG9yX0E4LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E5LmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmct
dGhlLWV4cC1vcGVyYXRvcl9BOS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMK
LSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNt
ZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtYXNz
aWdubWVudC1vcGVyYXRvci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uv
ZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLWV2YWx1YXRpb24tb3JkZXIu
anMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisg
IGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hh
cm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAt
b3BlcmF0b3ItZXZhbHVhdGlvbi1vcmRlci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVu
Y2UtdW5hcnktZXhwcmVzc2lvbi1zZW1hbnRpY3MuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3ItcHJlY2VkZW5jZS11bmFyeS1l
eHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVuY2UtdXBk
YXRlLWV4cHJlc3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhj
ZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9o
YXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVuY2UtdXBkYXRlLWV4cHJl
c3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3Itc3ludGF4LWVycm9yLWJpdG5v
dC11bmFyeS1leHByZXNzaW9uLWJhc2UuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJT
eW50YXhFcnJvciIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1zeW50YXgtZXJyb3ItYml0bm90
LXVuYXJ5LWV4cHJlc3Npb24tYmFzZS5qcwpAQCAtNjA5NTgsOSArNjA5NTgsOSBAQAogLSBwYXRo
OiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9w
ZXJhdG9yLXN5bnRheC1lcnJvci12b2lkLXVuYXJ5LWV4cHJlc3Npb24tYmFzZS5qcwogICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIlN5bnRheEVycm9yIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0g
cGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4
cC1vcGVyYXRvci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50
aWF0aW9uL2V4cC1vcGVyYXRvci5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZnVuY3Rpb24vUzEwLjEuMV9BMV9UMi5qcwogICBjbWQ6IHJ1blRlc3Qy
NjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZnVuY3Rpb24vUzEwLjEuMV9BMV9UMi5qcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284122</attachid>
            <date>2016-07-20 10:26:16 -0700</date>
            <delta_ts>2016-07-20 12:30:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159969-20160721022518.patch</filename>
            <type>text/plain</type>
            <size>99012</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NGEyNmJhYThkZjM5YzNhZWE5ZmEzYWJjNGE2MWZkNDdiNDMwMGM3Li5mZTQwZmM3N2RlMmQyYWRk
YTgzMmE3NWJiMzkxZThkYmE1N2Q4MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMjggQEAKKzIwMTYtMDctMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKKyAgICAgICAgW0VTN10gSW50cm9kdWNlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW1wbGVtZW50cyB0aGUgZXhwb25lbnRpYXRpb24gZXhwcmVzc2lvbiwgZS5nLiBgeCAq
KiB5YC4KKyAgICAgICAgVGhlIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24gaXMgaW50cm9kdWNl
ZCBpbiBFQ01BMjYyIDIwMTYgYW5kIEVDTUEyNjIgMjAxNgorICAgICAgICBpcyBhbHJlYWR5IHJl
bGVhc2VkLiBTbyB0aGlzIGlzIG5vdCB0aGUgZHJhZnQgc3BlYy4KKworICAgICAgICBUaGUgZXhw
b25lbnRpYXRpb24gZXhwcmVzc2lvbiBoYXMgMiBpbnRlcmVzdGluZyBwb2ludHMuCisKKyAgICAg
ICAgMS4gUmlnaHQgYXNzb2NpYXRpdmUKKworICAgICAgICAgICAgVG8gZm9sbG93IHRoZSBNYXRo
IGV4cHJlc3Npb24sICoqIG9wZXJhdG9yIGlzIHJpZ2h0IGFzc29jaWF0aXZlLgorICAgICAgICAg
ICAgV2hlbiB3ZSBleGVjdXRlIGB4ICoqIHkgKiogemAsIHRoaXMgaXMgaGFuZGxlZCBhcyBgeCAq
KiAoeSAqKiB6KWAsIG5vdCBgKHggKiogeSkgKiogemAuCisgICAgICAgICAgICBUaGlzIHBhdGNo
IGludHJvZHVjZXMgdGhlIHJpZ2h0IGFzc29jaWF0aXZpdHkgdG8gdGhlIGJpbmFyeSBvcGVyYXRv
ciBhbmQgaGFuZGxlcyBpdAorICAgICAgICAgICAgaW4gdGhlIG9wZXJhdG9yIHByZWNlZGVuY2Ug
cGFyc2VyIGluIFBhcnNlci5jcHAuCisKKyAgICAgICAgMi4gTEhTIG9mIHRoZSBleHBvbmVudGlh
dGlvbiBleHByZXNzaW9uIGlzIFVwZGF0ZUV4cHJlc3Npb24KKworICAgICAgICAgICAgRXhwb25l
bnRpYXRpb25FeHByZXNzaW9uW1lpZWxkXToKKyAgICAgICAgICAgICAgICBVbmFyeUV4cHJlc3Np
b25bP1lpZWxkXQorICAgICAgICAgICAgICAgIFVwZGF0ZUV4cHJlc3Npb25bP1lpZWxkXSAqKiBF
eHBvbmVudGlhdGlvbkV4cHJlc3Npb25bP1lpZWxkXQorCisgICAgICAgICAgICBBcyB3ZSBjYW4g
c2VlLCB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIEV4cG9uZW50aWF0aW9uRXhwcmVzc2lvbiBp
cyBVcGRhdGVFeHByZXNzaW9uLCBub3QgVW5hcnlFeHByZXNzaW9uLgorICAgICAgICAgICAgSXQg
bWVhbnMgdGhhdCBgK3ggKiogeWAgYmVjb21lcyBhIHN5bnRheCBlcnJvci4gVGhpcyBpcyBpbnRl
bnRpb25hbC4gV2l0aG91dCBhIHNtYWxsIGZvbnQgaW4gYSBKUyBzY3JpcHQsCisgICAgICAgICAg
ICBgLXgqKnlgIGlzIGNvbmZ1c2luZyBiZXR3ZWVuIGAtKHggKiogeSlgIGFuZCBgKC14KSAqKiB5
YC4gU28gRUNNQTI2MiBpbnRlbnRpb25hbGx5IGF2b2lkcyBVbmFyeUV4cHJlc3Npb24gaGVyZS4K
KyAgICAgICAgICAgIElmIHdlIG5lZWQgdG8gdXNlIGEgbmVnYXRlZCB2YWx1ZSwgd2UgbmVlZCB0
byB3cml0ZSBwYXJlbnRoZXNlcyBleHBsaWNpdGx5IGUuZy4gYCgteCkgKiogeWAuCisgICAgICAg
ICAgICBJbiB0aGlzIHBhdGNoLCB3ZSBlbnN1cmUgdGhhdCB0aGUgbGVmdCBoYW5kIHNpZGUgaXMg
bm90IGFuIHVuYXJ5IGV4cHJlc3Npb24gYnkgY2hlY2tpbmcgYW4gb3BlcmF0b3IgaW4KKyAgICAg
ICAgICAgIHBhcnNlQmluYXJ5RXhwcmVzc2lvbi4gVGhpcyB3b3JrcyBzaW5jZSBgKipgIGhhcyB0
aGUgaGlnaGVzdCBvcGVyYXRvciBwcmVjZWRlbmNlIGluIHRoZSBiaW5hcnkgb3BlcmF0b3JzLgor
CisgICAgICAgIFdlIGludHJvZHVjZSBhIG5ldyBieXRlY29kZSwgb3BfcG93LiBUaGF0IHNpbXBs
eSB3b3JrcyBhcyBzaW1pbGFyIGFzIHRoZSBvdGhlciBiaW5hcnkgb3BlcmF0b3JzLgorICAgICAg
ICBBbmQgaXQgaXMgY29udmVydGVkIHRvIEFyaXRoUG93IGluIERGRyBhbmQgaGFuZGxlZCBpbiBE
RkcgYW5kIEZUTC4KKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2UgdGFrZSB0aGUgYXBwcm9hY2gg
anVzdCBpbnRyb2R1Y2luZyBhIG5ldyBieXRlY29kZSBpbnN0ZWFkIG9mIGNhbGxpbmcgTWF0aC5w
b3cuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSB3ZSB3b3VsZCBsaWtlIHRvIGV4ZWN1dGUgVG9O
dW1iZXIgaW4gdGhlIGNhbGxlciBzaWRlLCBub3QgaW4gdGhlIGNhbGxlZSAoTWF0aC5wb3cpIHNp
ZGUuCisgICAgICAgIEFuZCB3ZSBkb24ndCB3YW50IHRvIGNvbXBpbGUgKiogaW50byB0aGUgZm9s
bG93aW5nLgorCisgICAgICAgICAgICBsaHNOdW1iZXIgPSB0b19udW1iZXIgKGxocykKKyAgICAg
ICAgICAgIHJoc051bWJlciA9IHRvX251bWJlciAocmhzKQorICAgICAgICAgICAgY2FsbCBNYXRo
LnBvdyhsaHNOdW1iZXIsIHJoc051bWJlcikKKworICAgICAgICBXZSBlbnN1cmUgdGhhdCB0aGlz
IHBhdGNoIHBhc3NlcyBhbGwgdGhlIHRlc3QyNjIgdGVzdHMgcmVsYXRlZCB0byB0aGUgZXhwb25l
bnRpYXRpb24gZXhwcmVzc2lvbi4KKworICAgICAgICBUaGUgb25seSBzZW5zaXRpdmUgcGFydCB0
byB0aGUgcGVyZm9ybWFuY2UgaXMgdGhlIHBhcnNlciBjaGFuZ2VzLgorICAgICAgICBTbyB3ZSBt
ZWFzdXJlZCB0aGUgY29kZS1sb2FkIHBlcmZvcm1hbmNlIGFuZCBpdCBpcyBuZXV0cmFsIGluIG15
IHg2NCBMaW51eCBib3ggKGhhbmF5YW1hdGEpLgorCisgICAgICAgICAgICBDb2xsZWN0ZWQgMzAg
c2FtcGxlcyBwZXIgYmVuY2htYXJrL1ZNLCB3aXRoIDMwIFZNIGludm9jYXRpb25zIHBlciBiZW5j
aG1hcmsuIEVtaXR0ZWQgYSBjYWxsIHRvCisgICAgICAgICAgICBnYygpIGJldHdlZW4gc2FtcGxl
IG1lYXN1cmVtZW50cy4gVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRp
b24gZm9yIHdhcm0tdXAuIFVzZWQKKyAgICAgICAgICAgIHRoZSBqc2Mtc3BlY2lmaWMgcHJlY2lz
ZVRpbWUoKSBmdW5jdGlvbiB0byBnZXQgbWljcm9zZWNvbmQtbGV2ZWwgdGltaW5nLiBSZXBvcnRp
bmcgYmVuY2htYXJrCisgICAgICAgICAgICBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29uZmlk
ZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgorCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmFzZWxpbmUgICAgICAgICAgICAgICAgICBwYXRjaGVkCisKKyAgICAg
ICAgICAgIGNsb3N1cmUgICAgICAgICAgICAgIDAuNjA0OTkrLTAuMDAyNTAgICAgICAgICAgMC42
MDE4MCstMC4wMDI0NAorICAgICAgICAgICAganF1ZXJ5ICAgICAgICAgICAgICAgNy44OTE3NSst
MC4wMjQzMyAgICA/ICAgICA3LjkxMjg3Ky0wLjA0NzU5ICAgICAgID8KKworICAgICAgICAgICAg
PGdlb21ldHJpYz4gICAgICAgICAgMi4xODQ5OSstMC4wMDUyMyAgICAgICAgICAyLjE4MjA3Ky0w
LjAwNjg5ICAgICAgICAgbWlnaHQgYmUgMS4wMDEzeCBmYXN0ZXIKKworICAgICAgICAqIGJ5dGVj
b2RlL0J5dGVjb2RlTGlzdC5qc29uOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVm
Lmg6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQpOgorICAgICAg
ICAoSlNDOjpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSk6
CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6
OmVtaXRSZWFkTW9kaWZ5QXNzaWdubWVudCk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6
CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6
SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAg
ICAgICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
cG93KToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBwYXJzZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpvcGVyYXRv
clN0YWNrU2hvdWxkUmVkdWNlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6bWFrZVBvd05v
ZGUpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlTXVsdE5vZGUpOgorICAgICAgICAo
SlNDOjpBU1RCdWlsZGVyOjptYWtlRGl2Tm9kZSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6
Om1ha2VNb2ROb2RlKToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6bWFrZVN1Yk5vZGUpOgor
ICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjptYWtlQmluYXJ5Tm9kZSk6CisgICAgICAgIChKU0M6
OkFTVEJ1aWxkZXI6Om9wZXJhdG9yU3RhY2tIYXNIaWdoZXJQcmVjZWRlbmNlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYXJzZXIvTGV4ZXIuY3BwOgorICAgICAgICAoSlNDOjpMZXhlcjxUPjo6bGV4
KToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpQ
b3dOb2RlOjpQb3dOb2RlKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKiBw
YXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNl
QXNzaWdubWVudEV4cHJlc3Npb24pOgorICAgICAgICAoSlNDOjppc1VuYXJ5T3BFeGNsdWRpbmdV
cGRhdGVPcCk6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4
cHJlc3Npb24pOgorICAgICAgICAoSlNDOjppc1VuYXJ5T3ApOiBEZWxldGVkLgorICAgICAgICAq
IHBhcnNlci9QYXJzZXJUb2tlbnMuaDoKKyAgICAgICAgKEpTQzo6aXNVcGRhdGVPcCk6CisgICAg
ICAgIChKU0M6OmlzVW5hcnlPcCk6CisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoK
KyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6b3BlcmF0b3JTdGFja1BvcCk6CisgICAgICAg
ICogcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhf
REVDTCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiB0
ZXN0cy9zdHJlc3MvcG93LWJhc2ljcy5qczogQWRkZWQuCisgICAgICAgICh2YWx1ZXNBcmVDbG9z
ZSk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlMSk6CisgICAgICAgIChtYXRoUG93RG91
YmxlSW50MSk6CisgICAgICAgICh0ZXN0MSk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91Ymxl
Mik6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50Mik6CisgICAgICAgICh0ZXN0Mik6CisgICAg
ICAgIChtYXRoUG93RG91YmxlRG91YmxlMyk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50Myk6
CisgICAgICAgICh0ZXN0Myk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlNCk6CisgICAg
ICAgIChtYXRoUG93RG91YmxlSW50NCk6CisgICAgICAgICh0ZXN0NCk6CisgICAgICAgIChtYXRo
UG93RG91YmxlRG91YmxlNSk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50NSk6CisgICAgICAg
ICh0ZXN0NSk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlNik6CisgICAgICAgIChtYXRo
UG93RG91YmxlSW50Nik6CisgICAgICAgICh0ZXN0Nik6CisgICAgICAgIChtYXRoUG93RG91Ymxl
RG91YmxlNyk6CisgICAgICAgIChtYXRoUG93RG91YmxlSW50Nyk6CisgICAgICAgICh0ZXN0Nyk6
CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlOCk6CisgICAgICAgIChtYXRoUG93RG91Ymxl
SW50OCk6CisgICAgICAgICh0ZXN0OCk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlOSk6
CisgICAgICAgIChtYXRoUG93RG91YmxlSW50OSk6CisgICAgICAgICh0ZXN0OSk6CisgICAgICAg
IChtYXRoUG93RG91YmxlRG91YmxlMTApOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludDEwKToK
KyAgICAgICAgKHRlc3QxMCk6CisgICAgICAgIChtYXRoUG93RG91YmxlRG91YmxlMTEpOgorICAg
ICAgICAobWF0aFBvd0RvdWJsZUludDExKToKKyAgICAgICAgKHRlc3QxMSk6CisgICAgICAgICog
dGVzdHMvc3RyZXNzL3Bvdy1jb2hlcmVuY3kuanM6IEFkZGVkLgorICAgICAgICAocG93NDIpOgor
ICAgICAgICAoYnVpbGQ0MkFzRG91YmxlLm9wYXF1ZUFkZCk6CisgICAgICAgIChidWlsZDQyQXNE
b3VibGUpOgorICAgICAgICAocG93RG91YmxlNDIpOgorICAgICAgICAoY2xvYmJlcik6CisgICAg
ICAgIChwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nKToKKyAgICAgICAgKHBvd0RvdWJsZTQyTm9Db25z
dGFudEZvbGRpbmcpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctZXZhbHVhdGlvbi1vcmRl
ci5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRCZSk6CisgICAgICAgICh0aHJvdy5uZXcuRXJy
b3IpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lv
bi1vbi1saHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdFN5bnRheCk6CisgICAgICAgICh0ZXN0
U3ludGF4RXJyb3IpOgorICAgICAgICAodGhyb3cubmV3LkVycm9yKToKKyAgICAgICAgKGxldC50
b2tlbi5vZi50b2tlbnMudGVzdFN5bnRheC5wb3cpOgorICAgICAgICAodGVzdFN5bnRheC5wb3cp
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctaW50ZWdlci1leHBvbmVudC1mYXN0cGF0aC5q
czogQWRkZWQuCisgICAgICAgICh2YWx1ZXNBcmVDbG9zZSk6CisgICAgICAgIChtYXRoUG93RG91
YmxlRG91YmxlVGVzdEV4cG9uZW50RmlmdHkpOgorICAgICAgICAobWF0aFBvd0RvdWJsZUludFRl
c3RFeHBvbmVudEZpZnR5KToKKyAgICAgICAgKHRlc3RFeHBvbmVudEZpZnR5KToKKyAgICAgICAg
KG1hdGhQb3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMpOgorICAgICAgICAo
bWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk6CisgICAgICAgICh0ZXN0
RXhwb25lbnRUZW5UaG91c2FuZHMpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctbmFuLWJl
aGF2aW9ycy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25l
bnRTdGF0aWMpOgorICAgICAgICAobWF0aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHlu
YW1pYyk6CisgICAgICAgICh0ZXN0SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToK
KyAgICAgICAgKHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYyk6Cisg
ICAgICAgIChtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKToK
KyAgICAgICAgKHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMpOgor
ICAgICAgICAodGVzdE5hTkJhc2VTdGF0aWMpOgorICAgICAgICAobWF0aFBvd05hTkJhc2VEeW5h
bWljMSk6CisgICAgICAgIChtYXRoUG93TmFOQmFzZUR5bmFtaWMyKToKKyAgICAgICAgKG1hdGhQ
b3dOYU5CYXNlRHluYW1pYzMpOgorICAgICAgICAobWF0aFBvd05hTkJhc2VEeW5hbWljNCk6Cisg
ICAgICAgICh0ZXN0TmFOQmFzZUR5bmFtaWMpOgorICAgICAgICAoaW5maW5pdGVFeHBvbmVudHNT
dGF0aWMpOgorICAgICAgICAobWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzEpOgorICAg
ICAgICAobWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzIpOgorICAgICAgICAobWF0aFBv
d0luZmluaXRlRXhwb25lbnRzRHluYW1pYzMpOgorICAgICAgICAobWF0aFBvd0luZmluaXRlRXhw
b25lbnRzRHluYW1pYzQpOgorICAgICAgICAoaW5maW5pdGVFeHBvbmVudHNEeW5hbWljKToKKyAg
ICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXNpbXBsZS5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgICh0aHJvdy5uZXcuRXJyb3IpOgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9wb3ctc3RhYmxlLXJlc3VsdHMuanM6IEFkZGVkLgorICAgICAgICAob3BhcXVlUG93KToKKyAg
ICAgICAgKGlzSWRlbnRpY2FsKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvcG93LXRvLW51bWJl
ci1zaG91bGQtYmUtZXhlY3V0ZWQtaW4tY29kZS1zaWRlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNo
b3VsZEJlKToKKyAgICAgICAgKHRocm93Lm5ldy5FcnJvcik6CisgICAgICAgICogdGVzdHMvc3Ry
ZXNzL3Bvdy13aXRoLWNvbnN0YW50cy5qczogQWRkZWQuCisgICAgICAgIChleHBvbmVudElzWmVy
byk6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc1plcm8pOgorICAgICAgICAoZXhwb25lbnRJc09u
ZSk6CisgICAgICAgICh0ZXN0RXhwb25lbnRJc09uZSk6CisgICAgICAgIChwb3dVc2VkQXNTcXJ0
KToKKyAgICAgICAgKHRlc3RQb3dVc2VkQXNTcXJ0KToKKyAgICAgICAgKHBvd1VzZWRBc09uZU92
ZXJTcXJ0KToKKyAgICAgICAgKHRlc3RQb3dVc2VkQXNPbmVPdmVyU3FydCk6CisgICAgICAgIChw
b3dVc2VkQXNTcXVhcmUpOgorICAgICAgICAodGVzdFBvd1VzZWRBc1NxdWFyZSk6CisgICAgICAg
IChpbnRJbnRDb25zdGFudHNTbWFsbE51bWJlcnMpOgorICAgICAgICAoaW50SW50Q29uc3RhbnRz
TGFyZ2VOdW1iZXJzKToKKyAgICAgICAgKGludEludFNtYWxsQ29uc3RhbnRzKToKKyAgICAgICAg
KGludERvdWJsZUNvbnN0YW50cyk6CisgICAgICAgIChkb3VibGVEb3VibGVDb25zdGFudHMpOgor
ICAgICAgICAoZG91YmxlSW50Q29uc3RhbnRzKToKKyAgICAgICAgKHRlc3RCYXNlQW5kRXhwb25l
bnRDb25zdGFudExpdGVyYWxzKToKKyAgICAgICAgKGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQp
OgorICAgICAgICAodGVzdEV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQpOgorICAgICAgICAoZXhw
b25lbnRJc0RvdWJsZUNvbnN0YW50KToKKyAgICAgICAgKHRlc3RFeHBvbmVudElzRG91YmxlQ29u
c3RhbnQpOgorICAgICAgICAoZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQpOgorICAgICAgICAo
dGVzdEV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KToKKyAgICAgICAgKGV4cG9uZW50SXNOZWdh
dGl2ZUluZmluaXR5Q29uc3RhbnQpOgorICAgICAgICAodGVzdEV4cG9uZW50SXNOZWdhdGl2ZUlu
ZmluaXR5Q29uc3RhbnQpOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9wb3ctd2l0aC1uZXZlci1O
YU4tZXhwb25lbnQuanM6IEFkZGVkLgorICAgICAgICAoZXhwb25lbnRJc05vbk5hbkRvdWJsZTEp
OgorICAgICAgICAoZXhwb25lbnRJc05vbk5hbkRvdWJsZTIpOgorICAgICAgICAodGVzdEV4cG9u
ZW50SXNEb3VibGVDb25zdGFudCk6CisgICAgICAgICogdGVzdHMvdGVzdDI2Mi55YW1sOgorCiAy
MDE2LTA3LTIwICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAg
IENyYXNoT25PdmVyZmxvdyBpbiBKU0M6OllhcnI6OllhcnJQYXR0ZXJuQ29uc3RydWN0b3I6OnNl
dHVwQWx0ZXJuYXRpdmVPZmZzZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggNWRmOTlkOWU5Y2NlYmJjZDUxZGM0NzFhNTliMzMy
ODY1MDFhMDU0MS4uMTNlOTgyY2U3MjRiYzJiYzlkN2ExZDQ1NzJlOTQwMDVjNTcxZGFiNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29u
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpA
QCAtMzksNiArMzksNyBAQAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGl2IiwgImxlbmd0
aCIgOiA1IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9tb2QiLCAibGVuZ3RoIiA6IDQg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3N1YiIsICJsZW5ndGgiIDogNSB9LAorICAg
ICAgICAgICAgeyAibmFtZSIgOiAib3BfcG93IiwgImxlbmd0aCIgOiA0IH0sCiAgICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9sc2hpZnQiLCAibGVuZ3RoIiA6IDQgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX3JzaGlmdCIsICJsZW5ndGgiIDogNCB9LAogICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfdXJzaGlmdCIsICJsZW5ndGgiIDogNCB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCAzYTJiYjA1NzM4YTEyYjBjMDI0
MjdkNWRiOTgxZGE4NTc0ZjQ1OTdjLi41NzA4NDRjMzVkOTAyNWVlOTFhZDQ2OThiYWI5YmMxYTY3
ZmQ4MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVV
c2VEZWYuaApAQCAtMjA4LDYgKzIwOCw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9m
ZnNldCgKICAgICBjYXNlIG9wX2RpdjoKICAgICBjYXNlIG9wX21vZDoKICAgICBjYXNlIG9wX3N1
YjoKKyAgICBjYXNlIG9wX3BvdzoKICAgICBjYXNlIG9wX2xzaGlmdDoKICAgICBjYXNlIG9wX3Jz
aGlmdDoKICAgICBjYXNlIG9wX3Vyc2hpZnQ6CkBAIC00MzEsNiArNDMyLDcgQEAgdm9pZCBjb21w
dXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJh
c2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2RpdjoKICAgICBjYXNlIG9wX21vZDoKICAgICBj
YXNlIG9wX3N1YjoKKyAgICBjYXNlIG9wX3BvdzoKICAgICBjYXNlIG9wX2xzaGlmdDoKICAgICBj
YXNlIG9wX3JzaGlmdDoKICAgICBjYXNlIG9wX3Vyc2hpZnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDJkZjllYjViMDUwZDVhMzFlNjE1Mzhk
OGY5YTljNWFkNDVhYjUzZDEuLjNmN2QyZjA1Yjk5MDA1MzJiOTZhN2Q2YjJkNjFlZDJhM2U2OGQ4
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC0xMDI0LDYgKzEwMjQsMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAg
ICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJtb2QiKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2Ugb3BfcG93OiB7CisgICAg
ICAgICAgICBwcmludEJpbmFyeU9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicG93Iik7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N1YjogewogICAg
ICAgICAgICAgcHJpbnRCaW5hcnlPcChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInN1YiIpOwog
ICAgICAgICAgICAgKytpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBkMDdlYWNhMjRkMWZmZjQ0Y2Y3YWEyYTg0MDY0
OGJkMmRjMzUzN2UzLi41YzhmOTNmZTJhMmE0NGYwNTYyNjFhOTUzNmYzZGQ3NjQwODgxZWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdl
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCkBAIC0xOTkzLDYgKzE5OTMsOSBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBSZWdpc3Rl
cklEKiBlbWl0UmVhZE1vZGlmeUFzc2lnbm1lbnQoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbgogICAg
ICAgICBjYXNlIE9wTW9kRXE6CiAgICAgICAgICAgICBvcGNvZGVJRCA9IG9wX21vZDsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9wUG93RXE6CisgICAgICAgICAgICBvcGNvZGVJ
RCA9IG9wX3BvdzsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiBk
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CmluZGV4IDE4YjRjMzJkYTA5MmU1NzM5ZjM3ODk3MjVlZWNmMWI0NDQ0ZGM0NWEuLjAyNjFiYWI2
OWIwNTc1NTUxZGRlM2ZjNzg1N2U0ZTlmMTVlMmZjYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zODE5LDYgKzM4MTksMTMgQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFKG9wX21vZCk7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIG9wX3Bv
dzogeworICAgICAgICAgICAgTm9kZSogb3AxID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBvcDIgPSBnZXQo
VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQpKTsKKyAgICAg
ICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZCksIGFkZFRvR3JhcGgoQXJpdGhQb3csIG9wMSwgb3AyKSk7CisgICAgICAgICAgICBORVhUX09Q
Q09ERShvcF9wb3cpOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9kaXY6IHsKICAgICAg
ICAgICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9u
WzJdLnUub3BlcmFuZCkpOwogICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0KFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggYjAxYjA3MDU4NzIwZmIxYTNl
YmE0OWM0NmM3YmRlNDkzMzkxNTE3MS4uYmM1MTFjNTNhNDUwM2Y1MzcwZjVhNGYyYmVhNDk3Yzg5
MzYzNTY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVz
LmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwo
T3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2Fz
ZSBvcF9uZWdhdGU6CiAgICAgY2FzZSBvcF9tdWw6CiAgICAgY2FzZSBvcF9tb2Q6CisgICAgY2Fz
ZSBvcF9wb3c6CiAgICAgY2FzZSBvcF9kaXY6CiAgICAgY2FzZSBvcF9kZWJ1ZzoKICAgICBjYXNl
IG9wX3Byb2ZpbGVfdHlwZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCBmMjdkMzlh
NmVhOGQ5NDNiNGJlODYyY2RkMGNkYjdlYWVkNWExMzQ3Li44ZmQzZjU4ZWQ0MTZhNzc0YmIyNzY1
ZTRkNGQ1M2Q2OGJlOTE4MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0zMDAs
NiArMzAwLDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBE
RUZJTkVfT1Aob3BfbnN0cmljdGVxKQogICAgICAgICBERUZJTkVfT1Aob3BfZGVjKQogICAgICAg
ICBERUZJTkVfT1Aob3BfaW5jKQorICAgICAgICBERUZJTkVfT1Aob3BfcG93KQogICAgICAgICBE
RUZJTkVfT1Aob3BfcHJvZmlsZV90eXBlKQogICAgICAgICBERUZJTkVfT1Aob3BfcHJvZmlsZV9j
b250cm9sX2Zsb3cpCiAgICAgICAgIERFRklORV9PUChvcF9wdXNoX3dpdGhfc2NvcGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAppbmRleCA3MzExZGZhMTZiOWE0ZDhmOWMxNzVjZWRlZDczNzU5ZTJi
MmNiMTNjLi4wOTNkN2RhYmQzMDNmNTdjNGFkYmJlNTBhZDliMmU0MGY2ZmFkNjA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKQEAgLTU2Niw2ICs1NjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdm9pZCBlbWl0X29wX25zdHJpY3RlcShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfZGVjKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbmMoSW5z
dHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX3BvdyhJbnN0cnVjdGlvbiopOwogICAg
ICAgICB2b2lkIGVtaXRfb3BfcHJvZmlsZV90eXBlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZv
aWQgZW1pdF9vcF9wcm9maWxlX2NvbnRyb2xfZmxvdyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2
b2lkIGVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKEluc3RydWN0aW9uKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcAppbmRleCAzMDM4ZmY3NDliYjA3Njc1MWFm
YWNjZjhiM2RmZWZiNDZmMDZiMGRhLi40ODU1ZjFkMjIzMWZmMWE0NGU3YmZhYjU5ZDJhNWFiZDQy
NTYzNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAK
QEAgLTEwMzIsNyArMTAzMiwxMyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3Bfc3ViKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5PgogICAgIH0KIH0K
IAotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEVORDogT1BfQURELCBPUF9TVUIs
IE9QX01VTCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK3ZvaWQgSklUOjplbWl0
X29wX3BvdyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIEpJVFNsb3dQ
YXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhf
cG93KTsKKyAgICBzbG93UGF0aENhbGwuY2FsbCgpOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gRU5EOiBPUF9BREQsIE9QX1NVQiwgT1BfTVVMLCBPUF9QT1cgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
aW5kZXggMDE5OTMxNTQ1OGVhMTUyMzE4ODcxMWNiYTgyYTY4YzMzM2Y3YTYzYy4uM2UwZGJkODk4
NmI5ZGIxYWIwYTIzNWEzOTA4NGMxMGFlZjQ1NjUxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTMyMCw2ICsxMzIw
LDEyIEBAIF9sbGludF9vcF9tb2Q6CiAgICAgZGlzcGF0Y2goNCkKIAogCitfbGxpbnRfb3BfcG93
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsT3Bjb2RlU2xvd1BhdGgoX3Nsb3dfcGF0
aF9wb3cpCisgICAgZGlzcGF0Y2goNCkKKworCiBfbGxpbnRfb3BfdHlwZW9mOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKICAgICBjYWxsT3Bjb2RlU2xvd1BhdGgoX3Nsb3dfcGF0aF90eXBlb2YpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDlhYzkwNGFkZTM3
NDU4ZDY4MzFlM2I5NWU1NGI0NjA0NTZlYTZkNTQuLjE5ZTM2MmU3OTZkYjc1MDJlOTNiM2I0OTYx
ZmIwMjFmM2Q3MWQzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRl
ci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJCdWlsdGluTmFtZXMuaCIKICNpbmNs
dWRlICJCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWF0aENvbW1vbi5o
IgogI2luY2x1ZGUgIk5vZGVDb25zdHJ1Y3RvcnMuaCIKICNpbmNsdWRlICJTeW50YXhDaGVja2Vy
LmgiCiAjaW5jbHVkZSAiVmFyaWFibGVFbnZpcm9ubWVudC5oIgpAQCAtMTQzLDYgKzE0NCw3IEBA
IGNsYXNzIEFTVEJ1aWxkZXIgewogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtlRGVsZXRlTm9kZShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBzdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZW5kKTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFrZU5lZ2F0ZU5vZGUoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqKTsKICAgICBFeHByZXNzaW9uTm9kZSogbWFr
ZUJpdHdpc2VOb3ROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIEV4cHJlc3Npb25Ob2RlKik7
CisgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VQb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IEV4cHJlc3Npb25Ob2RlKiBsZWZ0LCBFeHByZXNzaW9uTm9kZSogcmlnaHQsIGJvb2wgcmlnaHRI
YXNBc3NpZ25tZW50cyk7CiAgICAgRXhwcmVzc2lvbk5vZGUqIG1ha2VNdWx0Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbGVmdCwgRXhwcmVzc2lvbk5vZGUqIHJp
Z2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogICAgIEV4cHJlc3Npb25Ob2RlKiBtYWtl
RGl2Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogbGVmdCwgRXhw
cmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpOwogICAgIEV4cHJl
c3Npb25Ob2RlKiBtYWtlTW9kTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9u
Tm9kZSogbGVmdCwgRXhwcmVzc2lvbk5vZGUqIHJpZ2h0LCBib29sIHJpZ2h0SGFzQXNzaWdubWVu
dHMpOwpAQCAtNzg0LDkgKzc4NiwxNCBAQCBjbGFzcyBBU1RCdWlsZGVyIHsKICAgICAgICAgb3Bl
cmF0b3JTdGFja0RlcHRoLS07CiAgICAgICAgIG1fYmluYXJ5T3BlcmF0b3JTdGFjay5yZW1vdmVM
YXN0KCk7CiAgICAgfQotICAgIGJvb2wgb3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVuY2Uo
aW50JiwgaW50IHByZWNlZGVuY2UpCisgICAgYm9vbCBvcGVyYXRvclN0YWNrU2hvdWxkUmVkdWNl
KGludCBwcmVjZWRlbmNlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHByZWNlZGVuY2UgPD0gbV9i
aW5hcnlPcGVyYXRvclN0YWNrLmxhc3QoKS5zZWNvbmQ7CisgICAgICAgIC8vIElmIHRoZSBjdXJy
ZW50IHByZWNlZGVuY2Ugb2YgdGhlIG9wZXJhdG9yIHN0YWNrIGlzIHRoZSBzYW1lIHRvIHRoZSBv
bmUgb2YgdGhlIGdpdmVuIG9wZXJhdG9yLAorICAgICAgICAvLyBpdCBkZXBlbmRzIG9uIHRoZSBh
c3NvY2lhdGl2ZSB3aGV0aGVyIHdlIHJlZHVjZSB0aGUgc3RhY2suCisgICAgICAgIC8vIElmIHRo
ZSBvcGVyYXRvciBpcyByaWdodCBhc3NvY2lhdGl2ZSwgd2Ugc2hvdWxkIG5vdCByZWR1Y2UgdGhl
IHN0YWNrIHJpZ2h0IG5vdy4KKyAgICAgICAgaWYgKHByZWNlZGVuY2UgPT0gbV9iaW5hcnlPcGVy
YXRvclN0YWNrLmxhc3QoKS5zZWNvbmQpCisgICAgICAgICAgICByZXR1cm4gIShtX2JpbmFyeU9w
ZXJhdG9yU3RhY2subGFzdCgpLmZpcnN0ICYgUmlnaHRBc3NvY2lhdGl2ZUJpbmFyeU9wVG9rZW5G
bGFnKTsKKyAgICAgICAgcmV0dXJuIHByZWNlZGVuY2UgPCBtX2JpbmFyeU9wZXJhdG9yU3RhY2su
bGFzdCgpLnNlY29uZDsKICAgICB9CiAgICAgY29uc3QgQmluYXJ5T3BlcmFuZCYgZ2V0RnJvbU9w
ZXJhbmRTdGFjayhpbnQgaSkgeyByZXR1cm4gbV9iaW5hcnlPcGVyYW5kU3RhY2tbbV9iaW5hcnlP
cGVyYW5kU3RhY2suc2l6ZSgpICsgaV07IH0KICAgICB2b2lkIHNocmlua09wZXJhbmRTdGFja0J5
KGludCYgb3BlcmFuZFN0YWNrRGVwdGgsIGludCBhbW91bnQpCkBAIC0xMDQ0LDggKzEwNTEsMjkg
QEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VCaXR3aXNlTm90Tm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLAogICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEp
IEJpdHdpc2VOb3ROb2RlKGxvY2F0aW9uLCBleHByKTsKIH0KIAorRXhwcmVzc2lvbk5vZGUqIEFT
VEJ1aWxkZXI6Om1ha2VQb3dOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4
cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFz
QXNzaWdubWVudHMpCit7CisgICAgYXV0byogc3RyaXBwZWRFeHByMSA9IGV4cHIxLT5zdHJpcFVu
YXJ5UGx1cygpOworICAgIGF1dG8qIHN0cmlwcGVkRXhwcjIgPSBleHByMi0+c3RyaXBVbmFyeVBs
dXMoKTsKKworICAgIGlmIChzdHJpcHBlZEV4cHIxLT5pc051bWJlcigpICYmIHN0cmlwcGVkRXhw
cjItPmlzTnVtYmVyKCkpIHsKKyAgICAgICAgY29uc3QgTnVtYmVyTm9kZSYgbnVtYmVyRXhwcjEg
PSBzdGF0aWNfY2FzdDxOdW1iZXJOb2RlJj4oKnN0cmlwcGVkRXhwcjEpOworICAgICAgICBjb25z
dCBOdW1iZXJOb2RlJiBudW1iZXJFeHByMiA9IHN0YXRpY19jYXN0PE51bWJlck5vZGUmPigqc3Ry
aXBwZWRFeHByMik7CisgICAgICAgIHJldHVybiBjcmVhdGVOdW1iZXJGcm9tQmluYXJ5T3BlcmF0
aW9uKGxvY2F0aW9uLCBvcGVyYXRpb25NYXRoUG93KG51bWJlckV4cHIxLnZhbHVlKCksIG51bWJl
ckV4cHIyLnZhbHVlKCkpLCBudW1iZXJFeHByMSwgbnVtYmVyRXhwcjIpOworICAgIH0KKworICAg
IGlmIChzdHJpcHBlZEV4cHIxLT5pc051bWJlcigpKQorICAgICAgICBleHByMSA9IHN0cmlwcGVk
RXhwcjE7CisgICAgaWYgKHN0cmlwcGVkRXhwcjItPmlzTnVtYmVyKCkpCisgICAgICAgIGV4cHIy
ID0gc3RyaXBwZWRFeHByMjsKKworICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFBvd05v
ZGUobG9jYXRpb24sIGV4cHIxLCBleHByMiwgcmlnaHRIYXNBc3NpZ25tZW50cyk7Cit9CisKIEV4
cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlTXVsdE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhw
cjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykKIHsKKyAgICAvLyBGSVhNRTogVW5hcnkgKyBj
aGFuZ2UgdGhlIGV2YWx1YXRpb24gb3JkZXIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1OTk2OAogICAgIGV4cHIxID0gZXhwcjEtPnN0cmlwVW5hcnlQ
bHVzKCk7CiAgICAgZXhwcjIgPSBleHByMi0+c3RyaXBVbmFyeVBsdXMoKTsKIApAQCAtMTA2Niw2
ICsxMDk0LDggQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VNdWx0Tm9kZShjb25z
dCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXMKIAogRXhwcmVzc2lvbk5vZGUqIEFT
VEJ1aWxkZXI6Om1ha2VEaXZOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4
cHJlc3Npb25Ob2RlKiBleHByMSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFz
QXNzaWdubWVudHMpCiB7CisgICAgLy8gRklYTUU6IFVuYXJ5ICsgY2hhbmdlIHRoZSBldmFsdWF0
aW9uIG9yZGVyLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTk5NjgKICAgICBleHByMSA9IGV4cHIxLT5zdHJpcFVuYXJ5UGx1cygpOwogICAgIGV4cHIy
ID0gZXhwcjItPnN0cmlwVW5hcnlQbHVzKCk7CiAKQEAgLTEwODIsNiArMTExMiw4IEBAIEV4cHJl
c3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlRGl2Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uLCBFeHByZXNzCiAKIEV4cHJlc3Npb25Ob2RlKiBBU1RCdWlsZGVyOjptYWtlTW9k
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogZXhw
cjEsIEV4cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKQogewor
ICAgIC8vIEZJWE1FOiBVbmFyeSArIGNoYW5nZSB0aGUgZXZhbHVhdGlvbiBvcmRlci4KKyAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5OTY4CiAgICAgZXhw
cjEgPSBleHByMS0+c3RyaXBVbmFyeVBsdXMoKTsKICAgICBleHByMiA9IGV4cHIyLT5zdHJpcFVu
YXJ5UGx1cygpOwogCkBAIC0xMTA2LDYgKzExMzgsOCBAQCBFeHByZXNzaW9uTm9kZSogQVNUQnVp
bGRlcjo6bWFrZUFkZE5vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVz
cwogCiBFeHByZXNzaW9uTm9kZSogQVNUQnVpbGRlcjo6bWFrZVN1Yk5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9k
ZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykKIHsKKyAgICAvLyBGSVhNRTogVW5h
cnkgKyBjaGFuZ2UgdGhlIGV2YWx1YXRpb24gb3JkZXIuCisgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTk2OAogICAgIGV4cHIxID0gZXhwcjEtPnN0cmlw
VW5hcnlQbHVzKCk7CiAgICAgZXhwcjIgPSBleHByMi0+c3RyaXBVbmFyeVBsdXMoKTsKIApAQCAt
MTI5NSw2ICsxMzI5LDkgQEAgRXhwcmVzc2lvbk5vZGUqIEFTVEJ1aWxkZXI6Om1ha2VCaW5hcnlO
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGludAogCiAgICAgY2FzZSBNT0Q6
CiAgICAgICAgIHJldHVybiBtYWtlTW9kTm9kZShsb2NhdGlvbiwgbGhzLmZpcnN0LCByaHMuZmly
c3QsIHJocy5zZWNvbmQuaGFzQXNzaWdubWVudCk7CisKKyAgICBjYXNlIFBPVzoKKyAgICAgICAg
cmV0dXJuIG1ha2VQb3dOb2RlKGxvY2F0aW9uLCBsaHMuZmlyc3QsIHJocy5maXJzdCwgcmhzLnNl
Y29uZC5oYXNBc3NpZ25tZW50KTsKICAgICB9CiAgICAgQ1JBU0goKTsKICAgICByZXR1cm4gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTGV4ZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKaW5kZXggNWM3OTY3MzdjYzQ5MmFh
NWMwMDNkMjBmZmU1ZWJhOWJkN2Q3ZGM5YS4uYjcyNmRkYTQ1MmU2OTIxM2YyZGU5NzE1YWJjMWEz
ZGRjYzdiYjY3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9MZXhlci5jcHAKQEAgLTE5
NTYsNiArMTk1NiwxNiBAQCBKU1Rva2VuVHlwZSBMZXhlcjxUPjo6bGV4KEpTVG9rZW4qIHRva2Vu
UmVjb3JkLCB1bnNpZ25lZCBsZXhlckZsYWdzLCBib29sIHN0cmljdAogICAgICAgICAgICAgdG9r
ZW4gPSBNVUxURVFVQUw7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBp
ZiAobV9jdXJyZW50ID09ICcqJykgeworICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAgICAgICAg
IGlmIChtX2N1cnJlbnQgPT0gJz0nKSB7CisgICAgICAgICAgICAgICAgc2hpZnQoKTsKKyAgICAg
ICAgICAgICAgICB0b2tlbiA9IFBPV0VRVUFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdG9rZW4gPSBQT1c7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQogICAgICAgICB0b2tlbiA9IFRJTUVTOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENoYXJhY3RlclNsYXNoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVDb25zdHJ1Y3RvcnMuaAppbmRleCA3ZjU0NmFiMGIwMTc3NWUwNGNlMjNjYzhmNThkODY4MjE0
ZWI1NDBhLi41ZDNmM2M5MjYxOTYzODU3NTU2OWI3OTdkYmRiNGY3OWMxMjZjNzY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtNDk3
LDYgKzQ5NywxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB7CiAgICAgfQogCisgICAgaW5saW5l
IFBvd05vZGU6OlBvd05vZGUoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVz
c2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9kZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3Np
Z25tZW50cykKKyAgICAgICAgOiBCaW5hcnlPcE5vZGUobG9jYXRpb24sIFJlc3VsdFR5cGU6Om51
bWJlclR5cGUoKSwgZXhwcjEsIGV4cHIyLCBvcF9wb3csIHJpZ2h0SGFzQXNzaWdubWVudHMpCisg
ICAgeworICAgIH0KKwogICAgIGlubGluZSBNdWx0Tm9kZTo6TXVsdE5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9k
ZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cykKICAgICAgICAgOiBCaW5hcnlPcE5v
ZGUobG9jYXRpb24sIFJlc3VsdFR5cGU6Om51bWJlclR5cGUoKSwgZXhwcjEsIGV4cHIyLCBvcF9t
dWwsIHJpZ2h0SGFzQXNzaWdubWVudHMpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCmluZGV4IDFkYzc0ZTJjNWIyYTE3MjNmM2Y0YzhiMTJjZjhhYjJkYTAwZmZjZjkuLjFl
MDg4Mjc5ZmM3MjRjYTkzYjJiNjMzZmYwNzljYzNhZTMwMTRmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVzLmgKQEAgLTY3LDYgKzY3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIE9wWE9yRXEsCiAgICAgICAgIE9wT3JFcSwKICAgICAgICAgT3BNb2RFcSwKKyAgICAgICAg
T3BQb3dFcSwKICAgICAgICAgT3BMU2hpZnQsCiAgICAgICAgIE9wUlNoaWZ0LAogICAgICAgICBP
cFVSU2hpZnQKQEAgLTEwMzksNiArMTA0MCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Ym9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHM7CiAgICAgfTsKIAorICAgIGNsYXNzIFBvd05vZGUg
OiBwdWJsaWMgQmluYXJ5T3BOb2RlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFBvd05vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvbk5vZGUqIGV4cHIxLCBFeHByZXNzaW9uTm9k
ZSogZXhwcjIsIGJvb2wgcmlnaHRIYXNBc3NpZ25tZW50cyk7CisgICAgfTsKKwogICAgIGNsYXNz
IE11bHROb2RlIDogcHVibGljIEJpbmFyeU9wTm9kZSB7CiAgICAgcHVibGljOgogICAgICAgICBN
dWx0Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSogZXhwcjEsIEV4
cHJlc3Npb25Ob2RlKiBleHByMiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCA0ZWVhZTE0ODAwNDY1MzZjZjIyOGUw
ZDc4Mjg2YzhmNTRmOTE5NmIyLi5kOWYxMDU4ODM2N2Q0ZWI3ODVkMDUzYjdjYWU5MjA0ZDc1NTkx
ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0zMTI2LDYg
KzMxMjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9u
IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1lbgogICAgICAgICBjYXNlIFhPUkVRVUFM
OiBvcCA9IE9wWE9yRXE7IGJyZWFrOwogICAgICAgICBjYXNlIE9SRVFVQUw6IG9wID0gT3BPckVx
OyBicmVhazsKICAgICAgICAgY2FzZSBNT0RFUVVBTDogb3AgPSBPcE1vZEVxOyBicmVhazsKKyAg
ICAgICAgY2FzZSBQT1dFUVVBTDogb3AgPSBPcFBvd0VxOyBicmVhazsKICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICB9CkBAIC0zMjE4LDkgKzMyMTksMTEg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VDb25kaXRpb25hbEUKICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVDb25k
aXRpb25hbEV4cHIobG9jYXRpb24sIGNvbmQsIGxocywgcmhzKTsKIH0KIAotQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBpc1VuYXJ5T3AoSlNUb2tlblR5cGUgdG9rZW4pCitBTFdBWVNfSU5MSU5F
IHN0YXRpYyBib29sIGlzVW5hcnlPcEV4Y2x1ZGluZ1VwZGF0ZU9wKEpTVG9rZW5UeXBlIHRva2Vu
KQogewotICAgIHJldHVybiB0b2tlbiAmIFVuYXJ5T3BUb2tlbkZsYWc7CisgICAgaWYgKGlzVXBk
YXRlT3AodG9rZW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzVW5hcnlP
cCh0b2tlbik7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CkBAIC0zMjQxLDEw
ICszMjQ0LDM1IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24g
UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgd2hpbGUgKHRydWUpIHsK
ICAgICAgICAgSlNUZXh0UG9zaXRpb24gZXhwclN0YXJ0ID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7
CiAgICAgICAgIGludCBpbml0aWFsQXNzaWdubWVudHMgPSBtX3BhcnNlclN0YXRlLmFzc2lnbm1l
bnRDb3VudDsKKyAgICAgICAgSlNUb2tlblR5cGUgbGVhZGluZ1Rva2VuVHlwZUZvclVuYXJ5RXhw
cmVzc2lvbiA9IG1fdG9rZW4ubV90eXBlOwogICAgICAgICBUcmVlRXhwcmVzc2lvbiBjdXJyZW50
ID0gcGFyc2VVbmFyeUV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGN1
cnJlbnQsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogICAgICAgICAKICAgICAgICAgY29u
dGV4dC5hcHBlbmRCaW5hcnlFeHByZXNzaW9uSW5mbyhvcGVyYW5kU3RhY2tEZXB0aCwgY3VycmVu
dCwgZXhwclN0YXJ0LCBsYXN0VG9rZW5FbmRQb3NpdGlvbigpLCBsYXN0VG9rZW5FbmRQb3NpdGlv
bigpLCBpbml0aWFsQXNzaWdubWVudHMgIT0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQp
OworCisgICAgICAgIC8vIDEyLjYgaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMt
ZXhwLW9wZXJhdG9yCisgICAgICAgIC8vIEV4cG9uZW50aWF0aW9uRXhwcmVzaW9uIGlzIGRlc2Ny
aWJlZCBhcyBmb2xsb3dzLgorICAgICAgICAvLworICAgICAgICAvLyAgICAgRXhwb25lbnRpYXRp
b25FeHByZXNzaW9uW1lpZWxkXToKKyAgICAgICAgLy8gICAgICAgICBVbmFyeUV4cHJlc3Npb25b
P1lpZWxkXQorICAgICAgICAvLyAgICAgICAgIFVwZGF0ZUV4cHJlc3Npb25bP1lpZWxkXSAqKiBF
eHBvbmVudGlhdGlvbkV4cHJlc3Npb25bP1lpZWxkXQorICAgICAgICAvLworICAgICAgICAvLyBB
cyB3ZSBjYW4gc2VlLCB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIEV4cG9uZW50aWF0aW9uRXhw
cmVzc2lvbiBpcyBVcGRhdGVFeHByZXNzaW9uLCBub3QgVW5hcnlFeHByZXNzaW9uLgorICAgICAg
ICAvLyBTbyBwbGFjaW5nIFVuYXJ5RXhwcmVzc2lvbiBub3QgaW5jbHVkZWQgaW4gVXBkYXRlRXhw
cmVzc2lvbiBoZXJlIGlzIGEgc3ludGF4IGVycm9yLgorICAgICAgICAvLyBUaGlzIGlzIGludGVu
dGlvbmFsLiBGb3IgZXhhbXBsZSwgaWYgVW5hcnlFeHByZXNzaW9uIGlzIGFsbG93ZWQsIHdlIGNh
biBoYXZlIHRoZSBjb2RlIGxpa2UgYC14Kip5YC4KKyAgICAgICAgLy8gQnV0IHRoaXMgaXMgY29u
ZnVzaW5nOiBgLSh4Kip5KWAgT1IgYCgteCkqKnlgLCB3aGljaCBpbnRlcnByZXRhdGlvbiBpcyBj
b3JyZWN0PworICAgICAgICAvLyBUbyBhdm9pZCB0aGlzIHByb2JsZW0sIEVDTUEyNjIgbWFrZXMg
dW5wYXJlbnRoZXNpemVkIGV4cG9uZW50aWF0aW9uIGV4cHJlc3Npb24gYXMgb3BlcmFuZCBvZiB1
bmFyeSBvcGVyYXRvcnMgYW4gZWFybHkgZXJyb3IuCisgICAgICAgIC8vIE1vcmUgcmF0aW9uYWxl
OiBodHRwczovL21haWwubW96aWxsYS5vcmcvcGlwZXJtYWlsL2VzLWRpc2N1c3MvMjAxNS1TZXB0
ZW1iZXIvMDQ0MjMyLmh0bWwKKyAgICAgICAgLy8KKyAgICAgICAgLy8gSGVyZSwgd2UgZ3VhcmFu
dGVlIHRoYXQgdGhlIGxlZnQgaGFuZCBzaWRlIG9mIHRoaXMgZXhwcmVzc2lvbiBpcyBub3QgdW5h
cnkgZXhwcmVzc2lvbiBieSBjaGVja2luZyB0aGUgbGVhZGluZyBvcGVyYXRvciBvZiB0aGUgcGFy
c2VVbmFyeUV4cHJlc3Npb24uCisgICAgICAgIC8vIFRoaXMgY2hlY2sganVzdCB3b3Jrcy4gTGV0
J3MgY29uc2lkZXIgdGhlIGV4YW1wbGUsCisgICAgICAgIC8vICAgICB5IDw+IC14ICoqIHoKKyAg
ICAgICAgLy8gICAgICAgICAgXgorICAgICAgICAvLyAgICAgICAgICBDaGVjayB0aGlzLgorICAg
ICAgICAvLyBJZiB0aGUgYmluYXJ5IG9wZXJhdG9yIDw+IGhhcyBoaWdoZXIgcHJlY2VkZW5jZSB0
aGFuIG9uZSBvZiAiKioiLCB0aGlzIGNoZWNrIGRvZXMgbm90IHdvcmsuCisgICAgICAgIC8vIEJ1
dCBpdCdzIE9LIGZvciAqKiBiZWNhdXNlIHRoZSBvcGVyYXRvciAiKioiIGhhcyB0aGUgaGlnaGVz
dCBvcGVyYXRvciBwcmVjZWRlbmNlIGluIHRoZSBiaW5hcnkgb3BlcmF0b3JzLgorICAgICAgICBm
YWlsSWZUcnVlKG1hdGNoKFBPVykgJiYgaXNVbmFyeU9wRXhjbHVkaW5nVXBkYXRlT3AobGVhZGlu
Z1Rva2VuVHlwZUZvclVuYXJ5RXhwcmVzc2lvbiksICJFeHBlY3RlZCBhIHVwZGF0ZSBleHByZXNz
aW9uIG9uIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiBhbiBleHBvbmVudGlhdGlvbiBleHByZXNzaW9u
Iik7CisKICAgICAgICAgaW50IHByZWNlZGVuY2UgPSBpc0JpbmFyeU9wZXJhdG9yKG1fdG9rZW4u
bV90eXBlKTsKICAgICAgICAgaWYgKCFwcmVjZWRlbmNlKQogICAgICAgICAgICAgYnJlYWs7CkBA
IC0zMjUzLDcgKzMyODEsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHBy
ZXNzaW9uIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4cHJlcwogICAgICAgICBpbnQg
b3BlcmF0b3JUb2tlbiA9IG1fdG9rZW4ubV90eXBlOwogICAgICAgICBuZXh0KFRyZWVCdWlsZGVy
OjpEb250QnVpbGRTdHJpbmdzKTsKICAgICAgICAgCi0gICAgICAgIHdoaWxlIChvcGVyYXRvclN0
YWNrRGVwdGggJiYgIGNvbnRleHQub3BlcmF0b3JTdGFja0hhc0hpZ2hlclByZWNlZGVuY2Uob3Bl
cmF0b3JTdGFja0RlcHRoLCBwcmVjZWRlbmNlKSkgeworICAgICAgICB3aGlsZSAob3BlcmF0b3JT
dGFja0RlcHRoICYmIGNvbnRleHQub3BlcmF0b3JTdGFja1Nob3VsZFJlZHVjZShwcmVjZWRlbmNl
KSkgewogICAgICAgICAgICAgQVNTRVJUKG9wZXJhbmRTdGFja0RlcHRoID4gMSk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpCaW5hcnlPcGVyYW5kIHJo
cyA9IGNvbnRleHQuZ2V0RnJvbU9wZXJhbmRTdGFjaygtMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXJUb2tlbnMuaAppbmRleCBhZmY0YTMwMTMzYzc1MWU2MWZhZjEyM2Vk
NTY4MGU5MGRhOTY0NzE3Li5lYjI2M2JiMmNmYjVkNzYzYWNlZjc5YzY5Y2QyOGY4MjNjMmE3ZTgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlclRva2Vucy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyVG9rZW5zLmgKQEAgLTQx
LDcgKzQxLDggQEAgZW51bSB7CiAgICAgQmluYXJ5T3BUb2tlbkFsbG93c0luUHJlY2VkZW5jZUFk
ZGl0aW9uYWxTaGlmdCA9IDQsCiAgICAgQmluYXJ5T3BUb2tlblByZWNlZGVuY2VNYXNrID0gMTUg
PDwgQmluYXJ5T3BUb2tlblByZWNlZGVuY2VTaGlmdCwKICAgICBFcnJvclRva2VuRmxhZyA9IDEg
PDwgKEJpbmFyeU9wVG9rZW5BbGxvd3NJblByZWNlZGVuY2VBZGRpdGlvbmFsU2hpZnQgKyBCaW5h
cnlPcFRva2VuUHJlY2VkZW5jZVNoaWZ0ICsgNyksCi0gICAgVW50ZXJtaW5hdGVkRXJyb3JUb2tl
bkZsYWcgPSBFcnJvclRva2VuRmxhZyA8PCAxCisgICAgVW50ZXJtaW5hdGVkRXJyb3JUb2tlbkZs
YWcgPSBFcnJvclRva2VuRmxhZyA8PCAxLAorICAgIFJpZ2h0QXNzb2NpYXRpdmVCaW5hcnlPcFRv
a2VuRmxhZyA9IFVudGVybWluYXRlZEVycm9yVG9rZW5GbGFnIDw8IDEKIH07CiAKICNkZWZpbmUg
QklOQVJZX09QX1BSRUNFREVOQ0UocHJlYykgKCgocHJlYykgPDwgQmluYXJ5T3BUb2tlblByZWNl
ZGVuY2VTaGlmdCkgfCAoKHByZWMpIDw8IChCaW5hcnlPcFRva2VuUHJlY2VkZW5jZVNoaWZ0ICsg
QmluYXJ5T3BUb2tlbkFsbG93c0luUHJlY2VkZW5jZUFkZGl0aW9uYWxTaGlmdCkpKQpAQCAtMTA5
LDYgKzExMCw3IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIFVSU0hJRlRFUVVBTCwKICAgICBB
TkRFUVVBTCwKICAgICBNT0RFUVVBTCwKKyAgICBQT1dFUVVBTCwKICAgICBYT1JFUVVBTCwKICAg
ICBPUkVRVUFMLAogICAgIERPVERPVERPVCwKQEAgLTExOCwxMCArMTIwLDEwIEBAIGVudW0gSlNU
b2tlblR5cGUgewogICAgIC8vIEJlZ2luIHRhZ2dlZCB0b2tlbnMKICAgICBQTFVTUExVUyA9IDAg
fCBVbmFyeU9wVG9rZW5GbGFnLAogICAgIE1JTlVTTUlOVVMgPSAxIHwgVW5hcnlPcFRva2VuRmxh
ZywKLSAgICBFWENMQU1BVElPTiA9IDIgfCBVbmFyeU9wVG9rZW5GbGFnLAotICAgIFRJTERFID0g
MyB8IFVuYXJ5T3BUb2tlbkZsYWcsCi0gICAgQVVUT1BMVVNQTFVTID0gNCB8IFVuYXJ5T3BUb2tl
bkZsYWcsCi0gICAgQVVUT01JTlVTTUlOVVMgPSA1IHwgVW5hcnlPcFRva2VuRmxhZywKKyAgICBB
VVRPUExVU1BMVVMgPSAyIHwgVW5hcnlPcFRva2VuRmxhZywKKyAgICBBVVRPTUlOVVNNSU5VUyA9
IDMgfCBVbmFyeU9wVG9rZW5GbGFnLAorICAgIEVYQ0xBTUFUSU9OID0gNCB8IFVuYXJ5T3BUb2tl
bkZsYWcsCisgICAgVElMREUgPSA1IHwgVW5hcnlPcFRva2VuRmxhZywKICAgICBUWVBFT0YgPSA2
IHwgVW5hcnlPcFRva2VuRmxhZyB8IEtleXdvcmRUb2tlbkZsYWcsCiAgICAgVk9JRFRPS0VOID0g
NyB8IFVuYXJ5T3BUb2tlbkZsYWcgfCBLZXl3b3JkVG9rZW5GbGFnLAogICAgIERFTEVURVRPS0VO
ID0gOCB8IFVuYXJ5T3BUb2tlbkZsYWcgfCBLZXl3b3JkVG9rZW5GbGFnLApAQCAtMTQ4LDYgKzE1
MCw3IEBAIGVudW0gSlNUb2tlblR5cGUgewogICAgIFRJTUVTID0gMjAgfCBCSU5BUllfT1BfUFJF
Q0VERU5DRSgxMCksCiAgICAgRElWSURFID0gMjEgfCBCSU5BUllfT1BfUFJFQ0VERU5DRSgxMCks
CiAgICAgTU9EID0gMjIgfCBCSU5BUllfT1BfUFJFQ0VERU5DRSgxMCksCisgICAgUE9XID0gMjMg
fCBCSU5BUllfT1BfUFJFQ0VERU5DRSgxMSkgfCBSaWdodEFzc29jaWF0aXZlQmluYXJ5T3BUb2tl
bkZsYWcsIC8vIE1ha2Ugc3VyZSB0aGF0IFBPVyBoYXMgdGhlIGhpZ2hlc3Qgb3BlcmF0b3IgcHJl
Y2VkZW5jZS4KICAgICBFUlJPUlRPSyA9IDAgfCBFcnJvclRva2VuRmxhZywKICAgICBVTlRFUk1J
TkFURURfSURFTlRJRklFUl9FU0NBUEVfRVJST1JUT0sgPSAwIHwgRXJyb3JUb2tlbkZsYWcgfCBV
bnRlcm1pbmF0ZWRFcnJvclRva2VuRmxhZywKICAgICBJTlZBTElEX0lERU5USUZJRVJfRVNDQVBF
X0VSUk9SVE9LID0gMSB8IEVycm9yVG9rZW5GbGFnLApAQCAtMjIyLDYgKzIyNSwxNiBAQCBzdHJ1
Y3QgSlNUb2tlbiB7CiAgICAgSlNUZXh0UG9zaXRpb24gbV9lbmRQb3NpdGlvbjsKIH07CiAKK0FM
V0FZU19JTkxJTkUgYm9vbCBpc1VwZGF0ZU9wKEpTVG9rZW5UeXBlIHRva2VuKQoreworICAgIHJl
dHVybiB0b2tlbiA+PSBQTFVTUExVUyAmJiB0b2tlbiA8PSBBVVRPTUlOVVNNSU5VUzsKK30KKwor
QUxXQVlTX0lOTElORSBib29sIGlzVW5hcnlPcChKU1Rva2VuVHlwZSB0b2tlbikKK3sKKyAgICBy
ZXR1cm4gdG9rZW4gJiBVbmFyeU9wVG9rZW5GbGFnOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIFBhcnNlclRva2Vuc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvU3ludGF4Q2hlY2tlci5oCmluZGV4IGJmMGQ4ZmZmNzJiM2JlNjJmZTIzZWUzYTEyZTQ3Zjli
OGM0OWUyNTAuLjAzNzgyY2U0YWVlOTUyZWQyNWRhOWIzMmVlYzJjZDBjN2QwMzk3OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCkBAIC0zMDEsNyAr
MzAxLDcgQEAgY2xhc3MgU3ludGF4Q2hlY2tlciB7CiAgICAgCiAgICAgLy8gTG9naWMgdG8gaGFu
ZGxlIGRhdGFzdHJ1Y3R1cmVzIHVzZWQgZHVyaW5nIHBhcnNpbmcgb2YgYmluYXJ5IGV4cHJlc3Np
b25zCiAgICAgdm9pZCBvcGVyYXRvclN0YWNrUG9wKGludCYgb3BlcmF0b3JTdGFja0RlcHRoKSB7
IG9wZXJhdG9yU3RhY2tEZXB0aC0tOyB9Ci0gICAgYm9vbCBvcGVyYXRvclN0YWNrSGFzSGlnaGVy
UHJlY2VkZW5jZShpbnQmLCBpbnQpIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIG9wZXJhdG9y
U3RhY2tTaG91bGRSZWR1Y2UoaW50KSB7IHJldHVybiB0cnVlOyB9CiAgICAgQmluYXJ5T3BlcmFu
ZCBnZXRGcm9tT3BlcmFuZFN0YWNrKGludCkgeyByZXR1cm4gbV90b3BCaW5hcnlFeHByOyB9CiAg
ICAgdm9pZCBzaHJpbmtPcGVyYW5kU3RhY2tCeShpbnQmIG9wZXJhbmRTdGFja0RlcHRoLCBpbnQg
YW1vdW50KSB7IG9wZXJhbmRTdGFja0RlcHRoIC09IGFtb3VudDsgfQogICAgIHZvaWQgYXBwZW5k
QmluYXJ5T3BlcmF0aW9uKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCYgb3BlcmFuZFN0YWNr
RGVwdGgsIGludCYsIEJpbmFyeU9wZXJhbmQsIEJpbmFyeU9wZXJhbmQpIHsgb3BlcmFuZFN0YWNr
RGVwdGgrKzsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHAKaW5kZXggMDA2MTI0NWM1YjUyZDI1ZmQ1YzM1NGZhYmU2YzViNzZjOTEwOTQy
My4uNjVmZGE2ODU0Y2NjZThkYzk0MTkzMDA0YTlmMDI5NTQ4Zjk4YmM1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC00NzAs
NiArNDcwLDE0IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9tb2QpCiAgICAgUkVUVVJOKGpz
TnVtYmVyKGpzTW9kKGEsIGIpKSk7CiB9CiAKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wb3cp
Cit7CisgICAgQkVHSU4oKTsKKyAgICBkb3VibGUgYSA9IE9QX0MoMikuanNWYWx1ZSgpLnRvTnVt
YmVyKGV4ZWMpOworICAgIGRvdWJsZSBiID0gT1BfQygzKS5qc1ZhbHVlKCkudG9OdW1iZXIoZXhl
Yyk7CisgICAgUkVUVVJOKGpzTnVtYmVyKG9wZXJhdGlvbk1hdGhQb3coYSwgYikpKTsKK30KKwog
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2xzaGlmdCkKIHsKICAgICBCRUdJTigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAppbmRleCBlYmM5
MTMwNmY4M2E4MWI3YWEyZWUwZTNiM2ZiZTI5MjdlOWZhZDYyLi44YzcwNzg0MjgwMmQ2YTAzZDEy
OGNkOGQyOTJhZmY3MzVjZGEwMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuaApAQCAtMjE5LDYgKzIxOSw3IEBAIFNMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfbXVsKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
c3ViKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGl2KTsKIFNMT1dfUEFUSF9I
SURERU5fREVDTChzbG93X3BhdGhfbW9kKTsKK1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfcG93KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfbHNoaWZ0KTsKIFNMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcnNoaWZ0KTsKIFNMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfdXJzaGlmdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3Bvdy1iYXNpY3MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Bvdy1iYXNpY3MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FmOWNlNmVhODQwMmEyMWQ0ZmY4ZDdj
OWQ4MGQ5ZWJhMGVmODQ3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvcG93LWJhc2ljcy5qcwpAQCAtMCwwICsxLDI4NiBAQAorZnVuY3Rpb24g
dmFsdWVzQXJlQ2xvc2UoYSwgYikgeworICAgIHJldHVybiBNYXRoLmFicyhhIC8gYikgLSAxIDwg
MWUtMTA7Cit9CisKKy8vIFNvbWUgcmFuZG9tIHZhbHVlcy4KK2Z1bmN0aW9uIG1hdGhQb3dEb3Vi
bGVEb3VibGUxKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBv
d0RvdWJsZURvdWJsZTEpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50MSh4LCB5KSB7Cisg
ICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQxKTsKKworZnVu
Y3Rpb24gdGVzdDEoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3Vi
bGVEb3VibGUxKHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhw
ZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0Rv
dWJsZURvdWJsZTEoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0
ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50ZWdl
clkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQxKHgsIGludGVnZXJZKTsKKyAgICAgICAg
aWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQxKCIgKyB4ICsgIiwgIiArIGlu
dGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIg
KyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDEpOwordGVzdDEoMzc2Ljc2NTIy
NzY0Mzc3Mjk2LCAxMC44MTY5OTIyNjA1MTU2OSwgNy4zMzM5NTE5MjkxMDkyNTJlKzI3LCA1Ljc2
Mzc4OTg5NTc1MDg5ZSsyNSk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGUyKHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTIp
OworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50Mih4LCB5KSB7CisgICAgcmV0dXJuIHggKiog
eTsKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnQyKTsKK2Z1bmN0aW9uIHRlc3QyKHgsIHks
IGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsg
KytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlMih4LCB5KTsK
KyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGUyKCIgKyB4
ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2Ug
dG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBt
YXRoUG93RG91YmxlSW50Mih4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xv
c2UocmVzdWx0LCBleHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0LCBtYXRoUG93RG91YmxlSW50MigiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiAr
IHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAg
IH0KK30KK25vSW5saW5lKHRlc3QyKTsKK3Rlc3QyKDM3Ni43NjUyMjc2NDM3NzI5NiwgLTUuODE2
OTkyMjYwNTE1NjksIDEuMDM1MTgwMzMxMTg3NTc5ZS0xNSwgMS4zMTcxODI0MzEwNDAwMjY1ZS0x
Myk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGUzKHgsIHkpIHsKKyAgICByZXR1cm4g
eCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTMpOworCitmdW5jdGlvbiBt
YXRoUG93RG91YmxlSW50Myh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5l
KG1hdGhQb3dEb3VibGVJbnQzKTsKK2Z1bmN0aW9uIHRlc3QzKHgsIHksIGV4cGVjdGVkMSwgZXhw
ZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlMyh4LCB5KTsKKyAgICAgICAgaWYgKCF2
YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGUzKCIgKyB4ICsgIiwgIiArIHkgKyAi
KSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVk
MTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50
Myh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBl
Y3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91
YmxlSW50MygiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5l
KHRlc3QzKTsKK3Rlc3QzKC0zNy42NzY1MjI3NjQzNzcyOTYsIDEwLjAsIDU3NjM3ODk4OTU3NTA4
OTIsIDU3NjM3ODk4OTU3NTA4OTIpOworCisvLyBFeHBvbmVudCB6ZXJvLgorZnVuY3Rpb24gbWF0
aFBvd0RvdWJsZURvdWJsZTQoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGlu
ZShtYXRoUG93RG91YmxlRG91YmxlNCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ0KHgs
IHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDQp
OworZnVuY3Rpb24gdGVzdDQoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQ
b3dEb3VibGVEb3VibGU0KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3Vs
dCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0
aFBvd0RvdWJsZURvdWJsZTQoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIg
ZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIg
aW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ0KHgsIGludGVnZXJZKTsKKyAg
ICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ0KCIgKyB4ICsgIiwg
IiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3Nl
IHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDQpOwordGVzdDQoLTM3
LjY3NjUyMjc2NDM3NzI5NiwgMCwgMSwgMSk7CisKKy8vIEV4cG9uZW50IG1pbnVzIHplcm8uCitm
dW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlNSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsK
K30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGU1KTsKKworZnVuY3Rpb24gbWF0aFBvd0Rv
dWJsZUludDUoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93
RG91YmxlSW50NSk7CitmdW5jdGlvbiB0ZXN0NSh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVkMikg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTUoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJl
Q2xvc2UocmVzdWx0LCBleHBlY3RlZDEpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQg
cmVzdWx0LCBtYXRoUG93RG91YmxlRG91YmxlNSgiICsgeCArICIsICIgKyB5ICsgIikgPSAiICsg
cmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7CisgICAg
fQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDUoeCwgaW50
ZWdlclkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkK
KyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludCgi
ICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2
YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q1KTsK
K3Rlc3Q1KC0zNy42NzY1MjI3NjQzNzcyOTYsIC0wLCAxLCAxKTsKKworLy8gRXhwb25lbnQgMS4K
K2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGU2KHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5
OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTYpOworCitmdW5jdGlvbiBtYXRoUG93
RG91YmxlSW50Nih4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQ
b3dEb3VibGVJbnQ2KTsKK2Z1bmN0aW9uIHRlc3Q2KHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQy
KSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlNih4LCB5KTsKKyAgICAgICAgaWYgKCF2YWx1ZXNB
cmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGU2KCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIg
KyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAg
ICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlSW50Nih4LCBp
bnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDIp
KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlSW50
NigiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQg
YSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3Q2
KTsKK3Rlc3Q2KC0zNy42NzY1MjI3NjQzNzcyOTYsIDEuMCwgLTM3LjY3NjUyMjc2NDM3NzI5Niwg
LTM3LjY3NjUyMjc2NDM3NzI5Nik7CisKKy8vIEV4cG9uZW50IC0xLgorZnVuY3Rpb24gbWF0aFBv
d0RvdWJsZURvdWJsZTcoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZSht
YXRoUG93RG91YmxlRG91YmxlNyk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ3KHgsIHkp
IHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDcpOwor
ZnVuY3Rpb24gdGVzdDcoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dE
b3VibGVEb3VibGU3KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwg
ZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBv
d0RvdWJsZURvdWJsZTcoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIgZXhw
ZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIgaW50
ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVEb3VibGU3KHgsIGludGVnZXJZKTsKKyAg
ICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGU3KCIgKyB4ICsg
IiwgIiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNs
b3NlIHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDcpOwordGVzdDYo
LTM3LjY3NjUyMjc2NDM3NzI5NiwgLTEuMCwgLTAuMDI2NTQxNzI3NDkwNDU0Mjk2LCAtMC4wMjY1
NDE3Mjc0OTA0NTQyOTYpOworCisvLyBMZXQncyBzcXVhcmUgdGhpbmdzLgorZnVuY3Rpb24gbWF0
aFBvd0RvdWJsZURvdWJsZTgoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGlu
ZShtYXRoUG93RG91YmxlRG91YmxlOCk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVJbnQ4KHgs
IHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludDgp
OworZnVuY3Rpb24gdGVzdDgoeCwgeSwgZXhwZWN0ZWQxLCBleHBlY3RlZDIpIHsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQ
b3dEb3VibGVEb3VibGU4KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3Vs
dCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0
aFBvd0RvdWJsZURvdWJsZTgoIiArIHggKyAiLCAiICsgeSArICIpID0gIiArIHJlc3VsdCArICIg
ZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQxOworICAgIH0KKyAgICB2YXIg
aW50ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnQ4KHgsIGludGVnZXJZKTsKKyAg
ICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMikpCisgICAgICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJbnQ4KCIgKyB4ICsgIiwg
IiArIGludGVnZXJZICsgIikgPSAiICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3Nl
IHRvICIgKyBleHBlY3RlZDI7CisgICAgfQorfQorbm9JbmxpbmUodGVzdDgpOwordGVzdDcoLTM3
LjY3NjUyMjc2NDM3NzI5NiwgMi4wLCAxNDE5LjUyMDM2NzYxNDY0MDcsIDE0MTkuNTIwMzY3NjE0
NjQwNyk7CisKK2Z1bmN0aW9uIG1hdGhQb3dEb3VibGVEb3VibGU5KHgsIHkpIHsKKyAgICByZXR1
cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTkpOworCitmdW5jdGlv
biBtYXRoUG93RG91YmxlSW50OSh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5s
aW5lKG1hdGhQb3dEb3VibGVJbnQ5KTsKK2Z1bmN0aW9uIHRlc3Q5KHgsIHksIGV4cGVjdGVkMSwg
ZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlOSh4LCB5KTsKKyAgICAgICAgaWYg
KCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkMSkpCisgICAgICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVEb3VibGU5KCIgKyB4ICsgIiwgIiArIHkg
KyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVj
dGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91Ymxl
SW50OSh4LCBpbnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBl
eHBlY3RlZDIpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93
RG91YmxlSW50OSgiICsgeCArICIsICIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJlc3VsdCArICIg
ZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0ZWQyOworICAgIH0KK30KK25vSW5s
aW5lKHRlc3Q5KTsKK3Rlc3Q4KDM3LjY3NjUyMjc2NDM3NzI5NiwgMi4wLCAxNDE5LjUyMDM2NzYx
NDY0MDcsIDE0MTkuNTIwMzY3NjE0NjQwNyk7CisKKy8vIExldCdzIGN1YmUgdGhpbmdzLgorZnVu
Y3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZTEwKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5Owor
fQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZURvdWJsZTEwKTsKKworZnVuY3Rpb24gbWF0aFBvd0Rv
dWJsZUludDEwKHgsIHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBv
d0RvdWJsZUludDEwKTsKK2Z1bmN0aW9uIHRlc3QxMCh4LCB5LCBleHBlY3RlZDEsIGV4cGVjdGVk
MikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIg
cmVzdWx0ID0gbWF0aFBvd0RvdWJsZURvdWJsZTEwKHgsIHkpOworICAgICAgICBpZiAoIXZhbHVl
c0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQxKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZURvdWJsZSgiICsgeCArICIsICIgKyB5ICsgIikgPSAi
ICsgcmVzdWx0ICsgIiBleHBlY3RlZCBhIHZhbHVlIGNsb3NlIHRvICIgKyBleHBlY3RlZDE7Cisg
ICAgfQorICAgIHZhciBpbnRlZ2VyWSA9IHkgfCAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0RvdWJsZUludDEwKHgs
IGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVk
MikpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dEb3VibGVJ
bnQoIiArIHggKyAiLCAiICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVk
IGEgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0
OSk7Cit0ZXN0OSgtMzcuNjc2NTIyNzY0Mzc3Mjk2LCAzLjAsIC01MzQ4Mi41OTE0NDQ5MzAyMzYs
IC01MzQ4Mi41OTE0NDQ5MzAyMzYpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlRG91YmxlMTEo
eCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlRG91
YmxlMTEpOworCitmdW5jdGlvbiBtYXRoUG93RG91YmxlSW50MTEoeCwgeSkgeworICAgIHJldHVy
biB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RG91YmxlSW50MTEpOworZnVuY3Rpb24gdGVz
dDExKHgsIHksIGV4cGVjdGVkMSwgZXhwZWN0ZWQyKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91Ymxl
MTEoeCwgeSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZDEp
KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93RG91YmxlRG91
YmxlKCIgKyB4ICsgIiwgIiArIHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIGEgdmFs
dWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkMTsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8
IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBtYXRoUG93RG91YmxlSW50MTEoeCwgaW50ZWdlclkpOworICAgICAgICBpZiAoIXZh
bHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQyKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCwgbWF0aFBvd0RvdWJsZUludCgiICsgeCArICIsICIgKyBpbnRlZ2VyWSAr
ICIpID0gIiArIHJlc3VsdCArICIgZXhwZWN0ZWQgYSB2YWx1ZSBjbG9zZSB0byAiICsgZXhwZWN0
ZWQyOworICAgIH0KK30KK25vSW5saW5lKHRlc3QxMCk7Cit0ZXN0MTAoMzcuNjc2NTIyNzY0Mzc3
Mjk2LCAzLjAsIDUzNDgyLjU5MTQ0NDkzMDIzNiwgNTM0ODIuNTkxNDQ0OTMwMjM2KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWNvaGVyZW5jeS5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWNvaGVyZW5jeS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yOTY3MWE0MmRiZDgyY2U1NjhjM2MyODY5YjE4YTMwOTNkODEzODIxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctY29o
ZXJlbmN5LmpzCkBAIC0wLDAgKzEsOTUgQEAKKy8vQCBza2lwCisKKy8vIFRoaXMgdGVzdCBjaGVj
a3MgdGhhdCB0aGUgcG93IGZ1bmN0aW9uIHJldHVybnMgY29oZXJlbnQgcmVzdWx0czoKKy8vIChh
KSBBY3Jvc3MgZGlmZmVyZW50IGNvbXBpbGF0aW9uIHRpZXJzCisvLyAoYikgV2l0aCBpbnRlZ2Vy
IGV4cG9uZW50cyByZXByZXNlbnRlZCBhcyBpbnQzMiBvciBhcyBkb3VibGUKKworZnVuY3Rpb24g
cG93NDIoKSB7CisgICAgcmV0dXJuIHsgdmFsdWU6IDIuMSAqKiA0MiwgZnRsOiBpc0ZpbmFsVGll
cigpIH07Cit9CisKK2Z1bmN0aW9uIGJ1aWxkNDJBc0RvdWJsZSgpIHsKKyAgICBmdW5jdGlvbiBv
cGFxdWVBZGQoeCwgeSkgeyByZXR1cm4geCArIHk7IH0KKyAgICByZXR1cm4gb3BhcXVlQWRkKDQy
IC0gMC4xMjMsIDAuMTIzKTsKK30KKwordmFyIGRvdWJsZTQyID0gYnVpbGQ0MkFzRG91YmxlKCk7
CisKK2lmIChkb3VibGU0MiAhPT0gNDIpCisgICAgdGhyb3cgbmV3IEVycm9yKCI0MiAoYXMgZG91
YmxlKSBzaG91bGQgYmUgPT09IHRvIDQyIChhcyBpbnQpIik7CisKK2Z1bmN0aW9uIHBvd0RvdWJs
ZTQyKCkgeworICAgIHJldHVybiB7IHZhbHVlOiAyLjEgKiogZG91YmxlNDIsIGZ0bDogaXNGaW5h
bFRpZXIoKSB9OworfQorCitmdW5jdGlvbiBjbG9iYmVyKCkgeyB9Citub0lubGluZShjbG9iYmVy
KTsKKworZnVuY3Rpb24gcG93NDJOb0NvbnN0YW50Rm9sZGluZygpIHsKKyAgICB2YXIgb2JqID0g
eyB4OiAyLjEsIHk6IDQyIH07CisgICAgY2xvYmJlcihvYmopOworICAgIHJldHVybiB7IHZhbHVl
OiBvYmoueCAqKiBvYmoueSwgZnRsOiBpc0ZpbmFsVGllcigpIH07Cit9CisKK2Z1bmN0aW9uIHBv
d0RvdWJsZTQyTm9Db25zdGFudEZvbGRpbmcoKSB7CisgICAgdmFyIG9iaiA9IHsgeDogMi4xLCB5
OiBkb3VibGU0MiB9OworICAgIGNsb2JiZXIob2JqKTsKKyAgICByZXR1cm4geyB2YWx1ZTogb2Jq
LnggKiogb2JqLnksIGZ0bDogaXNGaW5hbFRpZXIoKSB9OworfQorCit2YXIgcmVzdWx0cyA9IHsg
J2ppdCc6IHt9LCAnZGZnJzoge30sICdmdGwnOiB7fSB9OwordmFyIGZ1bnMgPSBbCisgICAgWyAn
cG93NDInLCBwb3c0MiBdLAorICAgIFsgJ3Bvd0RvdWJsZTQyJywgcG93RG91YmxlNDIgXSwKKyAg
ICBbICdwb3c0Mk5vQ29uc3RhbnRGb2xkaW5nJywgcG93NDJOb0NvbnN0YW50Rm9sZGluZyBdLAor
ICAgIFsgJ3Bvd0RvdWJsZTQyTm9Db25zdGFudEZvbGRpbmcnLCBwb3dEb3VibGU0Mk5vQ29uc3Rh
bnRGb2xkaW5nIF0KK107Cit2YXIgdGllcnMgPSBbJ2ppdCcsICdkZmcnLCAnZnRsJ107CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICBmb3IgKHZhciBqIGluIGZ1bnMp
IHsKKyAgICAgICAgdmFyIG5hbWUgPSBmdW5zW2pdWzBdOworICAgICAgICB2YXIgZnVuID0gZnVu
c1tqXVsxXTsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGZ1bigpOworICAgICAgICBpZiAocmVzdWx0
LmZ0bCkKKyAgICAgICAgICAgIHJlc3VsdHNbJ2Z0bCddW25hbWVdID0gcmVzdWx0LnZhbHVlOwor
ICAgICAgICBlbHNlIGlmIChudW1iZXJPZkRGR0NvbXBpbGVzKGZ1bikgPiAwKQorICAgICAgICAg
ICAgcmVzdWx0c1snZGZnJ11bbmFtZV0gPSByZXN1bHQudmFsdWU7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJlc3VsdHNbJ2ppdCddW25hbWVdID0gcmVzdWx0LnZhbHVlOworICAgIH0KK30K
KwordmFyIGVycm9ycyA9IFtdOwordmFyIHZhbHVlc0ZvciA9IHt9OworZm9yICh2YXIgaSBpbiB0
aWVycykgeworICAgIHZhciB0aWVyID0gdGllcnNbaV07CisgICAgdmFyIHJlc3VsdCA9IHJlc3Vs
dHNbdGllcl07CisgICAgLy8gV2UgZG9uJ3QgaGF2ZSB0aGlzIHRpZXIKKyAgICBpZiAoT2JqZWN0
LmtleXMocmVzdWx0KS5sZW5ndGggPT09IDApCisgICAgICAgIGNvbnRpbnVlOworCisgICAgZm9y
ICh2YXIgaiBpbiBmdW5zKSB7CisgICAgICAgIHZhciBuYW1lID0gZnVuc1tqXVswXTsKKyAgICAg
ICAgaWYgKCEobmFtZSBpbiByZXN1bHQpKQorICAgICAgICAgICAgZXJyb3JzLnB1c2gobmFtZSAr
ICIgd2FzIG5vdCBjb21waWxlZCB0byAiICsgdGllcik7CisgICAgICAgIGVsc2UgaWYgKCEobmFt
ZSBpbiB2YWx1ZXNGb3IpKQorICAgICAgICAgICAgdmFsdWVzRm9yW25hbWVdID0geyB2YWx1ZTog
cmVzdWx0W25hbWVdLCB0aWVyczogW3RpZXJdIH07CisgICAgICAgIGVsc2UgaWYgKHJlc3VsdFtu
YW1lXSAhPT0gdmFsdWVzRm9yW25hbWVdLnZhbHVlKQorICAgICAgICAgICAgZXJyb3JzLnB1c2go
bmFtZSArICIgaGFzIGRpZmZlcmVudCByZXN1bHRzIGluICIgKyB0aWVyICsgIiAoIiArIHJlc3Vs
dFtuYW1lXSArICIpIGFuZCAiICsgdmFsdWVzRm9yW25hbWVdLnRpZXJzICsgIiAoIiArIHZhbHVl
c0ZvcltuYW1lXS52YWx1ZSArICIpIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVl
c0ZvcltuYW1lXS50aWVycy5wdXNoKHRpZXIpOworICAgIH0KK30KKwordmFyIHJlZmVyZW5jZSA9
IGZ1bnNbMF1bMF07Cit2YXIgcmVzdWx0ID0gdmFsdWVzRm9yW3JlZmVyZW5jZV0udmFsdWU7CisK
K2ZvciAodmFyIGogaW4gZnVucykgeworICAgIHZhciBuYW1lID0gZnVuc1tqXVswXTsKKyAgICBp
ZiAodmFsdWVzRm9yW25hbWVdLnZhbHVlICE9PSByZXN1bHQpCisgICAgICAgIGVycm9ycy5wdXNo
KG5hbWUgKyAiICgiICsgdmFsdWVzRm9yW25hbWVdLnZhbHVlICsgIikgYW5kICIgKyByZWZlcmVu
Y2UgKyAiICgiICsgcmVzdWx0ICsgIikgaGF2ZSBkaWZmZXJlbnQgcmVzdWx0cyIpOworfQorCitp
ZiAoZXJyb3JzLmxlbmd0aCA+IDApCisgICAgdGhyb3cgbmV3IEVycm9yKGVycm9ycy5qb2luKCdc
bicpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93
LWV2YWx1YXRpb24tb3JkZXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3Bvdy1ldmFsdWF0aW9uLW9yZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNTQ2NDdkZDVmYWJhMGE3NWM1
MzFkZjZlMGFjZTg4MDM0MDYwYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1ldmFsdWF0aW9uLW9yZGVyLmpzCkBAIC0wLDAgKzEsNDAg
QEAKKy8vIENvcHlyaWdodCAoQykgMjAxNiBSaWNrIFdhbGRyb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisvLyBUaGlzIGNvZGUgaXMgZ292ZXJuZWQgYnkgdGhlIEJTRCBsaWNlbnNlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUuCisKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
Cit7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJv
cignYmFkIHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworeworICAgIGxldCBjYXB0dXJlID0gW107
CisgICAgbGV0IGxlZnRWYWx1ZSA9IHsgdmFsdWVPZigpIHsgY2FwdHVyZS5wdXNoKCJsZWZ0VmFs
dWUiKTsgcmV0dXJuIDM7IH19OworICAgIGxldCByaWdodFZhbHVlID0geyB2YWx1ZU9mKCkgeyBj
YXB0dXJlLnB1c2goInJpZ2h0VmFsdWUiKTsgcmV0dXJuIDI7IH19OworCisgICAgKGNhcHR1cmUu
cHVzaCgibGVmdCIpLCBsZWZ0VmFsdWUpICoqICsoY2FwdHVyZS5wdXNoKCJyaWdodCIpLCByaWdo
dFZhbHVlKTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLy8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZXMgdGhlIG9yZGVyCisKKyAgICAv
LyBFeHBlY3RlZCBwZXIgb3BlcmF0b3IgZXZhbHVhdGlvbiBvcmRlcjogImxlZnQiLCAicmlnaHQi
LCAicmlnaHRWYWx1ZSIsICJsZWZ0VmFsdWUiCisgICAgc2hvdWxkQmUoY2FwdHVyZVswXSwgImxl
ZnQiKTsKKyAgICBzaG91bGRCZShjYXB0dXJlWzFdLCAicmlnaHQiKTsKKyAgICBzaG91bGRCZShj
YXB0dXJlWzJdLCAicmlnaHRWYWx1ZSIpOworICAgIHNob3VsZEJlKGNhcHR1cmVbM10sICJsZWZ0
VmFsdWUiKTsKK30KKworeworICAgIGxldCBjYXB0dXJlID0gW107CisgICAgbGV0IGxlZnRWYWx1
ZSA9IHsgdmFsdWVPZigpIHsgY2FwdHVyZS5wdXNoKCJsZWZ0VmFsdWUiKTsgcmV0dXJuIDM7IH19
OworICAgIGxldCByaWdodFZhbHVlID0geyB2YWx1ZU9mKCkgeyBjYXB0dXJlLnB1c2goInJpZ2h0
VmFsdWUiKTsgcmV0dXJuIDI7IH19OworCisgICAgKCsoY2FwdHVyZS5wdXNoKCJsZWZ0IiksIGxl
ZnRWYWx1ZSkpICoqIChjYXB0dXJlLnB1c2goInJpZ2h0IiksIHJpZ2h0VmFsdWUpOworLy8gICBe
CisvLyAgIENoYW5nZXMgdGhlIG9yZGVyCisKKyAgICAvLyBFeHBlY3RlZCBwZXIgb3BlcmF0b3Ig
ZXZhbHVhdGlvbiBvcmRlcjogImxlZnQiLCAicmlnaHQiLCAicmlnaHRWYWx1ZSIsICJsZWZ0VmFs
dWUiCisgICAgc2hvdWxkQmUoY2FwdHVyZVswXSwgImxlZnQiKTsKKyAgICBzaG91bGRCZShjYXB0
dXJlWzFdLCAibGVmdFZhbHVlIik7CisgICAgc2hvdWxkQmUoY2FwdHVyZVsyXSwgInJpZ2h0Iik7
CisgICAgc2hvdWxkQmUoY2FwdHVyZVszXSwgInJpZ2h0VmFsdWUiKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV4cGVjdHMtdXBkYXRlLWV4
cHJlc3Npb24tb24tbGhzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9w
b3ctZXhwZWN0cy11cGRhdGUtZXhwcmVzc2lvbi1vbi1saHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmZkNTIy
YWFmMmNlODM2ZmRiOGU2MTRmZjBjOTYwODIyZTJiMzNlZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LWV4cGVjdHMtdXBkYXRlLWV4cHJl
c3Npb24tb24tbGhzLmpzCkBAIC0wLDAgKzEsOTYgQEAKK2Z1bmN0aW9uIHRlc3RTeW50YXgoc2Ny
aXB0KSB7CisgICAgdHJ5IHsKKyAgICAgICAgZXZhbChzY3JpcHQpOworICAgIH0gY2F0Y2ggKGVy
cm9yKSB7CisgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQorICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIHRlc3RTeW50YXhFcnJvcihzY3JpcHQsIG1lc3NhZ2UpIHsKKyAg
ICB2YXIgZXJyb3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGV2YWwoc2NyaXB0KTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJv
cikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBzeW50YXggZXJyb3Igbm90IHRo
cm93biIpOworCisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IG1lc3NhZ2UpCisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiQmFkIGVycm9yOiAiICsgU3RyaW5nKGVycm9yKSk7Cit9CisKK3sKKyAg
ICBsZXQgdG9rZW5zID0gWworICAgICAgICAnLScsCisgICAgICAgICcrJywKKyAgICAgICAgJ34n
LAorICAgICAgICAnIScsCisgICAgICAgICd0eXBlb2YnLAorICAgICAgICAndm9pZCcsCisgICAg
ICAgICdkZWxldGUnLAorICAgIF07CisKKyAgICBmb3IgKGxldCB0b2tlbiBvZiB0b2tlbnMpIHsK
KyAgICAgICAgdGVzdFN5bnRheEVycm9yKGAKKyAgICAgICAgZnVuY3Rpb24gcG93KGEsIGIpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAke3Rva2VufSBhICoqIGI7CisgICAgICAgIH0K
KyAgICAgICAgYCwgYFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcqKicuIEV4cGVjdGVk
IGEgdXBkYXRlIGV4cHJlc3Npb24gb24gdGhlIGxlZnQgaGFuZCBzaWRlIG9mIGFuIGV4cG9uZW50
aWF0aW9uIGV4cHJlc3Npb24uYCk7CisgICAgfQorfQorCit7CisgICAgbGV0IHRva2VucyA9IFsK
KyAgICAgICAgJy0nLAorICAgICAgICAnKycsCisgICAgICAgICd+JywKKyAgICAgICAgJyEnLAor
ICAgICAgICAndHlwZW9mJywKKyAgICAgICAgJ3ZvaWQnLAorICAgICAgICAnZGVsZXRlJywKKyAg
ICBdOworCisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAgIHRlc3RTeW50
YXgoYAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuICgke3Rva2VufSBhKSAqKiBiOworICAgICAgICB9CisgICAgICAgIGApOworICAgIH0K
K30KKworeworICAgIGxldCB0b2tlbnMgPSBbCisgICAgICAgICcrKycsCisgICAgICAgICctLScs
CisgICAgXTsKKworICAgIGZvciAobGV0IHRva2VuIG9mIHRva2VucykgeworICAgICAgICB0ZXN0
U3ludGF4KGAKKyAgICAgICAgZnVuY3Rpb24gcG93KGEsIGIpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiAke3Rva2VufSBhICoqIGI7CisgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAg
fQorfQorCit7CisgICAgbGV0IHRva2VucyA9IFsKKyAgICAgICAgJysrJywKKyAgICAgICAgJy0t
JywKKyAgICBdOworCisgICAgZm9yIChsZXQgdG9rZW4gb2YgdG9rZW5zKSB7CisgICAgICAgIHRl
c3RTeW50YXgoYAorICAgICAgICBmdW5jdGlvbiBwb3coYSwgYikKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIGEgJHt0b2tlbn0gKiogYjsKKyAgICAgICAgfQorICAgICAgICBgKTsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bv
dy1pbnRlZ2VyLWV4cG9uZW50LWZhc3RwYXRoLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9wb3ctaW50ZWdlci1leHBvbmVudC1mYXN0cGF0aC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MWVlMjdjYjZhMTIyNTgzYjlmNjFmOGM5M2QxNzM4YmE2N2I1ODAyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctaW50ZWdlci1leHBvbmVu
dC1mYXN0cGF0aC5qcwpAQCAtMCwwICsxLDU2IEBACitmdW5jdGlvbiB2YWx1ZXNBcmVDbG9zZShh
LCBiKSB7CisgICAgcmV0dXJuIE1hdGguYWJzKGEgLyBiKSAtIDEgPCAxZS0xMDsKK30KKworLy8g
U21hbGwgZXhwb25lbnQgdmFsdWVzIGFyZSBoYW5kbGVkIHRocm91Z2ggYSBzaW1wbGVyIGlubGlu
ZSBsb29wLiBUZXN0IHRoYXQgaXQgaXMgbm90IG9ic2VydmFibGUuCitmdW5jdGlvbiBtYXRoUG93
RG91YmxlRG91YmxlVGVzdEV4cG9uZW50RmlmdHkoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHkK
K30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVEb3VibGVUZXN0RXhwb25lbnRGaWZ0eSk7CisKK2Z1
bmN0aW9uIG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRGaWZ0eSh4LCB5KSB7CisgICAgcmV0
dXJuIHggKiogeQorfQorbm9JbmxpbmUobWF0aFBvd0RvdWJsZUludFRlc3RFeHBvbmVudEZpZnR5
KTsKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudEZpZnR5KHgsIHksIGV4cGVjdGVkKSB7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRo
UG93RG91YmxlRG91YmxlVGVzdEV4cG9uZW50RmlmdHkoeCwgeSk7CisgICAgICAgIGlmICghdmFs
dWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQsICgiICsgeCArICIpICoqICgiICsgeSArICIpID0gIiArIHJlc3VsdCArICIg
ZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkOworICAgIH0KKyAgICB2YXIgaW50
ZWdlclkgPSB5IHwgMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRGaWZ0eSh4LCBp
bnRlZ2VyWSk7CisgICAgICAgIGlmICghdmFsdWVzQXJlQ2xvc2UocmVzdWx0LCBleHBlY3RlZCkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsICgiICsgeCArICIpICoqICgi
ICsgaW50ZWdlclkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIHZhbHVlIGNsb3NlIHRv
ICIgKyBleHBlY3RlZDsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0RXhwb25lbnRGaWZ0eSk7Cit0
ZXN0RXhwb25lbnRGaWZ0eSg1My43MDkwMTE2NDEzMzEwMiwgNTAuMCwgMy4xNzk0OTQxMTgxMjAx
NDRlKzg2KTsKK3Rlc3RFeHBvbmVudEZpZnR5KDUzLjcwOTAxMTY0MTMzMTAyLCAtMTAuMCwgNS4w
MDY0MzI4NDI2MjExOTJlLTE4KTsKKworZnVuY3Rpb24gbWF0aFBvd0RvdWJsZURvdWJsZVRlc3RF
eHBvbmVudFRlblRob3VzYW5kcyh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeQorfQorbm9Jbmxp
bmUobWF0aFBvd0RvdWJsZURvdWJsZVRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk7CisKK2Z1bmN0
aW9uIG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRUZW5UaG91c2FuZHMoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHkKK30KK25vSW5saW5lKG1hdGhQb3dEb3VibGVJbnRUZXN0RXhwb25lbnRU
ZW5UaG91c2FuZHMpOworZnVuY3Rpb24gdGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKHgsIHksIGV4
cGVjdGVkKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBtYXRoUG93RG91YmxlRG91YmxlVGVzdEV4cG9uZW50VGVuVGhvdXNhbmRz
KHgsIHkpOworICAgICAgICBpZiAoIXZhbHVlc0FyZUNsb3NlKHJlc3VsdCwgZXhwZWN0ZWQpKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCAoIiArIHggKyAiKSAqKiAoIiAr
IHkgKyAiKSA9ICIgKyByZXN1bHQgKyAiIGV4cGVjdGVkIHZhbHVlIGNsb3NlIHRvICIgKyBleHBl
Y3RlZDsKKyAgICB9CisgICAgdmFyIGludGVnZXJZID0geSB8IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93RG91Ymxl
SW50VGVzdEV4cG9uZW50VGVuVGhvdXNhbmRzKHgsIGludGVnZXJZKTsKKyAgICAgICAgaWYgKCF2
YWx1ZXNBcmVDbG9zZShyZXN1bHQsIGV4cGVjdGVkKSkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCwgKCIgKyB4ICsgIikgKiogKCIgKyBpbnRlZ2VyWSArICIpID0gIiArIHJl
c3VsdCArICIgZXhwZWN0ZWQgdmFsdWUgY2xvc2UgdG8gIiArIGV4cGVjdGVkOworICAgIH0KK30K
K25vSW5saW5lKHRlc3RFeHBvbmVudFRlblRob3VzYW5kcyk7Cit0ZXN0RXhwb25lbnRUZW5UaG91
c2FuZHMoMS4wMDEsIDEwMDAwLjAsIDIxOTE2LjY4MTMzOTA0ODM3Myk7Cit0ZXN0RXhwb25lbnRU
ZW5UaG91c2FuZHMoMS4wMDEsIC0xLjAsIDAuOTk5MDAwOTk5MDAwOTk5MSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1uYW4tYmVoYXZpb3JzLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ctbmFuLWJlaGF2aW9ycy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MWM3MGM0ZjI2MDMyMzhkMjBiOTRhYTBhNGE5YWU5NWU5OGI3NjI5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9wb3ct
bmFuLWJlaGF2aW9ycy5qcwpAQCAtMCwwICsxLDIwOSBAQAorLy8gSWYgeSBpcyBOYU4sIHRoZSBy
ZXN1bHQgaXMgTmFOLgorZnVuY3Rpb24gdGVzdEludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50U3Rh
dGljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2
YXIgcmVzdWx0ID0gNSAqKiBOYU47CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgNSAqKiBOYU4gPSAiICsgcmVzdWx0Owor
ICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHJlc3VsdCA9IGkgKiogTmFOOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIGkgKiogTmFOID0gIiArIHJlc3VsdCArICIg
d2l0aCBpID0gIiArIGk7CisgICAgfQorfQorbm9JbmxpbmUodGVzdEludGVnZXJCYXNlV2l0aE5h
TkV4cG9uZW50U3RhdGljKTsKK3Rlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudFN0YXRpYygp
OworCitmdW5jdGlvbiBtYXRoUG93SW50ZWdlckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKHgs
IHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorbm9JbmxpbmUobWF0aFBvd0ludGVnZXJCYXNl
V2l0aE5hTkV4cG9uZW50RHluYW1pYyk7CitmdW5jdGlvbiB0ZXN0SW50ZWdlckJhc2VXaXRoTmFO
RXhwb25lbnREeW5hbWljKCkgeworICAgIC8vIFdhcm0gdXAgd2l0aCAyIGludGVnZXJzLgorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
bWF0aFBvd0ludGVnZXJCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLCA1KTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPT0gMzIpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQs
IG1hdGhQb3dJbnRlZ2VyQmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoMiwgNSkgPSAiICsgcmVz
dWx0ICsgIiwgZXhwZWN0ZWQgMzIuIgorICAgIH0KKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd0ludGVnZXJCYXNlV2l0
aE5hTkV4cG9uZW50RHluYW1pYyhpLCBOYU4pOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbnRlZ2VyQmFz
ZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoaSwgTmFOKSA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9
ICIgKyBpICsgIiwgZXhwZWN0ZWQgTmFOIjsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0SW50ZWdl
ckJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKTsKK3Rlc3RJbnRlZ2VyQmFzZVdpdGhOYU5FeHBv
bmVudER5bmFtaWMoKTsKKworZnVuY3Rpb24gdGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4
cG9uZW50U3RhdGljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewor
ICAgICAgICB2YXIgcmVzdWx0ID0gNS41ICoqIE5hTjsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1
bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCA1LjUgKiogTmFOID0g
IiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSAoaSArIDAuNSkgKiogTmFOOworICAgICAgICBpZiAoIWlz
TmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIChpICsg
MC41KSAqKiBOYU4gPSAiICsgcmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaTsKKyAgICB9Cit9Citu
b0lubGluZSh0ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnRTdGF0aWMpOwordGVz
dEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50U3RhdGljKCk7CisKK2Z1bmN0aW9uIG1h
dGhQb3dGbG9hdGluZ1BvaW50QmFzZVdpdGhOYU5FeHBvbmVudER5bmFtaWMoeCwgeSkgeworICAg
IHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93RmxvYXRpbmdQb2ludEJhc2VXaXRo
TmFORXhwb25lbnREeW5hbWljKTsKK2Z1bmN0aW9uIHRlc3RGbG9hdGluZ1BvaW50QmFzZVdpdGhO
YU5FeHBvbmVudER5bmFtaWMoKSB7CisgICAgLy8gV2FybSB1cCB3aXRoIDIgZG91YmxlLgorICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0g
bWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYygyLjUsIDUuMSk7
CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEwNy4wMjcxNzA1NDU0MzEzNSkKKyAgICAgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0aFBvd0Zsb2F0aW5nUG9pbnRCYXNlV2l0aE5h
TkV4cG9uZW50RHluYW1pYygyLjUsIDUuMSkgPSAiICsgcmVzdWx0ICsgIiwgZXhwZWN0ZWQgMTA3
LjAyNzE3MDU0NTQzMTM1LiIKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dGbG9hdGluZ1BvaW50QmFzZVdp
dGhOYU5FeHBvbmVudER5bmFtaWMoaSArIDAuNSwgTmFOKTsKKyAgICAgICAgaWYgKCFpc05hTihy
ZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93Rmxv
YXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKGkgKyAwLjUsIE5hTikgPSAiICsg
cmVzdWx0ICsgIiB3aXRoIGkgPSAiICsgaSArICIsIGV4cGVjdGVkIE5hTiI7CisgICAgfQorfQor
bm9JbmxpbmUodGVzdEZsb2F0aW5nUG9pbnRCYXNlV2l0aE5hTkV4cG9uZW50RHluYW1pYyk7Cit0
ZXN0RmxvYXRpbmdQb2ludEJhc2VXaXRoTmFORXhwb25lbnREeW5hbWljKCk7CisKKy8vIElmIHkg
aXMgKzAsIHRoZSByZXN1bHQgaXMgMSwgZXZlbiBpZiB4IGlzIE5hTi4KKy8vIElmIHkgaXMg4oiS
MCwgdGhlIHJlc3VsdCBpcyAxLCBldmVuIGlmIHggaXMgTmFOLgorLy8gSWYgeCBpcyBOYU4gYW5k
IHkgaXMgbm9uemVybywgdGhlIHJlc3VsdCBpcyBOYU4uCitmdW5jdGlvbiB0ZXN0TmFOQmFzZVN0
YXRpYygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IE5hTiAqKiAoaSArIDEpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkp
CisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE5hTiAqKiAoaSArIDEpID0g
IiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gTmFOICoqIChpICsgMS41
KTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0LCBOYU4gKiogKGkgKyAxLjUpID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0g
IiArIGk7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gTmFOICoqIDA7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisg
ICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE5hTiAqKiAwID0gIiArIHJlc3Vs
dDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBOYU4gKiogLTA7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIE5hTiAqKiAtMCA9ICIgKyByZXN1bHQ7
CisgICAgfQorfQorbm9JbmxpbmUodGVzdE5hTkJhc2VTdGF0aWMpOwordGVzdE5hTkJhc2VTdGF0
aWMoKTsKKworZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5hbWljMSh4LCB5KSB7CisgICAgcmV0
dXJuIHggKiogeTsKK30KK2Z1bmN0aW9uIG1hdGhQb3dOYU5CYXNlRHluYW1pYzIoeCwgeSkgewor
ICAgIHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93TmFOQmFzZUR5bmFtaWMzKHgs
IHkpIHsKKyAgICByZXR1cm4geCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd05hTkJhc2VEeW5h
bWljNCh4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK25vSW5saW5lKG1hdGhQb3dOYU5C
YXNlRHluYW1pYzEpOworbm9JbmxpbmUobWF0aFBvd05hTkJhc2VEeW5hbWljMik7Citub0lubGlu
ZShtYXRoUG93TmFOQmFzZUR5bmFtaWMzKTsKK25vSW5saW5lKG1hdGhQb3dOYU5CYXNlRHluYW1p
YzQpOworZnVuY3Rpb24gdGVzdE5hTkJhc2VEeW5hbWljKCkgeworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0aFBvd05hTkJhc2VE
eW5hbWljMShOYU4sIGkgKyAxKTsKKyAgICAgICAgaWYgKCFpc05hTihyZXN1bHQpKQorICAgICAg
ICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFzZUR5bmFtaWMxKE5h
TiwgaSArIDEpID0gIiArIHJlc3VsdCArICIgd2l0aCBpID0gIiArIGk7CisgICAgfQorICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gbWF0
aFBvd05hTkJhc2VEeW5hbWljMihOYU4sIGkgKyAxLjUpOworICAgICAgICBpZiAoIWlzTmFOKHJl
c3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dOYU5C
YXNlRHluYW1pYzIoTmFOLCBpICsgMS41KSA9ICIgKyByZXN1bHQgKyAiIHdpdGggaSA9ICIgKyBp
OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAg
dmFyIHJlc3VsdCA9IG1hdGhQb3dOYU5CYXNlRHluYW1pYzMoTmFOLCAwKTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPT0gMSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgbWF0
aFBvd05hTkJhc2VEeW5hbWljMyhOYU4sIDApID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRo
UG93TmFOQmFzZUR5bmFtaWM0KE5hTiwgLTApOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxKQor
ICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0LCBtYXRoUG93TmFOQmFzZUR5bmFt
aWM0KE5hTiwgLTApID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Citub0lubGluZSh0ZXN0TmFOQmFz
ZUR5bmFtaWMpOwordGVzdE5hTkJhc2VEeW5hbWljKCk7CisKKy8vIElmIGFicyh4KSBpcyAxIGFu
ZCB5IGlzICviiJ4sIHRoZSByZXN1bHQgaXMgTmFOLgorLy8gSWYgYWJzKHgpIGlzIDEgYW5kIHkg
aXMg4oiS4oieLCB0aGUgcmVzdWx0IGlzIE5hTi4KK2Z1bmN0aW9uIGluZmluaXRlRXhwb25lbnRz
U3RhdGljKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gMSAqKiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisgICAgICAgIGlm
ICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwg
MSAqKiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9ICgt
MSkgKiogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworICAgICAgICBpZiAoIWlzTmFOKHJlc3Vs
dCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIC0xICoqIE51bWJlci5Q
T1NJVElWRV9JTkZJTklUWSA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gMSAqKiBOdW1iZXIuTkVH
QVRJVkVfSU5GSU5JVFk7CisgICAgICAgIGlmICghaXNOYU4ocmVzdWx0KSkKKyAgICAgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCwgMSAqKiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkg
PSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9ICgtMSkgKiogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZ
OworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQsIC0xICoqIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSA9ICIgKyByZXN1bHQ7
CisgICAgfQorfQorbm9JbmxpbmUoaW5maW5pdGVFeHBvbmVudHNTdGF0aWMpOworaW5maW5pdGVF
eHBvbmVudHNTdGF0aWMoKTsKKworZnVuY3Rpb24gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHlu
YW1pYzEoeCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9CitmdW5jdGlvbiBtYXRoUG93SW5m
aW5pdGVFeHBvbmVudHNEeW5hbWljMih4LCB5KSB7CisgICAgcmV0dXJuIHggKiogeTsKK30KK2Z1
bmN0aW9uIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMzKHgsIHkpIHsKKyAgICByZXR1
cm4geCAqKiB5OworfQorZnVuY3Rpb24gbWF0aFBvd0luZmluaXRlRXhwb25lbnRzRHluYW1pYzQo
eCwgeSkgeworICAgIHJldHVybiB4ICoqIHk7Cit9Citub0lubGluZShtYXRoUG93SW5maW5pdGVF
eHBvbmVudHNEeW5hbWljMSk7Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5h
bWljMik7Citub0lubGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMyk7Citub0lu
bGluZShtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljNCk7CitmdW5jdGlvbiBpbmZpbml0
ZUV4cG9uZW50c0R5bmFtaWMoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KSB7CisgICAgICAgIHZhciByZXN1bHQgPSBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWlj
MSgxLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3Vs
dCkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0
ZUV4cG9uZW50c0R5bmFtaWMxKDEsIE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgPSAiICsgcmVz
dWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMyKC0xLCBOdW1i
ZXIuUE9TSVRJVkVfSU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50
c0R5bmFtaWMyKC0xLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBtYXRoUG93SW5maW5pdGVFeHBvbmVudHNEeW5hbWljMygxLCBOdW1iZXIuTkVHQVRJ
VkVfSU5GSU5JVFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWMz
KDEsIE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG1h
dGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KC0xLCBOdW1iZXIuTkVHQVRJVkVfSU5GSU5J
VFkpOworICAgICAgICBpZiAoIWlzTmFOKHJlc3VsdCkpCisgICAgICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQsIG1hdGhQb3dJbmZpbml0ZUV4cG9uZW50c0R5bmFtaWM0KC0xLCBOdW1i
ZXIuTkVHQVRJVkVfSU5GSU5JVFkpID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Citub0lubGluZShp
bmZpbml0ZUV4cG9uZW50c0R5bmFtaWMpOworaW5maW5pdGVFeHBvbmVudHNEeW5hbWljKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zaW1wbGUu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zaW1wbGUuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmU1ZTljZjg0NDRkZDYwMjBiNGU0OGZlNTg3YTU5YTBmOTM5ZDlhMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXNpbXBs
ZS5qcwpAQCAtMCwwICsxLDM5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVk
KQoreworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK3sKKyAgICBsZXQgaSA9IDI7CisgICAg
bGV0IGogPSAzOworICAgIHNob3VsZEJlKDIgKiogMywgOCk7CisgICAgc2hvdWxkQmUoaSAqKiAz
LCA4KTsKKyAgICBzaG91bGRCZSgyICoqIGosIDgpOworICAgIHNob3VsZEJlKGkgKiogaiwgOCk7
Cit9CisKK3sKKyAgICBzaG91bGRCZSgyICoqIDMgKiogMywgMTM0MjE3NzI4KTsKKyAgICBzaG91
bGRCZSgyICoqIDMgKyAzLCAxMSk7CisgICAgc2hvdWxkQmUoMiAqKiAzICsgMyAqKiAzLCAzNSk7
CisgICAgc2hvdWxkQmUoMiAqKiAzICogMywgMjQpOworICAgIHNob3VsZEJlKDIgKiogMyAqIDMg
KiogMywgMjE2KTsKKworICAgIHNob3VsZEJlKDIgKyAzICoqIDMsIDI5KTsKKyAgICBzaG91bGRC
ZSgyICogMyAqKiAzLCA1NCk7Cit9CisKK3sKKyAgICBsZXQgaSA9IDI7CisgICAgaSAqKj0gNDsK
KyAgICBzaG91bGRCZShpLCAxNik7CisgICAgaSAqKj0gMSArIDE7CisgICAgc2hvdWxkQmUoaSwg
MjU2KTsKK30KKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTQ7ICsraSkgeworICAgIGxldCBhID0g
TWF0aC5yYW5kb20oKTsKKyAgICBsZXQgYiA9IE1hdGgucmFuZG9tKCk7CisgICAgc2hvdWxkQmUo
YSAqKiBiLCBNYXRoLnBvdyhhLCBiKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zdGFibGUtcmVzdWx0cy5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXN0YWJsZS1yZXN1bHRzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
MjhmYTlhZTY0YmUxZjY5YTYwODk3NzI0NzVkMDU2MDU1MDdjNzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy1zdGFibGUtcmVzdWx0cy5q
cwpAQCAtMCwwICsxLDg1IEBACisvLyBUaGlzIHRlc3QgdmVyaWZ5IHRoZSByZXN1bHRzIG9mIGAq
KmAgZG8gbm90IGNoYW5nZSBhcyB3ZSBjaGFuZ2Ugb3B0aW1pemF0aW9uIHRpZXIuCisKK2Z1bmN0
aW9uIG9wYXF1ZVBvdyhhLCBiKQoreworICAgIHJldHVybiBhICoqIGI7Cit9Citub0lubGluZShv
cGFxdWVQb3cpOworCisKK2xldCBjYXNlU3RyaW5ncyA9IFsKKyAgICAiMCIsCisgICAgIi0wLiIs
CisgICAgIjAuNSIsCisgICAgIjEiLAorICAgICIyIiwKKyAgICAiLTAuNSIsCisgICAgIi0xIiwK
KyAgICAiOTk5IiwKKyAgICAiMTAwMCIsCisgICAgIjEwMDEiLAorICAgICJOYU4iLAorICAgICJJ
bmZpbml0eSIsCisgICAgIi1JbmZpbml0eSIsCisgICAgIk1hdGguUEkiLAorICAgICJNYXRoLkxO
MiIsCisgICAgIk1hdGguTE4xMCIsCisgICAgIk1hdGguRSIsCisgICAgIk1hdGguTE9HMTBFIiwK
KyAgICAiTWF0aC5MT0cyRSIsCisgICAgIk1hdGguU1FSVDIiCitdOworbGV0IGNhc2VzID0gW107
Citmb3IgKGxldCBjYXNlU3RyaW5nIG9mIGNhc2VTdHJpbmdzKSB7CisgICAgY2FzZXMucHVzaChl
dmFsKGNhc2VTdHJpbmcpKTsKK30KKworbGV0IGV4cGVjdGVkUmVzdWx0cyA9IFtdOworbGV0IGNv
bnN0YW50QmFzZUZ1bmN0aW9ucyA9IFtdOworbGV0IGNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnMg
PSBbXTsKK2ZvciAobGV0IGkgPSAwOyBpIDwgY2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICBsZXQg
YmFzZSA9IGNhc2VzW2ldOworCisgICAgZXhwZWN0ZWRSZXN1bHRzW2ldID0gW107CisgICAgZm9y
IChsZXQgaiA9IDA7IGogPCBjYXNlcy5sZW5ndGg7ICsraikgeworICAgICAgICBsZXQgZXhwb25l
bnQgPSBjYXNlc1tqXTsKKyAgICAgICAgZXhwZWN0ZWRSZXN1bHRzW2ldW2pdID0gYmFzZSAqKiBl
eHBvbmVudDsKKyAgICB9CisKKyAgICBldmFsKCJjb25zdGFudEJhc2VGdW5jdGlvbnNbaV0gPSBm
dW5jdGlvbiAoZXhwb25lbnQpIHsgcmV0dXJuICgiICsgY2FzZVN0cmluZ3NbaV0gKyAiKSAqKiBl
eHBvbmVudDsgfSIpOworICAgIGV2YWwoImNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnNbaV0gPSBm
dW5jdGlvbiAoYmFzZSkgeyByZXR1cm4gYmFzZSAqKiAoIiArIGNhc2VTdHJpbmdzW2ldICsgIik7
IH0iKTsKK30KKworZnVuY3Rpb24gaXNJZGVudGljYWwocmVzdWx0LCBleHBlY3RlZCkKK3sKKyAg
ICBpZiAoZXhwZWN0ZWQgPT09IGV4cGVjdGVkKSB7CisgICAgICAgIGlmIChyZXN1bHQgIT09IGV4
cGVjdGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWV4cGVjdGVk
ICYmIDEgLyBleHBlY3RlZCA9PT0gLUluZmluaXR5ICYmIDEgLyByZXN1bHQgIT09IC1JbmZpbml0
eSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdCAhPT0gcmVzdWx0OworfQorCitmb3IgKGxldCB0aWVyVXBM
b29wQ291bnRlciA9IDA7IHRpZXJVcExvb3BDb3VudGVyIDwgMWUzOyArK3RpZXJVcExvb3BDb3Vu
dGVyKSB7CisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYXNlcy5sZW5ndGg7ICsraSkgeworICAg
ICAgICBsZXQgYmFzZSA9IGNhc2VzW2ldOworICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNh
c2VzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBsZXQgZXhwb25lbnQgPSBjYXNlc1tqXTsK
KyAgICAgICAgICAgIGxldCBleHBlY3RlZFJlc3VsdCA9IGV4cGVjdGVkUmVzdWx0c1tpXVtqXTsK
KyAgICAgICAgICAgIGxldCByZXN1bHQgPSBvcGFxdWVQb3coYmFzZSwgZXhwb25lbnQpOworICAg
ICAgICAgICAgaWYgKCFpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVkUmVzdWx0KSkKKyAgICAg
ICAgICAgICAgICB0aHJvdyBgRmFpbGVkIG9wYXF1ZVBvdyB3aXRoIGJhc2UgPSAke2Jhc2V9IGV4
cG9uZW50ID0gJHtleHBvbmVudH0gZXhwZWN0ZWQgKCR7ZXhwZWN0ZWRSZXN1bHR9KSBnb3QgKCR7
cmVzdWx0fSlgOworCisgICAgICAgICAgICByZXN1bHQgPSBjb25zdGFudEJhc2VGdW5jdGlvbnNb
aV0oZXhwb25lbnQpOworICAgICAgICAgICAgaWYgKCFpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVj
dGVkUmVzdWx0KSkKKyAgICAgICAgICAgICAgICB0aHJvdyBgRmFpbGVkIGNvbnN0YW50QmFzZUZ1
bmN0aW9ucyB3aXRoIGJhc2UgPSAke2Jhc2V9IGV4cG9uZW50ID0gJHtleHBvbmVudH0gZXhwZWN0
ZWQgKCR7ZXhwZWN0ZWRSZXN1bHR9KSBnb3QgKCR7cmVzdWx0fSlgOworCisgICAgICAgICAgICBy
ZXN1bHQgPSBjb25zdGFudEV4cG9uZW50RnVuY3Rpb25zW2pdKGJhc2UpOworICAgICAgICAgICAg
aWYgKCFpc0lkZW50aWNhbChyZXN1bHQsIGV4cGVjdGVkUmVzdWx0KSkKKyAgICAgICAgICAgICAg
ICB0aHJvdyBgRmFpbGVkIGNvbnN0YW50RXhwb25lbnRGdW5jdGlvbnMgd2l0aCBiYXNlID0gJHti
YXNlfSBleHBvbmVudCA9ICR7ZXhwb25lbnR9IGV4cGVjdGVkICgke2V4cGVjdGVkUmVzdWx0fSkg
Z290ICgke3Jlc3VsdH0pYDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXRvLW51bWJlci1zaG91bGQtYmUtZXhl
Y3V0ZWQtaW4tY29kZS1zaWRlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy9wb3ctdG8tbnVtYmVyLXNob3VsZC1iZS1leGVjdXRlZC1pbi1jb2RlLXNpZGUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODczMTA3YTRlNDk2NzliMmE1NzMwNWRhZWY3ZGUyMmQyMWVjYzNhMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXRvLW51bWJl
ci1zaG91bGQtYmUtZXhlY3V0ZWQtaW4tY29kZS1zaWRlLmpzCkBAIC0wLDAgKzEsNzcgQEAKK2Z1
bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGFjdHVhbCAhPT0g
ZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0dWFs
KTsKK30KKworeworICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFsdWVPZigpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgfQorICAgIH07
CisgICAgbGV0IGVycm9yID0gbnVsbDsKKworICAgIHRyeSB7CisgICAgICAgIDIgKiogdmFsdWU7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIC8vIGds
b2JhbCwgYW5kIHZhbHVlT2YuCisgICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQoIlxuIiku
bGVuZ3RoLCAyKTsKK30KKworeworICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFsdWVPZigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAg
fQorICAgIH07CisgICAgbGV0IGVycm9yID0gbnVsbDsKKworICAgIHRyeSB7CisgICAgICAgIHZh
bHVlICoqIDI7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQor
ICAgIC8vIGdsb2JhbCwgYW5kIHZhbHVlT2YuCisgICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3Bs
aXQoIlxuIikubGVuZ3RoLCAyKTsKK30KKworeworICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAg
dmFsdWVPZigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsK
KyAgICAgICAgfQorICAgIH07CisgICAgbGV0IGVycm9yID0gbnVsbDsKKworICAgIHRyeSB7Cisg
ICAgICAgIE1hdGgucG93KHZhbHVlLCAyKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisgICAgLy8gZ2xvYmFsLCBNYXRoLnBvdywgYW5kIHZhbHVlT2YuCisg
ICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQoIlxuIikubGVuZ3RoLCAzKTsKK30KKworewor
ICAgIGxldCB2YWx1ZSA9IHsKKyAgICAgICAgdmFsdWVPZigpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiTkciKTsKKyAgICAgICAgfQorICAgIH07CisgICAgbGV0IGVy
cm9yID0gbnVsbDsKKworICAgIHRyeSB7CisgICAgICAgIE1hdGgucG93KDIsIHZhbHVlKTsKKyAg
ICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgLy8gZ2xvYmFs
LCBNYXRoLnBvdywgYW5kIHZhbHVlT2YuCisgICAgc2hvdWxkQmUoZXJyb3Iuc3RhY2suc3BsaXQo
IlxuIikubGVuZ3RoLCAzKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3MvcG93LXdpdGgtY29uc3RhbnRzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9wb3ctd2l0aC1jb25zdGFudHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzllNmFmNzQx
ZDE2OTgzYTFiOWI5ZWYzMjU3N2QyYmQ0YWRlMDNmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcG93LXdpdGgtY29uc3RhbnRzLmpzCkBAIC0w
LDAgKzEsMjg1IEBACitmdW5jdGlvbiBleHBvbmVudElzWmVybyh4KSB7CisgICAgcmV0dXJuIHgg
KiogMDsKK30KK25vSW5saW5lKGV4cG9uZW50SXNaZXJvKTsKKworZnVuY3Rpb24gdGVzdEV4cG9u
ZW50SXNaZXJvKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc1plcm8oNSk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IDEpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHplcm9FeHBvbmVudCg1KSBzaG91bGQg
YmUgMSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzWmVybyg1LjUpOwor
ICAgICAgICBpZiAocmVzdWx0ICE9PSAxKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiB6ZXJv
RXhwb25lbnQoNS41KSBzaG91bGQgYmUgMSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0
ZXN0RXhwb25lbnRJc1plcm8oKTsKKworCitmdW5jdGlvbiBleHBvbmVudElzT25lKHgpIHsKKyAg
ICByZXR1cm4geCAqKiAxOworfQorbm9JbmxpbmUoZXhwb25lbnRJc09uZSk7CisKK2Z1bmN0aW9u
IHRlc3RFeHBvbmVudElzT25lKCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc09uZSg1KTsKKyAgICAgICAgaWYg
KHJlc3VsdCAhPT0gNSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc09uZSg1
KSBzaG91bGQgYmUgNSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzT25l
KDUuNSk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUuNSkKKyAgICAgICAgICAgIHRocm93ICJF
cnJvcjogZXhwb25lbnRJc09uZSg1LjUpIHNob3VsZCBiZSA1LjUsIHdhcyA9ICIgKyByZXN1bHQ7
CisgICAgfQorfQordGVzdEV4cG9uZW50SXNPbmUoKTsKKworCitmdW5jdGlvbiBwb3dVc2VkQXNT
cXJ0KHgpIHsKKyAgICByZXR1cm4geCAqKiAwLjU7Cit9Citub0lubGluZShwb3dVc2VkQXNTcXJ0
KTsKKworZnVuY3Rpb24gdGVzdFBvd1VzZWRBc1NxcnQoKSB7CisgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gcG93VXNlZEFzU3FydCg0KTsK
KyAgICAgICAgaWYgKHJlc3VsdCAhPT0gTWF0aC5zcXJ0KDQpKQorICAgICAgICAgICAgdGhyb3cg
IkVycm9yOiBwb3dVc2VkQXNTcXJ0KDQpIHNob3VsZCBiZSAyLCB3YXMgPSAiICsgcmVzdWx0Owor
ICAgICAgICByZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KDQuNCk7CisgICAgICAgIGlmIChyZXN1bHQg
IT09IE1hdGguc3FydCg0LjQpKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBwb3dVc2VkQXNT
cXJ0KDQpIHNob3VsZCBiZSAiICsgTWF0aC5zcXJ0KDQuNCkgKyAiLCB3YXMgPSAiICsgcmVzdWx0
OworICAgICAgICBpZiAocG93VXNlZEFzU3FydChJbmZpbml0eSkgIT09IEluZmluaXR5KQorICAg
ICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KEluZmluaXR5KSI7CisgICAgICAg
IGlmIChwb3dVc2VkQXNTcXJ0KC1JbmZpbml0eSkgIT09IEluZmluaXR5KQorICAgICAgICAgICAg
dGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KC1JbmZpbml0eSkiOworICAgICAgICBsZXQgbmFu
UmVzdWx0ID0gcG93VXNlZEFzU3FydChOYU4pCisgICAgICAgIGlmIChuYW5SZXN1bHQgPT09IG5h
blJlc3VsdCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3FydChOYU4pIjsK
KyAgICAgICAgbGV0IHplcm9SZXN1bHQgPSBwb3dVc2VkQXNTcXJ0KDAuKQorICAgICAgICBpZiAo
emVyb1Jlc3VsdCB8fCAoMSAvIHplcm9SZXN1bHQpICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAg
IHRocm93ICJGYWlsZWQgcG93VXNlZEFzU3FydCgwLikiOworICAgICAgICBsZXQgbmVnYXRpdmVa
ZXJvUmVzdWx0ID0gcG93VXNlZEFzU3FydCgtMCkKKyAgICAgICAgaWYgKG5lZ2F0aXZlWmVyb1Jl
c3VsdCB8fCAoMSAvIG5lZ2F0aXZlWmVyb1Jlc3VsdCkgIT09IEluZmluaXR5KQorICAgICAgICAg
ICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXJ0KC0wKSI7CisgICAgfQorfQordGVzdFBvd1Vz
ZWRBc1NxcnQoKTsKKworZnVuY3Rpb24gcG93VXNlZEFzT25lT3ZlclNxcnQoeCkgeworICAgIHJl
dHVybiB4ICoqIC0wLjU7Cit9Citub0lubGluZShwb3dVc2VkQXNPbmVPdmVyU3FydCk7CisKK2Z1
bmN0aW9uIHRlc3RQb3dVc2VkQXNPbmVPdmVyU3FydCgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDFlNDsgKytpKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBwb3dVc2VkQXNPbmVPdmVyU3Fy
dCg0KTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMC41KQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBwb3dVc2VkQXNPbmVPdmVyU3FydCg0KSBzaG91bGQgYmUgMC41LCB3YXMgPSAiICsgcmVz
dWx0OworICAgICAgICByZXN1bHQgPSBwb3dVc2VkQXNPbmVPdmVyU3FydCg0LjQpOworICAgICAg
ICBpZiAocmVzdWx0ICE9PSAxL01hdGguc3FydCg0LjQpKQorICAgICAgICAgICAgdGhyb3cgIkVy
cm9yOiBwb3dVc2VkQXNPbmVPdmVyU3FydCg0KSBzaG91bGQgYmUgIiArIDEvTWF0aC5zcXJ0KDQu
NCkgKyAiLCB3YXMgPSAiICsgcmVzdWx0OworICAgICAgICBpZiAocG93VXNlZEFzT25lT3ZlclNx
cnQoSW5maW5pdHkpICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNP
bmVPdmVyU3FydChJbmZpbml0eSkiOworICAgICAgICBpZiAocG93VXNlZEFzT25lT3ZlclNxcnQo
LUluZmluaXR5KSAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzT25l
T3ZlclNxcnQoLUluZmluaXR5KSI7CisgICAgICAgIGxldCBuYW5SZXN1bHQgPSBwb3dVc2VkQXNP
bmVPdmVyU3FydChOYU4pCisgICAgICAgIGlmIChuYW5SZXN1bHQgPT09IG5hblJlc3VsdCkKKyAg
ICAgICAgICAgIHRocm93ICJGYWlsZWQgcG93VXNlZEFzT25lT3ZlclNxcnQoTmFOKSI7CisgICAg
ICAgIGlmIChwb3dVc2VkQXNPbmVPdmVyU3FydCgwKSAhPT0gSW5maW5pdHkpCisgICAgICAgICAg
ICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc09uZU92ZXJTcXJ0KDApIjsKKyAgICAgICAgaWYgKHBv
d1VzZWRBc09uZU92ZXJTcXJ0KC0wLikgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cg
IkZhaWxlZCBwb3dVc2VkQXNPbmVPdmVyU3FydCgtMC4pIjsKKyAgICB9Cit9Cit0ZXN0UG93VXNl
ZEFzT25lT3ZlclNxcnQoKTsKKworZnVuY3Rpb24gcG93VXNlZEFzU3F1YXJlKHgpIHsKKyAgICBy
ZXR1cm4geCAqKiAyOworfQorbm9JbmxpbmUocG93VXNlZEFzU3F1YXJlKTsKKworZnVuY3Rpb24g
dGVzdFBvd1VzZWRBc1NxdWFyZSgpIHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNDsgKytp
KSB7CisgICAgICAgIGxldCByZXN1bHQgPSBwb3dVc2VkQXNTcXVhcmUoMik7CisgICAgICAgIGlm
IChyZXN1bHQgIT09IDQpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IHBvd1VzZWRBc1NxdWFy
ZSg0KSBzaG91bGQgYmUgMiwgd2FzID0gIiArIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gcG93
VXNlZEFzU3F1YXJlKDQuNCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDE5LjM2MDAwMDAwMDAw
MDAwMykKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNlZEFzU3F1YXJlKDQpIHNob3Vs
ZCBiZSAiICsgMTkuMzYwMDAwMDAwMDAwMDAzICsgIiwgd2FzID0gIiArIHJlc3VsdDsKKyAgICAg
ICAgcmVzdWx0ID0gcG93VXNlZEFzU3F1YXJlKE1hdGguUEkpOworICAgICAgICBpZiAocmVzdWx0
ICE9PSA5Ljg2OTYwNDQwMTA4OTM1OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogcG93VXNl
ZEFzU3F1YXJlKDQpIHNob3VsZCBiZSAiICsgOS44Njk2MDQ0MDEwODkzNTggKyAiLCB3YXMgPSAi
ICsgcmVzdWx0OworICAgICAgICBpZiAocG93VXNlZEFzU3F1YXJlKEluZmluaXR5KSAhPT0gSW5m
aW5pdHkpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBvd1VzZWRBc1NxdWFyZShJbmZpbml0
eSkiOworICAgICAgICBpZiAocG93VXNlZEFzU3F1YXJlKC1JbmZpbml0eSkgIT09IEluZmluaXR5
KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVhcmUoLUluZmluaXR5KSI7
CisgICAgICAgIGxldCBuYW5SZXN1bHQgPSBwb3dVc2VkQXNTcXVhcmUoTmFOKQorICAgICAgICBp
ZiAobmFuUmVzdWx0ID09PSBuYW5SZXN1bHQpCisgICAgICAgICAgICB0aHJvdyAiRmFpbGVkIHBv
d1VzZWRBc1NxdWFyZShOYU4pIjsKKyAgICAgICAgbGV0IHplcm9SZXN1bHQgPSBwb3dVc2VkQXNT
cXVhcmUoMC4pCisgICAgICAgIGlmICh6ZXJvUmVzdWx0IHx8ICgxIC8gemVyb1Jlc3VsdCkgIT09
IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVhcmUoMC4p
IjsKKyAgICAgICAgbGV0IG5lZ2F0aXZlWmVyb1Jlc3VsdCA9IHBvd1VzZWRBc1NxdWFyZSgtMCkK
KyAgICAgICAgaWYgKG5lZ2F0aXZlWmVyb1Jlc3VsdCB8fCAoMSAvIG5lZ2F0aXZlWmVyb1Jlc3Vs
dCkgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCBwb3dVc2VkQXNTcXVh
cmUoLTApIjsKKyAgICB9Cit9Cit0ZXN0UG93VXNlZEFzU3F1YXJlKCk7CisKK2Z1bmN0aW9uIGlu
dEludENvbnN0YW50c1NtYWxsTnVtYmVycygpIHsKKyAgICByZXR1cm4gNDIgKiogMzsKK30KK2Z1
bmN0aW9uIGludEludENvbnN0YW50c0xhcmdlTnVtYmVycygpIHsKKyAgICAvLyBUaGUgcmVzdWx0
IGRvZXMgbm90IGZpdCBpbiBhIGludGVnZXIuCisgICAgcmV0dXJuIDQyICoqIDQyOworfQorZnVu
Y3Rpb24gaW50SW50U21hbGxDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDQyICoqIDM7Cit9Citm
dW5jdGlvbiBpbnREb3VibGVDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDE0ICoqIDQyLjU7Cit9
CitmdW5jdGlvbiBkb3VibGVEb3VibGVDb25zdGFudHMoKSB7CisgICAgcmV0dXJuIDEzLjUgKiog
NDIuNTsKK30KK2Z1bmN0aW9uIGRvdWJsZUludENvbnN0YW50cygpIHsKKyAgICByZXR1cm4gMTMu
NSAqKiA1MjsKK30KK25vSW5saW5lKGludEludENvbnN0YW50c1NtYWxsTnVtYmVycyk7Citub0lu
bGluZShpbnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMpOworbm9JbmxpbmUoaW50RG91YmxlQ29u
c3RhbnRzKTsKK25vSW5saW5lKGRvdWJsZURvdWJsZUNvbnN0YW50cyk7Citub0lubGluZShkb3Vi
bGVJbnRDb25zdGFudHMpOworCitmdW5jdGlvbiB0ZXN0QmFzZUFuZEV4cG9uZW50Q29uc3RhbnRM
aXRlcmFscygpCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAg
ICAgIHZhciByZXN1bHQgPSBpbnRJbnRDb25zdGFudHNTbWFsbE51bWJlcnMoKTsKKyAgICAgICAg
aWYgKHJlc3VsdCAhPT0gNzQwODgpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGludEludENv
bnN0YW50c1NtYWxsTnVtYmVycygpIHNob3VsZCBiZSA3NDA4OCwgd2FzID0gIiArIHJlc3VsdDsK
KyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZh
ciByZXN1bHQgPSBpbnRJbnRDb25zdGFudHNMYXJnZU51bWJlcnMoKTsKKyAgICAgICAgaWYgKHJl
c3VsdCAhPT0gMS41MDEzMDkzNzU0NTI5NjU2ZSs2OCkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogaW50SW50Q29uc3RhbnRzTGFyZ2VOdW1iZXJzKCkgc2hvdWxkIGJlIDEuNTAxMzA5Mzc1NDUy
OTY1NmUrNjgsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gaW50RG91YmxlQ29uc3RhbnRz
KCk7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDUuMTMzODMwMzg4MjAxNTc2NWUrNDgpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGludERvdWJsZUNvbnN0YW50cygpIHNob3VsZCBiZSA1LjEz
MzgzMDM4ODIwMTU3NjVlKzQ4LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGRvdWJsZURv
dWJsZUNvbnN0YW50cygpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAxLjA5NDQyMjg3Mjk2NDc4
MjllKzQ4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBkb3VibGVEb3VibGVDb25zdGFudHMo
KSBzaG91bGQgYmUgMS4wOTQ0MjI4NzI5NjQ3ODI5ZSs0OCwgd2FzID0gIiArIHJlc3VsdDsKKyAg
ICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciBy
ZXN1bHQgPSBkb3VibGVJbnRDb25zdGFudHMoKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNS45
ODkwMjI3MzUzMTExNThlKzU4KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBkb3VibGVJbnRD
b25zdGFudHMoKSBzaG91bGQgYmUgNS45ODkwMjI3MzUzMTExNThlKzU4LCB3YXMgPSAiICsgcmVz
dWx0OworICAgIH0KK30KK3Rlc3RCYXNlQW5kRXhwb25lbnRDb25zdGFudExpdGVyYWxzKCk7CisK
KworZnVuY3Rpb24gZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCh4KSB7CisgICAgcmV0dXJuIHgg
KiogNDI7Cit9Citub0lubGluZShleHBvbmVudElzSW50ZWdlckNvbnN0YW50KTsKKworZnVuY3Rp
b24gdGVzdEV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbnRlZ2Vy
Q29uc3RhbnQoMik7CisgICAgICAgIGlmIChyZXN1bHQgIT09IDQzOTgwNDY1MTExMDQpCisgICAg
ICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9uZW50SXNJbnRlZ2VyQ29uc3RhbnQoMikgc2hvdWxk
IGJlIDQzOTgwNDY1MTExMDQsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElz
SW50ZWdlckNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0ICE9PSAyLjI3MzczNjc1NDQz
MjMyMDdlKzI5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzSW50ZWdlckNv
bnN0YW50KDUpIHNob3VsZCBiZSAyLjI3MzczNjc1NDQzMjMyMDdlKzI5LCB3YXMgPSAiICsgcmVz
dWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgyLjEpOworICAgICAgICBp
ZiAocmVzdWx0ICE9PSAzNDEzNTgyMzA2NzQxMi40MikKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogZXhwb25lbnRJc0ludGVnZXJDb25zdGFudCgyLjEpIHNob3VsZCBiZSAzNDEzNTgyMzA2NzQx
Mi40Miwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25lbnRJc0ludGVnZXJD
b25zdGFudCgpOworCisKK2Z1bmN0aW9uIGV4cG9uZW50SXNEb3VibGVDb25zdGFudCh4KSB7Cisg
ICAgcmV0dXJuIHggKiogNDIuNTsKK30KK25vSW5saW5lKGV4cG9uZW50SXNEb3VibGVDb25zdGFu
dCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQoKSB7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9u
ZW50SXNEb3VibGVDb25zdGFudCgyKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gNjIxOTc3NzAy
Mzk1MC45NSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJsZUNvbnN0
YW50KDIpIHNob3VsZCBiZSA2MjE5Nzc3MDIzOTUwLjk1LCB3YXMgPSAiICsgcmVzdWx0OworICAg
IH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgcmVz
dWx0ID0gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDUpOworICAgICAgICBpZiAocmVzdWx0ICE9
PSA1LjA4NDIyOTk0NTg1MDQxNWUrMjkpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4cG9u
ZW50SXNEb3VibGVDb25zdGFudCg1KSBzaG91bGQgYmUgNS4wODQyMjk5NDU4NTA0MTVlKzI5LCB3
YXMgPSAiICsgcmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsr
aSkgeworICAgICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDIuMSk7
CisgICAgICAgIGlmIChyZXN1bHQgIT09IDQ5NDY3NTA3MjYxMTEzLjgwNSkKKyAgICAgICAgICAg
IHRocm93ICJFcnJvcjogZXhwb25lbnRJc0RvdWJsZUNvbnN0YW50KDIuMSkgc2hvdWxkIGJlIDQ5
NDY3NTA3MjYxMTEzLjgwNSwgd2FzID0gIiArIHJlc3VsdDsKKyAgICB9Cit9Cit0ZXN0RXhwb25l
bnRJc0RvdWJsZUNvbnN0YW50KCk7CisKKworZnVuY3Rpb24gZXhwb25lbnRJc0luZmluaXR5Q29u
c3RhbnQoeCkgeworICAgIHJldHVybiB4ICoqIEluZmluaXR5OworfQorbm9JbmxpbmUoZXhwb25l
bnRJc0luZmluaXR5Q29uc3RhbnQpOworCitmdW5jdGlvbiB0ZXN0RXhwb25lbnRJc0luZmluaXR5
Q29uc3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KDIpOworICAgICAgICBp
ZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25l
bnRJc0luZmluaXR5Q29uc3RhbnQoMikgc2hvdWxkIGJlIEluZmluaXR5LCB3YXMgPSAiICsgcmVz
dWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAg
ICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc0luZmluaXR5Q29uc3RhbnQoNSk7CisgICAgICAgIGlm
IChyZXN1bHQgIT09IEluZmluaXR5KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVu
dElzSW5maW5pdHlDb25zdGFudCg1KSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIgKyByZXN1
bHQ7CisgICAgfQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBleHBvbmVudElzSW5maW5pdHlDb25zdGFudCgyLjEpOworICAgICAgICBp
ZiAocmVzdWx0ICE9PSBJbmZpbml0eSkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhwb25l
bnRJc0luZmluaXR5Q29uc3RhbnQoMi4xKSBzaG91bGQgYmUgSW5maW5pdHksIHdhcyA9ICIgKyBy
ZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNJbmZpbml0eUNvbnN0YW50KCk7CisKKwor
ZnVuY3Rpb24gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCh4KSB7CisgICAgcmV0
dXJuIHggKiogLUluZmluaXR5OworfQorbm9JbmxpbmUoZXhwb25lbnRJc05lZ2F0aXZlSW5maW5p
dHlDb25zdGFudCk7CisKK2Z1bmN0aW9uIHRlc3RFeHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNv
bnN0YW50KCkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAg
IHZhciByZXN1bHQgPSBleHBvbmVudElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIpOworICAg
ICAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVu
dElzTmVnYXRpdmVJbmZpbml0eUNvbnN0YW50KDIpIHNob3VsZCBiZSB6ZXJvLCB3YXMgPSAiICsg
cmVzdWx0OworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAg
ICAgICB2YXIgcmVzdWx0ID0gZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCg1KTsK
KyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJvcjogZXhw
b25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCg1KSBzaG91bGQgYmUgemVybywgd2FzID0g
IiArIHJlc3VsdDsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsK
KyAgICAgICAgdmFyIHJlc3VsdCA9IGV4cG9uZW50SXNOZWdhdGl2ZUluZmluaXR5Q29uc3RhbnQo
Mi4xKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgICAgIHRocm93ICJFcnJv
cjogZXhwb25lbnRJc05lZ2F0aXZlSW5maW5pdHlDb25zdGFudCgyLjEpIHNob3VsZCBiZSB6ZXJv
LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0KK30KK3Rlc3RFeHBvbmVudElzTmVnYXRpdmVJbmZp
bml0eUNvbnN0YW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Bvdy13aXRoLW5ldmVyLU5hTi1leHBvbmVudC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvcG93LXdpdGgtbmV2ZXItTmFOLWV4cG9uZW50LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNkNmI5OTFhYTIwMmE0MjRjYWYyNWQyYWYxOTlkNTk5MmVhYTFjMmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Bvdy13aXRoLW5ldmVy
LU5hTi1leHBvbmVudC5qcwpAQCAtMCwwICsxLDI0IEBACitmdW5jdGlvbiBleHBvbmVudElzTm9u
TmFuRG91YmxlMSh4LCBkb3VibGVBcnJheUluZGV4KSB7CisgICAgdmFyIGRvdWJsZUFycmF5ID0g
WzQuNF07CisgICAgcmV0dXJuIHggKiogZG91YmxlQXJyYXlbZG91YmxlQXJyYXlJbmRleF07Cit9
Citub0lubGluZShleHBvbmVudElzTm9uTmFuRG91YmxlMSk7CisKK2Z1bmN0aW9uIGV4cG9uZW50
SXNOb25OYW5Eb3VibGUyKHgsIGRvdWJsZUFycmF5KSB7CisgICAgcmV0dXJuIHggKiogZG91Ymxl
QXJyYXlbMF07Cit9Citub0lubGluZShleHBvbmVudElzTm9uTmFuRG91YmxlMik7CisKK2Z1bmN0
aW9uIHRlc3RFeHBvbmVudElzRG91YmxlQ29uc3RhbnQoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKSB7CisgICAgICAgIHZhciByZXN1bHQgPSBleHBvbmVudElzTm9uTmFu
RG91YmxlMSgyLCAwKTsKKyAgICAgICAgaWYgKHJlc3VsdCAhPT0gMjEuMTEyMTI2NTcyMzY2MzE0
KQorICAgICAgICAgICAgdGhyb3cgIkVycm9yOiBleHBvbmVudElzTm9uTmFuRG91YmxlMSgyLCAw
KSBzaG91bGQgYmUgMjEuMTEyMTI2NTcyMzY2MzE0LCB3YXMgPSAiICsgcmVzdWx0OworICAgIH0K
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IGV4cG9uZW50SXNOb25OYW5Eb3VibGUyKDMsIFstMS41XSk7CisgICAgICAgIGlmIChyZXN1
bHQgIT09IDAuMTkyNDUwMDg5NzI5ODc1MjYpCisgICAgICAgICAgICB0aHJvdyAiRXJyb3I6IGV4
cG9uZW50SXNOb25OYW5Eb3VibGUyKDMsIFstMS41XSkgc2hvdWxkIGJlIDAuMTkyNDUwMDg5NzI5
ODc1MjYsIHdhcyA9ICIgKyByZXN1bHQ7CisgICAgfQorfQordGVzdEV4cG9uZW50SXNEb3VibGVD
b25zdGFudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3Rlc3Qy
NjIueWFtbCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy90ZXN0MjYyLnlhbWwKaW5kZXgg
MGM4NDViMzVjNTQyNThhZjI1ZDhiMWE0OGZlNGUyYjFhN2FjYWY1Mi4uODQ1ZDU0ZDBhOTEzMzgz
ODI5YjhjNTBjODFkYjAwNTQyZjUyZTUwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3Rlc3QyNjIueWFtbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
dGVzdDI2Mi55YW1sCkBAIC02MDgyMiwxMTMgKzYwODIyLDExMyBAQAogLSBwYXRoOiB0ZXN0MjYy
L3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXF1YWxzL3N5bWJvbC1zdHJpY3QtZXF1YWxpdHkt
Y29tcGFyaXNvbi5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEuanMKLSAgY21k
OiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVu
VGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0ExLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMC5q
cwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8u
Li9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQog
LSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24v
YXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMTAuanMKICAgY21kOiBydW5UZXN0MjYyIDpub3Jt
YWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9w
ZXJhdG9yX0ExMS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50
aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTExLmpzCi0gIGNtZDogcnVuVGVzdDI2
MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0
MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10
aGUtZXhwLW9wZXJhdG9yX0ExMi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEyLmpzCi0gIGNtZDog
cnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21k
OiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAt
IHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9h
cHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4
cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTEzLmpz
Ci0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmlj
dF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNC5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpu
b3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xh
bmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0
b3JfQTE0LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNS5qcwotICBjbWQ6
IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5U
ZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3Nl
cnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2
Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1l
eHAtb3BlcmF0b3JfQTE1LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0ExNi5q
cwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAg
Y21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFy
bmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0
aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5
aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE2LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5v
RXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8u
Li9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJh
dG9yX0ExNy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4v
Li4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMi
XSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
W10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE3LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYy
IDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0ExOC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIs
IFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9z
dGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4
cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE4LmpzCi0gIGNtZDogcnVu
VGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBs
eWluZy10aGUtZXhwLW9wZXJhdG9yX0ExOS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJl
c3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTE5LmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlh
dGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
Mi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhw
b25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMjAuanMKLSAgY21kOiBydW5U
ZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2
MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0Lmpz
IiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVz
dC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9w
ZXJhdG9yX0EyMC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24i
LCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
c3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVz
c2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BMjEuanMKLSAg
Y21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDog
cnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRl
c3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10
aGUtZXhwLW9wZXJhdG9yX0EyMS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
MjIuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtd
CisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4u
L2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAt
IHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9h
cHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMi5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9y
bWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rl
c3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1v
cGVyYXRvcl9BMjMuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBb
Ii4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3Rh
LmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0EyMy5qcwotICBjbWQ6IHJ1blRlc3Qy
NjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVz
dDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0
LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0
ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmct
dGhlLWV4cC1vcGVyYXRvcl9BMy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlv
biIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVz
cy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25z
L2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTMuanMKLSAgY21kOiBy
dW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6
IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNz
L2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0g
cGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2Fw
cGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTQuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9F
eGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4u
L2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E0LmpzCi0g
IGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0K
KyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4v
aGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJp
Y3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlh
dGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E1LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6
ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3Vh
Z2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9B
NS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4u
Ly4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0s
IFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhw
b25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRvcl9BNi5qcwotICBjbWQ6IHJ1blRl
c3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYy
IDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMi
LCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3Bl
cmF0b3JfQTYuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpz
Il0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwg
WyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0
YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Np
b25zL2V4cG9uZW50aWF0aW9uL2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTcuanMKLSAgY21k
OiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3Mv
YXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVu
VGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNz
ZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3Qy
NjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUt
ZXhwLW9wZXJhdG9yX0E3LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9u
IiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L3N0YS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2Vw
dGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9l
eHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9hcHBseWluZy10aGUtZXhwLW9wZXJhdG9yX0E4Lmpz
Ci0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9o
YXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBj
bWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRo
OiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlp
bmctdGhlLWV4cC1vcGVyYXRvcl9BOC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4
Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4v
aGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFu
Z3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vYXBwbHlpbmctdGhlLWV4cC1vcGVyYXRv
cl9BOS5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4v
Li4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwg
W10KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10K
IC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9u
L2FwcGx5aW5nLXRoZS1leHAtb3BlcmF0b3JfQTkuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1hc3NpZ25tZW50LW9w
ZXJhdG9yLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8u
Li8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBb
XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRp
b24vZXhwLWFzc2lnbm1lbnQtb3BlcmF0b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAi
Tm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4u
Ly4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1h
bCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8u
Li8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0
L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1ldmFsdWF0
aW9uLW9yZGVyLmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIu
Li8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5q
cyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRp
YXRpb24vZXhwLW9wZXJhdG9yLWV2YWx1YXRpb24tb3JkZXIuanMKLSAgY21kOiBydW5UZXN0MjYy
IDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3Qy
NjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVz
dDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRv
ci1wcmVjZWRlbmNlLXVuYXJ5LWV4cHJlc3Npb24tc2VtYW50aWNzLmpzCi0gIGNtZDogcnVuVGVz
dDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5q
cyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIg
Om5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXByZWNlZGVu
Y2UtdW5hcnktZXhwcmVzc2lvbi1zZW1hbnRpY3MuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1wcmVj
ZWRlbmNlLXVwZGF0ZS1leHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIg
OmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAi
Li4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KKyAgY21kOiBydW5UZXN0MjYyIDpub3Jt
YWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4v
Li4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1
YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0aW9uL2V4cC1vcGVyYXRvci1wcmVjZWRlbmNlLXVw
ZGF0ZS1leHByZXNzaW9uLXNlbWFudGljcy5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJO
b0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4v
Li4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFs
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3Qv
bGFuZ3VhZ2UvZXhwcmVzc2lvbnMvZXhwb25lbnRpYXRpb24vZXhwLW9wZXJhdG9yLXN5bnRheC1l
cnJvci1iaXRub3QtdW5hcnktZXhwcmVzc2lvbi1iYXNlLmpzCiAgIGNtZDogcnVuVGVzdDI2MiA6
bm9ybWFsLCAiU3ludGF4RXJyb3IiLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwg
Ii4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9s
YW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3Itc3ludGF4LWVy
cm9yLWJpdG5vdC11bmFyeS1leHByZXNzaW9uLWJhc2UuanMKQEAgLTYwOTU4LDkgKzYwOTU4LDkg
QEAKIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2V4cG9uZW50aWF0
aW9uL2V4cC1vcGVyYXRvci1zeW50YXgtZXJyb3Itdm9pZC11bmFyeS1leHByZXNzaW9uLWJhc2Uu
anMKICAgY21kOiBydW5UZXN0MjYyIDpub3JtYWwsICJTeW50YXhFcnJvciIsIFsiLi4vLi4vLi4v
Li4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpz
dHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy9leHBvbmVu
dGlhdGlvbi9leHAtb3BlcmF0b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNl
cHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hh
cm5lc3Mvc3RhLmpzIl0sIFtdCisgIGNtZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRp
b24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5l
c3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9u
cy9leHBvbmVudGlhdGlvbi9leHAtb3BlcmF0b3IuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWls
LCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4u
Ly4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90
ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2Z1bmN0aW9uL1MxMC4xLjFfQTFfVDIuanMKICAgY21k
OiBydW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVz
cy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgW10KIC0gcGF0aDog
dGVzdDI2Mi90ZXN0L2xhbmd1YWdlL2V4cHJlc3Npb25zL2Z1bmN0aW9uL1MxMC4xLjFfQTFfVDIu
anMK
</data>
<flag name="review"
          id="307768"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>