<?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>174697</bug_id>
          
          <creation_ts>2017-07-20 16:33:44 -0700</creation_ts>
          <short_desc>Add the ability to change sp and pc to the ARM64 JIT probe.</short_desc>
          <delta_ts>2017-07-26 11:32:11 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174645</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1330822</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-20 16:33:44 -0700</bug_when>
    <thetext>It&apos;s not possible to change the value of the pc on ARM64 without using a gpr.  For this reason and because previous use cases of JIT probes aim first to preserve register values, this ability to change sp and pc was not supported on the ARM64 JIT probe.  

However, we&apos;ll now need this in order to use the JIT probes for implementing OSR exits.  So, we&apos;ll add it by using the lr register for the pc dispatch.  In JIT code, lr is never used for any other purpose than to modify pc anyway.  Additionally, at all OSR exit sites, we are guaranteed that lr will not contain any interesting values that we&apos;ll need to preserve.  So, it is ok to let the JIT probe use lr for changing the pc.

&lt;rdar://problem/33436965&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331854</commentid>
    <comment_count>1</comment_count>
      <attachid>316346</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-24 20:52:10 -0700</bug_when>
    <thetext>Created attachment 316346
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331855</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-24 20:53:40 -0700</bug_when>
    <thetext>Attachment 316346 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:226:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:271:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:272:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:318:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:423:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:474:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331856</commentid>
    <comment_count>3</comment_count>
      <attachid>316346</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-24 20:53:55 -0700</bug_when>
    <thetext>Comment on attachment 316346
proposed patch.

Added patch to the wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332231</commentid>
    <comment_count>4</comment_count>
      <attachid>316423</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-25 20:16:14 -0700</bug_when>
    <thetext>Created attachment 316423
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332234</commentid>
    <comment_count>5</comment_count>
      <attachid>316425</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-25 20:32:28 -0700</bug_when>
    <thetext>Created attachment 316425
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332257</commentid>
    <comment_count>6</comment_count>
      <attachid>316425</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-07-25 22:06:51 -0700</bug_when>
    <thetext>Comment on attachment 316425
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:239
&gt; +#define IN_ERROR_FUNCTION_OFFSET   (6 * PTR_SIZE)

Wouldn&apos;t offsetof be more natural to use instead of the macros? Especially given the static_assert below. Or is this because you&apos;re passing it to the assembler?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:282
&gt; +    &quot;.align 4&quot; &quot;\n&quot;

.align is ambiguous between assemblers. .balign and .p2align are better IMO.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:304
&gt; +    &quot;mrs       x1, fpsr&quot; &quot;\n&quot; // Preload fpsr.

I think you should issue one of the two mrs right after the stp x0, x1, and the other a few cycles later.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:316
&gt; +    &quot;stp       x22, x23,[sp, #&quot; STRINGIZE_VALUE_OF(PROBE_CPU_X22_OFFSET) &quot;]&quot; &quot;\n&quot;

Missing a space before the bracket.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:324
&gt; +    &quot;str       lr, [sp, #&quot; STRINGIZE_VALUE_OF(SAVED_PROBE_RETURN_PC_OFFSET) &quot;]&quot; &quot;\n&quot;

Can the above two be stp lr, x6 [sp, PC_OFFSET] ?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:333
&gt; +    &quot;add       x9, sp, #&quot; STRINGIZE_VALUE_OF(PROBE_CPU_Q0_OFFSET) &quot;\n&quot;

x9 is only used for indexing, right? Can you add Q0_OFFSET to sp below instead of using x9?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:476
&gt; +    &quot;beq     &quot; LOCAL_LABEL_STRING(ctiMasmProbeTrampolineEnd) &quot;\n&quot;

Here you can use cbz / cbnz.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:478
&gt; +    // In order to restore lr, we need to do the restorationation at the probe return site.

&quot;restorationation&quot;

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:518
&gt; +    &quot;add       sp, sp, #&quot; STRINGIZE_VALUE_OF(OUT_SIZE) &quot;\n&quot;

Here I think you could have used incrementing ldp instead of adding at the end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332339</commentid>
    <comment_count>7</comment_count>
      <attachid>316425</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-26 07:52:54 -0700</bug_when>
    <thetext>Comment on attachment 316425
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:239
&gt;&gt; +#define IN_ERROR_FUNCTION_OFFSET   (6 * PTR_SIZE)
&gt; 
&gt; Wouldn&apos;t offsetof be more natural to use instead of the macros? Especially given the static_assert below. Or is this because you&apos;re passing it to the assembler?

This is used to embed offset values in the inline asm below.  We can&apos;t use offsetof in inline asm constants.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:282
&gt;&gt; +    &quot;.align 4&quot; &quot;\n&quot;
&gt; 
&gt; .align is ambiguous between assemblers. .balign and .p2align are better IMO.

I&apos;ll go with &quot;.balign 16&quot;.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:304
&gt;&gt; +    &quot;mrs       x1, fpsr&quot; &quot;\n&quot; // Preload fpsr.
&gt; 
&gt; I think you should issue one of the two mrs right after the stp x0, x1, and the other a few cycles later.

I presume you&apos;re suggesting this to optimize for instruction scheduling?  I&apos;ll apply the change.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:316
&gt;&gt; +    &quot;stp       x22, x23,[sp, #&quot; STRINGIZE_VALUE_OF(PROBE_CPU_X22_OFFSET) &quot;]&quot; &quot;\n&quot;
&gt; 
&gt; Missing a space before the bracket.

Will fix.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:324
&gt;&gt; +    &quot;str       lr, [sp, #&quot; STRINGIZE_VALUE_OF(SAVED_PROBE_RETURN_PC_OFFSET) &quot;]&quot; &quot;\n&quot;
&gt; 
&gt; Can the above two be stp lr, x6 [sp, PC_OFFSET] ?

I can give it a try.  It depends on the alignment, but I should be able to make it work one way or the other.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:333
&gt;&gt; +    &quot;add       x9, sp, #&quot; STRINGIZE_VALUE_OF(PROBE_CPU_Q0_OFFSET) &quot;\n&quot;
&gt; 
&gt; x9 is only used for indexing, right? Can you add Q0_OFFSET to sp below instead of using x9?

I used to do the indexing off of sp.  The whole reason for introducing a new base register x9 is because your favorite &quot;stp&quot; instruction is limited in what offsets it can take.  As a reasult, some of the last stores below (maybe 3 of them) cannot be encoded in a stp instruction if I use sp.  So, I switched to x9 just for consistency of how we store to the set of saved fprs.

So, no.  We cannot index off of sp.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:476
&gt;&gt; +    &quot;beq     &quot; LOCAL_LABEL_STRING(ctiMasmProbeTrampolineEnd) &quot;\n&quot;
&gt; 
&gt; Here you can use cbz / cbnz.

I&apos;ll look into it.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:478
&gt;&gt; +    // In order to restore lr, we need to do the restorationation at the probe return site.
&gt; 
&gt; &quot;restorationation&quot;

Will fix.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:518
&gt;&gt; +    &quot;add       sp, sp, #&quot; STRINGIZE_VALUE_OF(OUT_SIZE) &quot;\n&quot;
&gt; 
&gt; Here I think you could have used incrementing ldp instead of adding at the end.

How do I do that?  OUT_SIZE is 6 * 8 bytes.  Doesn&apos;t post-increment only increment by the size of values read i.e. 16 bytes in this case?

Oh ... you mean change all 3 ldps to be post-increment.  I&apos;ll look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332383</commentid>
    <comment_count>8</comment_count>
      <attachid>316425</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-26 10:47:32 -0700</bug_when>
    <thetext>Comment on attachment 316425
proposed patch.

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

&gt;&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:324
&gt;&gt;&gt; +    &quot;str       lr, [sp, #&quot; STRINGIZE_VALUE_OF(SAVED_PROBE_RETURN_PC_OFFSET) &quot;]&quot; &quot;\n&quot;
&gt;&gt; 
&gt;&gt; Can the above two be stp lr, x6 [sp, PC_OFFSET] ?
&gt; 
&gt; I can give it a try.  It depends on the alignment, but I should be able to make it work one way or the other.

Turns out I can&apos;t do this either because stp offsets have limited range: &quot;error: index must be a multiple of 8 in range [-512, 504].&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332391</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-26 11:32:11 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r219951: &lt;http://trac.webkit.org/r219951&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316346</attachid>
            <date>2017-07-24 20:52:10 -0700</date>
            <delta_ts>2017-07-24 20:53:55 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-174809.patch</filename>
            <type>text/plain</type>
            <size>44947</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5ODU1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE3LTA3LTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYnVncyBpbiBwcm9iZSBjb2RlIHRvIGNoYW5nZSBzcCBvbiB4ODYsIHg4Nl82NCBhbmQgMzIt
Yml0IEFSTS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NDgwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM1MDQ3NTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gV2hlbiB0aGUgcHJvYmUgaGFu
ZGxlciBmdW5jdGlvbiBjaGFuZ2VzIHRoZSBzcCByZWdpc3RlciB0byBwb2ludCB0byB0aGUKKyAg
ICAgICAgICAgcmVnaW9uIG9mIHN0YWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIFByb2JlQ29udGV4
dCBvbiB0aGUgc3RhY2ssIHRoZXJlIGlzIGEKKyAgICAgICAgICAgYnVnIHdoZXJlIHRoZSBQcm9i
ZUNvbnRleHQncyByZWdpc3RlciB2YWx1ZXMgdG8gYmUgcmVzdG9yZWQgY2FuIGJlIG92ZXItd3Jp
dHRlbgorICAgICAgICAgICBiZWZvcmUgdGhleSBjYW4gYmUgcmVzdG9yZWQuICBUaGlzIGlzIG5v
dyBmaXhlZC4KKworICAgICAgICAyLiBBZGRlZCBtb3JlIHJvYnVzdCBwcm9iZSB0ZXN0cyBmb3Ig
Y2hhbmdpbmcgdGhlIHNwIHJlZ2lzdGVyLgorCisgICAgICAgIDMuIE1hZGUgZXhpc3RpbmcgcHJv
YmUgdGVzdHMgdG8gZW5zdXJlIHRoYXQgcHJvYmUgaGFuZGxlcnMgd2VyZSBhY3R1YWxseSBjYWxs
ZWQuCisKKyAgICAgICAgNC4gQWRkZWQgc29tZSB2ZXJpZmljYXRpb24gdG8gdGVzdFByb2JlUHJl
c2VydmVzR1BSUygpLgorCisgICAgICAgIDUuIENoYW5nZSBhbGwgdGhlIHByb2JlIHRlc3RzIHRv
IGZhaWwgZWFybHkgb24gZGlzY292ZXJpbmcgYW4gZXJyb3IgaW5zdGVhZCBvZgorICAgICAgICAg
ICBiYXRjaGluZyB0aWxsIHRoZSBlbmQgb2YgdGhlIHRlc3QuICBUaGlzIGhlbHBzIHBvaW50IGEg
ZmluZ2VyIHRvIHRoZSBmYWlsaW5nCisgICAgICAgICAgIGlzc3VlIGVhcmxpZXIuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCB3YXMgdGVzdGVkIG9uIHg4NiwgeDg2XzY0LCBhbmQgQVJNdjcuICBBUk02
NCBwcm9iZSBjb2RlIHdpbGwgYmUgZml4ZWQKKyAgICAgICAgbmV4dCBpbiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0Njk3LgorCisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNLmNwcDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmNwcDoKKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0
ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2Jl
V3JpdGVzQXJndW1lbnRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVQcmVzZXJ2
ZXNHUFJTKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIpOgor
ICAgICAgICAoSlNDOjp0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVD
b250ZXh0T25TdGFjayk6CisgICAgICAgIChKU0M6OnRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2lu
dGVyVG9OQnl0ZXNCZWxvd1NQKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9n
cmFtQ291bnRlcik6CisgICAgICAgIChKU0M6OnJ1bik6CisKIDIwMTctMDctMjQgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEdhcmRlbmluZzogZml4ZWQgQyBMb29w
IGJ1aWxkIGFmdGVyIHIyMTk3OTAuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAkocmV2aXNpb24gMjE5ODU1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNSw4ICsyMTUsOCBAQCBhc20gKAogCiAgICAgLy8gTWFjcm9B
c3NlbWJsZXJBUk06OnByb2JlKCkgaGFzIGFscmVhZHkgZ2VuZXJhdGVkIGNvZGUgdG8gc3RvcmUg
c29tZSB2YWx1ZXMuCiAgICAgLy8gVGhlIHRvcCBvZiBzdGFjayBub3cgbG9va3MgbGlrZSB0aGlz
OgotICAgIC8vICAgICBlc3BbMCAqIHB0clNpemVdOiBwcm9iZUZ1bmN0aW9uCi0gICAgLy8gICAg
IGVzcFsxICogcHRyU2l6ZV06IGFyZworICAgIC8vICAgICBlc3BbMCAqIHB0clNpemVdOiBwcm9i
ZSBoYW5kbGVyIGZ1bmN0aW9uCisgICAgLy8gICAgIGVzcFsxICogcHRyU2l6ZV06IHByb2JlIGFy
ZwogICAgIC8vICAgICBlc3BbMiAqIHB0clNpemVdOiBzYXZlZCByMyAvIFMwCiAgICAgLy8gICAg
IGVzcFszICogcHRyU2l6ZV06IHNhdmVkIGlwCiAgICAgLy8gICAgIGVzcFs0ICogcHRyU2l6ZV06
IHNhdmVkIGxyCkBAIC0yODgsMzggKzI4OCw0NiBAQCBhc20gKAogICAgIC8vICAgICBwYyBmcm9t
IHRoZXJlLgogICAgIC8vCiAgICAgLy8gMi4gSXNzdWUgMSBtZWFucyB3ZSB3aWxsIG5lZWQgdG8g
d3JpdGUgdG8gdGhlIHN0YWNrIGxvY2F0aW9uIGF0Ci0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNw
dS5zcCAtIDQuIEJ1dCBpZiB0aGUgdXNlciBwcm9iZSBmdW5jdGlvbiBoYWQgIG1vZGlmaWVkCi0g
ICAgLy8gICAgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuc3AgdG8gcG9pbnQgaW4gdGhl
IHJhbmdlIGJldHdlZW4KLSAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNwdS5pcCB0aHJ1ICZQcm9i
ZUNvbnRleHQuY3B1LmFzcHIsIHRoZW4gdGhlIGFjdGlvbiBmb3IKLSAgICAvLyAgICBJc3N1ZSAx
IG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJlZm9yZSB3ZSBjYW4gcmVzdG9y
ZQotICAgIC8vICAgIHRoZW0uCisgICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5ncHJzW3NwXSAt
IFBUUl9TSVpFLiBCdXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24gaGFkCisgICAgLy8gICAg
bW9kaWZpZWQgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tzcF0gdG8gcG9pbnQg
aW4gdGhlIHJhbmdlIGJldHdlZW4KKyAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNwdS5ncHJzW2lw
XSB0aHJ1ICZQcm9iZUNvbnRleHQuY3B1LnNwcnNbYXNwcl0sIHRoZW4gdGhlIGFjdGlvbgorICAg
IC8vICAgIGZvciBJc3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJl
Zm9yZSB3ZSBjYW4gcmVzdG9yZSB0aGVtLgogICAgIC8vCi0gICAgLy8gICAgVGhlIHNvbHV0aW9u
IGlzIHRvIGNoZWNrIGlmIFByb2JlQ29udGV4dC5jcHUuc3AgY29udGFpbnMgYSB2YWx1ZSBpbgor
ICAgIC8vICAgIFRoZSBzb2x1dGlvbiBpcyB0byBjaGVjayBpZiBQcm9iZUNvbnRleHQuY3B1Lmdw
cnNbc3BdIGNvbnRhaW5zIGEgdmFsdWUgaW4KICAgICAvLyAgICB0aGUgdW5kZXNpcmFibGUgcmFu
Z2UuIElmIHNvLCB3ZSBjb3B5IHRoZSByZW1haW5pbmcgUHJvYmVDb250ZXh0Ci0gICAgLy8gICAg
cmVnaXN0ZXIgZGF0YSB0byBhIHNhZmUgcmFuZ2UgKGF0IG1lbW9yeSBsb3dlciB0aGFuIHdoZXJl
Ci0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5zcCBwb2ludHMpIGZpcnN0LCBhbmQgcmVzdG9y
ZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCi0gICAgLy8gICAgZnJvbSB0aGlzIG5ldyByYW5nZS4K
KyAgICAvLyAgICByZWdpc3RlciBkYXRhIHRvIGEgc2FmZSBhcmVhIGZpcnN0LCBhbmQgcmVzdG9y
ZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCisgICAgLy8gICAgZnJvbSB0aGlzIG5ldyBzYWZlIGFy
ZWEuCiAKLSAgICAiYWRkICAgICAgIGlwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9BUFNSX09GRlNFVCkgIlxuIgorICAgIC8vIFRoZSByZXN0b3JlIGFyZWEgZm9yIHRoZSBw
YyB3aWxsIGJlIGxvY2F0ZWQgYXQgMSB3b3JkIGJlbG93IHRoZSByZXN1bHRhbnQgc3AuCisgICAg
Ly8gQWxsIHJlc3RvcmUgdmFsdWVzIGFyZSBsb2NhdGVkIGF0IG9mZnNldCA8PSBQUk9CRV9DUFVf
QVBTUl9PRkZTRVQuIEhlbmNlLAorICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgcmVz
dWx0YW50IHNwID4gb2Zmc2V0IG9mIGFwc3IgKyAxLgorICAgICJhZGQgICAgICAgaXAsIHNwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUICsgUFRSX1NJWkUpICJc
biIKICAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJjbXAgICAgICAgbHIsIGlwIiAiXG4iCiAgICAg
ImJndCAgICAgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICJcbiIK
IAotICAgIC8vIFdlIGdldCBoZXJlIGJlY2F1c2UgdGhlIG5ldyBleHBlY3RlZCBzdGFjayBwb2lu
dGVyIGxvY2F0aW9uIGlzIGxvd2VyCi0gICAgLy8gdGhhbiB3aGVyZSBpdCdzIHN1cHBvc2VkIHRv
IGJlLiBUaGlzIG1lYW5zIHRoZSBzYWZlIHJhbmdlIG9mIHN0YWNrCi0gICAgLy8gbWVtb3J5IHdo
ZXJlIHdlJ2xsIGJlIGNvcHlpbmcgdGhlIHJlbWFpbmluZyByZWdpc3RlciByZXN0b3JlIHZhbHVl
cyB0bwotICAgIC8vIG1pZ2h0IGJlIGluIGEgcmVnaW9uIG9mIG1lbW9yeSBiZWxvdyB0aGUgc3Ag
aS5lLiB1bmFsbG9jYXRlZCBzdGFjawotICAgIC8vIG1lbW9yeS4gVGhpcyBpbiB0dXJuIG1ha2Vz
IGl0IHZ1bG5lcmFibGUgdG8gaW50ZXJydXB0cyBwb3RlbnRpYWxseQotICAgIC8vIHRyYXNoaW5n
IHRoZSBjb3BpZWQgdmFsdWVzLiBUbyBwcmV2ZW50IHRoYXQsIHdlIG11c3QgZmlyc3QgYWxsb2Nh
dGUgdGhlCi0gICAgLy8gbmVlZGVkIHN0YWNrIG1lbW9yeSBieSBhZGp1c3RpbmcgdGhlIHNwIGJl
Zm9yZSB0aGUgY29weWluZy4KKyAgICAvLyBHZXR0aW5nIGhlcmUgbWVhbnMgdGhhdCB0aGUgcmVz
dG9yZSBhcmVhIHdpbGwgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0IGRhdGEKKyAgICAvLyB0aGF0
IHdlIHdpbGwgbmVlZCB0byBnZXQgdGhlIHJlc3RvcmF0aW9uIHZhbHVlcyBmcm9tLiBTbywgbGV0
J3MgbW92ZSB0aGF0CisgICAgLy8gZGF0YSB0byBhIHNhZmUgcGxhY2UgYmVmb3JlIHdlIHN0YXJ0
IHdyaXRpbmcgaW50byB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIExldCdzIGxvY2F0ZSB0aGUg
InNhZmUgYXJlYSIgYXQgMnggc2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlCisg
ICAgLy8gcmVzdG9yZSBhcmVhLiBUaGlzIGVuc3VyZXMgdGhhdDoKKyAgICAvLyAxLiBUaGUgc2Fm
ZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIHJlc3RvcmUgYXJlYS4KKyAgICAvLyAyLiBUaGUg
c2FmZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dC4KKyAgICAvLyAgICBU
aGlzIG1ha2VzIGl0IHNvIHRoYXQgd2UgY2FuIHVzZSBtZW1jcHkgKGRvZXMgbm90IHJlcXVpcmUg
bWVtbW92ZSkgc2VtYW50aWNzCisgICAgLy8gICAgdG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZXMg
dG8gdGhlIHNhZmUgYXJlYS4KKyAgICAKKyAgICAvLyBsciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwg
I1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKV0uCisgICAgInN1YiAgICAg
ICBsciwgbHIsICMoMiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkg
IikiICJcbiIKKworICAgICJtb3YgICAgICAgaXAsIHNwIiAiXG4iIC8vIFNhdmUgdGhlIG9yaWdp
bmFsIFByb2JlQ29udGV4dCouCisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIg
cG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQorICAgIC8vIHNh
ZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcg
aXQuCisgICAgIm1vdiAgICAgICBzcCwgbHIiICJcbiIgLy8gc3Agbm93IHBvaW50cyB0byB0aGUg
bmV3IFByb2JlQ29udGV4dCBpbiB0aGUgc2FmZSBhcmVhLgogCi0gICAgInN1YiAgICAgICBsciwg
bHIsICMoNiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKQotICAgICIgKyAiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfSVBfT0ZGU0VUKSAiKSIgIlxuIgotCi0gICAgIm1vdiAg
ICAgICBpcCwgc3AiICJcbiIKLSAgICAibW92ICAgICAgIHNwLCBsciIgIlxuIgotICAgICJtb3Yg
ICAgICAgbHIsIGlwIiAiXG4iCisgICAgIm1vdiAgICAgICBsciwgaXAiICJcbiIgLy8gVXNlIGxy
IGFzIHRoZSBvbGQgUHJvYmVDb250ZXh0Ki4KIAorICAgIC8vIENvcHkgdGhlIHJlc3RvcmUgZGF0
YSB0byB0aGUgbmV3IFByb2JlQ29udGV4dCouCiAgICAgImxkciAgICAgICBpcCwgW2xyLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNFVCkgIl0iICJcbiIKICAgICAic3Ry
ICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfSVBfT0ZGU0VU
KSAiXSIgIlxuIgogICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCkBAIC0zMzEsMjAgKzMzOSwzMSBAQCBhc20g
KAogICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9BUFNSX09GRlNFVCkgIl0iICJcbiIKICAgICAic3RyICAgICAgIGlwLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfQVBTUl9PRkZTRVQpICJdIiAiXG4iCiAKKyAgICAvLyBj
dGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kIGV4cGVjdHMgbHIgdG8gY29udGFpbiB0aGUgc3AgdmFs
dWUgdG8gYmUgcmVzdG9yZWQuCisgICAgLy8gU2luY2Ugd2UgdXNlZCBpdCBhcyBzY3JhdGNoIGFi
b3ZlLCBsZXQncyByZXN0b3JlIGl0LgorICAgICJsZHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCisKICAgICBTWU1CT0xf
U1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCisKKyAgICAvLyBTZXQg
dXAgdGhlIHJlc3RvcmUgYXJlYSBmb3Igc3AgYW5kIHBjLgorICAgIC8vIGxyIGFscmVhZHkgY29u
dGFpbnMgW3NwLCAjU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpXS4KKwor
ICAgIC8vIFB1c2ggdGhlIHBjIG9uIHRvIHRoZSByZXN0b3JlIGFyZWEuCiAgICAgImxkciAgICAg
ICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0i
ICJcbiIKLSAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJzdWIgICAgICAgbHIsIGxyLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICJcbiIKICAgICAic3RyICAgICAgIGlwLCBbbHJdIiAi
XG4iCisgICAgLy8gUG9pbnQgc3AgdG8gdGhlIHJlc3RvcmUgYXJlYS4KICAgICAic3RyICAgICAg
IGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIg
IlxuIgogCisgICAgLy8gQWxsIGRvbmUgd2l0aCBtYXRoIGkuZS4gd29uJ3QgdHJhc2ggdGhlIHN0
YXR1cyByZWdpc3RlciAoYXBzcikgYW5kIGRvbid0IG5lZWQKKyAgICAvLyBzY3JhdGNoIHJlZ2lz
dGVycyAobHIgYW5kIGlwKSBhbnltb3JlLiBSZXN0b3JlIGFwc3IsIGxyLCBhbmQgaXAuCiAgICAg
ImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1Jf
T0ZGU0VUKSAiXSIgIlxuIgogICAgICJtc3IgICAgICAgQVBTUiwgaXAiICJcbiIKLSAgICAibGRy
ICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTFJfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJtb3YgICAgICAgbHIsIGlwIiAiXG4iCisgICAgImxkciAgICAgICBs
ciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJc
biIKICAgICAibGRyICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfSVBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgc3AsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCiAKKyAgICAvLyBSZXN0
b3JlIHRoZSBzcCBhbmQgcGMuCisgICAgImxkciAgICAgICBzcCwgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKICAgICAicG9wICAgICAgIHsg
cGMgfSIgIlxuIgogKTsKICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5jcHAJKHJldmlzaW9uIDIxOTg1NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw4
ICsxODYsOCBAQCBhc20gKAogCiAgICAgLy8gTWFjcm9Bc3NlbWJsZXJBUk12Nzo6cHJvYmUoKSBo
YXMgYWxyZWFkeSBnZW5lcmF0ZWQgY29kZSB0byBzdG9yZSBzb21lIHZhbHVlcy4KICAgICAvLyBU
aGUgdG9wIG9mIHN0YWNrIG5vdyBsb29rcyBsaWtlIHRoaXM6Ci0gICAgLy8gICAgIGVzcFswICog
cHRyU2l6ZV06IHByb2JlRnVuY3Rpb24KLSAgICAvLyAgICAgZXNwWzEgKiBwdHJTaXplXTogYXJn
CisgICAgLy8gICAgIGVzcFswICogcHRyU2l6ZV06IHByb2JlIGhhbmRsZXIgZnVuY3Rpb24KKyAg
ICAvLyAgICAgZXNwWzEgKiBwdHJTaXplXTogcHJvYmUgYXJnCiAgICAgLy8gICAgIGVzcFsyICog
cHRyU2l6ZV06IHNhdmVkIHIwCiAgICAgLy8gICAgIGVzcFszICogcHRyU2l6ZV06IHNhdmVkIGlw
CiAgICAgLy8gICAgIGVzcFs0ICogcHRyU2l6ZV06IHNhdmVkIGxyCkBAIC0yNTQsNDcgKzI1NCw1
NSBAQCBhc20gKAogICAgIC8vCiAgICAgLy8gMS4gTm9ybWFsIEFSTSBjYWxsaW5nIGNvbnZlbnRp
b24gcmVsaWVzIG9uIG1vdmluZyBsciB0byBwYyB0byByZXR1cm4gdG8KICAgICAvLyAgICB0aGUg
Y2FsbGVyLiBJbiBvdXIgY2FzZSwgdGhlIGFkZHJlc3MgdG8gcmV0dXJuIHRvIGlzIHNwZWNpZmll
ZCBieQotICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUucGMuIEFuZCBhdCB0aGF0IG1vbWVudCwg
d2Ugd29uJ3QgaGF2ZSBhbnkgYXZhaWxhYmxlCisgICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5n
cHJzW3BjXS4gQW5kIGF0IHRoYXQgbW9tZW50LCB3ZSB3b24ndCBoYXZlIGFueSBhdmFpbGFibGUK
ICAgICAvLyAgICBzY3JhdGNoIHJlZ2lzdGVycyB0byBob2xkIHRoZSByZXR1cm4gYWRkcmVzcyAo
bHIgbmVlZHMgdG8gaG9sZAotICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUubHIsIG5vdCB0aGUg
cmV0dXJuIGFkZHJlc3MpLgorICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tscl0sIG5v
dCB0aGUgcmV0dXJuIGFkZHJlc3MpLgogICAgIC8vCiAgICAgLy8gICAgVGhlIHNvbHV0aW9uIGlz
IHRvIHN0b3JlIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgYW5kIGxvYWQgdGhlCiAg
ICAgLy8gICAgcGMgZnJvbSB0aGVyZS4KICAgICAvLwogICAgIC8vIDIuIElzc3VlIDEgbWVhbnMg
d2Ugd2lsbCBuZWVkIHRvIHdyaXRlIHRvIHRoZSBzdGFjayBsb2NhdGlvbiBhdAotICAgIC8vICAg
IFByb2JlQ29udGV4dC5jcHUuc3AgLSA0LiBCdXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24g
aGFkIG1vZGlmaWVkCi0gICAgLy8gICAgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuc3Ag
dG8gcG9pbnQgaW4gdGhlIHJhbmdlIGJldHdlZW4KLSAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNw
dS5pcCB0aHJ1ICZQcm9iZUNvbnRleHQuY3B1LmFzcHIsIHRoZW4gdGhlIGFjdGlvbiBmb3IKLSAg
ICAvLyAgICBJc3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJlZm9y
ZSB3ZSBjYW4gcmVzdG9yZQotICAgIC8vICAgIHRoZW0uCisgICAgLy8gICAgUHJvYmVDb250ZXh0
LmNwdS5ncHJzW3NwXSAtIFBUUl9TSVpFLiBCdXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24g
aGFkCisgICAgLy8gICAgbW9kaWZpZWQgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuZ3By
c1tzcF0gdG8gcG9pbnQgaW4gdGhlIHJhbmdlIGJldHdlZW4KKyAgICAvLyAgICAmUHJvYmVDb250
ZXh0LmNwdS5ncHJzW2lwXSB0aHJ1ICZQcm9iZUNvbnRleHQuY3B1LnNwcnNbYXNwcl0sIHRoZW4g
dGhlIGFjdGlvbgorICAgIC8vICAgIGZvciBJc3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRv
IGJlIHJlc3RvcmVkIGJlZm9yZSB3ZSBjYW4gcmVzdG9yZSB0aGVtLgogICAgIC8vCi0gICAgLy8g
ICAgVGhlIHNvbHV0aW9uIGlzIHRvIGNoZWNrIGlmIFByb2JlQ29udGV4dC5jcHUuc3AgY29udGFp
bnMgYSB2YWx1ZSBpbgorICAgIC8vICAgIFRoZSBzb2x1dGlvbiBpcyB0byBjaGVjayBpZiBQcm9i
ZUNvbnRleHQuY3B1LmdwcnNbc3BdIGNvbnRhaW5zIGEgdmFsdWUgaW4KICAgICAvLyAgICB0aGUg
dW5kZXNpcmFibGUgcmFuZ2UuIElmIHNvLCB3ZSBjb3B5IHRoZSByZW1haW5pbmcgUHJvYmVDb250
ZXh0Ci0gICAgLy8gICAgcmVnaXN0ZXIgZGF0YSB0byBhIHNhZmUgcmFuZ2UgKGF0IG1lbW9yeSBs
b3dlciB0aGFuIHdoZXJlCi0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5zcCBwb2ludHMpIGZp
cnN0LCBhbmQgcmVzdG9yZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCi0gICAgLy8gICAgZnJvbSB0
aGlzIG5ldyByYW5nZS4KKyAgICAvLyAgICByZWdpc3RlciBkYXRhIHRvIGEgc2FmZSBhcmVhIGZp
cnN0LCBhbmQgcmVzdG9yZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCisgICAgLy8gICAgZnJvbSB0
aGlzIG5ldyBzYWZlIGFyZWEuCiAKLSAgICAiYWRkICAgICAgIGlwLCBzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9BUFNSX09GRlNFVCkgIlxuIgorICAgIC8vIFRoZSByZXN0b3Jl
IGFyZWEgZm9yIHRoZSBwYyB3aWxsIGJlIGxvY2F0ZWQgYXQgMSB3b3JkIGJlbG93IHRoZSByZXN1
bHRhbnQgc3AuCisgICAgLy8gQWxsIHJlc3RvcmUgdmFsdWVzIGFyZSBsb2NhdGVkIGF0IG9mZnNl
dCA8PSBQUk9CRV9DUFVfQVBTUl9PRkZTRVQuIEhlbmNlLAorICAgIC8vIHdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoYXQgcmVzdWx0YW50IHNwID4gb2Zmc2V0IG9mIGFwc3IgKyAxLgorICAgICJhZGQg
ICAgICAgaXAsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VU
ICsgUFRSX1NJWkUpICJcbiIKICAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJjbXAgICAgICAgbHIs
IGlwIiAiXG4iCiAgICAgIml0ICAgICAgICBndCIgIlxuIgogICAgICJiZ3QgICAgICIgU1lNQk9M
X1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iCiAKLSAgICAvLyBXZSBnZXQg
aGVyZSBiZWNhdXNlIHRoZSBuZXcgZXhwZWN0ZWQgc3RhY2sgcG9pbnRlciBsb2NhdGlvbiBpcyBs
b3dlcgotICAgIC8vIHRoYW4gd2hlcmUgaXQncyBzdXBwb3NlZCB0byBiZS4gVGhpcyBtZWFucyB0
aGUgc2FmZSByYW5nZSBvZiBzdGFjawotICAgIC8vIG1lbW9yeSB3aGVyZSB3ZSdsbCBiZSBjb3B5
aW5nIHRoZSByZW1haW5pbmcgcmVnaXN0ZXIgcmVzdG9yZSB2YWx1ZXMgdG8KLSAgICAvLyBtaWdo
dCBiZSBpbiBhIHJlZ2lvbiBvZiBtZW1vcnkgYmVsb3cgdGhlIHNwIGkuZS4gdW5hbGxvY2F0ZWQg
c3RhY2sKLSAgICAvLyBtZW1vcnkuIFRoaXMsIGluIHR1cm4sIG1ha2VzIGl0IHZ1bG5lcmFibGUg
dG8gaW50ZXJydXB0cyBwb3RlbnRpYWxseQotICAgIC8vIHRyYXNoaW5nIHRoZSBjb3BpZWQgdmFs
dWVzLiBUbyBwcmV2ZW50IHRoYXQsIHdlIG11c3QgZmlyc3QgYWxsb2NhdGUgdGhlCi0gICAgLy8g
bmVlZGVkIHN0YWNrIG1lbW9yeSBieSBhZGp1c3RpbmcgdGhlIHNwIGJlZm9yZSB0aGUgY29weWlu
Zy4KLQotICAgICJzdWIgICAgICAgbHIsIGxyLCAjKDYgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQ
VFJfU0laRSkKLSAgICAiICsgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNF
VCkgIikiICJcbiIKLQotICAgICJtb3YgICAgICAgaXAsIHNwIiAiXG4iCi0gICAgIm1vdiAgICAg
ICBzcCwgbHIiICJcbiIKLSAgICAibW92ICAgICAgIGxyLCBpcCIgIlxuIgotCisgICAgLy8gR2V0
dGluZyBoZXJlIG1lYW5zIHRoYXQgdGhlIHJlc3RvcmUgYXJlYSB3aWxsIG92ZXJsYXAgdGhlIFBy
b2JlQ29udGV4dCBkYXRhCisgICAgLy8gdGhhdCB3ZSB3aWxsIG5lZWQgdG8gZ2V0IHRoZSByZXN0
b3JhdGlvbiB2YWx1ZXMgZnJvbS4gU28sIGxldCdzIG1vdmUgdGhhdAorICAgIC8vIGRhdGEgdG8g
YSBzYWZlIHBsYWNlIGJlZm9yZSB3ZSBzdGFydCB3cml0aW5nIGludG8gdGhlIHJlc3RvcmUgYXJl
YS4KKyAgICAvLyBMZXQncyBsb2NhdGUgdGhlICJzYWZlIGFyZWEiIGF0IDJ4IHNpemVvZihQcm9i
ZUNvbnRleHQpIGJlbG93IHdoZXJlIHRoZQorICAgIC8vIHJlc3RvcmUgYXJlYS4gVGhpcyBlbnN1
cmVzIHRoYXQ6CisgICAgLy8gMS4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSBy
ZXN0b3JlIGFyZWEuCisgICAgLy8gMi4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRo
ZSBQcm9iZUNvbnRleHQuCisgICAgLy8gICAgVGhpcyBtYWtlcyBpdCBzbyB0aGF0IHdlIGNhbiB1
c2UgbWVtY3B5IChkb2VzIG5vdCByZXF1aXJlIG1lbW1vdmUpIHNlbWFudGljcworICAgIC8vICAg
IHRvIGNvcHkgdGhlIHJlc3RvcmUgdmFsdWVzIHRvIHRoZSBzYWZlIGFyZWEuCisKKyAgICAvLyBs
ciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1Bf
T0ZGU0VUKV0uCisgICAgInN1YiAgICAgICBsciwgbHIsICMoMiAqICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0FMSUdORURfU0laRSkgIikiICJcbiIKKyAgICAKKyAgICAibW92ICAgICAgIGlw
LCBzcCIgIlxuIiAvLyBTYXZlIHRoZSBvcmlnaW5hbCBQcm9iZUNvbnRleHQqLgorICAgIAorICAg
IC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4g
VGhpcyBlbnN1cmVzIHRoYXQgdGhlCisgICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KKyAgICAibW92ICAgICAgIHNwLCBs
ciIgIlxuIiAvLyBzcCBub3cgcG9pbnRzIHRvIHRoZSBuZXcgUHJvYmVDb250ZXh0IGluIHRoZSBz
YWZlIGFyZWEuCisgICAgCisgICAgIm1vdiAgICAgICBsciwgaXAiICJcbiIgLy8gVXNlIGxyIGFz
IHRoZSBvbGQgUHJvYmVDb250ZXh0Ki4KKyAgICAKKyAgICAvLyBDb3B5IHRoZSByZXN0b3JlIGRh
dGEgdG8gdGhlIG5ldyBQcm9iZUNvbnRleHQqLgogICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9JUF9PRkZTRVQpICJdIiAiXG4iCiAgICAgInN0
ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNF
VCkgIl0iICJcbiIKICAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgpAQCAtMzA2LDIxICszMTQsMzIgQEAgYXNt
ICgKICAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfQVBTUl9PRkZTRVQpICJdIiAiXG4iCiAgICAgInN0ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUKSAiXSIgIlxuIgogCisgICAgLy8g
Y3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCBleHBlY3RzIGxyIHRvIGNvbnRhaW4gdGhlIHNwIHZh
bHVlIHRvIGJlIHJlc3RvcmVkLgorICAgIC8vIFNpbmNlIHdlIHVzZWQgaXQgYXMgc2NyYXRjaCBh
Ym92ZSwgbGV0J3MgcmVzdG9yZSBpdC4KKyAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgorCiAgICAgIi50aHVt
Yl9mdW5jICIgVEhVTUJfRlVOQ19QQVJBTShjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4i
CiAgICAgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgor
CisgICAgLy8gU2V0IHVwIHRoZSByZXN0b3JlIGFyZWEgZm9yIHNwIGFuZCBwYy4KKyAgICAvLyBs
ciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1Bf
T0ZGU0VUKV0uCisKKyAgICAvLyBQdXNoIHRoZSBwYyBvbiB0byB0aGUgcmVzdG9yZSBhcmVhLgog
ICAgICJsZHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Q
Q19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKICAgICAic3ViICAgICAgIGxy
LCBsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiXG4iCiAgICAgInN0ciAgICAg
ICBpcCwgW2xyXSIgIlxuIgorICAgIC8vIFBvaW50IHNwIHRvIHRoZSByZXN0b3JlIGFyZWEuCiAg
ICAgInN0ciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQ
X09GRlNFVCkgIl0iICJcbiIKIAorICAgIC8vIEFsbCBkb25lIHdpdGggbWF0aCBpLmUuIHdvbid0
IHRyYXNoIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKGFwc3IpIGFuZCBkb24ndCBuZWVkCisgICAgLy8g
c2NyYXRjaCByZWdpc3RlcnMgKGxyIGFuZCBpcCkgYW55bW9yZS4gUmVzdG9yZSBhcHNyLCBsciwg
YW5kIGlwLgogICAgICJsZHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9BUFNSX09GRlNFVCkgIl0iICJcbiIKICAgICAibXNyICAgICAgIEFQU1IsIGlwIiAi
XG4iCi0gICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAgICAibW92ICAgICAgIGxyLCBpcCIgIlxuIgorICAg
ICJsZHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9MUl9P
RkZTRVQpICJdIiAiXG4iCiAgICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHNwLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgog
CisgICAgLy8gUmVzdG9yZSB0aGUgc3AgYW5kIHBjLgorICAgICJsZHIgICAgICAgc3AsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCiAgICAg
InBvcCAgICAgICB7IHBjIH0iICJcbiIKICk7CiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NM
QU5HKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAJKHJldmlzaW9uIDIxOTg1NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsOCArMTcxLDggQEAgYXNtICgKICAgICAvLyB0aGlzOgog
ICAgIC8vICAgICBlc3BbMCAqIHB0clNpemVdOiBlZmxhZ3MKICAgICAvLyAgICAgZXNwWzEgKiBw
dHJTaXplXTogcmV0dXJuIGFkZHJlc3MgLyBzYXZlZCBlaXAKLSAgICAvLyAgICAgZXNwWzIgKiBw
dHJTaXplXTogcHJvYmVGdW5jdGlvbgotICAgIC8vICAgICBlc3BbMyAqIHB0clNpemVdOiBhcmcx
CisgICAgLy8gICAgIGVzcFsyICogcHRyU2l6ZV06IHByb2JlIGhhbmRsZXIgZnVuY3Rpb24KKyAg
ICAvLyAgICAgZXNwWzMgKiBwdHJTaXplXTogcHJvYmUgYXJnCiAgICAgLy8gICAgIGVzcFs0ICog
cHRyU2l6ZV06IHNhdmVkIGVheAogICAgIC8vICAgICBlc3BbNSAqIHB0clNpemVdOiBzYXZlZCBl
c3AKIApAQCAtMjQwLDM1ICsyNDAsNDYgQEAgYXNtICgKIAogICAgIC8vIFRoZXJlIGFyZSA2IG1v
cmUgcmVnaXN0ZXJzIGxlZnQgdG8gcmVzdG9yZToKICAgICAvLyAgICAgZWF4LCBlY3gsIGVicCwg
ZXNwLCBlaXAsIGFuZCBlZmxhZ3MuCi0gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgdGhlc2UgbGFz
dCBmZXcgcmVzdG9yZXMgY2FyZWZ1bGx5IGJlY2F1c2U6Ci0gICAgLy8KLSAgICAvLyAxLiBXZSBu
ZWVkIHRvIHB1c2ggdGhlIHJldHVybiBhZGRyZXNzIG9uIHRoZSBzdGFjayBmb3IgcmV0IHRvIHVz
ZS4KLSAgICAvLyAgICBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gd3JpdGUgdG8gdGhlIHN0YWNrLgot
ICAgIC8vIDIuIFRoZSB1c2VyIHByb2JlIGZ1bmN0aW9uIG1heSBoYXZlIGFsdGVyZWQgdGhlIHJl
c3RvcmUgdmFsdWUgb2YgZXNwIHRvCi0gICAgLy8gICAgcG9pbnQgdG8gdGhlIHZpY2luaXR5IG9m
IG9uZSBvZiB0aGUgcmVzdG9yZSB2YWx1ZXMgZm9yIHRoZSByZW1haW5pbmcKLSAgICAvLyAgICBy
ZWdpc3RlcnMgbGVmdCB0byBiZSByZXN0b3JlZC4KLSAgICAvLyAgICBUaGF0IG1lYW5zLCBmb3Ig
cmVxdWlyZW1lbnQgMSwgd2UgbWF5IGVuZCB1cCB3cml0aW5nIG92ZXIgc29tZSBvZiB0aGUKLSAg
ICAvLyAgICByZXN0b3JlIHZhbHVlcy4gV2UgY2FuIGNoZWNrIGZvciB0aGlzLCBhbmQgZmlyc3Qg
Y29weSB0aGUgcmVzdG9yZQotICAgIC8vICAgIHZhbHVlcyB0byBhICJzYWZlIGFyZWEiIG9uIHRo
ZSBzdGFjayBiZWZvcmUgY29tbWVuY2luZyB3aXRoIHRoZSBhY3Rpb24KLSAgICAvLyAgICBmb3Ig
cmVxdWlyZW1lbnQgMS4KLSAgICAvLyAzLiBGb3IgcmVxdWlyZW1lbnQgMiwgd2UgbmVlZCB0byBl
bnN1cmUgdGhhdCB0aGUgInNhZmUgYXJlYSIgaXMKLSAgICAvLyAgICBwcm90ZWN0ZWQgZnJvbSBp
bnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuIEhlbmNlLCB0aGUgZXNwIG5lZWRzCi0g
ICAgLy8gICAgdG8gYmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSB0aGUgInNhZmUgYXJlYSIgYmVmb3Jl
IHdlIHN0YXJ0IGNvcHlpbmcgdGhlCi0gICAgLy8gICAgdGhlIHJlc3RvcmUgdmFsdWVzLgogCisg
ICAgLy8gVGhlIHJlc3RvcmF0aW9uIHByb2Nlc3MgYXQgY3RpTWFzbVByb2JlVHJhbXBvbGluZUVu
ZCBiZWxvdyB3b3JrcyBieSBwb3BwaW5nCisgICAgLy8gNSB3b3JkcyBvZmYgdGhlIHN0YWNrIGlu
dG8gZWZsYWdzLCBlYXgsIGVjeCwgZWJwLCBhbmQgZWlwLiBUaGVzZSA1IHdvcmRzIG5lZWQKKyAg
ICAvLyB0byBiZSBwdXNoZWQgb24gdG9wIG9mIHRoZSBmaW5hbCBlc3AgdmFsdWUgc28gdGhhdCBq
dXN0IGJ5IHBvcHBpbmcgdGhlIDUgd29yZHMsCisgICAgLy8gd2UnbGwgZ2V0IHRoZSBlc3AgdGhh
dCB0aGUgcHJvYmUgd2FudHMgdG8gc2V0LiBMZXQncyBjYWxsIHRoaXMgYXJlYSAoZm9yIHN0b3Jp
bmcKKyAgICAvLyB0aGVzZSA1IHdvcmRzKSB0aGUgcmVzdG9yZSBhcmVhLgorICAgICJtb3ZsICIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAi
XG4iCisgICAgInN1YmwgJDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJWVj
eCIgIlxuIgorCisgICAgLy8gZWN4IG5vdyBwb2ludHMgdG8gdGhlIHJlc3RvcmUgYXJlYS4KKwor
ICAgIC8vIEJlZm9yZSB3ZSBjb3B5IHZhbHVlcyBmcm9tIHRoZSBQcm9iZUNvbnRleHQgdG8gdGhl
IHJlc3RvcmUgYXJlYSwgd2UgbmVlZCB0bworICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXN0
b3JlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCBhbnkgb2YgdGhlIHZhbHVlcyB0aGF0IHdlJ2xsCisg
ICAgLy8gYmUgY29weWluZyBmcm9tIGluIHRoZSBQcm9iZUNvbnRleHQuIEFsbCB0aGUgcmVzdG9y
ZSB2YWx1ZXMgdG8gYmUgY29waWVkIGZyb20KKyAgICAvLyBjb21lcyBmcm9tIG9mZnNldCA8PSBQ
Uk9CRV9DUFVfRUZMQUdTX09GRlNFVCBpbiB0aGUgUHJvYmVDb250ZXh0LgogICAgICJtb3ZsICVl
YnAsICVlYXgiICJcbiIKICAgICAiYWRkbCAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X0VGTEFHU19PRkZTRVQpICIsICVlYXgiICJcbiIKLSAgICAiY21wbCAlZWF4LCAiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIiglZWJwKSIgIlxuIgorICAgICJjbXBs
ICVlYXgsICVlY3giICJcbiIKICAgICAiamcgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRy
YW1wb2xpbmVFbmQpICJcbiIKIAotICAgIC8vIExvY2F0ZSB0aGUgInNhZmUgYXJlYSIgYXQgMngg
c2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlIG5ldwotICAgIC8vIHJzcCB3aWxs
IGJlLiBUaGlzIHRpbWUgd2UgZG9uJ3QgaGF2ZSB0byAzMi1ieXRlIGFsaWduIGl0IGJlY2F1c2Ug
d2UncmUKLSAgICAvLyBub3QgdXNpbmcgdGhpcyBhcmVhIHRvIHN0b3JlIGFueSB4bW0gcmVncy4K
LSAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIigl
ZWJwKSwgJWVheCIgIlxuIgorICAgIC8vIEdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRoZSByZXN0
b3JlIGFyZWEgd2lsbCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQgZGF0YQorICAgIC8vIHRoYXQg
d2Ugd2lsbCBuZWVkIHRvIGdldCB0aGUgcmVzdG9yYXRpb24gdmFsdWVzIGZyb20uIFNvLCBsZXQn
cyBtb3ZlIHRoYXQKKyAgICAvLyBkYXRhIHRvIGEgc2FmZSBwbGFjZSBiZWZvcmUgd2Ugc3RhcnQg
d3JpdGluZyBpbnRvIHRoZSByZXN0b3JlIGFyZWEuCisgICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAi
c2FmZSBhcmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUKKyAg
ICAvLyByZXN0b3JlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0OgorICAgIC8vIDEuIFRoZSBzYWZl
IGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIDIuIFRoZSBz
YWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0LgorICAgIC8vICAgIFRo
aXMgbWFrZXMgaXQgc28gdGhhdCB3ZSBjYW4gdXNlIG1lbWNweSAoZG9lcyBub3QgcmVxdWlyZSBt
ZW1tb3ZlKSBzZW1hbnRpY3MKKyAgICAvLyAgICB0byBjb3B5IHRoZSByZXN0b3JlIHZhbHVlcyB0
byB0aGUgc2FmZSBhcmVhLgorICAgIC8vIE5vdGU6IHRoZSBzYWZlIGFyZWEgZG9lcyBub3QgaGF2
ZSB0byAzMi1ieXRlIGFsaWduIGl0IGJlY2F1c2Ugd2UncmUgbm90IHVzaW5nCisgICAgLy8gaXQg
dG8gc3RvcmUgYW55IHhtbSByZWdzLgorICAgICJtb3ZsICVlY3gsICVlYXgiICJcbiIKICAgICAi
c3VibCAkMiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkgIiwgJWVh
eCIgIlxuIgorCisgICAgLy8gZWF4IG5vdyBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4KKworICAg
IC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4g
VGhpcyBlbnN1cmVzIHRoYXQgdGhlCisgICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KICAgICAibW92bCAlZWF4LCAlZXNw
IiAiXG4iCiAKLSAgICAic3VibCAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VBWF9P
RkZTRVQpICIsICVlYXgiICJcbiIKICAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfRUFYX09GRlNFVCkgIiglZWJwKSwgJWVjeCIgIlxuIgogICAgICJtb3ZsICVlY3gsICIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQVhfT0ZGU0VUKSAiKCVlYXgpIiAiXG4iCiAg
ICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VDWF9PRkZTRVQpICIoJWVi
cCksICVlY3giICJcbiIKQEAgLTI4MywyMyArMjk0LDI5IEBAIGFzbSAoCiAgICAgIm1vdmwgJWVj
eCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJWVheCki
ICJcbiIKICAgICAibW92bCAlZWF4LCAlZWJwIiAiXG4iCiAKKyAgICAvLyBXZSB1c2VkIGVjeCBh
Ym92ZSBhcyBzY3JhdGNoIHJlZ2lzdGVyLiBMZXQncyByZXN0b3JlIGl0IHRvIHBvaW50cyB0byB0
aGUKKyAgICAvLyByZXN0b3JlIGFyZWEuCisgICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIKKyAgICAic3VibCAkNSAq
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAlZWN4IiAiXG4iCisKKyAgICAvLyBl
Y3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgorCiAgICAgU1lNQk9MX1NUUklORyhj
dGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVlYnApLCAlZWF4IiAiXG4iCi0gICAg
InN1YmwgJDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJWVheCIgIlxuIgot
ICAgIC8vIEF0IHRoaXMgcG9pbnQsICVlc3Agc2hvdWxkIGJlIDwgJWVheC4KIAotICAgICJtb3Zs
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAiKCVlYnApLCAl
ZWN4IiAiXG4iCi0gICAgIm1vdmwgJWVjeCwgMCAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9T
SVpFKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX0VBWF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIKLSAgICAibW92bCAlZWN4LCAxICog
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVheCkiICJcbiIKLSAgICAibW92bCAi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUNYX09GRlNFVCkgIiglZWJwKSwgJWVjeCIg
IlxuIgotICAgICJtb3ZsICVlY3gsIDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkg
IiglZWF4KSIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9F
QlBfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAiXG4iCi0gICAgIm1vdmwgJWVjeCwgMyAqICIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1vdmwgIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VJUF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIK
LSAgICAibW92bCAlZWN4LCA0ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVh
eCkiICJcbiIKLSAgICAibW92bCAlZWF4LCAlZXNwIiAiXG4iCisgICAgLy8gQ29weSByZW1haW5p
bmcgcmVzdG9yZSB2YWx1ZXMgZnJvbSB0aGUgUHJvYmVDb250ZXh0IHRvIHRoZSByZXN0b3JlIGFy
ZWEuCisgICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZT
RVQpICIoJWVicCksICVlYXgiICJcbiIKKyAgICAibW92bCAlZWF4LCAwICogIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFRSX1NJWkUpICIoJWVjeCkiICJcbiIKKyAgICAibW92bCAiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglZWJwKSwgJWVheCIgIlxuIgorICAgICJt
b3ZsICVlYXgsIDEgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiglZWN4KSIgIlxu
IgorICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQ1hfT0ZGU0VUKSAi
KCVlYnApLCAlZWF4IiAiXG4iCisgICAgIm1vdmwgJWVheCwgMiAqICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBUUl9TSVpFKSAiKCVlY3gpIiAiXG4iCisgICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VCUF9PRkZTRVQpICIoJWVicCksICVlYXgiICJcbiIKKyAgICAibW92bCAl
ZWF4LCAzICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVjeCkiICJcbiIKKyAg
ICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUlQX09GRlNFVCkgIiglZWJw
KSwgJWVheCIgIlxuIgorICAgICJtb3ZsICVlYXgsIDQgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQ
VFJfU0laRSkgIiglZWN4KSIgIlxuIgorICAgICJtb3ZsICVlY3gsICVlc3AiICJcbiIKIAorICAg
IC8vIERvIHRoZSByZW1haW5pbmcgcmVzdG9yYXRpb24gYnkgcG9wcGluZyBvZmYgdGhlIHJlc3Rv
cmUgYXJlYS4KICAgICAicG9wZmQiICJcbiIKICAgICAicG9wbCAlZWF4IiAiXG4iCiAgICAgInBv
cGwgJWVjeCIgIlxuIgpAQCAtMzIxLDggKzMzOCw4IEBAIGFzbSAoCiAgICAgLy8gdGhpczoKICAg
ICAvLyAgICAgZXNwWzAgKiBwdHJTaXplXTogcmZsYWdzCiAgICAgLy8gICAgIGVzcFsxICogcHRy
U2l6ZV06IHJldHVybiBhZGRyZXNzIC8gc2F2ZWQgcmlwCi0gICAgLy8gICAgIGVzcFsyICogcHRy
U2l6ZV06IHByb2JlRnVuY3Rpb24KLSAgICAvLyAgICAgZXNwWzMgKiBwdHJTaXplXTogYXJnMQor
ICAgIC8vICAgICBlc3BbMiAqIHB0clNpemVdOiBwcm9iZSBoYW5kbGVyIGZ1bmN0aW9uCisgICAg
Ly8gICAgIGVzcFszICogcHRyU2l6ZV06IHByb2JlIGFyZwogICAgIC8vICAgICBlc3BbNCAqIHB0
clNpemVdOiBzYXZlZCByYXgKICAgICAvLyAgICAgZXNwWzUgKiBwdHJTaXplXTogc2F2ZWQgcnNw
CiAKQEAgLTQyMCwzMiArNDM3LDQ0IEBAIGFzbSAoCiAKICAgICAvLyBUaGVyZSBhcmUgNiBtb3Jl
IHJlZ2lzdGVycyBsZWZ0IHRvIHJlc3RvcmU6CiAgICAgLy8gICAgIHJheCwgcmN4LCByYnAsIHJz
cCwgcmlwLCBhbmQgcmZsYWdzLgotICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIHRoZXNlIGxhc3Qg
ZmV3IHJlc3RvcmVzIGNhcmVmdWxseSBiZWNhdXNlOgotICAgIC8vCi0gICAgLy8gMS4gV2UgbmVl
ZCB0byBwdXNoIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgZm9yIHJldCB0byB1c2UK
LSAgICAvLyAgICBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gd3JpdGUgdG8gdGhlIHN0YWNrLgotICAg
IC8vIDIuIFRoZSB1c2VyIHByb2JlIGZ1bmN0aW9uIG1heSBoYXZlIGFsdGVyZWQgdGhlIHJlc3Rv
cmUgdmFsdWUgb2YgZXNwIHRvCi0gICAgLy8gICAgcG9pbnQgdG8gdGhlIHZpY2luaXR5IG9mIG9u
ZSBvZiB0aGUgcmVzdG9yZSB2YWx1ZXMgZm9yIHRoZSByZW1haW5pbmcKLSAgICAvLyAgICByZWdp
c3RlcnMgbGVmdCB0byBiZSByZXN0b3JlZC4KLSAgICAvLyAgICBUaGF0IG1lYW5zLCBmb3IgcmVx
dWlyZW1lbnQgMSwgd2UgbWF5IGVuZCB1cCB3cml0aW5nIG92ZXIgc29tZSBvZiB0aGUKLSAgICAv
LyAgICByZXN0b3JlIHZhbHVlcy4gV2UgY2FuIGNoZWNrIGZvciB0aGlzLCBhbmQgZmlyc3QgY29w
eSB0aGUgcmVzdG9yZQotICAgIC8vICAgIHZhbHVlcyB0byBhICJzYWZlIGFyZWEiIG9uIHRoZSBz
dGFjayBiZWZvcmUgY29tbWVuY2luZyB3aXRoIHRoZSBhY3Rpb24KLSAgICAvLyAgICBmb3IgcmVx
dWlyZW1lbnQgMS4KLSAgICAvLyAzLiBGb3IgYm90aCByZXF1aXJlbWVudCAyLCB3ZSBuZWVkIHRv
IGVuc3VyZSB0aGF0IHRoZSAic2FmZSBhcmVhIiBpcwotICAgIC8vICAgIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4gSGVuY2UsIHRoZSBlc3AgbmVlZHMK
LSAgICAvLyAgICB0byBiZSBhZGp1c3RlZCB0byBpbmNsdWRlIHRoZSAic2FmZSBhcmVhIiBiZWZv
cmUgd2Ugc3RhcnQgY29weWluZyB0aGUKLSAgICAvLyAgICB0aGUgcmVzdG9yZSB2YWx1ZXMuCiAK
KyAgICAvLyBUaGUgcmVzdG9yYXRpb24gcHJvY2VzcyBhdCBjdGlNYXNtUHJvYmVUcmFtcG9saW5l
RW5kIGJlbG93IHdvcmtzIGJ5IHBvcHBpbmcKKyAgICAvLyA1IHdvcmRzIG9mZiB0aGUgc3RhY2sg
aW50byByZmxhZ3MsIHJheCwgcmN4LCByYnAsIGFuZCByaXAuIFRoZXNlIDUgd29yZHMgbmVlZAor
ICAgIC8vIHRvIGJlIHB1c2hlZCBvbiB0b3Agb2YgdGhlIGZpbmFsIGVzcCB2YWx1ZSBzbyB0aGF0
IGp1c3QgYnkgcG9wcGluZyB0aGUgNSB3b3JkcywKKyAgICAvLyB3ZSdsbCBnZXQgdGhlIGVzcCB0
aGF0IHRoZSBwcm9iZSB3YW50cyB0byBzZXQuIExldCdzIGNhbGwgdGhpcyBhcmVhIChmb3Igc3Rv
cmluZworICAgIC8vIHRoZXNlIDUgd29yZHMpIHRoZSByZXN0b3JlIGFyZWEuCisgICAgIm1vdnEg
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJXJicCksICVyY3gi
ICJcbiIKKyAgICAic3VicSAkNSAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAl
cmN4IiAiXG4iCisKKyAgICAvLyByY3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgor
CisgICAgLy8gQmVmb3JlIHdlIGNvcHkgdmFsdWVzIGZyb20gdGhlIFByb2JlQ29udGV4dCB0byB0
aGUgcmVzdG9yZSBhcmVhLCB3ZSBuZWVkIHRvCisgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHJl
c3RvcmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIGFueSBvZiB0aGUgdmFsdWVzIHRoYXQgd2UnbGwK
KyAgICAvLyBiZSBjb3B5aW5nIGZyb20gaW4gdGhlIFByb2JlQ29udGV4dC4gQWxsIHRoZSByZXN0
b3JlIHZhbHVlcyB0byBiZSBjb3BpZWQgZnJvbQorICAgIC8vIGNvbWVzIGZyb20gb2Zmc2V0IDw9
IFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUIGluIHRoZSBQcm9iZUNvbnRleHQuCiAgICAgIm1vdnEg
JXJicCwgJXJheCIgIlxuIgogICAgICJhZGRxICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfRUZMQUdTX09GRlNFVCkgIiwgJXJheCIgIlxuIgotICAgICJjbXBxICVyYXgsICIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVyYnApIiAiXG4iCisgICAgImNt
cHEgJXJheCwgJXJjeCIgIlxuIgogICAgICJqZyAiIFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2Jl
VHJhbXBvbGluZUVuZCkgIlxuIgogCi0gICAgLy8gTG9jYXRlIHRoZSAic2FmZSBhcmVhIiBhdCAy
eCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUgbmV3Ci0gICAgLy8gcnNwIHdp
bGwgYmUuIFRoaXMgdGltZSB3ZSBkb24ndCBoYXZlIHRvIDMyLWJ5dGUgYWxpZ24gaXQgYmVjYXVz
ZSB3ZSdyZQotICAgIC8vIG5vdCB1c2luZyB0byBzdG9yZSBhbnkgeG1tIHJlZ3MuCi0gICAgIm1v
dnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJXJicCksICVy
YXgiICJcbiIKKyAgICAvLyBHZXR0aW5nIGhlcmUgbWVhbnMgdGhhdCB0aGUgcmVzdG9yZSBhcmVh
IHdpbGwgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0IGRhdGEKKyAgICAvLyB0aGF0IHdlIHdpbGwg
bmVlZCB0byBnZXQgdGhlIHJlc3RvcmF0aW9uIHZhbHVlcyBmcm9tLiBTbywgbGV0J3MgbW92ZSB0
aGF0CisgICAgLy8gZGF0YSB0byBhIHNhZmUgcGxhY2UgYmVmb3JlIHdlIHN0YXJ0IHdyaXRpbmcg
aW50byB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIExldCdzIGxvY2F0ZSB0aGUgInNhZmUgYXJl
YSIgYXQgMnggc2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlCisgICAgLy8gcmVz
dG9yZSBhcmVhLiBUaGlzIGVuc3VyZXMgdGhhdDoKKyAgICAvLyAxLiBUaGUgc2FmZSBhcmVhIGRv
ZXMgbm90IG92ZXJsYXAgdGhlIHJlc3RvcmUgYXJlYS4KKyAgICAvLyAyLiBUaGUgc2FmZSBhcmVh
IGRvZXMgbm90IG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dC4KKyAgICAvLyAgICBUaGlzIG1ha2Vz
IGl0IHNvIHRoYXQgd2UgY2FuIHVzZSBtZW1jcHkgKGRvZXMgbm90IHJlcXVpcmUgbWVtbW92ZSkg
c2VtYW50aWNzCisgICAgLy8gICAgdG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZXMgdG8gdGhlIHNh
ZmUgYXJlYS4KKyAgICAvLyBOb3RlOiB0aGUgc2FmZSBhcmVhIGRvZXMgbm90IGhhdmUgdG8gMzIt
Ynl0ZSBhbGlnbiBpdCBiZWNhdXNlIHdlJ3JlIG5vdCB1c2luZworICAgIC8vIGl0IHRvIHN0b3Jl
IGFueSB4bW0gcmVncy4KKyAgICAibW92cSAlcmN4LCAlcmF4IiAiXG4iCiAgICAgInN1YnEgJDIg
KiAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9BTElHTkVEX1NJWkUpICIsICVyYXgiICJcbiIK
KworICAgIC8vIHJheCBub3cgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuCisKKyAgICAvLyBNYWtl
IHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5z
dXJlcyB0aGF0IHRoZQorICAgIC8vIHNhZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1
cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuCiAgICAgIm1vdnEgJXJheCwgJXJzcCIgIlxuIgog
CiAgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VBWF9PRkZTRVQpICIo
JXJicCksICVyY3giICJcbiIKQEAgLTQ2MiwyMyArNDkxLDI5IEBAIGFzbSAoCiAgICAgIm1vdnEg
JXJjeCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJXJh
eCkiICJcbiIKICAgICAibW92cSAlcmF4LCAlcmJwIiAiXG4iCiAKKyAgICAvLyBXZSB1c2VkIHJj
eCBhYm92ZSBhcyBzY3JhdGNoIHJlZ2lzdGVyLiBMZXQncyByZXN0b3JlIGl0IHRvIHBvaW50cyB0
byB0aGUKKyAgICAvLyByZXN0b3JlIGFyZWEuCisgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKKyAgICAic3VicSAk
NSAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAlcmN4IiAiXG4iCisKKyAgICAv
LyByY3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgorCiAgICAgU1lNQk9MX1NUUklO
RyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgotICAgICJtb3ZxICIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVyYnApLCAlcmF4IiAiXG4iCi0g
ICAgInN1YnEgJDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJXJheCIgIlxu
IgotICAgIC8vIEF0IHRoaXMgcG9pbnQsICVyc3Agc2hvdWxkIGJlIDwgJXJheC4KIAotICAgICJt
b3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAiKCVyYnAp
LCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgMCAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBU
Ul9TSVpFKSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX0VBWF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKLSAgICAibW92cSAlcmN4LCAx
ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJXJheCkiICJcbiIKLSAgICAibW92
cSAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUNYX09GRlNFVCkgIiglcmJwKSwgJXJj
eCIgIlxuIgotICAgICJtb3ZxICVyY3gsIDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0la
RSkgIiglcmF4KSIgIlxuIgotICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9FQlBfT0ZGU0VUKSAiKCVyYnApLCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgMyAqICIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VJUF9PRkZTRVQpICIoJXJicCksICVyY3giICJc
biIKLSAgICAibW92cSAlcmN4LCA0ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIo
JXJheCkiICJcbiIKLSAgICAibW92cSAlcmF4LCAlcnNwIiAiXG4iCisgICAgLy8gQ29weSByZW1h
aW5pbmcgcmVzdG9yZSB2YWx1ZXMgZnJvbSB0aGUgUHJvYmVDb250ZXh0IHRvIHRoZSByZXN0b3Jl
IGFyZWEuCisgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19P
RkZTRVQpICIoJXJicCksICVyYXgiICJcbiIKKyAgICAibW92cSAlcmF4LCAwICogIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJXJjeCkiICJcbiIKKyAgICAibW92cSAiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglcmJwKSwgJXJheCIgIlxuIgorICAg
ICJtb3ZxICVyYXgsIDEgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiglcmN4KSIg
IlxuIgorICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQ1hfT0ZGU0VU
KSAiKCVyYnApLCAlcmF4IiAiXG4iCisgICAgIm1vdnEgJXJheCwgMiAqICIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBUUl9TSVpFKSAiKCVyY3gpIiAiXG4iCisgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0VCUF9PRkZTRVQpICIoJXJicCksICVyYXgiICJcbiIKKyAgICAibW92
cSAlcmF4LCAzICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJXJjeCkiICJcbiIK
KyAgICAibW92cSAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUlQX09GRlNFVCkgIigl
cmJwKSwgJXJheCIgIlxuIgorICAgICJtb3ZxICVyYXgsIDQgKiAiIFNUUklOR0laRV9WQUxVRV9P
RihQVFJfU0laRSkgIiglcmN4KSIgIlxuIgorICAgICJtb3ZxICVyY3gsICVyc3AiICJcbiIKIAor
ICAgIC8vIERvIHRoZSByZW1haW5pbmcgcmVzdG9yYXRpb24gYnkgcG9wcGluZyBvZmYgdGhlIHJl
c3RvcmUgYXJlYS4KICAgICAicG9wZnEiICJcbiIKICAgICAicG9wcSAlcmF4IiAiXG4iCiAgICAg
InBvcHEgJXJjeCIgIlxuIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90
ZXN0bWFzbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci90ZXN0bWFzbS5jcHAJKHJldmlzaW9uIDIxOTg1NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcg
QEAgdm9pZCB0ZXN0U2ltcGxlKCkKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIHZvaWQgdGVzdFBy
b2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiB7Ci0gICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsK
KyAgICBib29sIHByb2JlV2FzQ2FsbGVkID0gZmFsc2U7CiAgICAgY29tcGlsZUFuZFJ1bjx2b2lk
PihbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOwogCkBAIC0xNTcsMTggKzE1NywxOSBAQCB2b2lkIHRlc3RQcm9iZVJlYWRzQXJndW1l
bnRSZWdpc3RlcnMoKQogI2VuZGlmCiAKICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250
ZXh0KiBjb250ZXh0KSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0
LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9PSB0ZXN0V29yZCgwKTsKLSAgICAgICAgICAg
IHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjEp
ID09IHRlc3RXb3JkKDEpOwotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4
dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikgPT0gdGVzdFdvcmQoMik7Ci0gICAgICAgICAg
ICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIz
KSA9PSB0ZXN0V29yZCgzKTsKKyAgICAgICAgICAgIHByb2JlV2FzQ2FsbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjApID09IHRl
c3RXb3JkKDApKTsKKyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1
bWVudEdQUjEpID09IHRlc3RXb3JkKDEpKTsKKyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdw
cihHUFJJbmZvOjphcmd1bWVudEdQUjIpID09IHRlc3RXb3JkKDIpKTsKKyAgICAgICAgICAgIENI
RUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjMpID09IHRlc3RXb3JkKDMpKTsK
IAotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4dC0+ZnByKEZQUkluZm86
OmZwUmVnVDApID09IHRlc3RXb3JkMzIoMCk7Ci0gICAgICAgICAgICBzdWNjZXNzID0gc3VjY2Vz
cyAmJiBjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMSkgPT0gdGVzdFdvcmQzMigxKTsKKyAg
ICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QwKSA9PSB0ZXN0V29y
ZDMyKDApKTsKKyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1Qx
KSA9PSB0ZXN0V29yZDMyKDEpKTsKICAgICAgICAgfSk7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICBqaXQucmV0KCk7CiAgICAgfSk7Ci0gICAgQ0hFQ0soc3Vj
Y2Vzcyk7CisgICAgQ0hFQ0socHJvYmVXYXNDYWxsZWQpOwogfQogCiB2b2lkIHRlc3RQcm9iZVdy
aXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKQEAgLTE3Niw3ICsxNzcsNyBAQCB2b2lkIHRlc3RQcm9i
ZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKICAgICAvLyBUaGlzIHRlc3QgcmVsaWVzIG9uIHRl
c3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMoKSBoYXZpbmcgYWxyZWFkeSB2YWxpZGF0ZWQK
ICAgICAvLyB0aGF0IHdlIGNhbiByZWFkIGZyb20gYXJndW1lbnQgcmVnaXN0ZXJzLiBXZSdsbCB1
c2UgdGhhdCBhYmlsaXR5IHRvIHZhbGlkYXRlCiAgICAgLy8gdGhhdCBvdXIgd3JpdGVzIGRpZCB0
YWtlIGVmZmVjdC4KLSAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOworICAgIHVuc2lnbmVkIHByb2Jl
Q2FsbENvdW50ID0gMDsKICAgICBjb21waWxlQW5kUnVuPHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJz
JiBqaXQpIHsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAKQEAgLTE5Niw3
ICsxOTcsOCBAQCB2b2lkIHRlc3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKICAgICAg
ICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgRlBSSW5m
bzo6ZnBSZWdUMSk7CiAKICAgICAgICAgLy8gV3JpdGUgZXhwZWN0ZWQgdmFsdWVzLgotICAgICAg
ICBqaXQucHJvYmUoW10gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICBqaXQucHJv
YmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENv
dW50Kys7CiAgICAgICAgICAgICBjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9
IHRlc3RXb3JkKDApOwogICAgICAgICAgICAgY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50
R1BSMSkgPSB0ZXN0V29yZCgxKTsKICAgICAgICAgICAgIGNvbnRleHQtPmdwcihHUFJJbmZvOjph
cmd1bWVudEdQUjIpID0gdGVzdFdvcmQoMik7CkBAIC0yMDgsMTkgKzIxMCwyMCBAQCB2b2lkIHRl
c3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKIAogICAgICAgICAvLyBWYWxpZGF0ZSB0
aGF0IGV4cGVjdGVkIHZhbHVlcyB3ZXJlIHdyaXR0ZW4uCiAgICAgICAgIGppdC5wcm9iZShbJl0g
KFByb2JlQ29udGV4dCogY29udGV4dCkgewotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3Mg
JiYgY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMCkgPT0gdGVzdFdvcmQoMCk7Ci0g
ICAgICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSA9PSB0ZXN0V29yZCgxKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNz
ICYmIGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjIpID09IHRlc3RXb3JkKDIpOwot
ICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4dC0+Z3ByKEdQUkluZm86OmFy
Z3VtZW50R1BSMykgPT0gdGVzdFdvcmQoMyk7CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsr
OworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMCkg
PT0gdGVzdFdvcmQoMCkpOworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86
OmFyZ3VtZW50R1BSMSkgPT0gdGVzdFdvcmQoMSkpOworICAgICAgICAgICAgQ0hFQ0soY29udGV4
dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikgPT0gdGVzdFdvcmQoMikpOworICAgICAgICAg
ICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMykgPT0gdGVzdFdvcmQo
MykpOwogCi0gICAgICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0LT5mcHIoRlBS
SW5mbzo6ZnBSZWdUMCkgPT0gdGVzdFdvcmQzMigwKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBz
dWNjZXNzICYmIGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QxKSA9PSB0ZXN0V29yZDMyKDEp
OworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKEZQUkluZm86OmZwUmVnVDApID09IHRl
c3RXb3JkMzIoMCkpOworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKEZQUkluZm86OmZw
UmVnVDEpID09IHRlc3RXb3JkMzIoMSkpOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENI
RUNLKHN1Y2Nlc3MpOworICAgIENIRUNLKHByb2JlQ2FsbENvdW50ID09IDIpOwogfQogCiBzdGF0
aWMgTkVWRVJfSU5MSU5FIE5PVF9UQUlMX0NBTExFRCBpbnQgdGVzdEZ1bmN0aW9uVG9UcmFzaEdQ
UnMoaW50IGEsIGludCBiLCBpbnQgYywgaW50IGQsIGludCBlLCBpbnQgZiwgaW50IGcsIGludCBo
LCBpbnQgaSwgaW50IGopCkBAIC0yNDEsNyArMjQ0LDcgQEAgdm9pZCB0ZXN0UHJvYmVQcmVzZXJ2
ZXNHUFJTKCkKICAgICAvLyBUaGlzIHRlc3QgcmVsaWVzIG9uIHRlc3RQcm9iZVJlYWRzQXJndW1l
bnRSZWdpc3RlcnMoKSBhbmQgdGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMoKQogICAg
IC8vIGhhdmluZyBhbHJlYWR5IHZhbGlkYXRlZCB0aGF0IHdlIGNhbiByZWFkIGFuZCB3cml0ZSBm
cm9tIHJlZ2lzdGVycy4gV2UnbGwgdXNlIHRoZXNlIGFiaWxpdGllcwogICAgIC8vIHRvIHZhbGlk
YXRlIHRoYXQgdGhlIHByb2JlIHByZXNlcnZlcyByZWdpc3RlciB2YWx1ZXMuCi0gICAgYm9vbCBz
dWNjZXNzID0gdHJ1ZTsKKyAgICB1bnNpZ25lZCBwcm9iZUNhbGxDb3VudCA9IDA7CiAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNQVVN0YXRlIG9yaWdpbmFsU3RhdGU7CiAKICAgICBjb21waWxlQW5kUnVu
PHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAgLTI0OSw2ICsyNTIsNyBAQCB2b2lk
IHRlc3RQcm9iZVByZXNlcnZlc0dQUlMoKQogCiAgICAgICAgIC8vIFdyaXRlIGV4cGVjdGVkIHZh
bHVlcyBpbnRvIHRoZSByZWdpc3RlcnMgKGV4Y2VwdCBmb3Igc3AsIGZwLCBhbmQgcGMpLgogICAg
ICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAg
IHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBl
cnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsg
aWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5ncHIoaWQp
ID0gY29udGV4dC0+Z3ByKGlkKTsKICAgICAgICAgICAgICAgICBpZiAoaXNQQyhpZCkgfHwgaXNT
UChpZCkgfHwgaXNGUChpZCkpCkBAIC0yNjMsMjcgKzI2NywzMCBAQCB2b2lkIHRlc3RQcm9iZVBy
ZXNlcnZlc0dQUlMoKQogCiAgICAgICAgIC8vIEludm9rZSB0aGUgcHJvYmUgdG8gY2FsbCBhIGxv
dCBvZiBmdW5jdGlvbnMgYW5kIHRyYXNoIHJlZ2lzdGVyIHZhbHVlcy4KICAgICAgICAgaml0LnBy
b2JlKFsmXSAoUHJvYmVDb250ZXh0KikgewotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3Mg
JiYgKHRlc3RGdW5jdGlvblRvVHJhc2hHUFJzKDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkp
ID09IDEwKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmICh0ZXN0RnVuY3Rpb25U
b1RyYXNoRlBScygwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSA9PSAxMCk7CisgICAgICAg
ICAgICBwcm9iZUNhbGxDb3VudCsrOworICAgICAgICAgICAgQ0hFQ0sodGVzdEZ1bmN0aW9uVG9U
cmFzaEdQUnMoMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSkgPT0gMTApOworICAgICAgICAg
ICAgQ0hFQ0sodGVzdEZ1bmN0aW9uVG9UcmFzaEZQUnMoMCwgMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSkgPT0gMTApOwogICAgICAgICB9KTsKIAogICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRo
ZSByZWdpc3RlcnMgaGF2ZSB0aGUgZXhwZWN0ZWQgdmFsdWVzLgogICAgICAgICBqaXQucHJvYmUo
WyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50
Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0
ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpKQogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICBpZiAoaXNTUChpZCkgfHwgaXNGUChpZCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4dC0+Z3ByKGlkKSA9
PSBvcmlnaW5hbFN0YXRlLmdwcihpZCk7CisgICAgICAgICAgICAgICAgICAgIENIRUNLKGNvbnRl
eHQtPmdwcihpZCkgPT0gb3JpZ2luYWxTdGF0ZS5ncHIoaWQpKTsKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN1Y2Nlc3Mg
PSBzdWNjZXNzICYmIGNvbnRleHQtPmdwcihpZCkgPT0gdGVzdFdvcmQoaWQpOworICAgICAgICAg
ICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gdGVzdFdvcmQoaWQpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJl
Z2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0
SUQoaWQpKQotICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGNvbnRleHQtPmZw
cihpZCkgPT0gdGVzdFdvcmQoaWQpOworICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZw
cihpZCkgPT0gdGVzdFdvcmQoaWQpKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gUmVzdG9y
ZSB0aGUgb3JpZ2luYWwgc3RhdGUuCiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4
dCogY29udGV4dCkgeworICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAg
IGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2Fs
bEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAoaXNQQyhpZCkgfHwgaXNTUChpZCkgfHwgaXNGUChpZCkpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwpAQCAtMjkzLDQxICszMDAsMTQ1IEBAIHZvaWQgdGVzdFByb2JlUHJl
c2VydmVzR1BSUygpCiAgICAgICAgICAgICAgICAgY29udGV4dC0+ZnByKGlkKSA9IG9yaWdpbmFs
U3RhdGUuZnByKGlkKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0
aGUgb3JpZ2luYWwgc3RhdGUgd2FzIHJlc3RvcmVkLgorICAgICAgICBqaXQucHJvYmUoWyZdIChQ
cm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsg
aWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0
LT5ncHIoaWQpID09IG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBp
ZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkKKyAg
ICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5mcHIoaWQpID09IG9yaWdpbmFsU3RhdGUuZnBy
KGlkKSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgICAgICBqaXQucmV0KCk7CiAgICAgfSk7Ci0gICAgQ0hFQ0soc3VjY2Vzcyk7CisgICAg
Q0hFQ0socHJvYmVDYWxsQ291bnQgPT0gNSk7CiB9CiAKLXZvaWQgdGVzdFByb2JlTW9kaWZpZXNT
dGFja1BvaW50ZXIoKQordm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihzdGQ6OmZ1
bmN0aW9uPHZvaWQqKFByb2JlQ29udGV4dCopPiBjb21wdXRlTW9kaWZpZWRTdGFjaykKIHsKLSAg
ICBib29sIHN1Y2Nlc3MgPSB0cnVlOwotICAgIHVpbnQ4X3QqIG9yaWdpbmFsU1A7CisgICAgdW5z
aWduZWQgcHJvYmVDYWxsQ291bnQgPSAwOworICAgIE1hY3JvQXNzZW1ibGVyOjpDUFVTdGF0ZSBv
cmlnaW5hbFN0YXRlOworICAgIHVpbnQ4X3QqIG9yaWdpbmFsU1AgeyBudWxscHRyIH07CisgICAg
dm9pZCogbW9kaWZpZWRTUCB7IG51bGxwdHIgfTsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkKKyAgICB1aW50cHRy
X3QgbW9kaWZpZWRGbGFncyB7IDAgfTsKKyNlbmRpZgogCiAgICAgY29tcGlsZUFuZFJ1bjx2b2lk
PihbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOwogCi0gICAgICAgIC8vIFByZXNlcnZlIG9yaWdpbmFsIHN0YWNrIHBvaW50ZXIgYW5k
IG1vZGlmeSB0aGUgc3AuCisgICAgICAgIC8vIFByZXNlcnZlIG9yaWdpbmFsIHN0YWNrIHBvaW50
ZXIgYW5kIG1vZGlmeSB0aGUgc3AsIGFuZAorICAgICAgICAvLyB3cml0ZSBleHBlY3RlZCB2YWx1
ZXMgaW50byBvdGhlciByZWdpc3RlcnMgKGV4Y2VwdCBmb3IgZnAsIGFuZCBwYykuCiAgICAgICAg
IGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAgcHJv
YmVDYWxsQ291bnQrKzsKKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6
Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9
IG5leHRJRChpZCkpIHsKKyAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLmdwcihpZCkgPSBj
b250ZXh0LT5ncHIoaWQpOworICAgICAgICAgICAgICAgIGlmIChpc1BDKGlkKSB8fCBpc1NQKGlk
KSB8fCBpc0ZQKGlkKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgY29udGV4dC0+Z3ByKGlkKSA9IHRlc3RXb3JkKHN0YXRpY19jYXN0PGludD4oaWQpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6
Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsg
aWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5mcHIoaWQp
ID0gY29udGV4dC0+ZnByKGlkKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0g
dGVzdFdvcmQoaWQpOworICAgICAgICAgICAgfQorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQp
CisgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLnNwcihYODZSZWdpc3RlcnM6OmVmbGFncykgPSBj
b250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpOworICAgICAgICAgICAgbW9kaWZpZWRG
bGFncyA9IG9yaWdpbmFsU3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSBeIDB4YzU7Cisg
ICAgICAgICAgICBjb250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID0gbW9kaWZpZWRG
bGFnczsKKyNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElPTkFMKQorICAg
ICAgICAgICAgb3JpZ2luYWxTdGF0ZS5zcHIoQVJNUmVnaXN0ZXJzOjphcHNyKSA9IGNvbnRleHQt
PnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpOworICAgICAgICAgICAgbW9kaWZpZWRGbGFncyA9IG9y
aWdpbmFsU3RhdGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgXiAweGYwMDAwMDAwOworICAgICAg
ICAgICAgY29udGV4dC0+c3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgPSBtb2RpZmllZEZsYWdzOwor
I2VuZGlmCiAgICAgICAgICAgICBvcmlnaW5hbFNQID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oY29udGV4dC0+c3AoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5zcCgpID0gb3JpZ2luYWxT
UCAtIDEgKiBLQjsKKyAgICAgICAgICAgIG1vZGlmaWVkU1AgPSBjb21wdXRlTW9kaWZpZWRTdGFj
ayhjb250ZXh0KTsKKyAgICAgICAgICAgIGNvbnRleHQtPnNwKCkgPSBtb2RpZmllZFNQOworICAg
ICAgICB9KTsKKworICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSByZWdpc3RlcnMgaGF2ZSB0
aGUgZXhwZWN0ZWQgdmFsdWVzLgorICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQq
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CisgICAgICAgICAgICBm
b3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxI
ZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICBpZiAoaXNGUChpZCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Q0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOworICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSB0ZXN0V29yZChpZCkpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0
ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChp
ZCkpCisgICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKGlkKSA9PSB0ZXN0V29yZChp
ZCkpOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgICAgICBDSEVDSyhjb250
ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID09IG1vZGlmaWVkRmxhZ3MpOworI2VsaWYg
Q1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1fVFJBRElUSU9OQUwpCisgICAgICAgICAgICBDSEVD
Syhjb250ZXh0LT5zcHIoQVJNUmVnaXN0ZXJzOjphcHNyKSA9PSBtb2RpZmllZEZsYWdzKTsKKyNl
bmRpZgorICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+c3AoKSA9PSBtb2RpZmllZFNQKTsKICAg
ICAgICAgfSk7CiAKLSAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBo
YXMgdGhlIGV4cGVjdGVkIHZhbHVlLCBhbmQgcmVzdG9yZSB0aGUgb3JpZ2luYWwuCisgICAgICAg
IC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHN0YXRlLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQ
cm9iZUNvbnRleHQqIGNvbnRleHQpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50OF90Kj4oY29udGV4dC0+c3AoKSkgPT0gKG9yaWdpbmFsU1AgLSAxICogS0Ip
KTsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CisgICAgICAgICAgICBmb3IgKGF1dG8g
aWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjps
YXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlz
UEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0gb3JpZ2luYWxTdGF0ZS5n
cHIoaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxI
ZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdp
c3RlcigpOyBpZCA9IG5leHRJRChpZCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+ZnByKGlk
KSA9IG9yaWdpbmFsU3RhdGUuZnByKGlkKTsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQor
ICAgICAgICAgICAgY29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSA9IG9yaWdpbmFs
U3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKTsKKyNlbGlmIENQVShBUk1fVEhVTUIyKSB8
fCBDUFUoQVJNX1RSQURJVElPTkFMKQorICAgICAgICAgICAgY29udGV4dC0+c3ByKEFSTVJlZ2lz
dGVyczo6YXBzcikgPSBvcmlnaW5hbFN0YXRlLnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpOworI2Vu
ZGlmCiAgICAgICAgICAgICBjb250ZXh0LT5zcCgpID0gb3JpZ2luYWxTUDsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgb3JpZ2luYWwgc3RhY2sgcG9pbnRlciB3
YXMgcmVzdG9yZWQuCisgICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIG9yaWdpbmFsIHN0YXRl
IHdhcyByZXN0b3JlZC4KICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250
ZXh0KSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gKGNvbnRleHQtPnNwKCkgPT0gb3JpZ2luYWxT
UCk7CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOworICAgICAgICAgICAgZm9yIChhdXRv
IGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6
bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgeworICAgICAgICAgICAgICAgIGlmIChp
c1BDKGlkKSB8fCBpc1NQKGlkKSB8fCBpc0ZQKGlkKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5h
bFN0YXRlLmdwcihpZCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGlk
ID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjps
YXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpCisgICAgICAgICAgICAgICAgQ0hFQ0so
Y29udGV4dC0+ZnByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmZwcihpZCkpOworI2lmIENQVShYODYp
IHx8IENQVShYODZfNjQpCisgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5zcHIoWDg2UmVnaXN0
ZXJzOjplZmxhZ3MpID09IG9yaWdpbmFsU3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSk7
CisjZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkKKyAgICAgICAg
ICAgIENIRUNLKGNvbnRleHQtPnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpID09IG9yaWdpbmFsU3Rh
dGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcikpOworI2VuZGlmCisgICAgICAgICAgICBDSEVDSyhj
b250ZXh0LT5zcCgpID09IG9yaWdpbmFsU1ApOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAg
IENIRUNLKHN1Y2Nlc3MpOworICAgIENIRUNLKHByb2JlQ2FsbENvdW50ID09IDQpOworfQorCit2
b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyVG9JbnNpZGVQcm9iZUNvbnRleHRPblN0
YWNrKCkKK3sKKyAgICBmb3IgKHNpemVfdCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBzaXplb2YoUHJv
YmVDb250ZXh0KTsgb2Zmc2V0ICs9IHNpemVvZih1aW50cHRyX3QpKSB7CisgICAgICAgIHRlc3RQ
cm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyKFs9XSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSAtPiB2
b2lkKiB7CisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29u
dGV4dCkgKyBvZmZzZXQ7CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCB0ZXN0UHJvYmVN
b2RpZmllc1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpCit7CisgICAgZm9yIChzaXplX3Qg
b2Zmc2V0ID0gMDsgb2Zmc2V0IDwgMSAqIEtCOyBvZmZzZXQgKz0gc2l6ZW9mKHVpbnRwdHJfdCkp
IHsKKyAgICAgICAgdGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIoWz1dIChQcm9iZUNvbnRl
eHQqIGNvbnRleHQpIC0+IHZvaWQqIHsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPihjb250ZXh0LT5jcHUuc3AoKSkgLSBvZmZzZXQ7CisgICAgICAgIH0pOwor
ICAgIH0KIH0KIAogdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1Byb2dyYW1Db3VudGVyKCkKQEAgLTMz
NSwxMiArNDQ2LDE0IEBAIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcigpCiAg
ICAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0ZXJz
KCkgYW5kIHRlc3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKICAgICAvLyBoYXZpbmcg
YWxyZWFkeSB2YWxpZGF0ZWQgdGhhdCB3ZSBjYW4gcmVhZCBhbmQgd3JpdGUgZnJvbSByZWdpc3Rl
cnMuIFdlJ2xsIHVzZSB0aGVzZSBhYmlsaXRpZXMKICAgICAvLyB0byB2YWxpZGF0ZSB0aGF0IHRo
ZSBwcm9iZSBwcmVzZXJ2ZXMgcmVnaXN0ZXIgdmFsdWVzLgotICAgIGJvb2wgc3VjY2VzcyA9IGZh
bHNlOworICAgIHVuc2lnbmVkIHByb2JlQ2FsbENvdW50ID0gMDsKKyAgICBib29sIGNvbnRpbnVh
dGlvbldhc1JlYWNoZWQgPSBmYWxzZTsKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb250
aW51YXRpb24gPSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgLy8g
VmFsaWRhdGUgdGhhdCB3ZSByZWFjaGVkIHRoZSBjb250aW51YXRpb24uCiAgICAgICAgIGppdC5w
cm9iZShbJl0gKFByb2JlQ29udGV4dCopIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwor
ICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKKyAgICAgICAgICAgIGNvbnRpbnVhdGlvbldh
c1JlYWNoZWQgPSB0cnVlOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKQEAgLTM1MiwxMiArNDY1LDE0IEBAIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNQ
cm9ncmFtQ291bnRlcigpCiAKICAgICAgICAgLy8gV3JpdGUgZXhwZWN0ZWQgdmFsdWVzIGludG8g
dGhlIHJlZ2lzdGVycy4KICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250
ZXh0KSB7CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAgICAgICAgICAgY29udGV4
dC0+cGMoKSA9IGNvbnRpbnVhdGlvbi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsgLy8gV2Ugc2hvdWxkIG5ldmVyIGdl
dCBoZXJlLgogICAgIH0pOwotICAgIENIRUNLKHN1Y2Nlc3MpOworICAgIENIRUNLKHByb2JlQ2Fs
bENvdW50ID09IDIpOworICAgIENIRUNLKGNvbnRpbnVhdGlvbldhc1JlYWNoZWQpOwogfQogI2Vu
ZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogCkBAIC0zODksNyArNTA0LDggQEAgdm9pZCBydW4o
Y29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0
ZXJzKCkpOwogICAgIFJVTih0ZXN0UHJvYmVXcml0ZXNBcmd1bWVudFJlZ2lzdGVycygpKTsKICAg
ICBSVU4odGVzdFByb2JlUHJlc2VydmVzR1BSUygpKTsKLSAgICBSVU4odGVzdFByb2JlTW9kaWZp
ZXNTdGFja1BvaW50ZXIoKSk7CisgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVy
VG9JbnNpZGVQcm9iZUNvbnRleHRPblN0YWNrKCkpOworICAgIFJVTih0ZXN0UHJvYmVNb2RpZmll
c1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZp
ZXNQcm9ncmFtQ291bnRlcigpKTsKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316423</attachid>
            <date>2017-07-25 20:16:14 -0700</date>
            <delta_ts>2017-07-25 20:31:58 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-174697.patch</filename>
            <type>text/plain</type>
            <size>51942</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5OTAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE3LTA3LTI1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHNwIGFuZCBwYyB0byB0aGUgQVJNNjQgSklUIHByb2Jl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0Njk3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzQzNjk2NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZv
bGxvd2luZzoKKworICAgICAgICAxLiBUaGUgQVJNNjQgcHJvYmUgbm93IHN1cHBvcnRzIG1vZGlm
eWluZyB0aGUgcGMgYW5kIHNwLgorCisgICAgICAgICAgIEhvd2V2ZXIsIGxyIGlzIG5vdCBwcmVz
ZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgdGhlIHBjIGJlY2F1c2UgaXQgaXMgdXNlZCBhcyB0aGUKKyAg
ICAgICAgICAgc2NyYXRjaCByZWdpc3RlciBmb3IgdGhlIGluZGlyZWN0IGp1bXAuIEhlbmNlLCB0
aGUgcHJvYmUgaGFuZGxlciBmdW5jdGlvbgorICAgICAgICAgICBtYXkgbm90IG1vZGlmeSBib3Ro
IGxyIGFuZCBwYyBpbiB0aGUgc2FtZSBwcm9iZSBpbnZvY2F0aW9uLgorCisgICAgICAgIDIuIEZp
eCBwcm9iZSB0ZXN0cyB0byB1c2UgYml0d2lzZSBjb21wYXJpc29uIHdoZW4gY29tcGFyaW5nIGRv
dWJsZSByZWdpc3RlcgorICAgICAgICAgICB2YWx1ZXMuIE90aGVyd2lzZSwgZXF1aXZhbGVudCBu
YW4gdmFsdWVzIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgbm90IGVxdWl2YWxlbnQuCisKKyAgICAg
ICAgMy4gQ2hhbmdlIHRoZSBtaW5pbXVtIG9mZnNldCBpbmNyZW1lbnQgaW4gdGVzdFByb2JlTW9k
aWZpZXNTdGFja1BvaW50ZXIgdG8gYmUKKyAgICAgICAgICAgMTYgYnl0ZXMgZm9yIEFSTTY0LiAg
VGhpcyBpcyBiZWNhdXNlIHRoZSBBUk02NCBwcm9iZSBub3cgdXNlcyB0aGUgbGRwIGFuZCBzdHAK
KyAgICAgICAgICAgaW5zdHJ1Y3Rpb25zIHdoaWNoIHJlcXVpcmUgMTYgYnl0ZSBhbGlnbm1lbnQg
Zm9yIHRoZWlyIG1lbW9yeSBhY2Nlc3MuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5jcHA6CisgICAgICAgIChKU0M6OmFybTY0UHJvYmVFcnJvcik6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgIChKU0M6OmFybTY0UHJvYmVU
cmFtcG9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgor
ICAgICAgICAoSlNDOjppc1NwZWNpYWxHUFIpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVSZWFk
c0FyZ3VtZW50UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlV3JpdGVzQXJndW1l
bnRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIpOgorICAgICAgICAoSlND
Ojp0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250ZXh0T25TdGFj
ayk6CisgICAgICAgIChKU0M6OnRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyVG9OQnl0ZXNC
ZWxvd1NQKToKKwogMjAxNy0wNy0yNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IGdlbmVyYXRlIHNtYWxsZXIgYmluYXJpZXMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmNwcAkocmV2aXNpb24gMjE5OTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDkgKzEyMiwxMSBAQCB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CiAjZGVmaW5lIFBS
T0JFX0NQVV9RMzBfT0ZGU0VUIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzAgKiBGUFJF
R19TSVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX1EzMV9PRkZTRVQgKFBST0JFX0ZJUlNUX0ZQUkVH
X09GRlNFVCArICgzMSAqIEZQUkVHX1NJWkUpKQogI2RlZmluZSBQUk9CRV9TSVpFIChQUk9CRV9G
SVJTVF9GUFJFR19PRkZTRVQgKyAoMzIgKiBGUFJFR19TSVpFKSkKLSNkZWZpbmUgU0FWRURfQ0FM
TEVSX1NQIFBST0JFX1NJWkUKLSNkZWZpbmUgUFJPQkVfU0laRV9QTFVTX1NBVkVEX0NBTExFUl9T
UCAoU0FWRURfQ0FMTEVSX1NQICsgUFRSX1NJWkUpCi0jZGVmaW5lIFBST0JFX0FMSUdORURfU0la
RSAoUFJPQkVfU0laRV9QTFVTX1NBVkVEX0NBTExFUl9TUCkKKworI2RlZmluZSBTQVZFRF9QUk9C
RV9SRVRVUk5fUENfT0ZGU0VUICAgICAgICAoUFJPQkVfU0laRSArICgwICogUFRSX1NJWkUpKQor
I2RlZmluZSBTQVZFRF9QUk9CRV9MUl9PRkZTRVQgICAgICAgICAgICAgICAoUFJPQkVfU0laRSAr
ICgxICogUFRSX1NJWkUpKQorI2RlZmluZSBTQVZFRF9QUk9CRV9FUlJPUl9GVU5DVElPTl9PRkZT
RVQgICAoUFJPQkVfU0laRSArICgyICogUFRSX1NJWkUpKQorI2RlZmluZSBQUk9CRV9TSVpFX1BM
VVNfRVhUUkFTICAgICAgICAgICAgICAoUFJPQkVfU0laRSArICgzICogUFRSX1NJWkUpKQogCiAv
LyBUaGVzZSBBU1NFUlRzIHJlbWluZCB5b3UgdGhhdCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQg
b2YgUHJvYmVDb250ZXh0LAogLy8geW91IG5lZWQgdG8gY2hhbmdlIGN0aU1hc21Qcm9iZVRyYW1w
b2xpbmUgb2Zmc2V0cyBhYm92ZSB0byBtYXRjaC4KQEAgLTIwOSwyOTQgKzIxMSwzNDcgQEAgQ09N
UElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQQogQ09NUElMRV9BU1NFUlQoUFJP
QkVfT0ZGU0VUT0YoY3B1LmZwcnNbQVJNNjRSZWdpc3RlcnM6OnEzMV0pID09IFBST0JFX0NQVV9R
MzFfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X3EzMV9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJv
YmVUcmFtcG9saW5lKTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFByb2JlQ29udGV4dCkgPT0g
UFJPQkVfU0laRSwgUHJvYmVDb250ZXh0X3NpemVfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9s
aW5lKTsKLUNPTVBJTEVfQVNTRVJUKCEoUFJPQkVfQUxJR05FRF9TSVpFICYgMHhmKSwgUHJvYmVD
b250ZXh0X2FsaWduZWRfc2l6ZV9vZmZzZXRfc2hvdWxkX2JlXzE2X2J5dGVfYWxpZ25lZCk7CisK
Ky8vIENvbmRpdGlvbnMgZm9yIHVzaW5nIGxkcCBhbmQgc3RwLgorc3RhdGljX2Fzc2VydChQUk9C
RV9DUFVfUENfT0ZGU0VUID09IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBQVFJfU0laRSwgIlBST0JF
X0NQVV9TUF9PRkZTRVQgYW5kIFBST0JFX0NQVV9QQ19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIp
OwogCiAjdW5kZWYgUFJPQkVfT0ZGU0VUT0YKIAorI2RlZmluZSBGUFJfT0ZGU0VUKGZwcikgKFBS
T0JFX0NQVV8jI2ZwciMjX09GRlNFVCAtIFBST0JFX0NQVV9RMF9PRkZTRVQpCisKK3N0cnVjdCBJ
bmNvbWluZ1Byb2JlUmVjb3JkIHsKKyAgICB1aW50cHRyX3QgcHJvYmVIYW5kbGVyRnVuY3Rpb247
CisgICAgdWludHB0cl90IHByb2JlQXJnOworICAgIHVpbnRwdHJfdCB4MjY7CisgICAgdWludHB0
cl90IHgyNzsKKyAgICB1aW50cHRyX3QgbHI7CisgICAgdWludHB0cl90IHNwOworICAgIHVpbnRw
dHJfdCBwcm9iZUVycm9yRnVuY3Rpb247CisgICAgdWludHB0cl90IHVudXNlZDsgLy8gUGFkZGlu
ZyBmb3IgYWxpZ25tZW50LgorfTsKKworI2RlZmluZSBJTl9IQU5ETEVSX0ZVTkNUSU9OX09GRlNF
VCAoMCAqIFBUUl9TSVpFKQorI2RlZmluZSBJTl9BUkdfT0ZGU0VUICAgICAgICAgICAgICAoMSAq
IFBUUl9TSVpFKQorI2RlZmluZSBJTl9YMjZfT0ZGU0VUICAgICAgICAgICAgICAoMiAqIFBUUl9T
SVpFKQorI2RlZmluZSBJTl9YMjdfT0ZGU0VUICAgICAgICAgICAgICAoMyAqIFBUUl9TSVpFKQor
I2RlZmluZSBJTl9MUl9PRkZTRVQgICAgICAgICAgICAgICAoNCAqIFBUUl9TSVpFKQorI2RlZmlu
ZSBJTl9TUF9PRkZTRVQgICAgICAgICAgICAgICAoNSAqIFBUUl9TSVpFKQorI2RlZmluZSBJTl9F
UlJPUl9GVU5DVElPTl9PRkZTRVQgICAoNiAqIFBUUl9TSVpFKQorCitzdGF0aWNfYXNzZXJ0KElO
X0hBTkRMRVJfRlVOQ1RJT05fT0ZGU0VUID09IG9mZnNldG9mKEluY29taW5nUHJvYmVSZWNvcmQs
IHByb2JlSGFuZGxlckZ1bmN0aW9uKSwgIklOX0hBTkRMRVJfRlVOQ1RJT05fT0ZGU0VUIGlzIGlu
Y29ycmVjdCIpOworc3RhdGljX2Fzc2VydChJTl9BUkdfT0ZGU0VUID09IG9mZnNldG9mKEluY29t
aW5nUHJvYmVSZWNvcmQsIHByb2JlQXJnKSwgIklOX0FSR19PRkZTRVQgaXMgaW5jb3JyZWN0Iik7
CitzdGF0aWNfYXNzZXJ0KElOX1gyNl9PRkZTRVQgPT0gb2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJl
Y29yZCwgeDI2KSwgIklOX1gyNl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0
KElOX1gyN19PRkZTRVQgPT0gb2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJlY29yZCwgeDI3KSwgIklO
X1gyN19PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0KElOX0xSX09GRlNFVCA9
PSBvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVjb3JkLCBsciksICJJTl9MUl9PRkZTRVQgaXMgaW5j
b3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0KElOX1NQX09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWlu
Z1Byb2JlUmVjb3JkLCBzcCksICJJTl9TUF9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNf
YXNzZXJ0KElOX0VSUk9SX0ZVTkNUSU9OX09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWluZ1Byb2Jl
UmVjb3JkLCBwcm9iZUVycm9yRnVuY3Rpb24pLCAiSU5fRVJST1JfRlVOQ1RJT05fT0ZGU0VUIGlz
IGluY29ycmVjdCIpOworc3RhdGljX2Fzc2VydCghKHNpemVvZihJbmNvbWluZ1Byb2JlUmVjb3Jk
KSAmIDB4ZiksICJJbmNvbWluZ1Byb2JlU3RhY2sgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQiKTsK
Kworc3RydWN0IE91dGdvaW5nUHJvYmVSZWNvcmQgeworICAgIHVpbnRwdHJfdCBuemN2OworICAg
IHVpbnRwdHJfdCBmcHNyOworICAgIHVpbnRwdHJfdCB4Mjc7CisgICAgdWludHB0cl90IHgyODsK
KyAgICB1aW50cHRyX3QgZnA7CisgICAgdWludHB0cl90IGxyOworfTsKKworI2RlZmluZSBPVVRf
TlpDVl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKKyNkZWZpbmUgT1VUX0ZQU1JfT0ZGU0VUICgxICog
UFRSX1NJWkUpCisjZGVmaW5lIE9VVF9YMjdfT0ZGU0VUICAoMiAqIFBUUl9TSVpFKQorI2RlZmlu
ZSBPVVRfWDI4X09GRlNFVCAgKDMgKiBQVFJfU0laRSkKKyNkZWZpbmUgT1VUX0ZQX09GRlNFVCAg
ICg0ICogUFRSX1NJWkUpCisjZGVmaW5lIE9VVF9MUl9PRkZTRVQgICAoNSAqIFBUUl9TSVpFKQor
I2RlZmluZSBPVVRfU0laRSAgICAgICAgKDYgKiBQVFJfU0laRSkKKworc3RhdGljX2Fzc2VydChP
VVRfTlpDVl9PRkZTRVQgPT0gb2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgbnpjdiksICJP
VVRfTlpDVl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0KE9VVF9GUFNSX09G
RlNFVCA9PSBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBmcHNyKSwgIk9VVF9GUFNSX09G
RlNFVCBpcyBpbmNvcnJlY3QiKTsKK3N0YXRpY19hc3NlcnQoT1VUX1gyN19PRkZTRVQgPT0gb2Zm
c2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgeDI3KSwgIk9VVF9YMjdfT0ZGU0VUIGlzIGluY29y
cmVjdCIpOworc3RhdGljX2Fzc2VydChPVVRfWDI4X09GRlNFVCA9PSBvZmZzZXRvZihPdXRnb2lu
Z1Byb2JlUmVjb3JkLCB4MjgpLCAiT1VUX1gyOF9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0
aWNfYXNzZXJ0KE9VVF9GUF9PRkZTRVQgPT0gb2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwg
ZnApLCAiT1VUX0ZQX09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKK3N0YXRpY19hc3NlcnQoT1VUX0xS
X09GRlNFVCA9PSBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBsciksICJPVVRfTFJfT0ZG
U0VUIGlzIGluY29ycmVjdCIpOworc3RhdGljX2Fzc2VydChPVVRfU0laRSA9PSBzaXplb2YoT3V0
Z29pbmdQcm9iZVJlY29yZCksICJPVVRfU0laRSBpcyBpbmNvcnJlY3QiKTsKK3N0YXRpY19hc3Nl
cnQoIShzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkgJiAweGYpLCAiSW5jb21pbmdQcm9iZVN0
YWNrIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkIik7CisKKyNkZWZpbmUgU1RBVEVfUENfTk9UX0NI
QU5HRUQgMAorI2RlZmluZSBTVEFURV9QQ19DSEFOR0VEIDEKK3N0YXRpY19hc3NlcnQoU1RBVEVf
UENfTk9UX0NIQU5HRUQgIT0gU1RBVEVfUENfQ0hBTkdFRCwgIlNUQVRFX1BDX05PVF9DSEFOR0VE
IGFuZCBTVEFURV9QQ19DSEFOR0VEIHNob3VsZCBub3QgYmUgZXF1YWwiKTsKKwogYXNtICgKICAg
ICAiLnRleHQiICJcbiIKLSAgICAiLmFsaWduIDIiICJcbiIKKyAgICAiLmFsaWduIDQiICJcbiIK
ICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lKSAiXG4i
CiAgICAgSElERV9TWU1CT0woY3RpTWFzbVByb2JlVHJhbXBvbGluZSkgIlxuIgogICAgIFNZTUJP
TF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZSkgIjoiICJcbiIKIAotICAgIC8vIE1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnByb2JlKCkgaGFzIGFscmVhZHkgZ2VuZXJhdGVkIGNvZGUgdG8gc3Rv
cmUgc29tZSB2YWx1ZXMuCi0gICAgLy8gVGhlIHRvcCBvZiBzdGFjayAodGhlIGNhbGxlciBzYXZl
IGJ1ZmZlcikgbm93IGxvb2tzIGxpa2UgdGhpczoKLSAgICAvLyAgICAgc3BbMCAqIHB0clNpemVd
OiBwcm9iZUZ1bmN0aW9uCi0gICAgLy8gICAgIHNwWzEgKiBwdHJTaXplXTogYXJnMQotICAgIC8v
ICAgICBzcFsyICogcHRyU2l6ZV06IGFkZHJlc3Mgb2YgYXJtNjRQcm9iZVRyYW1wb2xpbmUoKQot
ICAgIC8vICAgICBzcFszICogcHRyU2l6ZV06IHNhdmVkIHgyNwotICAgIC8vICAgICBzcFs0ICog
cHRyU2l6ZV06IHNhdmVkIHgyOAotICAgIC8vICAgICBzcFs1ICogcHRyU2l6ZV06IHNhdmVkIGxy
Ci0gICAgLy8gICAgIHNwWzYgKiBwdHJTaXplXTogc2F2ZWQgc3AKKyAgICAvLyBNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpwcm9iZSgpIGhhcyBhbHJlYWR5IGdlbmVyYXRlZCBjb2RlIHRvIHN0b3JlIHNv
bWUgdmFsdWVzIGluIGFuCisgICAgLy8gSW5jb21pbmdQcm9iZVJlY29yZC4gc3AgcG9pbnRzIHRv
IHRoZSBJbmNvbWluZ1Byb2JlUmVjb3JkLgogCisgICAgIm1vdiAgICAgICB4MjYsIHNwIiAiXG4i
CiAgICAgIm1vdiAgICAgICB4MjcsIHNwIiAiXG4iCi0gICAgIm1vdiAgICAgICB4MjgsIHNwIiAi
XG4iCi0KLSAgICAic3ViICAgICAgIHgyOCwgeDI4LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQUxJR05FRF9TSVpFKSAiXG4iCiAKLSAgICAvLyBUaGUgQVJNIEVBQkkgc3BlY2lmaWVzIHRo
YXQgdGhlIHN0YWNrIG5lZWRzIHRvIGJlIDE2IGJ5dGUgYWxpZ25lZC4KLSAgICAiYmljICAgICAg
IHgyOCwgeDI4LCAjMHhmIiAiXG4iCi0gICAgIm1vdiAgICAgICBzcCwgeDI4IiAiXG4iCi0KLSAg
ICAic3RyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfQ0FMTEVS
X1NQKSAiXSIgIlxuIgotCi0gICAgInN0ciAgICAgICB4MCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gwX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgxLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDFfT0ZGU0VUKSAiXSIgIlxuIgot
ICAgICJzdHIgICAgICAgeDIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Y
Ml9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1gzX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHg0
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDRfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgeDUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9YNV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4NiwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g2X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAg
IHg3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDdfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgeDgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9YOF9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4OSwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g5X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAg
ICAgIHgxMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxMF9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MTEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9YMTFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgeDEyLCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDEyX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIHgxMywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gx
M19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MTQsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9YMTRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAg
eDE1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDE1X09GRlNFVCkgIl0i
ICJcbiIKLSAgICAic3RyICAgICAgIHgxNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1gxNl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MTcsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMTdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJz
dHIgICAgICAgeDE4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDE4X09G
RlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgxOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gxOV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MjAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjBfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgeDIxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDIxX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgyMiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyMl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAg
ICAgICB4MjMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjNfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgeDI0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfWDI0X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgyNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyNV9PRkZTRVQpICJdIiAiXG4iCi0g
ICAgInN0ciAgICAgICB4MjYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Y
MjZfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgImxkciAgICAgICB4MCwgW3gyNywgIzMgKiAiIFNU
UklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgwLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI3X09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyICAgICAgIHgwLCBbeDI3LCAjNCAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9T
SVpFKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgeDAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9YMjhfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgInN0ciAgICAgICBmcCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQX09GRlNFVCkgIl0iICJcbiIK
LQotICAgICJsZHIgICAgICAgeDAsIFt4MjcsICM1ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRS
X1NJWkUpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHgwLCBb
eDI3LCAjNiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiXSIgIlxuIgotICAgICJz
dHIgICAgICAgeDAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZT
RVQpICJdIiAiXG4iCisgICAgInN1YiAgICAgICB4MjcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX1NJWkVfUExVU19FWFRSQVMpICJcbiIKKyAgICAiYmljICAgICAgIHgyNywgeDI3
LCAjMHhmIiAiXG4iIC8vIFRoZSBBUk0gRUFCSSBzcGVjaWZpZXMgdGhhdCB0aGUgc3RhY2sgbmVl
ZHMgdG8gYmUgMTYgYnl0ZSBhbGlnbmVkLgorICAgICJtb3YgICAgICAgc3AsIHgyNyIgIlxuIiAv
LyBNYWtlIHN1cmUgaW50ZXJydXB0cyBkb24ndCBvdmVyLXdyaXRlIG91ciBkYXRhIG9uIHRoZSBz
dGFjay4KKworICAgICJzdHAgICAgICAgeDAsIHgxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfWDBfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgeDIsIHgzLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDJfT0ZGU0VUKSAiXSIgIlxuIgor
ICAgICJzdHAgICAgICAgeDQsIHg1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDRfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgeDYsIHg3LCBbc3AsICMiIFNU
UklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDZfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHAg
ICAgICAgeDgsIHg5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDhfT0ZG
U0VUKSAiXSIgIlxuIgorCisgICAgIm1ycyAgICAgICB4MCwgbnpjdiIgIlxuIiAvLyBQcmVsb2Fk
IG56Y3YuCisgICAgIm1ycyAgICAgICB4MSwgZnBzciIgIlxuIiAvLyBQcmVsb2FkIGZwc3IuCisg
ICAgImxkcCAgICAgICB4MiwgeDMsIFt4MjYsICMiIFNUUklOR0laRV9WQUxVRV9PRihJTl9IQU5E
TEVSX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIgLy8gUHJlbG9hZCBwcm9iZSBoYW5kbGVyIGZ1
bmN0aW9uIGFuZCBwcm9iZSBhcmcuCisgICAgImxkcCAgICAgICB4NCwgeDUsIFt4MjYsICMiIFNU
UklOR0laRV9WQUxVRV9PRihJTl9YMjZfT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHNhdmVk
IHIyNiBhbmQgcjI3LgorICAgICJsZHAgICAgICAgeDYsIHg3LCBbeDI2LCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoSU5fTFJfT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHNhdmVkIGxyIGFuZCBz
cC4KKyAgICAibGRyICAgICAgIHg4LCBbeDI2LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoSU5fRVJS
T1JfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHByb2JlIGVycm9yIGZ1bmN0
aW9uLgorCisgICAgInN0cCAgICAgICB4MTAsIHgxMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX1gxMF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4MTIsIHgx
MywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxMl9PRkZTRVQpICJdIiAi
XG4iCisgICAgInN0cCAgICAgICB4MTQsIHgxNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1gxNF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4MTYsIHgxNywg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxNl9PRkZTRVQpICJdIiAiXG4i
CisgICAgInN0cCAgICAgICB4MTgsIHgxOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1gxOF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4MjAsIHgyMSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyMF9PRkZTRVQpICJdIiAiXG4iCisg
ICAgInN0cCAgICAgICB4MjIsIHgyMyxbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDIyX09GRlNFVCkgIl0iICJcbiIKKyAgICAic3RwICAgICAgIHgyNCwgeDI1LCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI0X09GRlNFVCkgIl0iICJcbiIKKworICAg
ICJzdHAgICAgICAgeDQsIHg1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
WDI2X09GRlNFVCkgIl0iICJcbiIgLy8gU3RvcmVkIHNhdmVkIHIyNiBhbmQgcjI3IChwcmVsb2Fk
ZWQgaW50byB4NCBhbmQgeDUgYWJvdmUpLgorICAgICJzdHAgICAgICAgeDI4LCBmcCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyOF9PRkZTRVQpICJdIiAiXG4iCisgICAg
InN0cCAgICAgICB4NiwgeDcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9M
Ul9PRkZTRVQpICJdIiAiXG4iIC8vIFNhdmVkIHZhbHVlcyBsciBhbmQgc3AgKHByZWxvYWRlZCBp
bnRvIHg2IGFuZCB4NyBhYm92ZSkuCisgICAgInN0ciAgICAgICB4NiwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfTFJfT0ZGU0VUKSAiXSIgIlxuIgogCisgICAgInN0ciAg
ICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfUkVUVVJOX1BD
X09GRlNFVCkgIl0iICJcbiIKKyAgICAiYWRkICAgICAgIGxyLCBsciwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIiAvLyBUaGUgUEMgYWZ0ZXIgdGhlIHByb2JlIGlzIGF0
IDIgaW5zdHJ1Y3Rpb25zIHBhc3QgdGhlIHJldHVybiBwb2ludC4KICAgICAic3RyICAgICAgIGxy
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUENfT0ZGU0VUKSAiXSIgIlxu
IgogCi0gICAgIm1ycyAgICAgICB4MCwgbnpjdiIgIlxuIgotICAgICJzdHIgICAgICAgeDAsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9OWkNWX09GRlNFVCkgIl0iICJcbiIK
LSAgICAibXJzICAgICAgIHgwLCBmcHNyIiAiXG4iCi0gICAgInN0ciAgICAgICB4MCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQU1JfT0ZGU0VUKSAiXSIgIlxuIgotCi0g
ICAgImxkciAgICAgICB4MCwgW3gyNywgIzAgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0la
RSkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4
MCwgW3gyNywgIzEgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIHgwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9BUkdfT0ZG
U0VUKSAiXSIgIlxuIgotCi0gICAgInN0ciAgICAgICBkMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1EwX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQxLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTFfT0ZGU0VUKSAiXSIgIlxuIgot
ICAgICJzdHIgICAgICAgZDIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9R
Ml9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1EzX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQ0
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTRfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgZDUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9RNV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkNiwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E2X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAg
IGQ3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTdfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgZDgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9ROF9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkOSwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E5X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAg
ICAgIGQxMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1ExMF9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMTEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9RMTFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDEyLCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTEyX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIGQxMywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1Ex
M19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMTQsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9RMTRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAg
ZDE1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTE1X09GRlNFVCkgIl0i
ICJcbiIKLSAgICAic3RyICAgICAgIGQxNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1ExNl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMTcsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMTdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJz
dHIgICAgICAgZDE4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTE4X09G
RlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQxOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1ExOV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMjAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMjBfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgZDIxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfUTIxX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQyMiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyMl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAg
ICAgICBkMjMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMjNfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDI0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfUTI0X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQyNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyNV9PRkZTRVQpICJdIiAiXG4iCi0g
ICAgInN0ciAgICAgICBkMjYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9R
MjZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDI3LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfUTI3X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAg
IGQyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyOF9PRkZTRVQpICJd
IiAiXG4iCi0gICAgInN0ciAgICAgICBkMjksIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9RMjlfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDMwLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTMwX09GRlNFVCkgIl0iICJcbiIKLSAgICAi
c3RyICAgICAgIGQzMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EzMV9P
RkZTRVQpICJdIiAiXG4iCi0KLSAgICAibW92ICAgICAgIHgyOCwgc3AiICJcbiIgLy8gU2F2ZSB0
aGUgUHJvYmVDb250ZXh0Ki4KLQotICAgICJtb3YgICAgICAgeDAsIHNwIiAiXG4iIC8vIHRoZSBQ
cm9iZUNvbnRleHQqIGFyZy4KLSAgICAibGRyICAgICAgIHgyNywgW3gyNywgIzMgKiAiIFNUUklO
R0laRV9WQUxVRV9PRihQVFJfU0laRSkgIl0iICJcbiIKLSAgICAiYmxyICAgICAgIHgyNyIgIlxu
IgorICAgICJzdHAgICAgICAgeDAsIHgxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iIC8vIFN0b3JlIG56Y3YgYW5kIGZwc3IgKHByZWxv
YWRlZCBpbnRvIHgwIGFuZCB4MSBhYm92ZSkuCiAKLSAgICAibW92ICAgICAgIHNwLCB4MjgiICJc
biIKKyAgICAic3RwICAgICAgIHgyLCB4MywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfUFJPQkVfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIiAvLyBTdG9yZSB0aGUgcHJvYmUgaGFu
ZGxlciBmdW5jdGlvbiBhbmQgYXJnIChwcmVsb2FkZWQgaW50byB4MiBhbmQgeDMgYWJvdmUpLgor
ICAgICJzdHIgICAgICAgeDgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX1BST0JF
X0VSUk9SX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIgLy8gU3RvcmUgdGhlIHByb2JlIGhhbmRs
ZXIgZnVuY3Rpb24gYW5kIGFyZyAocHJlbG9hZGVkIGludG8geDggYWJvdmUpLgogCi0gICAgLy8g
VG8gZW5hYmxlIHByb2JlcyB0byBtb2RpZnkgcmVnaXN0ZXIgc3RhdGUsIHdlIGNvcHkgYWxsIHJl
Z2lzdGVycwotICAgIC8vIG91dCBvZiB0aGUgUHJvYmVDb250ZXh0IGJlZm9yZSByZXR1cm5pbmcu
IFRoYXQgaXMgZXhjZXB0IGZvciB4MTgsIHBjIGFuZCBzcC4KKyAgICAiYWRkICAgICAgIHg5LCBz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMF9PRkZTRVQpICJcbiIKKyAgICAi
c3RwICAgICAgIGQwLCBkMSwgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChR
MCkpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMiwgZDMsIFt4OSwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKEZQUl9PRkZTRVQoUTIpKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgZDQsIGQ1LCBb
eDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFE0KSkgIl0iICJcbiIKKyAgICAi
c3RwICAgICAgIGQ2LCBkNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChR
NikpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkOCwgZDksIFt4OSwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKEZQUl9PRkZTRVQoUTgpKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgZDEwLCBkMTEs
IFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTEwKSkgIl0iICJcbiIKKyAg
ICAic3RwICAgICAgIGQxMiwgZDEzLCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZG
U0VUKFExMikpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMTQsIGQxNSwgW3g5LCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMTQpKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAg
ZDE2LCBkMTcsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTE2KSkgIl0i
ICJcbiIKKyAgICAic3RwICAgICAgIGQxOCwgZDE5LCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9P
RihGUFJfT0ZGU0VUKFExOCkpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMjAsIGQyMSwgW3g5
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjApKSAiXSIgIlxuIgorICAgICJz
dHAgICAgICAgZDIyLCBkMjMsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQo
UTIyKSkgIl0iICJcbiIKKyAgICAic3RwICAgICAgIGQyNCwgZDI1LCBbeDksICMiIFNUUklOR0la
RV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEyNCkpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMjYs
IGQyNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjYpKSAiXSIgIlxu
IgorICAgICJzdHAgICAgICAgZDI4LCBkMjksIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQ
Ul9PRkZTRVQoUTI4KSkgIl0iICJcbiIKKyAgICAic3RwICAgICAgIGQzMCwgZDMxLCBbeDksICMi
IFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEzMCkpICJdIiAiXG4iCisKKyAgICAibW92
ICAgICAgIHgyNywgc3AiICJcbiIgLy8gU2F2ZSB0aGUgUHJvYmVDb250ZXh0KiBpbiBhIGNhbGxl
ZSBzYXZlZCByZWdpc3Rlci4KKworICAgIC8vIE5vdGU6IHdlIGhhdmVuJ3QgY2hhbmdlZCB0aGUg
dmFsdWUgb2YgZnAuIEhlbmNlLCBpdCBpcyBzdGlsbCBwb2ludGluZyB0byB0aGUgZnJhbWUgb2YK
KyAgICAvLyB0aGUgY2FsbGVyIG9mIHRoZSBwcm9iZSAod2hpY2ggaXMgd2hhdCB3ZSB3YW50IGlu
IG9yZGVyIHRvIHBsYXkgbmljZSB3aXRoIGRlYnVnZ2VycyBlLmcuIGxsZGIpLgorICAgICJtb3Yg
ICAgICAgeDAsIHNwIiAiXG4iIC8vIFNldCB0aGUgUHJvYmVDb250ZXh0KiBhcmcuCisgICAgImJs
ciAgICAgICB4MiIgIlxuIiAvLyBDYWxsIHRoZSBwcm9iZSBoYW5kbGVyIGZ1bmN0aW9uIChsb2Fk
ZWQgaW50byB4MiBhYm92ZSkuCisKKyAgICAibW92ICAgICAgIHNwLCB4MjciICJcbiIKIAorICAg
IC8vIFRvIGVuYWJsZSBwcm9iZXMgdG8gbW9kaWZ5IHJlZ2lzdGVyIHN0YXRlLCB3ZSBjb3B5IGFs
bCByZWdpc3RlcnMKKyAgICAvLyBvdXQgb2YgdGhlIFByb2JlQ29udGV4dCBiZWZvcmUgcmV0dXJu
aW5nLiBUaGF0IGlzIGV4Y2VwdCBmb3IgeDE4LgogICAgIC8vIHgxOCBpcyAicmVzZXJ2ZWQgZm9y
IHRoZSBwbGF0Zm9ybS4gQ29uZm9ybWluZyBzb2Z0d2FyZSBzaG91bGQgbm90IG1ha2UgdXNlIG9m
IGl0LiIKICAgICAvLyBIZW5jZSwgdGhlIEpJVHMgd291bGQgbm90IGJlIHVzaW5nIGl0LCBhbmQg
dGhlIHByb2JlIHNob3VsZCBhbHNvIG5vdCBiZSBtb2RpZnlpbmcgaXQuCiAgICAgLy8gU2VlIGh0
dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2lvcy9kb2N1bWVudGF0aW9uL1hjb2Rl
L0NvbmNlcHR1YWwvaVBob25lT1NBQklSZWZlcmVuY2UvQXJ0aWNsZXMvQVJNNjRGdW5jdGlvbkNh
bGxpbmdDb252ZW50aW9ucy5odG1sLgogCi0gICAgLy8gV2UgY2FuJ3QgbW9kaWZ5IHRoZSBwYywg
YmVjYXVzZSB0aGUgb25seSB3YXkgdG8gc2V0IGl0cyB2YWx1ZSBvbiBBUk02NCBpcyB2aWEKLSAg
ICAvLyBhbiBpbmRpcmVjdCBicmFuY2ggb3IgYSByZXQsIHdoaWNoIG1lYW5zIHdlJ2xsIG5lZWQg
YSBmcmVlIHJlZ2lzdGVyIHRvIGRvIHNvLgotICAgIC8vIFRoZSBwcm9iZSBtZWNoYW5pc20gaXMg
cmVxdWlyZWQgdG8gbm90IHBlcnR1cmIgYW55IHJlZ2lzdGVycyB0aGF0IHRoZSBjYWxsZXIKLSAg
ICAvLyBtYXkgdXNlLiBIZW5jZSwgd2UgZG9uJ3QgaGF2ZSB0aGlzIGZyZWUgcmVnaXN0ZXIgYXZh
aWxhYmxlLgotCi0gICAgLy8gSW4gb3JkZXIgdG8gcmV0dXJuIHRvIHRoZSBjYWxsZXIsIHdlIG5l
ZWQgdG8gcmV0IHZpYSBsci4gVGhlIHByb2JlIG1lY2hhbmlzbSB3aWxsCi0gICAgLy8gcmVzdG9y
ZSBscidzIHZhbHVlIGFmdGVyIHJldHVybmluZyB0byB0aGUgY2FsbGVyIGJ5IGxvYWRpbmcgdGhl
IHJlc3RvcmUgdmFsdWUKLSAgICAvLyBmcm9tIHRoZSBjYWxsZXIgc2F2ZSBidWZmZXIuIFRoZSBj
YWxsZXIgZXhwZWN0cyB0byBhY2Nlc3MgdGhlIGNhbGxlciBzYXZlIGJ1ZmZlciB2aWEKLSAgICAv
LyBzcC4gSGVuY2UsIHdlIGNhbm5vdCBhbGxvdyBzcCB0byBiZSBtb2RpZmllZCBieSB0aGUgcHJv
YmUuCi0KLSAgICAibGRyICAgICAgIGQwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfUTBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDEsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAg
ICAgICBkMiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyX09GRlNFVCkg
Il0iICJcbiIKLSAgICAibGRyICAgICAgIGQzLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfUTNfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDQsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RNF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxk
ciAgICAgICBkNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E1X09GRlNF
VCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQ2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfUTZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDcsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RN19PRkZTRVQpICJdIiAiXG4iCi0gICAg
ImxkciAgICAgICBkOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E4X09G
RlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQ5LCBbc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfUTlfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDEwLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTEwX09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyICAgICAgIGQxMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1ExMV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMTIsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMTJfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAg
ICAgZDEzLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTEzX09GRlNFVCkg
Il0iICJcbiIKLSAgICAibGRyICAgICAgIGQxNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1ExNF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMTUsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMTVfT0ZGU0VUKSAiXSIgIlxuIgotICAg
ICJsZHIgICAgICAgZDE2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTE2
X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQxNywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1ExN19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBk
MTgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMThfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJsZHIgICAgICAgZDE5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfUTE5X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQyMCwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyMF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxk
ciAgICAgICBkMjEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMjFfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDIyLCBbc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfUTIyX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQyMywg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyM19PRkZTRVQpICJdIiAiXG4i
Ci0gICAgImxkciAgICAgICBkMjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9RMjRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDI1LCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTI1X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAg
ICAgIGQyNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyNl9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9RMjdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDI4LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTI4X09GRlNFVCkgIl0iICJcbiIKLSAg
ICAibGRyICAgICAgIGQyOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1Ey
OV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMzAsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9RMzBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAg
ZDMxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTMxX09GRlNFVCkgIl0i
ICJcbiIKLQotICAgICJsZHIgICAgICAgeDAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9YMF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4MSwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRy
ICAgICAgIHgyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDJfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9YM19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4NCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g0X09GRlNFVCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIHg1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDVfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9YNl9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4NywgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g3X09GRlNFVCkgIl0iICJcbiIKLSAg
ICAibGRyICAgICAgIHg4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDhf
T0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDksIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9YOV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4MTAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMTBfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJsZHIgICAgICAgeDExLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDExX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHgxMiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxMl9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAg
ICAgICB4MTMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMTNfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDE0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfWDE0X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHgxNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxNV9PRkZTRVQpICJdIiAiXG4iCi0g
ICAgImxkciAgICAgICB4MTYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Y
MTZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDE3LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfWDE3X09GRlNFVCkgIl0iICJcbiIKKyAgICAiYWRkICAgICAg
IHg5LCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMF9PRkZTRVQpICJcbiIK
KyAgICAibGRwICAgICAgIGQwLCBkMSwgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09G
RlNFVChRMCkpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkMiwgZDMsIFt4OSwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTIpKSAiXSIgIlxuIgorICAgICJsZHAgICAgICAgZDQs
IGQ1LCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFE0KSkgIl0iICJcbiIK
KyAgICAibGRwICAgICAgIGQ2LCBkNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09G
RlNFVChRNikpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkOCwgZDksIFt4OSwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTgpKSAiXSIgIlxuIgorICAgICJsZHAgICAgICAgZDEw
LCBkMTEsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTEwKSkgIl0iICJc
biIKKyAgICAibGRwICAgICAgIGQxMiwgZDEzLCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9PRihG
UFJfT0ZGU0VUKFExMikpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkMTQsIGQxNSwgW3g5LCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMTQpKSAiXSIgIlxuIgorICAgICJsZHAg
ICAgICAgZDE2LCBkMTcsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTE2
KSkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIGQxOCwgZDE5LCBbeDksICMiIFNUUklOR0laRV9W
QUxVRV9PRihGUFJfT0ZGU0VUKFExOCkpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkMjAsIGQy
MSwgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjApKSAiXSIgIlxuIgor
ICAgICJsZHAgICAgICAgZDIyLCBkMjMsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9P
RkZTRVQoUTIyKSkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIGQyNCwgZDI1LCBbeDksICMiIFNU
UklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEyNCkpICJdIiAiXG4iCisgICAgImxkcCAgICAg
ICBkMjYsIGQyNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjYpKSAi
XSIgIlxuIgorICAgICJsZHAgICAgICAgZDI4LCBkMjksIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKEZQUl9PRkZTRVQoUTI4KSkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIGQzMCwgZDMxLCBb
eDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEzMCkpICJdIiAiXG4iCisKKyAg
ICAibGRwICAgICAgIHgwLCB4MSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1gwX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgyLCB4MywgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAg
ICAgIHg0LCB4NSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g0X09GRlNF
VCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHg2LCB4NywgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1g2X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHg4LCB4
OSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g4X09GRlNFVCkgIl0iICJc
biIKKyAgICAibGRwICAgICAgIHgxMCwgeDExLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfWDEwX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgxMiwgeDEzLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDEyX09GRlNFVCkgIl0iICJcbiIK
KyAgICAibGRwICAgICAgIHgxNCwgeDE1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfWDE0X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgxNiwgeDE3LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDE2X09GRlNFVCkgIl0iICJcbiIKICAg
ICAvLyB4MTggc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBieSB0aGUgcHJvYmUuIFNlZSBjb21tZW50
IGFib3ZlIGZvciBkZXRhaWxzLgotICAgICJsZHIgICAgICAgeDE5LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfWDE5X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAg
IHgyMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyMF9PRkZTRVQpICJd
IiAiXG4iCi0gICAgImxkciAgICAgICB4MjEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9YMjFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDIyLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDIyX09GRlNFVCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIHgyMywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyM19P
RkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4MjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9YMjRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDI1
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI1X09GRlNFVCkgIl0iICJc
biIKLSAgICAibGRyICAgICAgIHgyNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX1gyNl9PRkZTRVQpICJdIiAiXG4iCi0KLSAgICAibGRyICAgICAgIHgyNywgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQU1JfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJt
c3IgICAgICAgZnBzciwgeDI3IiAiXG4iCisgICAgImxkcCAgICAgICB4MTksIHgyMCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxOV9PRkZTRVQpICJdIiAiXG4iCisgICAg
ImxkcCAgICAgICB4MjEsIHgyMiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1gyMV9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkcCAgICAgICB4MjMsIHgyNCwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyM19PRkZTRVQpICJdIiAiXG4iCisgICAgImxk
cCAgICAgICB4MjUsIHgyNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gy
NV9PRkZTRVQpICJdIiAiXG4iCisKKyAgICAvLyBSZW1haW5pbmcgcmVnaXN0ZXJzIHRvIHJlc3Rv
cmUgYXJlOiBmcHNyLCBuemN2LCB4MjcsIHgyOCwgZnAsIGxyLCBzcCwgYW5kIHBjLgorCisgICAg
Im1vdiAgICAgICBsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQVRFX1BDX05PVF9DSEFOR0VE
KSAiXG4iCisKKyAgICAvLyBUaGUgb25seSB3YXkgdG8gc2V0IHRoZSBwYyBvbiBBUk02NCAoZnJv
bSB1c2VyIHNwYWNlKSBpcyB2aWEgYW4gaW5kaXJlY3QgYnJhbmNoCisgICAgLy8gb3IgYSByZXQs
IHdoaWNoIG1lYW5zIHdlJ2xsIG5lZWQgYSBmcmVlIHJlZ2lzdGVyIHRvIGRvIHNvLiBGb3Igb3Vy
IHB1cnBvc2VzLCBscgorICAgIC8vIGhhcHBlbnMgdG8gYmUgYXZhaWxhYmxlIGluIGFwcGxpY2F0
aW9ucyBvZiB0aGUgcHJvYmUgd2hlcmUgd2UgbWF5IHdhbnQgdG8KKyAgICAvLyBjb250aW51ZSBl
eGVjdXRpbmcgYXQgYSBkaWZmZXJlbnQgbG9jYXRpb24gKGkuZS4gY2hhbmdlIHRoZSBwYykgYWZ0
ZXIgdGhlIHByb2JlCisgICAgLy8gcmV0dXJucy4gU28sIHRoZSBBUk02NCBwcm9iZSBpbXBsZW1l
bnRhdGlvbiB3aWxsIGFsbG93IHRoZSBwcm9iZSBoYW5kbGVyIHRvCisgICAgLy8gZWl0aGVyIG1v
ZGlmeSBsciBvciBwYywgYnV0IG5vdCBib3RoIGluIHRoZSBzYW1lIHByb2JlIGludm9jYXRpb24u
IFRoZSBwcm9iZQorICAgIC8vIG1lY2hhbmlzbSBlbnN1cmVzIHRoYXQgd2UgbmV2ZXIgdHJ5IHRv
IG1vZGlmeSBib3RoIGxyIGFuZCBwYywgZWxzZSBpdCB3aWxsCisgICAgLy8gZmFpbCB3aXRoIGEg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQgaW4gYXJtNjRQcm9iZUVycm9yKCkuCisKKyAgICAv
LyBEZXRlcm1pbmUgaWYgdGhlIHByb2JlIGhhbmRsZXIgY2hhbmdlZCB0aGUgcGMuCisgICAgImxk
ciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX1BST0JFX1JFVFVS
Tl9QQ19PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciAgICAgICB4MjgsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCisgICAgImFkZCAgICAg
ICB4MjcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIgorICAg
ICJjbXAgICAgICAgeDI3LCB4MjgiICJcbiIKKyAgICAiYmVxICAgICAiIExPQ0FMX0xBQkVMX1NU
UklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJlcGFyZU91dGdvaW5nUmVjb3JkcykgIlxuIgor
CisgICAgLy8gcGMgd2FzIGNoYW5nZWQuIERldGVybWluZSBpZiB0aGUgcHJvYmUgaGFuZGxlciBh
bHNvIGNoYW5nZWQgbHIuCisgICAgImxkciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFNBVkVEX1BST0JFX0xSX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRyICAgICAgIHgy
OCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJc
biIKKyAgICAiY21wICAgICAgIHgyNywgeDI4IiAiXG4iCisgICAgImJuZSAgICAgIiBMT0NBTF9M
QUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVycm9yKSAiXG4iCisKKyAgICAibW92
ICAgICAgIGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBVEVfUENfQ0hBTkdFRCkgIlxuIgor
CisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVQcmVwYXJlT3V0
Z29pbmdSZWNvcmRzKSAiOiIgIlxuIgorCisgICAgImxkciAgICAgICBmcCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfUkVUVVJOX1BDX09GRlNFVCkgIl0iICJcbiIgLy8g
UHJlbG9hZCB0aGUgcHJvYmUgcmV0dXJuIHNpdGUgcGMuCisKKyAgICAvLyBUaGUgcHJvYmUgaGFu
ZGxlciBtYXkgaGF2ZSBtb3ZlZCB0aGUgc3AuIEZvciB0aGUgcmV0dXJuIHByb2Nlc3MsIHdlIG1h
eSBuZWVkCisgICAgLy8gc3BhY2UgZm9yIDIgT3V0Z29pbmdQcm9iZVJlY29yZHMgYmVsb3cgdGhl
IGZpbmFsIHNwIHZhbHVlLiBXZSBuZWVkIHRvIG1ha2UKKyAgICAvLyBzdXJlIHRoYXQgdGhlIHNw
YWNlIGZvciB0aGVzZSAyIE91dGdvaW5nUHJvYmVSZWNvcmRzIGRvIG5vdCBvdmVybGFwIHRoZQor
ICAgIC8vIHJlc3RvcmUgdmFsdWVzIG9mIHRoZSByZWdpc3RlcnMuCisKKyAgICAvLyBBbGwgcmVz
dG9yZSB2YWx1ZXMgYXJlIGxvY2F0ZWQgYXQgb2Zmc2V0IDw9IFBST0JFX0NQVV9GUFNSX09GRlNF
VC4gSGVuY2UsCisgICAgLy8gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCByZXN1bHRhbnQgc3Ag
PiBvZmZzZXQgb2YgZnBzciArIDIgKiBzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkuCisKKyAg
ICAiYWRkICAgICAgIHgyNywgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRlBT
Ul9PRkZTRVQgKyAyICogT1VUX1NJWkUpICJcbiIKKyAgICAibGRyICAgICAgIHgyOCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKKyAgICAi
Y21wICAgICAgIHgyOCwgeDI3IiAiXG4iCisgICAgImJndCAgICAgIiBMT0NBTF9MQUJFTF9TVFJJ
TkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUZpbGxPdXRnb2luZ1Byb2JlUmVjb3JkcykgIlxuIgor
CisgICAgLy8gVGhlcmUgaXMgb3ZlcmxhcC4gV2UgbmVlZCB0byBjb3B5IHRoZSBQcm9iZUNvbnRl
eHQgdG8gYSBzYWZlIGFyZWEgZmlyc3QuCisgICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAic2FmZSBh
cmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUgT3V0Z29pbmdQ
cm9iZVJlY29yZHMgYXJlLgorICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0OgorICAgIC8vIDEuIFRo
ZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgT3V0Z29pbmdQcm9iZVJlY29yZHMuCisg
ICAgLy8gMi4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQu
CisKKyAgICAvLyB4MjggYWxyZWFkeSBjb250YWlucyBbc3AsICNTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1NQX09GRlNFVCldLgorICAgICJzdWIgICAgICAgeDI4LCB4MjgsICMiIFNUUklO
R0laRV9WQUxVRV9PRigyICogUFJPQkVfU0laRSkgIlxuIgorCisgICAgIm1vdiAgICAgICB4Mjcs
IHNwIiAiXG4iIC8vIFNhdmUgdGhlIG9yaWdpbmFsIFByb2JlQ29udGV4dCouCisKKyAgICAvLyBN
YWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMg
ZW5zdXJlcyB0aGF0IHRoZQorICAgIC8vIHNhZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRl
cnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuCisgICAgIm1vdiAgICAgICBzcCwgeDI4IiAi
XG4iIC8vIHNwIG5vdyBwb2ludHMgdG8gdGhlIG5ldyBQcm9iZUNvbnRleHQgaW4gdGhlIHNhZmUg
YXJlYS4KKworICAgIC8vIENvcHkgdGhlIHJlbGV2YW50IHJlc3RvcmUgZGF0YSB0byB0aGUgbmV3
IFByb2JlQ29udGV4dCouCisgICAgInN0ciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gwX09GRlNFVCkgIl0iICJcbiIgLy8gU3Rhc2ggdGhlIHBjIGNoYW5n
ZWQgc3RhdGUgYXdheSBzbyB0aGF0IHdlIGNhbiB1c2UgbHIuCisKKyAgICAibGRwICAgICAgIHgy
OCwgbHIsIFt4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI3X09GRlNFVCkg
Il0iICJcbiIgLy8gY29weSB4MjcgYW5kIHgyOC4KKyAgICAic3RwICAgICAgIHgyOCwgbHIsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjdfT0ZGU0VUKSAiXSIgIlxuIgor
ICAgICJsZHAgICAgICAgeDI4LCBsciwgW3gyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9GUF9PRkZTRVQpICJdIiAiXG4iIC8vIGNvcHkgZnAgYW5kIGxyLgorICAgICJzdHAgICAg
ICAgeDI4LCBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQX09GRlNF
VCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgyOCwgbHIsIFt4MjcsICMiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIiAvLyBjb3B5IHNwIGFuZCBwYy4K
KyAgICAic3RwICAgICAgIHgyOCwgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkcCAgICAgICB4MjgsIGxyLCBbeDI3LCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX05aQ1ZfT0ZGU0VUKSAiXSIgIlxuIiAvLyBj
b3B5IG56Y3YgYW5kIGZwc3IuCisgICAgInN0cCAgICAgICB4MjgsIGxyLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iCisKKyAgICAibGRy
ICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDBfT0ZGU0VU
KSAiXSIgIlxuIiAvLyBSZXRyaWV2ZSB0aGUgc3Rhc2hlZCB0aGUgcGMgY2hhbmdlZCBzdGF0ZS4K
KworICAgIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRmlsbE91dGdv
aW5nUHJvYmVSZWNvcmRzKSAiOiIgIlxuIgorCisgICAgImNtcCAgICAgICBsciwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFNUQVRFX1BDX0NIQU5HRUQpICJcbiIKKyAgICAiYmVxICAgICAiIExPQ0FM
X0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iCisKKyAgICAvLyBJ
biBvcmRlciB0byByZXN0b3JlIGxyLCB3ZSBuZWVkIHRvIGRvIHRoZSByZXN0b3JhdGlvbmF0aW9u
IGF0IHRoZSBwcm9iZSByZXR1cm4gc2l0ZS4KKyAgICAvLyBUaGUgcHJvYmUgcmV0dXJuIHNpdGUg
ZXhwZWN0cyBzcCB0byBiZSBwb2ludGluZyBhdCBhbiBPdXRnb2luZ1Byb2JlUmVjb3JkIHN1Y2gg
dGhhdAorICAgIC8vIHBvcHBpbmcgdGhlIE91dGdvaW5nUHJvYmVSZWNvcmQgd2lsbCB5aWVsZCB0
aGUgZGVzaXJlZCBzcC4gVGhlIHByb2JlIHJldHVybiBzaXRlCisgICAgLy8gYWxzbyBleHBlY3Rz
IHRoZSBsciB2YWx1ZSB0byBiZSByZXN0b3JlZCBpcyBzdGFzaGVkIGluIHRoZSBPdXRnb2luZ1By
b2JlUmVjb3JkLgorICAgIC8vIFdlIGNhbiBtYWtlIHRoaXMgaGFwcGVuIGJ5IHB1c2hpbmcgMiBP
dXRnb2luZ1Byb2JlUmVjb3JkcyBpbnN0ZWFkIG9mIDE6CisgICAgLy8gMSBmb3IgdGhlIHByb2Jl
IHJldHVybiBzaXRlLCBhbmQgMSBhdCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kIGZvciByZXR1
cm5pbmcgZnJvbQorICAgIC8vIHRoaXMgcHJvYmUuCisKKyAgICAvLyBGaWxsIGluIHRoZSBPdXRn
b2luZ1Byb2JlU3RhY2sgZm9yIHRoZSBwcm9iZSByZXR1cm4gc2l0ZS4KKyAgICAibGRyICAgICAg
IGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIg
IlxuIgorICAgICJzdWIgICAgICAgbHIsIGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX1NJ
WkUpICJcbiIKIAotICAgICJsZHIgICAgICAgeDI3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iCi0gICAgIm1zciAgICAgICBuemN2LCB4
MjciICJcbiIKLSAgICAibGRyICAgICAgIGZwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfRlBfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgImxkciAgICAgICB4MjcsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjdfT0ZGU0VUKSAiXSIgIlxuIgotICAg
ICJsZHIgICAgICAgeDI4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI4
X09GRlNFVCkgIl0iICJcbiIKLQotICAgIC8vIFRoZXJlIGFyZSA0IG1vcmUgcmVnaXN0ZXJzIGxl
ZnQgdG8gcmVzdG9yZTogeDI3LCB4MjgsIGxyLCBzcCwgYW5kIHBjLgotICAgIC8vIFRoZSBKSVQg
Y29kZSdzIGxyIGFuZCBzcCB3aWxsIGJlIHJlc3RvcmVkIGJ5IHRoZSBjYWxsZXIuCi0KLSAgICAv
LyBSZXN0b3JlIHBjIGJ5IGxvYWRpbmcgaXQgaW50byBsci4gVGhlIHJldCBiZWxvdyB3aWxsIHB1
dCBpbiB0aGUgcGMuCi0gICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKLQotICAgIC8vIFdlIG5lZWQgeDI3IGFz
IGEgc2NyYXRjaCByZWdpc3RlciB0byBoZWxwIHdpdGggcG9wcGluZyB0aGUgUHJvYmVDb250ZXh0
LgotICAgIC8vIEhlbmNlLCBiZWZvcmUgd2UgcG9wIHRoZSBQcm9iZUNvbnRleHQsIHdlIG5lZWQg
dG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZQotICAgIC8vIGZvciB4MjcgZnJvbSB0aGUgUHJvYmVD
b250ZXh0IHRvIHRoZSBjYWxsZXIgc2F2ZSBidWZmZXIuCi0gICAgImxkciAgICAgICB4MjgsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX0NBTExFUl9TUCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyN19P
RkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MjcsIFt4MjgsICM0ICogIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFRSX1NJWkUpICJdIiAiXG4iCi0KLSAgICAvLyBTaW5jZSBsciBpcyBhbHNv
IHJlc3RvcmVkIGJ5IHRoZSBjYWxsZXIsIHdlIG5lZWQgdG8gY29weSBpdHMgcmVzdG9yZQotICAg
IC8vIHZhbHVlIHRvIHRoZSBjYWxsZXIgc2F2ZSBidWZmZXIgdG9vLgogICAgICJsZHIgICAgICAg
eDI3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTFJfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgeDI3LCBbeDI4LCAjNiAqICIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBUUl9TSVpFKSAiXSIgIlxuIgorICAgICJzdHIgICAgICAgeDI3LCBbbHIsICMiIFNUUklOR0la
RV9WQUxVRV9PRihPVVRfTFJfT0ZGU0VUKSAiXSIgIlxuIgogCi0gICAgLy8gV2UncmUgbm93IGRv
bmUgd2l0aCB4MjgsIGFuZCBjYW4gcmVzdG9yZSBpdHMgdmFsdWUuCi0gICAgImxkciAgICAgICB4
MjgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjhfT0ZGU0VUKSAiXSIg
IlxuIgotCi0gICAgLy8gV2UncmUgbm93IGRvbmUgd2l0aCB0aGUgUHJvYmVDb250ZXh0LCBhbmQg
Y2FuIHBvcCBpdCB0byByZXN0b3JlIHNwIHNvIHRoYXQKLSAgICAvLyBpdCBwb2ludHMgdG8gdGhl
IGNhbGxlciBzYXZlIGJ1ZmZlci4KLSAgICAibGRyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoU0FWRURfQ0FMTEVSX1NQKSAiXSIgIlxuIgotICAgICJtb3YgICAgICAgc3As
IHgyNyIgIlxuIgotCi0gICAgLy8gV2UncmUgbm93IGRvbmUgd2l0aCB4MjcsIGFuZCBjYW4gcmVz
dG9yZSBpdC4KLSAgICAibGRyICAgICAgIHgyNywgW3NwLCAjNCAqICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBUUl9TSVpFKSAiXSIgIlxuIgorICAgIC8vIFNldCB1cCB0aGUgc3AgYW5kIHBjIHZhbHVl
cyBzbyB0aGF0IGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQgd2lsbCByZXR1cm4gdG8gdGhlIHBy
b2JlIHJldHVybiBzaXRlLgorICAgICJzdHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0ciAgICAgICBmcCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIg
Ly8gU3RvcmUgdGhlIHByb2JlIHJldHVybiBzaXRlIHBjIChwcmVsb2FkZWQgaW50byBmcCBhYm92
ZSkuCisKKyAgICBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkg
IjoiICJcbiIKKworICAgIC8vIEZpbGwgaW4gdGhlIE91dGdvaW5nUHJvYmVTdGFjay4KKyAgICAi
bGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZG
U0VUKSAiXSIgIlxuIgorICAgICJzdWIgICAgICAgbHIsIGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoT1VUX1NJWkUpICJcbiIKKworICAgICJsZHAgICAgICAgeDI3LCB4MjgsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9OWkNWX09GRlNFVCkgIl0iICJcbiIKKyAgICAic3Rw
ICAgICAgIHgyNywgeDI4LCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihPVVRfTlpDVl9PRkZT
RVQpICJdIiAiXG4iCisgICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1gyN19PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4
MjcsIHgyOCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX1gyN19PRkZTRVQpICJdIiAi
XG4iCisgICAgImxkciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9GUF9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciAgICAgICB4MjgsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAg
ICAgICB4MjcsIHgyOCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX0ZQX09GRlNFVCkg
Il0iICJcbiIKKyAgICAibW92ICAgICAgIHNwLCBsciIgIlxuIgogCisgICAgLy8gUmVzdG9yZSB0
aGUgcmVtYWluaW5nIHJlZ2lzdGVycyBhbmQgcG9wIHRoZSBPdXRnb2luZ1Byb2JlU3RhY2suCisg
ICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX05a
Q1ZfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJtc3IgICAgICAgbnpjdiwgeDI3IiAiXG4iCisgICAg
Im1zciAgICAgICBmcHNyLCB4MjgiICJcbiIKKyAgICAibGRwICAgICAgIHgyNywgeDI4LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihPVVRfWDI3X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRw
ICAgICAgIGZwLCBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX0ZQX09GRlNFVCkg
Il0iICJcbiIKKyAgICAiYWRkICAgICAgIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKE9V
VF9TSVpFKSAiXG4iCiAgICAgInJldCIgIlxuIgorCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0
aU1hc21Qcm9iZVRyYW1wb2xpbmVFcnJvcikgIjoiICJcbiIKKyAgICAvLyBUaGUgcHJvYmUgaGFu
ZGxlciBjaGFuZ2VkIGJvdGggbHIgYW5kIHBjLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIEFS
TTY0LgorICAgICJsZHIgICAgICAgeDEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVE
X1BST0JFX0VSUk9SX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIKKyAgICAibW92ICAgICAgIHgw
LCBzcCIgIlxuIiAvLyBTZXQgdGhlIFByb2JlQ29udGV4dCogYXJnLgorICAgICJibHIgICAgICAg
eDEiICJcbiIKKyAgICAiYnJrICAgICAgICMweDEwMDAiIC8vIFNob3VsZCBuZXZlciByZXR1cm4g
aGVyZS4KICk7CiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQogCi1zdGF0aWMgdm9p
ZCBhcm02NFByb2JlVHJhbXBvbGluZShQcm9iZUNvbnRleHQqIGNvbnRleHQpCitzdGF0aWMgTk9f
UkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGFybTY0UHJvYmVFcnJvcihQcm9iZUNvbnRleHQqKQog
ewotICAgIHZvaWQqIG9yaWdTUCA9IGNvbnRleHQtPmNwdS5zcCgpOwotICAgIHZvaWQqIG9yaWdQ
QyA9IGNvbnRleHQtPmNwdS5wYygpOwotICAgIAotICAgIGNvbnRleHQtPnByb2JlRnVuY3Rpb24o
Y29udGV4dCk7Ci0gICAgCi0gICAgaWYgKGNvbnRleHQtPmNwdS5zcCgpICE9IG9yaWdTUCkgewot
ICAgICAgICBkYXRhTG9nKCJNYWNyb0Fzc2VtYmxlciBwcm9iZSBFUlJPUjogQVJNNjQgZG9lcyBu
b3Qgc3VwcG9ydCB0aGUgcHJvYmUgY2hhbmdpbmcgdGhlIFNQLiBUaGUgY2hhbmdlIHdpbGwgYmUg
aWdub3JlZFxuIik7Ci0gICAgICAgIGNvbnRleHQtPmNwdS5zcCgpID0gb3JpZ1NQOwotICAgIH0K
LSAgICBpZiAoY29udGV4dC0+Y3B1LnBjKCkgIT0gb3JpZ1BDKSB7Ci0gICAgICAgIGRhdGFMb2co
Ik1hY3JvQXNzZW1ibGVyIHByb2JlIEVSUk9SOiBBUk02NCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBw
cm9iZSBjaGFuZ2luZyB0aGUgUEMuIFRoZSBjaGFuZ2Ugd2lsbCBiZSBpZ25vcmVkXG4iKTsKLSAg
ICAgICAgY29udGV4dC0+Y3B1LnBjKCkgPSBvcmlnUEM7Ci0gICAgfQorICAgIGRhdGFMb2coIk1h
Y3JvQXNzZW1ibGVyIHByb2JlIEVSUk9SOiBBUk02NCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBwcm9i
ZSBjaGFuZ2luZyBib3RoIExSIGFuZCBQQy5cbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24g
ZnVuY3Rpb24sIHZvaWQqIGFyZykKIHsKLSAgICBzdWI2NChUcnVzdGVkSW1tMzIoNyAqIDgpLCBz
cCk7CisgICAgc3ViNjQoVHJ1c3RlZEltbTMyKHNpemVvZihJbmNvbWluZ1Byb2JlUmVjb3JkKSks
IHNwKTsKIAotICAgIHN0b3JlNjQoeDI3LCBBZGRyZXNzKHNwLCAzICogOCkpOwotICAgIHN0b3Jl
NjQoeDI4LCBBZGRyZXNzKHNwLCA0ICogOCkpOwotICAgIHN0b3JlNjQobHIsIEFkZHJlc3Moc3As
IDUgKiA4KSk7Ci0KLSAgICBhZGQ2NChUcnVzdGVkSW1tMzIoNyAqIDgpLCBzcCwgeDI4KTsKLSAg
ICBzdG9yZTY0KHgyOCwgQWRkcmVzcyhzcCwgNiAqIDgpKTsgLy8gU2F2ZSBvcmlnaW5hbCBzcCB2
YWx1ZS4KLQotICAgIG1vdmUoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihm
dW5jdGlvbikpLCB4MjgpOwotICAgIHN0b3JlNjQoeDI4LCBBZGRyZXNzKHNwKSk7Ci0gICAgbW92
ZShUcnVzdGVkSW1tUHRyKGFyZyksIHgyOCk7Ci0gICAgc3RvcmU2NCh4MjgsIEFkZHJlc3Moc3As
IDEgKiA4KSk7Ci0gICAgbW92ZShUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KGFybTY0UHJvYmVUcmFtcG9saW5lKSksIHgyOCk7Ci0gICAgc3RvcmU2NCh4MjgsIEFkZHJlc3Mo
c3AsIDIgKiA4KSk7Ci0KLSAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oY3RpTWFzbVByb2JlVHJhbXBvbGluZSkpLCB4MjgpOwotICAgIG1fYXNzZW1ibGVyLmJs
cih4MjgpOwotCi0gICAgLy8gY3RpTWFzbVByb2JlVHJhbXBvbGluZSBzaG91bGQgaGF2ZSByZXN0
b3JlZCBldmVyeSByZWdpc3RlciBleGNlcHQgZm9yCi0gICAgLy8gbHIgYW5kIHRoZSBzcC4KLSAg
ICBsb2FkNjQoQWRkcmVzcyhzcCwgNSAqIDgpLCBscik7Ci0gICAgYWRkNjQoVHJ1c3RlZEltbTMy
KDcgKiA4KSwgc3ApOworICAgIHN0b3JlUGFpcjY0KHgyNiwgeDI3LCBzcCwgVHJ1c3RlZEltbTMy
KG9mZnNldG9mKEluY29taW5nUHJvYmVSZWNvcmQsIHgyNikpKTsKKyAgICBhZGQ2NChUcnVzdGVk
SW1tMzIoc2l6ZW9mKEluY29taW5nUHJvYmVSZWNvcmQpKSwgc3AsIHgyNik7CisgICAgc3RvcmVQ
YWlyNjQobHIsIHgyNiwgc3AsIFRydXN0ZWRJbW0zMihvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVj
b3JkLCBscikpKTsgLy8gU2F2ZSBsciBhbmQgb3JpZ2luYWwgc3AgdmFsdWUuCisgICAgbW92ZShU
cnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSksIHgyNik7Cisg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKGFyZyksIHgyNyk7CisgICAgc3RvcmVQYWlyNjQoeDI2LCB4
MjcsIHNwLCBUcnVzdGVkSW1tMzIob2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJlY29yZCwgcHJvYmVI
YW5kbGVyRnVuY3Rpb24pKSk7CisgICAgbW92ZShUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KGFybTY0UHJvYmVFcnJvcikpLCB4MjcpOworICAgIHN0b3JlNjQoeDI3LCBBZGRy
ZXNzKHNwLCBvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVjb3JkLCBwcm9iZUVycm9yRnVuY3Rpb24p
KSk7CisKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY3Rp
TWFzbVByb2JlVHJhbXBvbGluZSkpLCB4MjYpOworICAgIG1fYXNzZW1ibGVyLmJscih4MjYpOwor
CisgICAgLy8gY3RpTWFzbVByb2JlVHJhbXBvbGluZSBzaG91bGQgaGF2ZSByZXN0b3JlZCBldmVy
eSByZWdpc3RlciBleGNlcHQgZm9yIGxyIGFuZCB0aGUgc3AuCisgICAgbG9hZDY0KEFkZHJlc3Mo
c3AsIG9mZnNldG9mKE91dGdvaW5nUHJvYmVSZWNvcmQsIGxyKSksIGxyKTsKKyAgICBhZGQ2NChU
cnVzdGVkSW1tMzIoc2l6ZW9mKE91dGdvaW5nUHJvYmVSZWNvcmQpKSwgc3ApOwogfQogI2VuZGlm
IC8vIEVOQUJMRShNQVNNX1BST0JFKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkocmV2aXNpb24gMjE5OTAxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYg
KzcxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBuZXh0SUQoVCBpZCkgeyByZQogI2Vsc2UK
ICNkZWZpbmUgdGVzdFdvcmQoeCkgdGVzdFdvcmQzMih4KQogI2VuZGlmCisjZGVmaW5lIHRlc3RE
b3VibGVXb3JkKHgpIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFdvcmQoeCkpCiAKIC8vIE5vdGhp
bmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdURiBhc3NlcnRpb24g
bWFjaGluZXJ5LgogI2RlZmluZSBDSEVDSyh4KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtODEsNiArODIsOSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBUIG5leHRJRChUIGlkKSB7IHJlCiAgICAgICAgIENSQVNIKCk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3
aGlsZSAoZmFsc2UpCiAKKyNkZWZpbmUgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEoYSwgYikgXAor
ICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGEpID09IGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KGEpKQorCiAjaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBib29sIGlzUEMoTWFjcm9Bc3Nl
bWJsZXI6OlJlZ2lzdGVySUQgaWQpCiB7CkBAIC0xMDEsNiArMTA1LDE3IEBAIGJvb2wgaXNGUChN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBpZCkKIHsKICAgICByZXR1cm4gaWQgPT0gTWFjcm9B
c3NlbWJsZXI6OmZyYW1lUG9pbnRlclJlZ2lzdGVyOwogfQorCitib29sIGlzU3BlY2lhbEdQUihN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBpZCkKK3sKKyAgICBpZiAoaXNQQyhpZCkgfHwgaXNT
UChpZCkgfHwgaXNGUChpZCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2lmIENQVShBUk02NCkK
KyAgICBpZiAoaWQgPT0gQVJNNjRSZWdpc3RlcnM6OngxOCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJP
QkUpCiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb21waWxlKEdlbmVyYXRvciYmIGdlbmVyYXRl
KQpAQCAtMTY0LDggKzE3OSw4IEBAIHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVy
cygpCiAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIy
KSA9PSB0ZXN0V29yZCgyKSk7CiAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoR1BSSW5m
bzo6YXJndW1lbnRHUFIzKSA9PSB0ZXN0V29yZCgzKSk7CiAKLSAgICAgICAgICAgIENIRUNLKGNv
bnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QwKSA9PSB0ZXN0V29yZDMyKDApKTsKLSAgICAgICAg
ICAgIENIRUNLKGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QxKSA9PSB0ZXN0V29yZDMyKDEp
KTsKKyAgICAgICAgICAgIENIRUNLX0RPVUJMRV9CSVRXSVNFX0VRKGNvbnRleHQtPmZwcihGUFJJ
bmZvOjpmcFJlZ1QwKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDMyKDApKSk7CisgICAg
ICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBS
ZWdUMSksICBzdGF0aWNfY2FzdDxkb3VibGU+KHRlc3RXb3JkMzIoMSkpKTsKICAgICAgICAgfSk7
CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICBqaXQucmV0KCk7
CkBAIC0yMTcsOCArMjMyLDggQEAgdm9pZCB0ZXN0UHJvYmVXcml0ZXNBcmd1bWVudFJlZ2lzdGVy
cygpCiAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIy
KSA9PSB0ZXN0V29yZCgyKSk7CiAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoR1BSSW5m
bzo6YXJndW1lbnRHUFIzKSA9PSB0ZXN0V29yZCgzKSk7CiAKLSAgICAgICAgICAgIENIRUNLKGNv
bnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QwKSA9PSB0ZXN0V29yZDMyKDApKTsKLSAgICAgICAg
ICAgIENIRUNLKGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QxKSA9PSB0ZXN0V29yZDMyKDEp
KTsKKyAgICAgICAgICAgIENIRUNLX0RPVUJMRV9CSVRXSVNFX0VRKGNvbnRleHQtPmZwcihGUFJJ
bmZvOjpmcFJlZ1QwKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDMyKDApKSk7CisgICAg
ICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBS
ZWdUMSksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFdvcmQzMigxKSkpOwogICAgICAgICB9KTsK
IAogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKQEAgLTI1NiwxMyArMjcxLDEz
IEBAIHZvaWQgdGVzdFByb2JlUHJlc2VydmVzR1BSUygpCiAgICAgICAgICAgICBwcm9iZUNhbGxD
b3VudCsrOwogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJl
Z2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElE
KGlkKSkgewogICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSA9IGNvbnRleHQt
PmdwcihpZCk7Ci0gICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlz
RlAoaWQpKQorICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0g
dGVzdFdvcmQoc3RhdGljX2Nhc3Q8aW50PihpZCkpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0g
Q0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKICAgICAg
ICAgICAgICAgICBvcmlnaW5hbFN0YXRlLmZwcihpZCkgPSBjb250ZXh0LT5mcHIoaWQpOwotICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmZwcihpZCkgPSB0ZXN0V29yZChpZCk7CisgICAgICAgICAg
ICAgICAgY29udGV4dC0+ZnByKGlkKSA9IHRlc3REb3VibGVXb3JkKGlkKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfSk7CiAKQEAgLTI3NywyMyArMjkyLDIzIEBAIHZvaWQgdGVzdFByb2JlUHJl
c2VydmVzR1BSUygpCiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4
dCkgewogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAgIGZvciAoYXV0
byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6
Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
aXNQQyhpZCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IGlmIChpc1NQKGlkKSB8fCBpc0ZQKGlkKSkgewogICAgICAgICAgICAgICAgICAgICBDSEVDSyhj
b250ZXh0LT5ncHIoaWQpID09IG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
aXNTcGVjaWFsR1BSKGlkKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSB0ZXN0V29yZChpZCkpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQ
UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5l
eHRJRChpZCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKGlkKSA9PSB0ZXN0
V29yZChpZCkpOworICAgICAgICAgICAgICAgIENIRUNLX0RPVUJMRV9CSVRXSVNFX0VRKGNvbnRl
eHQtPmZwcihpZCksIHRlc3REb3VibGVXb3JkKGlkKSk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHN0YXRlLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQ
cm9iZUNvbnRleHQqIGNvbnRleHQpIHsKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CiAg
ICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsg
aWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAg
ICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0gb3JpZ2luYWxTdGF0
ZS5ncHIoaWQpOwogICAgICAgICAgICAgfQpAQCAtMzA1LDEyICszMjAsMTIgQEAgdm9pZCB0ZXN0
UHJvYmVQcmVzZXJ2ZXNHUFJTKCkKICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0
KiBjb250ZXh0KSB7CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAgICAgICAgICAg
Zm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxs
SGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewotICAgICAgICAgICAg
ICAgIGlmIChpc1BDKGlkKSB8fCBpc1NQKGlkKSB8fCBpc0ZQKGlkKSkKKyAgICAgICAgICAgICAg
ICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdw
cihpZCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxI
ZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdp
c3RlcigpOyBpZCA9IG5leHRJRChpZCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+
ZnByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmZwcihpZCkpOworICAgICAgICAgICAgICAgIENIRUNL
X0RPVUJMRV9CSVRXSVNFX0VRKGNvbnRleHQtPmZwcihpZCksIG9yaWdpbmFsU3RhdGUuZnByKGlk
KSk7CiAgICAgICAgIH0pOwogCiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwpA
QCAtMzI1LDggKzM0MCwxNyBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyKFdU
Rjo6CiAgICAgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIG9yaWdpbmFsU3RhdGU7CiAgICAgdWlu
dDhfdCogb3JpZ2luYWxTUCB7IG51bGxwdHIgfTsKICAgICB2b2lkKiBtb2RpZmllZFNQIHsgbnVs
bHB0ciB9OwotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSB8
fCBDUFUoQVJNX1RSQURJVElPTkFMKQogICAgIHVpbnRwdHJfdCBtb2RpZmllZEZsYWdzIHsgMCB9
OworICAgIAorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgYXV0byBmbGFnc1NQUiA9
IFg4NlJlZ2lzdGVyczo6ZWZsYWdzOworICAgIHVpbnRwdHJfdCBmbGFnc01hc2sgPSAweGM1Owor
I2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1fVFJBRElUSU9OQUwpCisgICAgYXV0byBm
bGFnc1NQUiA9IEFSTVJlZ2lzdGVyczo6YXBzcjsKKyAgICB1aW50cHRyX3QgZmxhZ3NNYXNrID0g
MHhmMDAwMDAwMDsKKyNlbGlmIENQVShBUk02NCkKKyAgICBhdXRvIGZsYWdzU1BSID0gQVJNNjRS
ZWdpc3RlcnM6Om56Y3Y7CisgICAgdWludHB0cl90IGZsYWdzTWFzayA9IDB4ZjAwMDAwMDA7CiAj
ZW5kaWYKIAogICAgIGNvbXBpbGVBbmRSdW48dm9pZD4oWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkg
ewpAQCAtMzM4LDcgKzM2Miw3IEBAIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIo
V1RGOjoKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAgICAgICBmb3IgKGF1
dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJz
OjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAgICAgICAgICAgb3Jp
Z2luYWxTdGF0ZS5ncHIoaWQpID0gY29udGV4dC0+Z3ByKGlkKTsKLSAgICAgICAgICAgICAgICBp
ZiAoaXNQQyhpZCkgfHwgaXNTUChpZCkgfHwgaXNGUChpZCkpCisgICAgICAgICAgICAgICAgaWYg
KGlzU3BlY2lhbEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmdwcihpZCkgPSB0ZXN0V29yZChzdGF0aWNfY2FzdDxpbnQ+KGlk
KSk7CiAgICAgICAgICAgICB9CkBAIC0zNDYsMTUgKzM3MCwxMSBAQCB2b2lkIHRlc3RQcm9iZU1v
ZGlmaWVzU3RhY2tQb2ludGVyKFdURjo6CiAgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5m
cHIoaWQpID0gY29udGV4dC0+ZnByKGlkKTsKICAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIo
aWQpID0gdGVzdFdvcmQoaWQpOwogICAgICAgICAgICAgfQotI2lmIENQVShYODYpIHx8IENQVShY
ODZfNjQpCi0gICAgICAgICAgICBvcmlnaW5hbFN0YXRlLnNwcihYODZSZWdpc3RlcnM6OmVmbGFn
cykgPSBjb250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpOwotICAgICAgICAgICAgbW9k
aWZpZWRGbGFncyA9IG9yaWdpbmFsU3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSBeIDB4
YzU7Ci0gICAgICAgICAgICBjb250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID0gbW9k
aWZpZWRGbGFnczsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElPTkFM
KQotICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5zcHIoQVJNUmVnaXN0ZXJzOjphcHNyKSA9IGNv
bnRleHQtPnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpOwotICAgICAgICAgICAgbW9kaWZpZWRGbGFn
cyA9IG9yaWdpbmFsU3RhdGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgXiAweGYwMDAwMDAwOwot
ICAgICAgICAgICAgY29udGV4dC0+c3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgPSBtb2RpZmllZEZs
YWdzOwotI2VuZGlmCisKKyAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuc3ByKGZsYWdzU1BSKSA9
IGNvbnRleHQtPnNwcihmbGFnc1NQUik7CisgICAgICAgICAgICBtb2RpZmllZEZsYWdzID0gb3Jp
Z2luYWxTdGF0ZS5zcHIoZmxhZ3NTUFIpIF4gZmxhZ3NNYXNrOworICAgICAgICAgICAgY29udGV4
dC0+c3ByKGZsYWdzU1BSKSA9IG1vZGlmaWVkRmxhZ3M7CisKICAgICAgICAgICAgIG9yaWdpbmFs
U1AgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihjb250ZXh0LT5zcCgpKTsKICAgICAgICAg
ICAgIG1vZGlmaWVkU1AgPSBjb21wdXRlTW9kaWZpZWRTdGFjayhjb250ZXh0KTsKICAgICAgICAg
ICAgIGNvbnRleHQtPnNwKCkgPSBtb2RpZmllZFNQOwpAQCAtMzY0LDIxICszODQsMTcgQEAgdm9p
ZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihXVEY6OgogICAgICAgICBqaXQucHJvYmUo
WyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50
Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0
ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQp
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpKQotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBpZiAoaXNGUChpZCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRl
LmdwcihpZCkpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgaWYgKGlzU3BlY2lhbEdQUihpZCkpCisgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkg
PT0gdGVzdFdvcmQoaWQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBp
ZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6
bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKQotICAgICAgICAgICAgICAgIENIRUNL
KGNvbnRleHQtPmZwcihpZCkgPT0gdGVzdFdvcmQoaWQpKTsKLSNpZiBDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KQotICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZs
YWdzKSA9PSBtb2RpZmllZEZsYWdzKTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJN
X1RSQURJVElPTkFMKQotICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+c3ByKEFSTVJlZ2lzdGVy
czo6YXBzcikgPT0gbW9kaWZpZWRGbGFncyk7Ci0jZW5kaWYKKyAgICAgICAgICAgICAgICBDSEVD
S19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoaWQpLCB0ZXN0RG91YmxlV29yZChpZCkp
OworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+c3ByKGZsYWdzU1BSKSA9PSBtb2RpZmllZEZs
YWdzKTsKICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPnNwKCkgPT0gbW9kaWZpZWRTUCk7CiAg
ICAgICAgIH0pOwogCkBAIC0zODYsMTcgKzQwMiwxMyBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVz
U3RhY2tQb2ludGVyKFdURjo6CiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCog
Y29udGV4dCkgewogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAgIGZv
ciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhl
bHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoaXNQQyhpZCkgfHwgaXNTUChpZCkgfHwgaXNGUChpZCkpCisgICAgICAgICAgICAgICAg
aWYgKGlzU3BlY2lhbEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgICAgIGNvbnRleHQtPmdwcihpZCkgPSBvcmlnaW5hbFN0YXRlLmdwcihpZCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZp
cnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlk
ID0gbmV4dElEKGlkKSkKICAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0gb3JpZ2lu
YWxTdGF0ZS5mcHIoaWQpOwotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCi0gICAgICAgICAg
ICBjb250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID0gb3JpZ2luYWxTdGF0ZS5zcHIo
WDg2UmVnaXN0ZXJzOjplZmxhZ3MpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1f
VFJBRElUSU9OQUwpCi0gICAgICAgICAgICBjb250ZXh0LT5zcHIoQVJNUmVnaXN0ZXJzOjphcHNy
KSA9IG9yaWdpbmFsU3RhdGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcik7Ci0jZW5kaWYKKyAgICAg
ICAgICAgIGNvbnRleHQtPnNwcihmbGFnc1NQUikgPSBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQ
Uik7CiAgICAgICAgICAgICBjb250ZXh0LT5zcCgpID0gb3JpZ2luYWxTUDsKICAgICAgICAgfSk7
CiAKQEAgLTQwNCwxNyArNDE2LDEzIEBAIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50
ZXIoV1RGOjoKICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSB7
CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAgICAgICAgICAgZm9yIChhdXRvIGlk
ID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFz
dFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewotICAgICAgICAgICAgICAgIGlmIChpc1BD
KGlkKSB8fCBpc1NQKGlkKSB8fCBpc0ZQKGlkKSkKKyAgICAgICAgICAgICAgICBpZiAoaXNTcGVj
aWFsR1BSKGlkKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg
ICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJz
dEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9
IG5leHRJRChpZCkpCi0gICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKGlkKSA9PSBv
cmlnaW5hbFN0YXRlLmZwcihpZCkpOwotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCi0gICAg
ICAgICAgICBDSEVDSyhjb250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID09IG9yaWdp
bmFsU3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1C
MikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkKLSAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPnNw
cihBUk1SZWdpc3RlcnM6OmFwc3IpID09IG9yaWdpbmFsU3RhdGUuc3ByKEFSTVJlZ2lzdGVyczo6
YXBzcikpOwotI2VuZGlmCisgICAgICAgICAgICAgICAgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEo
Y29udGV4dC0+ZnByKGlkKSwgIG9yaWdpbmFsU3RhdGUuZnByKGlkKSk7CisgICAgICAgICAgICBD
SEVDSyhjb250ZXh0LT5zcHIoZmxhZ3NTUFIpID09IG9yaWdpbmFsU3RhdGUuc3ByKGZsYWdzU1BS
KSk7CiAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5zcCgpID09IG9yaWdpbmFsU1ApOwogICAg
ICAgICB9KTsKIApAQCAtNDI2LDcgKzQzNCwxMiBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3Rh
Y2tQb2ludGVyKFdURjo6CiAKIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXJUb0lu
c2lkZVByb2JlQ29udGV4dE9uU3RhY2soKQogewotICAgIGZvciAoc2l6ZV90IG9mZnNldCA9IDA7
IG9mZnNldCA8IHNpemVvZihQcm9iZUNvbnRleHQpOyBvZmZzZXQgKz0gc2l6ZW9mKHVpbnRwdHJf
dCkpIHsKKyAgICBzaXplX3QgaW5jcmVtZW50ID0gc2l6ZW9mKHVpbnRwdHJfdCk7CisjaWYgQ1BV
KEFSTTY0KQorICAgIC8vIFRoZSBBUk02NCBwcm9iZSB1c2VzIGxkcCBhbmQgc3RwIHdoaWNoIHJl
cXVpcmUgMTYgYnl0ZSBhbGlnbm1lbnQuCisgICAgaW5jcmVtZW50ID0gMiAqIHNpemVvZih1aW50
cHRyX3QpOworI2VuZGlmCisgICAgZm9yIChzaXplX3Qgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgc2l6
ZW9mKFByb2JlQ29udGV4dCk7IG9mZnNldCArPSBpbmNyZW1lbnQpIHsKICAgICAgICAgdGVzdFBy
b2JlTW9kaWZpZXNTdGFja1BvaW50ZXIoWz1dIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIC0+IHZv
aWQqIHsKICAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihjb250
ZXh0KSArIG9mZnNldDsKICAgICAgICAgfSk7CkBAIC00MzUsNyArNDQ4LDEyIEBAIHZvaWQgdGVz
dFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXJUb0luc2kKIAogdm9pZCB0ZXN0UHJvYmVNb2RpZmll
c1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpCiB7Ci0gICAgZm9yIChzaXplX3Qgb2Zmc2V0
ID0gMDsgb2Zmc2V0IDwgMSAqIEtCOyBvZmZzZXQgKz0gc2l6ZW9mKHVpbnRwdHJfdCkpIHsKKyAg
ICBzaXplX3QgaW5jcmVtZW50ID0gc2l6ZW9mKHVpbnRwdHJfdCk7CisjaWYgQ1BVKEFSTTY0KQor
ICAgIC8vIFRoZSBBUk02NCBwcm9iZSB1c2VzIGxkcCBhbmQgc3RwIHdoaWNoIHJlcXVpcmUgMTYg
Ynl0ZSBhbGlnbm1lbnQuCisgICAgaW5jcmVtZW50ID0gMiAqIHNpemVvZih1aW50cHRyX3QpOwor
I2VuZGlmCisgICAgZm9yIChzaXplX3Qgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgMSAqIEtCOyBvZmZz
ZXQgKz0gaW5jcmVtZW50KSB7CiAgICAgICAgIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVy
KFs9XSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSAtPiB2b2lkKiB7CiAgICAgICAgICAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29udGV4dC0+Y3B1LnNwKCkpIC0gb2Zmc2V0
OwogICAgICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316425</attachid>
            <date>2017-07-25 20:32:28 -0700</date>
            <delta_ts>2017-07-25 22:06:51 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-174697.patch</filename>
            <type>text/plain</type>
            <size>51940</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5OTAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDE3LTA3LTI1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHNwIGFuZCBwYyB0byB0aGUgQVJNNjQgSklUIHByb2Jl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0Njk3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzQzNjk2NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZv
bGxvd2luZzoKKworICAgICAgICAxLiBUaGUgQVJNNjQgcHJvYmUgbm93IHN1cHBvcnRzIG1vZGlm
eWluZyB0aGUgcGMgYW5kIHNwLgorCisgICAgICAgICAgIEhvd2V2ZXIsIGxyIGlzIG5vdCBwcmVz
ZXJ2ZWQgd2hlbiBtb2RpZnlpbmcgdGhlIHBjIGJlY2F1c2UgaXQgaXMgdXNlZCBhcyB0aGUKKyAg
ICAgICAgICAgc2NyYXRjaCByZWdpc3RlciBmb3IgdGhlIGluZGlyZWN0IGp1bXAuIEhlbmNlLCB0
aGUgcHJvYmUgaGFuZGxlciBmdW5jdGlvbgorICAgICAgICAgICBtYXkgbm90IG1vZGlmeSBib3Ro
IGxyIGFuZCBwYyBpbiB0aGUgc2FtZSBwcm9iZSBpbnZvY2F0aW9uLgorCisgICAgICAgIDIuIEZp
eCBwcm9iZSB0ZXN0cyB0byB1c2UgYml0d2lzZSBjb21wYXJpc29uIHdoZW4gY29tcGFyaW5nIGRv
dWJsZSByZWdpc3RlcgorICAgICAgICAgICB2YWx1ZXMuIE90aGVyd2lzZSwgZXF1aXZhbGVudCBu
YW4gdmFsdWVzIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgbm90IGVxdWl2YWxlbnQuCisKKyAgICAg
ICAgMy4gQ2hhbmdlIHRoZSBtaW5pbXVtIG9mZnNldCBpbmNyZW1lbnQgaW4gdGVzdFByb2JlTW9k
aWZpZXNTdGFja1BvaW50ZXIgdG8gYmUKKyAgICAgICAgICAgMTYgYnl0ZXMgZm9yIEFSTTY0LiAg
VGhpcyBpcyBiZWNhdXNlIHRoZSBBUk02NCBwcm9iZSBub3cgdXNlcyB0aGUgbGRwIGFuZCBzdHAK
KyAgICAgICAgICAgaW5zdHJ1Y3Rpb25zIHdoaWNoIHJlcXVpcmUgMTYgYnl0ZSBhbGlnbm1lbnQg
Zm9yIHRoZWlyIG1lbW9yeSBhY2Nlc3MuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5jcHA6CisgICAgICAgIChKU0M6OmFybTY0UHJvYmVFcnJvcik6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgIChKU0M6OmFybTY0UHJvYmVU
cmFtcG9saW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgor
ICAgICAgICAoSlNDOjppc1NwZWNpYWxHUFIpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVSZWFk
c0FyZ3VtZW50UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlV3JpdGVzQXJndW1l
bnRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIpOgorICAgICAgICAoSlND
Ojp0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250ZXh0T25TdGFj
ayk6CisgICAgICAgIChKU0M6OnRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyVG9OQnl0ZXNC
ZWxvd1NQKToKKwogMjAxNy0wNy0yNSAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IGdlbmVyYXRlIHNtYWxsZXIgYmluYXJpZXMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmNwcAkocmV2aXNpb24gMjE5OTAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIy
LDkgKzEyMiwxMSBAQCB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CiAjZGVmaW5lIFBS
T0JFX0NQVV9RMzBfT0ZGU0VUIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzAgKiBGUFJF
R19TSVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX1EzMV9PRkZTRVQgKFBST0JFX0ZJUlNUX0ZQUkVH
X09GRlNFVCArICgzMSAqIEZQUkVHX1NJWkUpKQogI2RlZmluZSBQUk9CRV9TSVpFIChQUk9CRV9G
SVJTVF9GUFJFR19PRkZTRVQgKyAoMzIgKiBGUFJFR19TSVpFKSkKLSNkZWZpbmUgU0FWRURfQ0FM
TEVSX1NQIFBST0JFX1NJWkUKLSNkZWZpbmUgUFJPQkVfU0laRV9QTFVTX1NBVkVEX0NBTExFUl9T
UCAoU0FWRURfQ0FMTEVSX1NQICsgUFRSX1NJWkUpCi0jZGVmaW5lIFBST0JFX0FMSUdORURfU0la
RSAoUFJPQkVfU0laRV9QTFVTX1NBVkVEX0NBTExFUl9TUCkKKworI2RlZmluZSBTQVZFRF9QUk9C
RV9SRVRVUk5fUENfT0ZGU0VUICAgICAgICAoUFJPQkVfU0laRSArICgwICogUFRSX1NJWkUpKQor
I2RlZmluZSBTQVZFRF9QUk9CRV9MUl9PRkZTRVQgICAgICAgICAgICAgICAoUFJPQkVfU0laRSAr
ICgxICogUFRSX1NJWkUpKQorI2RlZmluZSBTQVZFRF9QUk9CRV9FUlJPUl9GVU5DVElPTl9PRkZT
RVQgICAoUFJPQkVfU0laRSArICgyICogUFRSX1NJWkUpKQorI2RlZmluZSBQUk9CRV9TSVpFX1BM
VVNfRVhUUkFTICAgICAgICAgICAgICAoUFJPQkVfU0laRSArICgzICogUFRSX1NJWkUpKQogCiAv
LyBUaGVzZSBBU1NFUlRzIHJlbWluZCB5b3UgdGhhdCBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQg
b2YgUHJvYmVDb250ZXh0LAogLy8geW91IG5lZWQgdG8gY2hhbmdlIGN0aU1hc21Qcm9iZVRyYW1w
b2xpbmUgb2Zmc2V0cyBhYm92ZSB0byBtYXRjaC4KQEAgLTIwOSwyOTQgKzIxMSwzNDcgQEAgQ09N
UElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQQogQ09NUElMRV9BU1NFUlQoUFJP
QkVfT0ZGU0VUT0YoY3B1LmZwcnNbQVJNNjRSZWdpc3RlcnM6OnEzMV0pID09IFBST0JFX0NQVV9R
MzFfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X3EzMV9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJv
YmVUcmFtcG9saW5lKTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFByb2JlQ29udGV4dCkgPT0g
UFJPQkVfU0laRSwgUHJvYmVDb250ZXh0X3NpemVfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9s
aW5lKTsKLUNPTVBJTEVfQVNTRVJUKCEoUFJPQkVfQUxJR05FRF9TSVpFICYgMHhmKSwgUHJvYmVD
b250ZXh0X2FsaWduZWRfc2l6ZV9vZmZzZXRfc2hvdWxkX2JlXzE2X2J5dGVfYWxpZ25lZCk7CisK
Ky8vIENvbmRpdGlvbnMgZm9yIHVzaW5nIGxkcCBhbmQgc3RwLgorc3RhdGljX2Fzc2VydChQUk9C
RV9DUFVfUENfT0ZGU0VUID09IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBQVFJfU0laRSwgIlBST0JF
X0NQVV9TUF9PRkZTRVQgYW5kIFBST0JFX0NQVV9QQ19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIp
OwogCiAjdW5kZWYgUFJPQkVfT0ZGU0VUT0YKIAorI2RlZmluZSBGUFJfT0ZGU0VUKGZwcikgKFBS
T0JFX0NQVV8jI2ZwciMjX09GRlNFVCAtIFBST0JFX0NQVV9RMF9PRkZTRVQpCisKK3N0cnVjdCBJ
bmNvbWluZ1Byb2JlUmVjb3JkIHsKKyAgICB1aW50cHRyX3QgcHJvYmVIYW5kbGVyRnVuY3Rpb247
CisgICAgdWludHB0cl90IHByb2JlQXJnOworICAgIHVpbnRwdHJfdCB4MjY7CisgICAgdWludHB0
cl90IHgyNzsKKyAgICB1aW50cHRyX3QgbHI7CisgICAgdWludHB0cl90IHNwOworICAgIHVpbnRw
dHJfdCBwcm9iZUVycm9yRnVuY3Rpb247CisgICAgdWludHB0cl90IHVudXNlZDsgLy8gUGFkZGlu
ZyBmb3IgYWxpZ25tZW50LgorfTsKKworI2RlZmluZSBJTl9IQU5ETEVSX0ZVTkNUSU9OX09GRlNF
VCAoMCAqIFBUUl9TSVpFKQorI2RlZmluZSBJTl9BUkdfT0ZGU0VUICAgICAgICAgICAgICAoMSAq
IFBUUl9TSVpFKQorI2RlZmluZSBJTl9YMjZfT0ZGU0VUICAgICAgICAgICAgICAoMiAqIFBUUl9T
SVpFKQorI2RlZmluZSBJTl9YMjdfT0ZGU0VUICAgICAgICAgICAgICAoMyAqIFBUUl9TSVpFKQor
I2RlZmluZSBJTl9MUl9PRkZTRVQgICAgICAgICAgICAgICAoNCAqIFBUUl9TSVpFKQorI2RlZmlu
ZSBJTl9TUF9PRkZTRVQgICAgICAgICAgICAgICAoNSAqIFBUUl9TSVpFKQorI2RlZmluZSBJTl9F
UlJPUl9GVU5DVElPTl9PRkZTRVQgICAoNiAqIFBUUl9TSVpFKQorCitzdGF0aWNfYXNzZXJ0KElO
X0hBTkRMRVJfRlVOQ1RJT05fT0ZGU0VUID09IG9mZnNldG9mKEluY29taW5nUHJvYmVSZWNvcmQs
IHByb2JlSGFuZGxlckZ1bmN0aW9uKSwgIklOX0hBTkRMRVJfRlVOQ1RJT05fT0ZGU0VUIGlzIGlu
Y29ycmVjdCIpOworc3RhdGljX2Fzc2VydChJTl9BUkdfT0ZGU0VUID09IG9mZnNldG9mKEluY29t
aW5nUHJvYmVSZWNvcmQsIHByb2JlQXJnKSwgIklOX0FSR19PRkZTRVQgaXMgaW5jb3JyZWN0Iik7
CitzdGF0aWNfYXNzZXJ0KElOX1gyNl9PRkZTRVQgPT0gb2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJl
Y29yZCwgeDI2KSwgIklOX1gyNl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0
KElOX1gyN19PRkZTRVQgPT0gb2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJlY29yZCwgeDI3KSwgIklO
X1gyN19PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0KElOX0xSX09GRlNFVCA9
PSBvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVjb3JkLCBsciksICJJTl9MUl9PRkZTRVQgaXMgaW5j
b3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0KElOX1NQX09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWlu
Z1Byb2JlUmVjb3JkLCBzcCksICJJTl9TUF9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNf
YXNzZXJ0KElOX0VSUk9SX0ZVTkNUSU9OX09GRlNFVCA9PSBvZmZzZXRvZihJbmNvbWluZ1Byb2Jl
UmVjb3JkLCBwcm9iZUVycm9yRnVuY3Rpb24pLCAiSU5fRVJST1JfRlVOQ1RJT05fT0ZGU0VUIGlz
IGluY29ycmVjdCIpOworc3RhdGljX2Fzc2VydCghKHNpemVvZihJbmNvbWluZ1Byb2JlUmVjb3Jk
KSAmIDB4ZiksICJJbmNvbWluZ1Byb2JlU3RhY2sgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQiKTsK
Kworc3RydWN0IE91dGdvaW5nUHJvYmVSZWNvcmQgeworICAgIHVpbnRwdHJfdCBuemN2OworICAg
IHVpbnRwdHJfdCBmcHNyOworICAgIHVpbnRwdHJfdCB4Mjc7CisgICAgdWludHB0cl90IHgyODsK
KyAgICB1aW50cHRyX3QgZnA7CisgICAgdWludHB0cl90IGxyOworfTsKKworI2RlZmluZSBPVVRf
TlpDVl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKKyNkZWZpbmUgT1VUX0ZQU1JfT0ZGU0VUICgxICog
UFRSX1NJWkUpCisjZGVmaW5lIE9VVF9YMjdfT0ZGU0VUICAoMiAqIFBUUl9TSVpFKQorI2RlZmlu
ZSBPVVRfWDI4X09GRlNFVCAgKDMgKiBQVFJfU0laRSkKKyNkZWZpbmUgT1VUX0ZQX09GRlNFVCAg
ICg0ICogUFRSX1NJWkUpCisjZGVmaW5lIE9VVF9MUl9PRkZTRVQgICAoNSAqIFBUUl9TSVpFKQor
I2RlZmluZSBPVVRfU0laRSAgICAgICAgKDYgKiBQVFJfU0laRSkKKworc3RhdGljX2Fzc2VydChP
VVRfTlpDVl9PRkZTRVQgPT0gb2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgbnpjdiksICJP
VVRfTlpDVl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0aWNfYXNzZXJ0KE9VVF9GUFNSX09G
RlNFVCA9PSBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBmcHNyKSwgIk9VVF9GUFNSX09G
RlNFVCBpcyBpbmNvcnJlY3QiKTsKK3N0YXRpY19hc3NlcnQoT1VUX1gyN19PRkZTRVQgPT0gb2Zm
c2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgeDI3KSwgIk9VVF9YMjdfT0ZGU0VUIGlzIGluY29y
cmVjdCIpOworc3RhdGljX2Fzc2VydChPVVRfWDI4X09GRlNFVCA9PSBvZmZzZXRvZihPdXRnb2lu
Z1Byb2JlUmVjb3JkLCB4MjgpLCAiT1VUX1gyOF9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CitzdGF0
aWNfYXNzZXJ0KE9VVF9GUF9PRkZTRVQgPT0gb2Zmc2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwg
ZnApLCAiT1VUX0ZQX09GRlNFVCBpcyBpbmNvcnJlY3QiKTsKK3N0YXRpY19hc3NlcnQoT1VUX0xS
X09GRlNFVCA9PSBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBsciksICJPVVRfTFJfT0ZG
U0VUIGlzIGluY29ycmVjdCIpOworc3RhdGljX2Fzc2VydChPVVRfU0laRSA9PSBzaXplb2YoT3V0
Z29pbmdQcm9iZVJlY29yZCksICJPVVRfU0laRSBpcyBpbmNvcnJlY3QiKTsKK3N0YXRpY19hc3Nl
cnQoIShzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkgJiAweGYpLCAiSW5jb21pbmdQcm9iZVN0
YWNrIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkIik7CisKKyNkZWZpbmUgU1RBVEVfUENfTk9UX0NI
QU5HRUQgMAorI2RlZmluZSBTVEFURV9QQ19DSEFOR0VEIDEKK3N0YXRpY19hc3NlcnQoU1RBVEVf
UENfTk9UX0NIQU5HRUQgIT0gU1RBVEVfUENfQ0hBTkdFRCwgIlNUQVRFX1BDX05PVF9DSEFOR0VE
IGFuZCBTVEFURV9QQ19DSEFOR0VEIHNob3VsZCBub3QgYmUgZXF1YWwiKTsKKwogYXNtICgKICAg
ICAiLnRleHQiICJcbiIKLSAgICAiLmFsaWduIDIiICJcbiIKKyAgICAiLmFsaWduIDQiICJcbiIK
ICAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lKSAiXG4i
CiAgICAgSElERV9TWU1CT0woY3RpTWFzbVByb2JlVHJhbXBvbGluZSkgIlxuIgogICAgIFNZTUJP
TF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZSkgIjoiICJcbiIKIAotICAgIC8vIE1hY3Jv
QXNzZW1ibGVyQVJNNjQ6OnByb2JlKCkgaGFzIGFscmVhZHkgZ2VuZXJhdGVkIGNvZGUgdG8gc3Rv
cmUgc29tZSB2YWx1ZXMuCi0gICAgLy8gVGhlIHRvcCBvZiBzdGFjayAodGhlIGNhbGxlciBzYXZl
IGJ1ZmZlcikgbm93IGxvb2tzIGxpa2UgdGhpczoKLSAgICAvLyAgICAgc3BbMCAqIHB0clNpemVd
OiBwcm9iZUZ1bmN0aW9uCi0gICAgLy8gICAgIHNwWzEgKiBwdHJTaXplXTogYXJnMQotICAgIC8v
ICAgICBzcFsyICogcHRyU2l6ZV06IGFkZHJlc3Mgb2YgYXJtNjRQcm9iZVRyYW1wb2xpbmUoKQot
ICAgIC8vICAgICBzcFszICogcHRyU2l6ZV06IHNhdmVkIHgyNwotICAgIC8vICAgICBzcFs0ICog
cHRyU2l6ZV06IHNhdmVkIHgyOAotICAgIC8vICAgICBzcFs1ICogcHRyU2l6ZV06IHNhdmVkIGxy
Ci0gICAgLy8gICAgIHNwWzYgKiBwdHJTaXplXTogc2F2ZWQgc3AKKyAgICAvLyBNYWNyb0Fzc2Vt
YmxlckFSTTY0Ojpwcm9iZSgpIGhhcyBhbHJlYWR5IGdlbmVyYXRlZCBjb2RlIHRvIHN0b3JlIHNv
bWUgdmFsdWVzIGluIGFuCisgICAgLy8gSW5jb21pbmdQcm9iZVJlY29yZC4gc3AgcG9pbnRzIHRv
IHRoZSBJbmNvbWluZ1Byb2JlUmVjb3JkLgogCisgICAgIm1vdiAgICAgICB4MjYsIHNwIiAiXG4i
CiAgICAgIm1vdiAgICAgICB4MjcsIHNwIiAiXG4iCi0gICAgIm1vdiAgICAgICB4MjgsIHNwIiAi
XG4iCi0KLSAgICAic3ViICAgICAgIHgyOCwgeDI4LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQUxJR05FRF9TSVpFKSAiXG4iCiAKLSAgICAvLyBUaGUgQVJNIEVBQkkgc3BlY2lmaWVzIHRo
YXQgdGhlIHN0YWNrIG5lZWRzIHRvIGJlIDE2IGJ5dGUgYWxpZ25lZC4KLSAgICAiYmljICAgICAg
IHgyOCwgeDI4LCAjMHhmIiAiXG4iCi0gICAgIm1vdiAgICAgICBzcCwgeDI4IiAiXG4iCi0KLSAg
ICAic3RyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfQ0FMTEVS
X1NQKSAiXSIgIlxuIgotCi0gICAgInN0ciAgICAgICB4MCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gwX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgxLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDFfT0ZGU0VUKSAiXSIgIlxuIgot
ICAgICJzdHIgICAgICAgeDIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Y
Ml9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1gzX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHg0
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDRfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgeDUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9YNV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4NiwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g2X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAg
IHg3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDdfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgeDgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9YOF9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4OSwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g5X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAg
ICAgIHgxMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxMF9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MTEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9YMTFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgeDEyLCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDEyX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIHgxMywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gx
M19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MTQsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9YMTRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAg
eDE1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDE1X09GRlNFVCkgIl0i
ICJcbiIKLSAgICAic3RyICAgICAgIHgxNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1gxNl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MTcsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMTdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJz
dHIgICAgICAgeDE4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDE4X09G
RlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgxOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gxOV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MjAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjBfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgeDIxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDIxX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgyMiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyMl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAg
ICAgICB4MjMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjNfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgeDI0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfWDI0X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgyNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyNV9PRkZTRVQpICJdIiAiXG4iCi0g
ICAgInN0ciAgICAgICB4MjYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Y
MjZfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgImxkciAgICAgICB4MCwgW3gyNywgIzMgKiAiIFNU
UklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgwLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI3X09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyICAgICAgIHgwLCBbeDI3LCAjNCAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9T
SVpFKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgeDAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9YMjhfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgInN0ciAgICAgICBmcCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQX09GRlNFVCkgIl0iICJcbiIK
LQotICAgICJsZHIgICAgICAgeDAsIFt4MjcsICM1ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRS
X1NJWkUpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHgwLCBb
eDI3LCAjNiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiXSIgIlxuIgotICAgICJz
dHIgICAgICAgeDAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZT
RVQpICJdIiAiXG4iCisgICAgInN1YiAgICAgICB4MjcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX1NJWkVfUExVU19FWFRSQVMpICJcbiIKKyAgICAiYmljICAgICAgIHgyNywgeDI3
LCAjMHhmIiAiXG4iIC8vIFRoZSBBUk0gRUFCSSBzcGVjaWZpZXMgdGhhdCB0aGUgc3RhY2sgbmVl
ZHMgdG8gYmUgMTYgYnl0ZSBhbGlnbmVkLgorICAgICJtb3YgICAgICAgc3AsIHgyNyIgIlxuIiAv
LyBNYWtlIHN1cmUgaW50ZXJydXB0cyBkb24ndCBvdmVyLXdyaXRlIG91ciBkYXRhIG9uIHRoZSBz
dGFjay4KKworICAgICJzdHAgICAgICAgeDAsIHgxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfWDBfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgeDIsIHgzLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDJfT0ZGU0VUKSAiXSIgIlxuIgor
ICAgICJzdHAgICAgICAgeDQsIHg1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDRfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgeDYsIHg3LCBbc3AsICMiIFNU
UklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDZfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJzdHAg
ICAgICAgeDgsIHg5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDhfT0ZG
U0VUKSAiXSIgIlxuIgorCisgICAgIm1ycyAgICAgICB4MCwgbnpjdiIgIlxuIiAvLyBQcmVsb2Fk
IG56Y3YuCisgICAgIm1ycyAgICAgICB4MSwgZnBzciIgIlxuIiAvLyBQcmVsb2FkIGZwc3IuCisg
ICAgImxkcCAgICAgICB4MiwgeDMsIFt4MjYsICMiIFNUUklOR0laRV9WQUxVRV9PRihJTl9IQU5E
TEVSX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIgLy8gUHJlbG9hZCBwcm9iZSBoYW5kbGVyIGZ1
bmN0aW9uIGFuZCBwcm9iZSBhcmcuCisgICAgImxkcCAgICAgICB4NCwgeDUsIFt4MjYsICMiIFNU
UklOR0laRV9WQUxVRV9PRihJTl9YMjZfT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHNhdmVk
IHIyNiBhbmQgcjI3LgorICAgICJsZHAgICAgICAgeDYsIHg3LCBbeDI2LCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoSU5fTFJfT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHNhdmVkIGxyIGFuZCBz
cC4KKyAgICAibGRyICAgICAgIHg4LCBbeDI2LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoSU5fRVJS
T1JfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHByb2JlIGVycm9yIGZ1bmN0
aW9uLgorCisgICAgInN0cCAgICAgICB4MTAsIHgxMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX1gxMF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4MTIsIHgx
MywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxMl9PRkZTRVQpICJdIiAi
XG4iCisgICAgInN0cCAgICAgICB4MTQsIHgxNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1gxNF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4MTYsIHgxNywg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxNl9PRkZTRVQpICJdIiAiXG4i
CisgICAgInN0cCAgICAgICB4MTgsIHgxOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1gxOF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4MjAsIHgyMSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyMF9PRkZTRVQpICJdIiAiXG4iCisg
ICAgInN0cCAgICAgICB4MjIsIHgyMyxbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDIyX09GRlNFVCkgIl0iICJcbiIKKyAgICAic3RwICAgICAgIHgyNCwgeDI1LCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI0X09GRlNFVCkgIl0iICJcbiIKKworICAg
ICJzdHAgICAgICAgeDQsIHg1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
WDI2X09GRlNFVCkgIl0iICJcbiIgLy8gU3RvcmVkIHNhdmVkIHIyNiBhbmQgcjI3IChwcmVsb2Fk
ZWQgaW50byB4NCBhbmQgeDUgYWJvdmUpLgorICAgICJzdHAgICAgICAgeDI4LCBmcCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyOF9PRkZTRVQpICJdIiAiXG4iCisgICAg
InN0cCAgICAgICB4NiwgeDcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9M
Ul9PRkZTRVQpICJdIiAiXG4iIC8vIFNhdmVkIHZhbHVlcyBsciBhbmQgc3AgKHByZWxvYWRlZCBp
bnRvIHg2IGFuZCB4NyBhYm92ZSkuCisgICAgInN0ciAgICAgICB4NiwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfTFJfT0ZGU0VUKSAiXSIgIlxuIgogCisgICAgInN0ciAg
ICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfUkVUVVJOX1BD
X09GRlNFVCkgIl0iICJcbiIKKyAgICAiYWRkICAgICAgIGxyLCBsciwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIiAvLyBUaGUgUEMgYWZ0ZXIgdGhlIHByb2JlIGlzIGF0
IDIgaW5zdHJ1Y3Rpb25zIHBhc3QgdGhlIHJldHVybiBwb2ludC4KICAgICAic3RyICAgICAgIGxy
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUENfT0ZGU0VUKSAiXSIgIlxu
IgogCi0gICAgIm1ycyAgICAgICB4MCwgbnpjdiIgIlxuIgotICAgICJzdHIgICAgICAgeDAsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9OWkNWX09GRlNFVCkgIl0iICJcbiIK
LSAgICAibXJzICAgICAgIHgwLCBmcHNyIiAiXG4iCi0gICAgInN0ciAgICAgICB4MCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQU1JfT0ZGU0VUKSAiXSIgIlxuIgotCi0g
ICAgImxkciAgICAgICB4MCwgW3gyNywgIzAgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0la
RSkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIHgwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4
MCwgW3gyNywgIzEgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIHgwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9BUkdfT0ZG
U0VUKSAiXSIgIlxuIgotCi0gICAgInN0ciAgICAgICBkMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1EwX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQxLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTFfT0ZGU0VUKSAiXSIgIlxuIgot
ICAgICJzdHIgICAgICAgZDIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9R
Ml9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1EzX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQ0
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTRfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgZDUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9RNV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkNiwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E2X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAg
IGQ3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTdfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgZDgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9ROF9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkOSwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E5X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAg
ICAgIGQxMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1ExMF9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMTEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9RMTFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDEyLCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTEyX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIGQxMywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1Ex
M19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMTQsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9RMTRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAg
ZDE1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTE1X09GRlNFVCkgIl0i
ICJcbiIKLSAgICAic3RyICAgICAgIGQxNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1ExNl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMTcsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMTdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJz
dHIgICAgICAgZDE4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTE4X09G
RlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQxOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1ExOV9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBkMjAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMjBfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJzdHIgICAgICAgZDIxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfUTIxX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQyMiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyMl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAg
ICAgICBkMjMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMjNfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDI0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfUTI0X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGQyNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyNV9PRkZTRVQpICJdIiAiXG4iCi0g
ICAgInN0ciAgICAgICBkMjYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9R
MjZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDI3LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfUTI3X09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAg
IGQyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyOF9PRkZTRVQpICJd
IiAiXG4iCi0gICAgInN0ciAgICAgICBkMjksIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9RMjlfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgZDMwLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTMwX09GRlNFVCkgIl0iICJcbiIKLSAgICAi
c3RyICAgICAgIGQzMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EzMV9P
RkZTRVQpICJdIiAiXG4iCi0KLSAgICAibW92ICAgICAgIHgyOCwgc3AiICJcbiIgLy8gU2F2ZSB0
aGUgUHJvYmVDb250ZXh0Ki4KLQotICAgICJtb3YgICAgICAgeDAsIHNwIiAiXG4iIC8vIHRoZSBQ
cm9iZUNvbnRleHQqIGFyZy4KLSAgICAibGRyICAgICAgIHgyNywgW3gyNywgIzMgKiAiIFNUUklO
R0laRV9WQUxVRV9PRihQVFJfU0laRSkgIl0iICJcbiIKLSAgICAiYmxyICAgICAgIHgyNyIgIlxu
IgorICAgICJzdHAgICAgICAgeDAsIHgxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iIC8vIFN0b3JlIG56Y3YgYW5kIGZwc3IgKHByZWxv
YWRlZCBpbnRvIHgwIGFuZCB4MSBhYm92ZSkuCiAKLSAgICAibW92ICAgICAgIHNwLCB4MjgiICJc
biIKKyAgICAic3RwICAgICAgIHgyLCB4MywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfUFJPQkVfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIiAvLyBTdG9yZSB0aGUgcHJvYmUgaGFu
ZGxlciBmdW5jdGlvbiBhbmQgYXJnIChwcmVsb2FkZWQgaW50byB4MiBhbmQgeDMgYWJvdmUpLgor
ICAgICJzdHIgICAgICAgeDgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX1BST0JF
X0VSUk9SX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIgLy8gU3RvcmUgdGhlIHByb2JlIGhhbmRs
ZXIgZnVuY3Rpb24gYW5kIGFyZyAocHJlbG9hZGVkIGludG8geDggYWJvdmUpLgogCi0gICAgLy8g
VG8gZW5hYmxlIHByb2JlcyB0byBtb2RpZnkgcmVnaXN0ZXIgc3RhdGUsIHdlIGNvcHkgYWxsIHJl
Z2lzdGVycwotICAgIC8vIG91dCBvZiB0aGUgUHJvYmVDb250ZXh0IGJlZm9yZSByZXR1cm5pbmcu
IFRoYXQgaXMgZXhjZXB0IGZvciB4MTgsIHBjIGFuZCBzcC4KKyAgICAiYWRkICAgICAgIHg5LCBz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMF9PRkZTRVQpICJcbiIKKyAgICAi
c3RwICAgICAgIGQwLCBkMSwgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChR
MCkpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMiwgZDMsIFt4OSwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKEZQUl9PRkZTRVQoUTIpKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgZDQsIGQ1LCBb
eDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFE0KSkgIl0iICJcbiIKKyAgICAi
c3RwICAgICAgIGQ2LCBkNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChR
NikpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkOCwgZDksIFt4OSwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKEZQUl9PRkZTRVQoUTgpKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAgZDEwLCBkMTEs
IFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTEwKSkgIl0iICJcbiIKKyAg
ICAic3RwICAgICAgIGQxMiwgZDEzLCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZG
U0VUKFExMikpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMTQsIGQxNSwgW3g5LCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMTQpKSAiXSIgIlxuIgorICAgICJzdHAgICAgICAg
ZDE2LCBkMTcsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTE2KSkgIl0i
ICJcbiIKKyAgICAic3RwICAgICAgIGQxOCwgZDE5LCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9P
RihGUFJfT0ZGU0VUKFExOCkpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMjAsIGQyMSwgW3g5
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjApKSAiXSIgIlxuIgorICAgICJz
dHAgICAgICAgZDIyLCBkMjMsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQo
UTIyKSkgIl0iICJcbiIKKyAgICAic3RwICAgICAgIGQyNCwgZDI1LCBbeDksICMiIFNUUklOR0la
RV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEyNCkpICJdIiAiXG4iCisgICAgInN0cCAgICAgICBkMjYs
IGQyNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjYpKSAiXSIgIlxu
IgorICAgICJzdHAgICAgICAgZDI4LCBkMjksIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQ
Ul9PRkZTRVQoUTI4KSkgIl0iICJcbiIKKyAgICAic3RwICAgICAgIGQzMCwgZDMxLCBbeDksICMi
IFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEzMCkpICJdIiAiXG4iCisKKyAgICAibW92
ICAgICAgIHgyNywgc3AiICJcbiIgLy8gU2F2ZSB0aGUgUHJvYmVDb250ZXh0KiBpbiBhIGNhbGxl
ZSBzYXZlZCByZWdpc3Rlci4KKworICAgIC8vIE5vdGU6IHdlIGhhdmVuJ3QgY2hhbmdlZCB0aGUg
dmFsdWUgb2YgZnAuIEhlbmNlLCBpdCBpcyBzdGlsbCBwb2ludGluZyB0byB0aGUgZnJhbWUgb2YK
KyAgICAvLyB0aGUgY2FsbGVyIG9mIHRoZSBwcm9iZSAod2hpY2ggaXMgd2hhdCB3ZSB3YW50IGlu
IG9yZGVyIHRvIHBsYXkgbmljZSB3aXRoIGRlYnVnZ2VycyBlLmcuIGxsZGIpLgorICAgICJtb3Yg
ICAgICAgeDAsIHNwIiAiXG4iIC8vIFNldCB0aGUgUHJvYmVDb250ZXh0KiBhcmcuCisgICAgImJs
ciAgICAgICB4MiIgIlxuIiAvLyBDYWxsIHRoZSBwcm9iZSBoYW5kbGVyIGZ1bmN0aW9uIChsb2Fk
ZWQgaW50byB4MiBhYm92ZSkuCisKKyAgICAibW92ICAgICAgIHNwLCB4MjciICJcbiIKIAorICAg
IC8vIFRvIGVuYWJsZSBwcm9iZXMgdG8gbW9kaWZ5IHJlZ2lzdGVyIHN0YXRlLCB3ZSBjb3B5IGFs
bCByZWdpc3RlcnMKKyAgICAvLyBvdXQgb2YgdGhlIFByb2JlQ29udGV4dCBiZWZvcmUgcmV0dXJu
aW5nLiBUaGF0IGlzIGV4Y2VwdCBmb3IgeDE4LgogICAgIC8vIHgxOCBpcyAicmVzZXJ2ZWQgZm9y
IHRoZSBwbGF0Zm9ybS4gQ29uZm9ybWluZyBzb2Z0d2FyZSBzaG91bGQgbm90IG1ha2UgdXNlIG9m
IGl0LiIKICAgICAvLyBIZW5jZSwgdGhlIEpJVHMgd291bGQgbm90IGJlIHVzaW5nIGl0LCBhbmQg
dGhlIHByb2JlIHNob3VsZCBhbHNvIG5vdCBiZSBtb2RpZnlpbmcgaXQuCiAgICAgLy8gU2VlIGh0
dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2lvcy9kb2N1bWVudGF0aW9uL1hjb2Rl
L0NvbmNlcHR1YWwvaVBob25lT1NBQklSZWZlcmVuY2UvQXJ0aWNsZXMvQVJNNjRGdW5jdGlvbkNh
bGxpbmdDb252ZW50aW9ucy5odG1sLgogCi0gICAgLy8gV2UgY2FuJ3QgbW9kaWZ5IHRoZSBwYywg
YmVjYXVzZSB0aGUgb25seSB3YXkgdG8gc2V0IGl0cyB2YWx1ZSBvbiBBUk02NCBpcyB2aWEKLSAg
ICAvLyBhbiBpbmRpcmVjdCBicmFuY2ggb3IgYSByZXQsIHdoaWNoIG1lYW5zIHdlJ2xsIG5lZWQg
YSBmcmVlIHJlZ2lzdGVyIHRvIGRvIHNvLgotICAgIC8vIFRoZSBwcm9iZSBtZWNoYW5pc20gaXMg
cmVxdWlyZWQgdG8gbm90IHBlcnR1cmIgYW55IHJlZ2lzdGVycyB0aGF0IHRoZSBjYWxsZXIKLSAg
ICAvLyBtYXkgdXNlLiBIZW5jZSwgd2UgZG9uJ3QgaGF2ZSB0aGlzIGZyZWUgcmVnaXN0ZXIgYXZh
aWxhYmxlLgotCi0gICAgLy8gSW4gb3JkZXIgdG8gcmV0dXJuIHRvIHRoZSBjYWxsZXIsIHdlIG5l
ZWQgdG8gcmV0IHZpYSBsci4gVGhlIHByb2JlIG1lY2hhbmlzbSB3aWxsCi0gICAgLy8gcmVzdG9y
ZSBscidzIHZhbHVlIGFmdGVyIHJldHVybmluZyB0byB0aGUgY2FsbGVyIGJ5IGxvYWRpbmcgdGhl
IHJlc3RvcmUgdmFsdWUKLSAgICAvLyBmcm9tIHRoZSBjYWxsZXIgc2F2ZSBidWZmZXIuIFRoZSBj
YWxsZXIgZXhwZWN0cyB0byBhY2Nlc3MgdGhlIGNhbGxlciBzYXZlIGJ1ZmZlciB2aWEKLSAgICAv
LyBzcC4gSGVuY2UsIHdlIGNhbm5vdCBhbGxvdyBzcCB0byBiZSBtb2RpZmllZCBieSB0aGUgcHJv
YmUuCi0KLSAgICAibGRyICAgICAgIGQwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfUTBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDEsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAg
ICAgICBkMiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyX09GRlNFVCkg
Il0iICJcbiIKLSAgICAibGRyICAgICAgIGQzLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfUTNfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDQsIFtzcCwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RNF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxk
ciAgICAgICBkNSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E1X09GRlNF
VCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQ2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfUTZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDcsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RN19PRkZTRVQpICJdIiAiXG4iCi0gICAg
ImxkciAgICAgICBkOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1E4X09G
RlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQ5LCBbc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfUTlfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDEwLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTEwX09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyICAgICAgIGQxMSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1ExMV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMTIsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMTJfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAg
ICAgZDEzLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTEzX09GRlNFVCkg
Il0iICJcbiIKLSAgICAibGRyICAgICAgIGQxNCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1ExNF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMTUsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMTVfT0ZGU0VUKSAiXSIgIlxuIgotICAg
ICJsZHIgICAgICAgZDE2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTE2
X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQxNywgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1ExN19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBk
MTgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMThfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJsZHIgICAgICAgZDE5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfUTE5X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQyMCwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyMF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxk
ciAgICAgICBkMjEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMjFfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDIyLCBbc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfUTIyX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGQyMywg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyM19PRkZTRVQpICJdIiAiXG4i
Ci0gICAgImxkciAgICAgICBkMjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9RMjRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDI1LCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTI1X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAg
ICAgIGQyNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1EyNl9PRkZTRVQp
ICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9RMjdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgZDI4LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTI4X09GRlNFVCkgIl0iICJcbiIKLSAg
ICAibGRyICAgICAgIGQyOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1Ey
OV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBkMzAsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9RMzBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAg
ZDMxLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUTMxX09GRlNFVCkgIl0i
ICJcbiIKLQotICAgICJsZHIgICAgICAgeDAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9YMF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4MSwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRy
ICAgICAgIHgyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDJfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9YM19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4NCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g0X09GRlNFVCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIHg1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDVfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9YNl9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4NywgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g3X09GRlNFVCkgIl0iICJcbiIKLSAg
ICAibGRyICAgICAgIHg4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDhf
T0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDksIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9YOV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4MTAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMTBfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJsZHIgICAgICAgeDExLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfWDExX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHgxMiwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxMl9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAg
ICAgICB4MTMsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMTNfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDE0LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfWDE0X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHgxNSwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxNV9PRkZTRVQpICJdIiAiXG4iCi0g
ICAgImxkciAgICAgICB4MTYsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Y
MTZfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDE3LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfWDE3X09GRlNFVCkgIl0iICJcbiIKKyAgICAiYWRkICAgICAg
IHg5LCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9RMF9PRkZTRVQpICJcbiIK
KyAgICAibGRwICAgICAgIGQwLCBkMSwgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09G
RlNFVChRMCkpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkMiwgZDMsIFt4OSwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTIpKSAiXSIgIlxuIgorICAgICJsZHAgICAgICAgZDQs
IGQ1LCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFE0KSkgIl0iICJcbiIK
KyAgICAibGRwICAgICAgIGQ2LCBkNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09G
RlNFVChRNikpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkOCwgZDksIFt4OSwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTgpKSAiXSIgIlxuIgorICAgICJsZHAgICAgICAgZDEw
LCBkMTEsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTEwKSkgIl0iICJc
biIKKyAgICAibGRwICAgICAgIGQxMiwgZDEzLCBbeDksICMiIFNUUklOR0laRV9WQUxVRV9PRihG
UFJfT0ZGU0VUKFExMikpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkMTQsIGQxNSwgW3g5LCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMTQpKSAiXSIgIlxuIgorICAgICJsZHAg
ICAgICAgZDE2LCBkMTcsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9PRkZTRVQoUTE2
KSkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIGQxOCwgZDE5LCBbeDksICMiIFNUUklOR0laRV9W
QUxVRV9PRihGUFJfT0ZGU0VUKFExOCkpICJdIiAiXG4iCisgICAgImxkcCAgICAgICBkMjAsIGQy
MSwgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjApKSAiXSIgIlxuIgor
ICAgICJsZHAgICAgICAgZDIyLCBkMjMsIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKEZQUl9P
RkZTRVQoUTIyKSkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIGQyNCwgZDI1LCBbeDksICMiIFNU
UklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEyNCkpICJdIiAiXG4iCisgICAgImxkcCAgICAg
ICBkMjYsIGQyNywgW3g5LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRlBSX09GRlNFVChRMjYpKSAi
XSIgIlxuIgorICAgICJsZHAgICAgICAgZDI4LCBkMjksIFt4OSwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKEZQUl9PRkZTRVQoUTI4KSkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIGQzMCwgZDMxLCBb
eDksICMiIFNUUklOR0laRV9WQUxVRV9PRihGUFJfT0ZGU0VUKFEzMCkpICJdIiAiXG4iCisKKyAg
ICAibGRwICAgICAgIHgwLCB4MSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1gwX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgyLCB4MywgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAg
ICAgIHg0LCB4NSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g0X09GRlNF
VCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHg2LCB4NywgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1g2X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHg4LCB4
OSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1g4X09GRlNFVCkgIl0iICJc
biIKKyAgICAibGRwICAgICAgIHgxMCwgeDExLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfWDEwX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgxMiwgeDEzLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDEyX09GRlNFVCkgIl0iICJcbiIK
KyAgICAibGRwICAgICAgIHgxNCwgeDE1LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfWDE0X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgxNiwgeDE3LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDE2X09GRlNFVCkgIl0iICJcbiIKICAg
ICAvLyB4MTggc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBieSB0aGUgcHJvYmUuIFNlZSBjb21tZW50
IGFib3ZlIGZvciBkZXRhaWxzLgotICAgICJsZHIgICAgICAgeDE5LCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfWDE5X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAg
IHgyMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyMF9PRkZTRVQpICJd
IiAiXG4iCi0gICAgImxkciAgICAgICB4MjEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9YMjFfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDIyLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDIyX09GRlNFVCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIHgyMywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyM19P
RkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICB4MjQsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9YMjRfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgeDI1
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI1X09GRlNFVCkgIl0iICJc
biIKLSAgICAibGRyICAgICAgIHgyNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX1gyNl9PRkZTRVQpICJdIiAiXG4iCi0KLSAgICAibGRyICAgICAgIHgyNywgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQU1JfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJt
c3IgICAgICAgZnBzciwgeDI3IiAiXG4iCisgICAgImxkcCAgICAgICB4MTksIHgyMCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gxOV9PRkZTRVQpICJdIiAiXG4iCisgICAg
ImxkcCAgICAgICB4MjEsIHgyMiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1gyMV9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkcCAgICAgICB4MjMsIHgyNCwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyM19PRkZTRVQpICJdIiAiXG4iCisgICAgImxk
cCAgICAgICB4MjUsIHgyNiwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gy
NV9PRkZTRVQpICJdIiAiXG4iCisKKyAgICAvLyBSZW1haW5pbmcgcmVnaXN0ZXJzIHRvIHJlc3Rv
cmUgYXJlOiBmcHNyLCBuemN2LCB4MjcsIHgyOCwgZnAsIGxyLCBzcCwgYW5kIHBjLgorCisgICAg
Im1vdiAgICAgICBsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNUQVRFX1BDX05PVF9DSEFOR0VE
KSAiXG4iCisKKyAgICAvLyBUaGUgb25seSB3YXkgdG8gc2V0IHRoZSBwYyBvbiBBUk02NCAoZnJv
bSB1c2VyIHNwYWNlKSBpcyB2aWEgYW4gaW5kaXJlY3QgYnJhbmNoCisgICAgLy8gb3IgYSByZXQs
IHdoaWNoIG1lYW5zIHdlJ2xsIG5lZWQgYSBmcmVlIHJlZ2lzdGVyIHRvIGRvIHNvLiBGb3Igb3Vy
IHB1cnBvc2VzLCBscgorICAgIC8vIGhhcHBlbnMgdG8gYmUgYXZhaWxhYmxlIGluIGFwcGxpY2F0
aW9ucyBvZiB0aGUgcHJvYmUgd2hlcmUgd2UgbWF5IHdhbnQgdG8KKyAgICAvLyBjb250aW51ZSBl
eGVjdXRpbmcgYXQgYSBkaWZmZXJlbnQgbG9jYXRpb24gKGkuZS4gY2hhbmdlIHRoZSBwYykgYWZ0
ZXIgdGhlIHByb2JlCisgICAgLy8gcmV0dXJucy4gU28sIHRoZSBBUk02NCBwcm9iZSBpbXBsZW1l
bnRhdGlvbiB3aWxsIGFsbG93IHRoZSBwcm9iZSBoYW5kbGVyIHRvCisgICAgLy8gZWl0aGVyIG1v
ZGlmeSBsciBvciBwYywgYnV0IG5vdCBib3RoIGluIHRoZSBzYW1lIHByb2JlIGludm9jYXRpb24u
IFRoZSBwcm9iZQorICAgIC8vIG1lY2hhbmlzbSBlbnN1cmVzIHRoYXQgd2UgbmV2ZXIgdHJ5IHRv
IG1vZGlmeSBib3RoIGxyIGFuZCBwYywgZWxzZSBpdCB3aWxsCisgICAgLy8gZmFpbCB3aXRoIGEg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQgaW4gYXJtNjRQcm9iZUVycm9yKCkuCisKKyAgICAv
LyBEZXRlcm1pbmUgaWYgdGhlIHByb2JlIGhhbmRsZXIgY2hhbmdlZCB0aGUgcGMuCisgICAgImxk
ciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX1BST0JFX1JFVFVS
Tl9QQ19PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciAgICAgICB4MjgsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCisgICAgImFkZCAgICAg
ICB4MjcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQVFJfU0laRSkgIlxuIgorICAg
ICJjbXAgICAgICAgeDI3LCB4MjgiICJcbiIKKyAgICAiYmVxICAgICAiIExPQ0FMX0xBQkVMX1NU
UklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJlcGFyZU91dGdvaW5nUmVjb3JkcykgIlxuIgor
CisgICAgLy8gcGMgd2FzIGNoYW5nZWQuIERldGVybWluZSBpZiB0aGUgcHJvYmUgaGFuZGxlciBh
bHNvIGNoYW5nZWQgbHIuCisgICAgImxkciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFNBVkVEX1BST0JFX0xSX09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRyICAgICAgIHgy
OCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJc
biIKKyAgICAiY21wICAgICAgIHgyNywgeDI4IiAiXG4iCisgICAgImJuZSAgICAgIiBMT0NBTF9M
QUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVycm9yKSAiXG4iCisKKyAgICAibW92
ICAgICAgIGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU1RBVEVfUENfQ0hBTkdFRCkgIlxuIgor
CisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVQcmVwYXJlT3V0
Z29pbmdSZWNvcmRzKSAiOiIgIlxuIgorCisgICAgImxkciAgICAgICBmcCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfUkVUVVJOX1BDX09GRlNFVCkgIl0iICJcbiIgLy8g
UHJlbG9hZCB0aGUgcHJvYmUgcmV0dXJuIHNpdGUgcGMuCisKKyAgICAvLyBUaGUgcHJvYmUgaGFu
ZGxlciBtYXkgaGF2ZSBtb3ZlZCB0aGUgc3AuIEZvciB0aGUgcmV0dXJuIHByb2Nlc3MsIHdlIG1h
eSBuZWVkCisgICAgLy8gc3BhY2UgZm9yIDIgT3V0Z29pbmdQcm9iZVJlY29yZHMgYmVsb3cgdGhl
IGZpbmFsIHNwIHZhbHVlLiBXZSBuZWVkIHRvIG1ha2UKKyAgICAvLyBzdXJlIHRoYXQgdGhlIHNw
YWNlIGZvciB0aGVzZSAyIE91dGdvaW5nUHJvYmVSZWNvcmRzIGRvIG5vdCBvdmVybGFwIHRoZQor
ICAgIC8vIHJlc3RvcmUgdmFsdWVzIG9mIHRoZSByZWdpc3RlcnMuCisKKyAgICAvLyBBbGwgcmVz
dG9yZSB2YWx1ZXMgYXJlIGxvY2F0ZWQgYXQgb2Zmc2V0IDw9IFBST0JFX0NQVV9GUFNSX09GRlNF
VC4gSGVuY2UsCisgICAgLy8gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCByZXN1bHRhbnQgc3Ag
PiBvZmZzZXQgb2YgZnBzciArIDIgKiBzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkuCisKKyAg
ICAiYWRkICAgICAgIHgyNywgc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRlBT
Ul9PRkZTRVQgKyAyICogT1VUX1NJWkUpICJcbiIKKyAgICAibGRyICAgICAgIHgyOCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKKyAgICAi
Y21wICAgICAgIHgyOCwgeDI3IiAiXG4iCisgICAgImJndCAgICAgIiBMT0NBTF9MQUJFTF9TVFJJ
TkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUZpbGxPdXRnb2luZ1Byb2JlUmVjb3JkcykgIlxuIgor
CisgICAgLy8gVGhlcmUgaXMgb3ZlcmxhcC4gV2UgbmVlZCB0byBjb3B5IHRoZSBQcm9iZUNvbnRl
eHQgdG8gYSBzYWZlIGFyZWEgZmlyc3QuCisgICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAic2FmZSBh
cmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUgT3V0Z29pbmdQ
cm9iZVJlY29yZHMgYXJlLgorICAgIC8vIFRoaXMgZW5zdXJlcyB0aGF0OgorICAgIC8vIDEuIFRo
ZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgT3V0Z29pbmdQcm9iZVJlY29yZHMuCisg
ICAgLy8gMi4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQu
CisKKyAgICAvLyB4MjggYWxyZWFkeSBjb250YWlucyBbc3AsICNTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1NQX09GRlNFVCldLgorICAgICJzdWIgICAgICAgeDI4LCB4MjgsICMiIFNUUklO
R0laRV9WQUxVRV9PRigyICogUFJPQkVfU0laRSkgIlxuIgorCisgICAgIm1vdiAgICAgICB4Mjcs
IHNwIiAiXG4iIC8vIFNhdmUgdGhlIG9yaWdpbmFsIFByb2JlQ29udGV4dCouCisKKyAgICAvLyBN
YWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMg
ZW5zdXJlcyB0aGF0IHRoZQorICAgIC8vIHNhZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRl
cnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuCisgICAgIm1vdiAgICAgICBzcCwgeDI4IiAi
XG4iIC8vIHNwIG5vdyBwb2ludHMgdG8gdGhlIG5ldyBQcm9iZUNvbnRleHQgaW4gdGhlIHNhZmUg
YXJlYS4KKworICAgIC8vIENvcHkgdGhlIHJlbGV2YW50IHJlc3RvcmUgZGF0YSB0byB0aGUgbmV3
IFByb2JlQ29udGV4dCouCisgICAgInN0ciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gwX09GRlNFVCkgIl0iICJcbiIgLy8gU3Rhc2ggdGhlIHBjIGNoYW5n
ZWQgc3RhdGUgYXdheSBzbyB0aGF0IHdlIGNhbiB1c2UgbHIuCisKKyAgICAibGRwICAgICAgIHgy
OCwgbHIsIFt4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI3X09GRlNFVCkg
Il0iICJcbiIgLy8gY29weSB4MjcgYW5kIHgyOC4KKyAgICAic3RwICAgICAgIHgyOCwgbHIsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjdfT0ZGU0VUKSAiXSIgIlxuIgor
ICAgICJsZHAgICAgICAgeDI4LCBsciwgW3gyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9GUF9PRkZTRVQpICJdIiAiXG4iIC8vIGNvcHkgZnAgYW5kIGxyLgorICAgICJzdHAgICAg
ICAgeDI4LCBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0ZQX09GRlNF
VCkgIl0iICJcbiIKKyAgICAibGRwICAgICAgIHgyOCwgbHIsIFt4MjcsICMiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIiAvLyBjb3B5IHNwIGFuZCBwYy4K
KyAgICAic3RwICAgICAgIHgyOCwgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkcCAgICAgICB4MjgsIGxyLCBbeDI3LCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX05aQ1ZfT0ZGU0VUKSAiXSIgIlxuIiAvLyBj
b3B5IG56Y3YgYW5kIGZwc3IuCisgICAgInN0cCAgICAgICB4MjgsIGxyLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iCisKKyAgICAibGRy
ICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDBfT0ZGU0VU
KSAiXSIgIlxuIiAvLyBSZXRyaWV2ZSB0aGUgc3Rhc2hlZCB0aGUgcGMgY2hhbmdlZCBzdGF0ZS4K
KworICAgIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRmlsbE91dGdv
aW5nUHJvYmVSZWNvcmRzKSAiOiIgIlxuIgorCisgICAgImNtcCAgICAgICBsciwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFNUQVRFX1BDX0NIQU5HRUQpICJcbiIKKyAgICAiYmVxICAgICAiIExPQ0FM
X0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iCisKKyAgICAvLyBJ
biBvcmRlciB0byByZXN0b3JlIGxyLCB3ZSBuZWVkIHRvIGRvIHRoZSByZXN0b3JhdGlvbmF0aW9u
IGF0IHRoZSBwcm9iZSByZXR1cm4gc2l0ZS4KKyAgICAvLyBUaGUgcHJvYmUgcmV0dXJuIHNpdGUg
ZXhwZWN0cyBzcCB0byBiZSBwb2ludGluZyBhdCBhbiBPdXRnb2luZ1Byb2JlUmVjb3JkIHN1Y2gg
dGhhdAorICAgIC8vIHBvcHBpbmcgdGhlIE91dGdvaW5nUHJvYmVSZWNvcmQgd2lsbCB5aWVsZCB0
aGUgZGVzaXJlZCBzcC4gVGhlIHByb2JlIHJldHVybiBzaXRlCisgICAgLy8gYWxzbyBleHBlY3Rz
IHRoZSBsciB2YWx1ZSB0byBiZSByZXN0b3JlZCBpcyBzdGFzaGVkIGluIHRoZSBPdXRnb2luZ1By
b2JlUmVjb3JkLgorICAgIC8vIFdlIGNhbiBtYWtlIHRoaXMgaGFwcGVuIGJ5IHB1c2hpbmcgMiBP
dXRnb2luZ1Byb2JlUmVjb3JkcyBpbnN0ZWFkIG9mIDE6CisgICAgLy8gMSBmb3IgdGhlIHByb2Jl
IHJldHVybiBzaXRlLCBhbmQgMSBhdCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kIGZvciByZXR1
cm5pbmcgZnJvbQorICAgIC8vIHRoaXMgcHJvYmUuCisKKyAgICAvLyBGaWxsIGluIHRoZSBPdXRn
b2luZ1Byb2JlU3RhY2sgZm9yIHRoZSBwcm9iZSByZXR1cm4gc2l0ZS4KKyAgICAibGRyICAgICAg
IGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIg
IlxuIgorICAgICJzdWIgICAgICAgbHIsIGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX1NJ
WkUpICJcbiIKIAotICAgICJsZHIgICAgICAgeDI3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iCi0gICAgIm1zciAgICAgICBuemN2LCB4
MjciICJcbiIKLSAgICAibGRyICAgICAgIGZwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfRlBfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgImxkciAgICAgICB4MjcsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjdfT0ZGU0VUKSAiXSIgIlxuIgotICAg
ICJsZHIgICAgICAgeDI4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDI4
X09GRlNFVCkgIl0iICJcbiIKLQotICAgIC8vIFRoZXJlIGFyZSA0IG1vcmUgcmVnaXN0ZXJzIGxl
ZnQgdG8gcmVzdG9yZTogeDI3LCB4MjgsIGxyLCBzcCwgYW5kIHBjLgotICAgIC8vIFRoZSBKSVQg
Y29kZSdzIGxyIGFuZCBzcCB3aWxsIGJlIHJlc3RvcmVkIGJ5IHRoZSBjYWxsZXIuCi0KLSAgICAv
LyBSZXN0b3JlIHBjIGJ5IGxvYWRpbmcgaXQgaW50byBsci4gVGhlIHJldCBiZWxvdyB3aWxsIHB1
dCBpbiB0aGUgcGMuCi0gICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKLQotICAgIC8vIFdlIG5lZWQgeDI3IGFz
IGEgc2NyYXRjaCByZWdpc3RlciB0byBoZWxwIHdpdGggcG9wcGluZyB0aGUgUHJvYmVDb250ZXh0
LgotICAgIC8vIEhlbmNlLCBiZWZvcmUgd2UgcG9wIHRoZSBQcm9iZUNvbnRleHQsIHdlIG5lZWQg
dG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZQotICAgIC8vIGZvciB4MjcgZnJvbSB0aGUgUHJvYmVD
b250ZXh0IHRvIHRoZSBjYWxsZXIgc2F2ZSBidWZmZXIuCi0gICAgImxkciAgICAgICB4MjgsIFtz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVEX0NBTExFUl9TUCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gyN19P
RkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICB4MjcsIFt4MjgsICM0ICogIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFRSX1NJWkUpICJdIiAiXG4iCi0KLSAgICAvLyBTaW5jZSBsciBpcyBhbHNv
IHJlc3RvcmVkIGJ5IHRoZSBjYWxsZXIsIHdlIG5lZWQgdG8gY29weSBpdHMgcmVzdG9yZQotICAg
IC8vIHZhbHVlIHRvIHRoZSBjYWxsZXIgc2F2ZSBidWZmZXIgdG9vLgogICAgICJsZHIgICAgICAg
eDI3LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTFJfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgeDI3LCBbeDI4LCAjNiAqICIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBUUl9TSVpFKSAiXSIgIlxuIgorICAgICJzdHIgICAgICAgeDI3LCBbbHIsICMiIFNUUklOR0la
RV9WQUxVRV9PRihPVVRfTFJfT0ZGU0VUKSAiXSIgIlxuIgogCi0gICAgLy8gV2UncmUgbm93IGRv
bmUgd2l0aCB4MjgsIGFuZCBjYW4gcmVzdG9yZSBpdHMgdmFsdWUuCi0gICAgImxkciAgICAgICB4
MjgsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMjhfT0ZGU0VUKSAiXSIg
IlxuIgotCi0gICAgLy8gV2UncmUgbm93IGRvbmUgd2l0aCB0aGUgUHJvYmVDb250ZXh0LCBhbmQg
Y2FuIHBvcCBpdCB0byByZXN0b3JlIHNwIHNvIHRoYXQKLSAgICAvLyBpdCBwb2ludHMgdG8gdGhl
IGNhbGxlciBzYXZlIGJ1ZmZlci4KLSAgICAibGRyICAgICAgIHgyNywgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoU0FWRURfQ0FMTEVSX1NQKSAiXSIgIlxuIgotICAgICJtb3YgICAgICAgc3As
IHgyNyIgIlxuIgotCi0gICAgLy8gV2UncmUgbm93IGRvbmUgd2l0aCB4MjcsIGFuZCBjYW4gcmVz
dG9yZSBpdC4KLSAgICAibGRyICAgICAgIHgyNywgW3NwLCAjNCAqICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBUUl9TSVpFKSAiXSIgIlxuIgorICAgIC8vIFNldCB1cCB0aGUgc3AgYW5kIHBjIHZhbHVl
cyBzbyB0aGF0IGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQgd2lsbCByZXR1cm4gdG8gdGhlIHBy
b2JlIHJldHVybiBzaXRlLgorICAgICJzdHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCisgICAgInN0ciAgICAgICBmcCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIg
Ly8gU3RvcmUgdGhlIHByb2JlIHJldHVybiBzaXRlIHBjIChwcmVsb2FkZWQgaW50byBmcCBhYm92
ZSkuCisKKyAgICBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkg
IjoiICJcbiIKKworICAgIC8vIEZpbGwgaW4gdGhlIE91dGdvaW5nUHJvYmVTdGFjay4KKyAgICAi
bGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZG
U0VUKSAiXSIgIlxuIgorICAgICJzdWIgICAgICAgbHIsIGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoT1VUX1NJWkUpICJcbiIKKworICAgICJsZHAgICAgICAgeDI3LCB4MjgsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9OWkNWX09GRlNFVCkgIl0iICJcbiIKKyAgICAic3Rw
ICAgICAgIHgyNywgeDI4LCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihPVVRfTlpDVl9PRkZT
RVQpICJdIiAiXG4iCisgICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1gyN19PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAgICAgICB4
MjcsIHgyOCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX1gyN19PRkZTRVQpICJdIiAi
XG4iCisgICAgImxkciAgICAgICB4MjcsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9GUF9PRkZTRVQpICJdIiAiXG4iCisgICAgImxkciAgICAgICB4MjgsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCisgICAgInN0cCAg
ICAgICB4MjcsIHgyOCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX0ZQX09GRlNFVCkg
Il0iICJcbiIKKyAgICAibW92ICAgICAgIHNwLCBsciIgIlxuIgogCisgICAgLy8gUmVzdG9yZSB0
aGUgcmVtYWluaW5nIHJlZ2lzdGVycyBhbmQgcG9wIHRoZSBPdXRnb2luZ1Byb2JlU3RhY2suCisg
ICAgImxkcCAgICAgICB4MjcsIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX05a
Q1ZfT0ZGU0VUKSAiXSIgIlxuIgorICAgICJtc3IgICAgICAgbnpjdiwgeDI3IiAiXG4iCisgICAg
Im1zciAgICAgICBmcHNyLCB4MjgiICJcbiIKKyAgICAibGRwICAgICAgIHgyNywgeDI4LCBbc3As
ICMiIFNUUklOR0laRV9WQUxVRV9PRihPVVRfWDI3X09GRlNFVCkgIl0iICJcbiIKKyAgICAibGRw
ICAgICAgIGZwLCBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX0ZQX09GRlNFVCkg
Il0iICJcbiIKKyAgICAiYWRkICAgICAgIHNwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKE9V
VF9TSVpFKSAiXG4iCiAgICAgInJldCIgIlxuIgorCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0
aU1hc21Qcm9iZVRyYW1wb2xpbmVFcnJvcikgIjoiICJcbiIKKyAgICAvLyBUaGUgcHJvYmUgaGFu
ZGxlciBjaGFuZ2VkIGJvdGggbHIgYW5kIHBjLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIEFS
TTY0LgorICAgICJsZHIgICAgICAgeDEsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFNBVkVE
X1BST0JFX0VSUk9SX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIKKyAgICAibW92ICAgICAgIHgw
LCBzcCIgIlxuIiAvLyBTZXQgdGhlIFByb2JlQ29udGV4dCogYXJnLgorICAgICJibHIgICAgICAg
eDEiICJcbiIKKyAgICAiYnJrICAgICAgICMweDEwMDAiIC8vIFNob3VsZCBuZXZlciByZXR1cm4g
aGVyZS4KICk7CiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NMQU5HKQogCi1zdGF0aWMgdm9p
ZCBhcm02NFByb2JlVHJhbXBvbGluZShQcm9iZUNvbnRleHQqIGNvbnRleHQpCitzdGF0aWMgTk9f
UkVUVVJOX0RVRV9UT19DUkFTSCB2b2lkIGFybTY0UHJvYmVFcnJvcihQcm9iZUNvbnRleHQqKQog
ewotICAgIHZvaWQqIG9yaWdTUCA9IGNvbnRleHQtPmNwdS5zcCgpOwotICAgIHZvaWQqIG9yaWdQ
QyA9IGNvbnRleHQtPmNwdS5wYygpOwotICAgIAotICAgIGNvbnRleHQtPnByb2JlRnVuY3Rpb24o
Y29udGV4dCk7Ci0gICAgCi0gICAgaWYgKGNvbnRleHQtPmNwdS5zcCgpICE9IG9yaWdTUCkgewot
ICAgICAgICBkYXRhTG9nKCJNYWNyb0Fzc2VtYmxlciBwcm9iZSBFUlJPUjogQVJNNjQgZG9lcyBu
b3Qgc3VwcG9ydCB0aGUgcHJvYmUgY2hhbmdpbmcgdGhlIFNQLiBUaGUgY2hhbmdlIHdpbGwgYmUg
aWdub3JlZFxuIik7Ci0gICAgICAgIGNvbnRleHQtPmNwdS5zcCgpID0gb3JpZ1NQOwotICAgIH0K
LSAgICBpZiAoY29udGV4dC0+Y3B1LnBjKCkgIT0gb3JpZ1BDKSB7Ci0gICAgICAgIGRhdGFMb2co
Ik1hY3JvQXNzZW1ibGVyIHByb2JlIEVSUk9SOiBBUk02NCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBw
cm9iZSBjaGFuZ2luZyB0aGUgUEMuIFRoZSBjaGFuZ2Ugd2lsbCBiZSBpZ25vcmVkXG4iKTsKLSAg
ICAgICAgY29udGV4dC0+Y3B1LnBjKCkgPSBvcmlnUEM7Ci0gICAgfQorICAgIGRhdGFMb2coIk1h
Y3JvQXNzZW1ibGVyIHByb2JlIEVSUk9SOiBBUk02NCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBwcm9i
ZSBjaGFuZ2luZyBib3RoIExSIGFuZCBQQy5cbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24g
ZnVuY3Rpb24sIHZvaWQqIGFyZykKIHsKLSAgICBzdWI2NChUcnVzdGVkSW1tMzIoNyAqIDgpLCBz
cCk7CisgICAgc3ViNjQoVHJ1c3RlZEltbTMyKHNpemVvZihJbmNvbWluZ1Byb2JlUmVjb3JkKSks
IHNwKTsKIAotICAgIHN0b3JlNjQoeDI3LCBBZGRyZXNzKHNwLCAzICogOCkpOwotICAgIHN0b3Jl
NjQoeDI4LCBBZGRyZXNzKHNwLCA0ICogOCkpOwotICAgIHN0b3JlNjQobHIsIEFkZHJlc3Moc3As
IDUgKiA4KSk7Ci0KLSAgICBhZGQ2NChUcnVzdGVkSW1tMzIoNyAqIDgpLCBzcCwgeDI4KTsKLSAg
ICBzdG9yZTY0KHgyOCwgQWRkcmVzcyhzcCwgNiAqIDgpKTsgLy8gU2F2ZSBvcmlnaW5hbCBzcCB2
YWx1ZS4KLQotICAgIG1vdmUoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihm
dW5jdGlvbikpLCB4MjgpOwotICAgIHN0b3JlNjQoeDI4LCBBZGRyZXNzKHNwKSk7Ci0gICAgbW92
ZShUcnVzdGVkSW1tUHRyKGFyZyksIHgyOCk7Ci0gICAgc3RvcmU2NCh4MjgsIEFkZHJlc3Moc3As
IDEgKiA4KSk7Ci0gICAgbW92ZShUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+
KGFybTY0UHJvYmVUcmFtcG9saW5lKSksIHgyOCk7Ci0gICAgc3RvcmU2NCh4MjgsIEFkZHJlc3Mo
c3AsIDIgKiA4KSk7Ci0KLSAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oY3RpTWFzbVByb2JlVHJhbXBvbGluZSkpLCB4MjgpOwotICAgIG1fYXNzZW1ibGVyLmJs
cih4MjgpOwotCi0gICAgLy8gY3RpTWFzbVByb2JlVHJhbXBvbGluZSBzaG91bGQgaGF2ZSByZXN0
b3JlZCBldmVyeSByZWdpc3RlciBleGNlcHQgZm9yCi0gICAgLy8gbHIgYW5kIHRoZSBzcC4KLSAg
ICBsb2FkNjQoQWRkcmVzcyhzcCwgNSAqIDgpLCBscik7Ci0gICAgYWRkNjQoVHJ1c3RlZEltbTMy
KDcgKiA4KSwgc3ApOworICAgIHN0b3JlUGFpcjY0KHgyNiwgeDI3LCBzcCwgVHJ1c3RlZEltbTMy
KG9mZnNldG9mKEluY29taW5nUHJvYmVSZWNvcmQsIHgyNikpKTsKKyAgICBhZGQ2NChUcnVzdGVk
SW1tMzIoc2l6ZW9mKEluY29taW5nUHJvYmVSZWNvcmQpKSwgc3AsIHgyNik7CisgICAgc3RvcmVQ
YWlyNjQobHIsIHgyNiwgc3AsIFRydXN0ZWRJbW0zMihvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVj
b3JkLCBscikpKTsgLy8gU2F2ZSBsciBhbmQgb3JpZ2luYWwgc3AgdmFsdWUuCisgICAgbW92ZShU
cnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSksIHgyNik7Cisg
ICAgbW92ZShUcnVzdGVkSW1tUHRyKGFyZyksIHgyNyk7CisgICAgc3RvcmVQYWlyNjQoeDI2LCB4
MjcsIHNwLCBUcnVzdGVkSW1tMzIob2Zmc2V0b2YoSW5jb21pbmdQcm9iZVJlY29yZCwgcHJvYmVI
YW5kbGVyRnVuY3Rpb24pKSk7CisgICAgbW92ZShUcnVzdGVkSW1tUHRyKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCo+KGFybTY0UHJvYmVFcnJvcikpLCB4MjcpOworICAgIHN0b3JlNjQoeDI3LCBBZGRy
ZXNzKHNwLCBvZmZzZXRvZihJbmNvbWluZ1Byb2JlUmVjb3JkLCBwcm9iZUVycm9yRnVuY3Rpb24p
KSk7CisKKyAgICBtb3ZlKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY3Rp
TWFzbVByb2JlVHJhbXBvbGluZSkpLCB4MjYpOworICAgIG1fYXNzZW1ibGVyLmJscih4MjYpOwor
CisgICAgLy8gY3RpTWFzbVByb2JlVHJhbXBvbGluZSBzaG91bGQgaGF2ZSByZXN0b3JlZCBldmVy
eSByZWdpc3RlciBleGNlcHQgZm9yIGxyIGFuZCB0aGUgc3AuCisgICAgbG9hZDY0KEFkZHJlc3Mo
c3AsIG9mZnNldG9mKE91dGdvaW5nUHJvYmVSZWNvcmQsIGxyKSksIGxyKTsKKyAgICBhZGQ2NChU
cnVzdGVkSW1tMzIoc2l6ZW9mKE91dGdvaW5nUHJvYmVSZWNvcmQpKSwgc3ApOwogfQogI2VuZGlm
IC8vIEVOQUJMRShNQVNNX1BST0JFKQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkocmV2aXNpb24gMjE5OTAxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYg
KzcxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBuZXh0SUQoVCBpZCkgeyByZQogI2Vsc2UK
ICNkZWZpbmUgdGVzdFdvcmQoeCkgdGVzdFdvcmQzMih4KQogI2VuZGlmCisjZGVmaW5lIHRlc3RE
b3VibGVXb3JkKHgpIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFdvcmQoeCkpCiAKIC8vIE5vdGhp
bmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdURiBhc3NlcnRpb24g
bWFjaGluZXJ5LgogI2RlZmluZSBDSEVDSyh4KSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtODEsNiArODIsOSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBUIG5leHRJRChUIGlkKSB7IHJlCiAgICAgICAgIENSQVNIKCk7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3
aGlsZSAoZmFsc2UpCiAKKyNkZWZpbmUgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEoYSwgYikgXAor
ICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYSkgPT0gYml0d2lzZV9jYXN0PHVpbnQ2
NF90PihhKSkKKwogI2lmIEVOQUJMRShNQVNNX1BST0JFKQogYm9vbCBpc1BDKE1hY3JvQXNzZW1i
bGVyOjpSZWdpc3RlcklEIGlkKQogewpAQCAtMTAxLDYgKzEwNSwxNyBAQCBib29sIGlzRlAoTWFj
cm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgaWQpCiB7CiAgICAgcmV0dXJuIGlkID09IE1hY3JvQXNz
ZW1ibGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlcjsKIH0KKworYm9vbCBpc1NwZWNpYWxHUFIoTWFj
cm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgaWQpCit7CisgICAgaWYgKGlzUEMoaWQpIHx8IGlzU1Ao
aWQpIHx8IGlzRlAoaWQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBDUFUoQVJNNjQpCisg
ICAgaWYgKGlkID09IEFSTTY0UmVnaXN0ZXJzOjp4MTgpCisgICAgICAgIHJldHVybiB0cnVlOwor
I2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQogI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JF
KQogCiBNYWNyb0Fzc2VtYmxlckNvZGVSZWYgY29tcGlsZShHZW5lcmF0b3ImJiBnZW5lcmF0ZSkK
QEAgLTE2NCw4ICsxNzksOCBAQCB2b2lkIHRlc3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMo
KQogICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikg
PT0gdGVzdFdvcmQoMikpOwogICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86
OmFyZ3VtZW50R1BSMykgPT0gdGVzdFdvcmQoMykpOwogCi0gICAgICAgICAgICBDSEVDSyhjb250
ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMCkgPT0gdGVzdFdvcmQzMigwKSk7Ci0gICAgICAgICAg
ICBDSEVDSyhjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMSkgPT0gdGVzdFdvcmQzMigxKSk7
CisgICAgICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoRlBSSW5m
bzo6ZnBSZWdUMCksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFdvcmQzMigwKSkpOworICAgICAg
ICAgICAgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEoY29udGV4dC0+ZnByKEZQUkluZm86OmZwUmVn
VDEpLCAgc3RhdGljX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDMyKDEpKSk7CiAgICAgICAgIH0pOwog
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgaml0LnJldCgpOwpA
QCAtMjE3LDggKzIzMiw4IEBAIHZvaWQgdGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMo
KQogICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikg
PT0gdGVzdFdvcmQoMikpOwogICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86
OmFyZ3VtZW50R1BSMykgPT0gdGVzdFdvcmQoMykpOwogCi0gICAgICAgICAgICBDSEVDSyhjb250
ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMCkgPT0gdGVzdFdvcmQzMigwKSk7Ci0gICAgICAgICAg
ICBDSEVDSyhjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMSkgPT0gdGVzdFdvcmQzMigxKSk7
CisgICAgICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoRlBSSW5m
bzo6ZnBSZWdUMCksIHN0YXRpY19jYXN0PGRvdWJsZT4odGVzdFdvcmQzMigwKSkpOworICAgICAg
ICAgICAgQ0hFQ0tfRE9VQkxFX0JJVFdJU0VfRVEoY29udGV4dC0+ZnByKEZQUkluZm86OmZwUmVn
VDEpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHRlc3RXb3JkMzIoMSkpKTsKICAgICAgICAgfSk7CiAK
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CkBAIC0yNTYsMTMgKzI3MSwxMyBA
QCB2b2lkIHRlc3RQcm9iZVByZXNlcnZlc0dQUlMoKQogICAgICAgICAgICAgcHJvYmVDYWxsQ291
bnQrKzsKICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdp
c3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChp
ZCkpIHsKICAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLmdwcihpZCkgPSBjb250ZXh0LT5n
cHIoaWQpOwotICAgICAgICAgICAgICAgIGlmIChpc1BDKGlkKSB8fCBpc1NQKGlkKSB8fCBpc0ZQ
KGlkKSkKKyAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgY29udGV4dC0+Z3ByKGlkKSA9IHRl
c3RXb3JkKHN0YXRpY19jYXN0PGludD4oaWQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IEND
YWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAg
ICAgICAgICAgb3JpZ2luYWxTdGF0ZS5mcHIoaWQpID0gY29udGV4dC0+ZnByKGlkKTsKLSAgICAg
ICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0gdGVzdFdvcmQoaWQpOworICAgICAgICAgICAg
ICAgIGNvbnRleHQtPmZwcihpZCkgPSB0ZXN0RG91YmxlV29yZChpZCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwogCkBAIC0yNzcsMjMgKzI5MiwyMyBAQCB2b2lkIHRlc3RQcm9iZVByZXNl
cnZlc0dQUlMoKQogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQp
IHsKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8g
aWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjps
YXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGlz
UEMoaWQpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBp
ZiAoaXNTUChpZCkgfHwgaXNGUChpZCkpIHsKICAgICAgICAgICAgICAgICAgICAgQ0hFQ0soY29u
dGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOwogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGlz
U3BlY2lhbEdQUihpZCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gdGVzdFdvcmQoaWQpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJl
Z2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0
SUQoaWQpKQotICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZwcihpZCkgPT0gdGVzdFdv
cmQoaWQpKTsKKyAgICAgICAgICAgICAgICBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShjb250ZXh0
LT5mcHIoaWQpLCB0ZXN0RG91YmxlV29yZChpZCkpOwogICAgICAgICB9KTsKIAogICAgICAgICAv
LyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBzdGF0ZS4KICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJv
YmVDb250ZXh0KiBjb250ZXh0KSB7CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAg
ICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlk
IDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewotICAg
ICAgICAgICAgICAgIGlmIChpc1BDKGlkKSB8fCBpc1NQKGlkKSB8fCBpc0ZQKGlkKSkKKyAgICAg
ICAgICAgICAgICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgY29udGV4dC0+Z3ByKGlkKSA9IG9yaWdpbmFsU3RhdGUu
Z3ByKGlkKTsKICAgICAgICAgICAgIH0KQEAgLTMwNSwxMiArMzIwLDEyIEBAIHZvaWQgdGVzdFBy
b2JlUHJlc2VydmVzR1BSUygpCiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCog
Y29udGV4dCkgewogICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAgIGZv
ciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhl
bHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoaXNQQyhpZCkgfHwgaXNTUChpZCkgfHwgaXNGUChpZCkpCisgICAgICAgICAgICAgICAg
aWYgKGlzU3BlY2lhbEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gb3JpZ2luYWxTdGF0ZS5ncHIo
aWQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVs
cGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0
ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKQotICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZw
cihpZCkgPT0gb3JpZ2luYWxTdGF0ZS5mcHIoaWQpKTsKKyAgICAgICAgICAgICAgICBDSEVDS19E
T1VCTEVfQklUV0lTRV9FUShjb250ZXh0LT5mcHIoaWQpLCBvcmlnaW5hbFN0YXRlLmZwcihpZCkp
OwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKQEAg
LTMyNSw4ICszNDAsMTcgQEAgdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihXVEY6
OgogICAgIE1hY3JvQXNzZW1ibGVyOjpDUFVTdGF0ZSBvcmlnaW5hbFN0YXRlOwogICAgIHVpbnQ4
X3QqIG9yaWdpbmFsU1AgeyBudWxscHRyIH07CiAgICAgdm9pZCogbW9kaWZpZWRTUCB7IG51bGxw
dHIgfTsKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwg
Q1BVKEFSTV9UUkFESVRJT05BTCkKICAgICB1aW50cHRyX3QgbW9kaWZpZWRGbGFncyB7IDAgfTsK
KyAgICAKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgIGF1dG8gZmxhZ3NTUFIgPSBY
ODZSZWdpc3RlcnM6OmVmbGFnczsKKyAgICB1aW50cHRyX3QgZmxhZ3NNYXNrID0gMHhjNTsKKyNl
bGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElPTkFMKQorICAgIGF1dG8gZmxh
Z3NTUFIgPSBBUk1SZWdpc3RlcnM6OmFwc3I7CisgICAgdWludHB0cl90IGZsYWdzTWFzayA9IDB4
ZjAwMDAwMDA7CisjZWxpZiBDUFUoQVJNNjQpCisgICAgYXV0byBmbGFnc1NQUiA9IEFSTTY0UmVn
aXN0ZXJzOjpuemN2OworICAgIHVpbnRwdHJfdCBmbGFnc01hc2sgPSAweGYwMDAwMDAwOwogI2Vu
ZGlmCiAKICAgICBjb21waWxlQW5kUnVuPHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
QEAgLTMzOCw3ICszNjIsNyBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyKFdU
Rjo6CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAgICAgICAgICAgZm9yIChhdXRv
IGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6
bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewogICAgICAgICAgICAgICAgIG9yaWdp
bmFsU3RhdGUuZ3ByKGlkKSA9IGNvbnRleHQtPmdwcihpZCk7Ci0gICAgICAgICAgICAgICAgaWYg
KGlzUEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAgICAgICAgICAgICAgIGlmIChp
c1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0gdGVzdFdvcmQoc3RhdGljX2Nhc3Q8aW50PihpZCkp
OwogICAgICAgICAgICAgfQpAQCAtMzQ2LDE1ICszNzAsMTEgQEAgdm9pZCB0ZXN0UHJvYmVNb2Rp
Zmllc1N0YWNrUG9pbnRlcihXVEY6OgogICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuZnBy
KGlkKSA9IGNvbnRleHQtPmZwcihpZCk7CiAgICAgICAgICAgICAgICAgY29udGV4dC0+ZnByKGlk
KSA9IHRlc3RXb3JkKGlkKTsKICAgICAgICAgICAgIH0KLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2
XzY0KQotICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3Mp
ID0gY29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKTsKLSAgICAgICAgICAgIG1vZGlm
aWVkRmxhZ3MgPSBvcmlnaW5hbFN0YXRlLnNwcihYODZSZWdpc3RlcnM6OmVmbGFncykgXiAweGM1
OwotICAgICAgICAgICAgY29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSA9IG1vZGlm
aWVkRmxhZ3M7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkK
LSAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgPSBjb250
ZXh0LT5zcHIoQVJNUmVnaXN0ZXJzOjphcHNyKTsKLSAgICAgICAgICAgIG1vZGlmaWVkRmxhZ3Mg
PSBvcmlnaW5hbFN0YXRlLnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpIF4gMHhmMDAwMDAwMDsKLSAg
ICAgICAgICAgIGNvbnRleHQtPnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpID0gbW9kaWZpZWRGbGFn
czsKLSNlbmRpZgorCisgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQUikgPSBj
b250ZXh0LT5zcHIoZmxhZ3NTUFIpOworICAgICAgICAgICAgbW9kaWZpZWRGbGFncyA9IG9yaWdp
bmFsU3RhdGUuc3ByKGZsYWdzU1BSKSBeIGZsYWdzTWFzazsKKyAgICAgICAgICAgIGNvbnRleHQt
PnNwcihmbGFnc1NQUikgPSBtb2RpZmllZEZsYWdzOworCiAgICAgICAgICAgICBvcmlnaW5hbFNQ
ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29udGV4dC0+c3AoKSk7CiAgICAgICAgICAg
ICBtb2RpZmllZFNQID0gY29tcHV0ZU1vZGlmaWVkU3RhY2soY29udGV4dCk7CiAgICAgICAgICAg
ICBjb250ZXh0LT5zcCgpID0gbW9kaWZpZWRTUDsKQEAgLTM2NCwyMSArMzg0LDE3IEBAIHZvaWQg
dGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIoV1RGOjoKICAgICAgICAgaml0LnByb2JlKFsm
XSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSB7CiAgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsr
OwogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVy
KCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkg
ewotICAgICAgICAgICAgICAgIGlmIChpc1BDKGlkKSB8fCBpc1NQKGlkKSkKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaWYgKGlzRlAoaWQpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gb3JpZ2luYWxTdGF0ZS5n
cHIoaWQpKTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxHUFIoaWQpKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5ncHIoaWQpID09
IHRlc3RXb3JkKGlkKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQg
PSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxh
c3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkKLSAgICAgICAgICAgICAgICBDSEVDSyhj
b250ZXh0LT5mcHIoaWQpID09IHRlc3RXb3JkKGlkKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkKLSAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPnNwcihYODZSZWdpc3RlcnM6OmVmbGFn
cykgPT0gbW9kaWZpZWRGbGFncyk7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9U
UkFESVRJT05BTCkKLSAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPnNwcihBUk1SZWdpc3RlcnM6
OmFwc3IpID09IG1vZGlmaWVkRmxhZ3MpOwotI2VuZGlmCisgICAgICAgICAgICAgICAgQ0hFQ0tf
RE9VQkxFX0JJVFdJU0VfRVEoY29udGV4dC0+ZnByKGlkKSwgdGVzdERvdWJsZVdvcmQoaWQpKTsK
KyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPnNwcihmbGFnc1NQUikgPT0gbW9kaWZpZWRGbGFn
cyk7CiAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5zcCgpID09IG1vZGlmaWVkU1ApOwogICAg
ICAgICB9KTsKIApAQCAtMzg2LDE3ICs0MDIsMTMgQEAgdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0
YWNrUG9pbnRlcihXVEY6OgogICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNv
bnRleHQpIHsKICAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAgICAgICBmb3Ig
KGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxw
ZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAgICAgICAgICAgICAgIGlm
IChpc1NwZWNpYWxHUFIoaWQpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0gb3JpZ2luYWxTdGF0ZS5ncHIoaWQpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJz
dEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9
IG5leHRJRChpZCkpCiAgICAgICAgICAgICAgICAgY29udGV4dC0+ZnByKGlkKSA9IG9yaWdpbmFs
U3RhdGUuZnByKGlkKTsKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQotICAgICAgICAgICAg
Y29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSA9IG9yaWdpbmFsU3RhdGUuc3ByKFg4
NlJlZ2lzdGVyczo6ZWZsYWdzKTsKLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RS
QURJVElPTkFMKQotICAgICAgICAgICAgY29udGV4dC0+c3ByKEFSTVJlZ2lzdGVyczo6YXBzcikg
PSBvcmlnaW5hbFN0YXRlLnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpOwotI2VuZGlmCisgICAgICAg
ICAgICBjb250ZXh0LT5zcHIoZmxhZ3NTUFIpID0gb3JpZ2luYWxTdGF0ZS5zcHIoZmxhZ3NTUFIp
OwogICAgICAgICAgICAgY29udGV4dC0+c3AoKSA9IG9yaWdpbmFsU1A7CiAgICAgICAgIH0pOwog
CkBAIC00MDQsMTcgKzQxNiwxMyBAQCB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVy
KFdURjo6CiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgewog
ICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9
IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RS
ZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNQQyhp
ZCkgfHwgaXNTUChpZCkgfHwgaXNGUChpZCkpCisgICAgICAgICAgICAgICAgaWYgKGlzU3BlY2lh
bEdQUihpZCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gb3JpZ2luYWxTdGF0ZS5ncHIoaWQpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RG
UFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBu
ZXh0SUQoaWQpKQotICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZwcihpZCkgPT0gb3Jp
Z2luYWxTdGF0ZS5mcHIoaWQpKTsKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQotICAgICAg
ICAgICAgQ0hFQ0soY29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSA9PSBvcmlnaW5h
bFN0YXRlLnNwcihYODZSZWdpc3RlcnM6OmVmbGFncykpOwotI2VsaWYgQ1BVKEFSTV9USFVNQjIp
IHx8IENQVShBUk1fVFJBRElUSU9OQUwpCi0gICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5zcHIo
QVJNUmVnaXN0ZXJzOjphcHNyKSA9PSBvcmlnaW5hbFN0YXRlLnNwcihBUk1SZWdpc3RlcnM6OmFw
c3IpKTsKLSNlbmRpZgorICAgICAgICAgICAgICAgIENIRUNLX0RPVUJMRV9CSVRXSVNFX0VRKGNv
bnRleHQtPmZwcihpZCksICBvcmlnaW5hbFN0YXRlLmZwcihpZCkpOworICAgICAgICAgICAgQ0hF
Q0soY29udGV4dC0+c3ByKGZsYWdzU1BSKSA9PSBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQUikp
OwogICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+c3AoKSA9PSBvcmlnaW5hbFNQKTsKICAgICAg
ICAgfSk7CiAKQEAgLTQyNiw3ICs0MzQsMTIgQEAgdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNr
UG9pbnRlcihXVEY6OgogCiB2b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyVG9JbnNp
ZGVQcm9iZUNvbnRleHRPblN0YWNrKCkKIHsKLSAgICBmb3IgKHNpemVfdCBvZmZzZXQgPSAwOyBv
ZmZzZXQgPCBzaXplb2YoUHJvYmVDb250ZXh0KTsgb2Zmc2V0ICs9IHNpemVvZih1aW50cHRyX3Qp
KSB7CisgICAgc2l6ZV90IGluY3JlbWVudCA9IHNpemVvZih1aW50cHRyX3QpOworI2lmIENQVShB
Uk02NCkKKyAgICAvLyBUaGUgQVJNNjQgcHJvYmUgdXNlcyBsZHAgYW5kIHN0cCB3aGljaCByZXF1
aXJlIDE2IGJ5dGUgYWxpZ25tZW50LgorICAgIGluY3JlbWVudCA9IDIgKiBzaXplb2YodWludHB0
cl90KTsKKyNlbmRpZgorICAgIGZvciAoc2l6ZV90IG9mZnNldCA9IDA7IG9mZnNldCA8IHNpemVv
ZihQcm9iZUNvbnRleHQpOyBvZmZzZXQgKz0gaW5jcmVtZW50KSB7CiAgICAgICAgIHRlc3RQcm9i
ZU1vZGlmaWVzU3RhY2tQb2ludGVyKFs9XSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSAtPiB2b2lk
KiB7CiAgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29udGV4
dCkgKyBvZmZzZXQ7CiAgICAgICAgIH0pOwpAQCAtNDM1LDcgKzQ0OCwxMiBAQCB2b2lkIHRlc3RQ
cm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyVG9JbnNpCiAKIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNT
dGFja1BvaW50ZXJUb05CeXRlc0JlbG93U1AoKQogewotICAgIGZvciAoc2l6ZV90IG9mZnNldCA9
IDA7IG9mZnNldCA8IDEgKiBLQjsgb2Zmc2V0ICs9IHNpemVvZih1aW50cHRyX3QpKSB7CisgICAg
c2l6ZV90IGluY3JlbWVudCA9IHNpemVvZih1aW50cHRyX3QpOworI2lmIENQVShBUk02NCkKKyAg
ICAvLyBUaGUgQVJNNjQgcHJvYmUgdXNlcyBsZHAgYW5kIHN0cCB3aGljaCByZXF1aXJlIDE2IGJ5
dGUgYWxpZ25tZW50LgorICAgIGluY3JlbWVudCA9IDIgKiBzaXplb2YodWludHB0cl90KTsKKyNl
bmRpZgorICAgIGZvciAoc2l6ZV90IG9mZnNldCA9IDA7IG9mZnNldCA8IDEgKiBLQjsgb2Zmc2V0
ICs9IGluY3JlbWVudCkgewogICAgICAgICB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihb
PV0gKFByb2JlQ29udGV4dCogY29udGV4dCkgLT4gdm9pZCogewogICAgICAgICAgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGNvbnRleHQtPmNwdS5zcCgpKSAtIG9mZnNldDsK
ICAgICAgICAgfSk7Cg==
</data>
<flag name="review"
          id="337119"
          type_id="1"
          status="+"
          setter="jfbastien"
    />
          </attachment>
      

    </bug>

</bugzilla>