<?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>175617</bug_id>
          
          <creation_ts>2017-08-15 21:30:33 -0700</creation_ts>
          <short_desc>Enhance MacroAssembler::probe() to support an initializeStackFunction callback.</short_desc>
          <delta_ts>2017-08-18 13:25:59 -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>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>pvollan</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1339040</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-15 21:30:33 -0700</bug_when>
    <thetext>This allows the probe function to provide a second ProbeFunction callback to initialize the stack values after the stack pointer has been adjusted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339042</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-15 21:31:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/33912104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339072</commentid>
    <comment_count>2</comment_count>
      <attachid>318234</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-15 22:34:10 -0700</bug_when>
    <thetext>Created attachment 318234
proposed patch.

Let&apos;s try this on the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339233</commentid>
    <comment_count>3</comment_count>
      <attachid>318278</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-16 11:42:05 -0700</bug_when>
    <thetext>Created attachment 318278
proposed patch.

This patch has passed the testmasm test for x86, x86_64, arm64, and armv7s.  It&apos;s ready for a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339261</commentid>
    <comment_count>4</comment_count>
      <attachid>318278</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-08-16 13:12:29 -0700</bug_when>
    <thetext>Comment on attachment 318278
proposed patch.

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

r=me


On x86-64 I think you should do a follow-up patch to avoid setting eflags with pushf / popf. It&apos;s slow, and historically has been the source of some exploits. I have code and benchmark for it here: https://github.com/jfbastien/benchmark-x86-flags  I&apos;d use seto+lahf / addb+sahf instead.

&gt; Source/JavaScriptCore/ChangeLog:60
&gt; +           we&apos;re moving the ProbeContext, we&apos;re always be moving it to a lower address.

&quot;we&apos;re always be moving it&quot;
*we&apos;ll ?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:358
&gt; +    // Initialize ProbeContex::initializeStackFunction to zero.

ProbeContext

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:370
&gt; +    &quot;add       x2, x27, #&quot; STRINGIZE_VALUE_OF(PROBE_SIZE_PLUS_EXTRAS + OUT_SIZE) &quot;\n&quot; // End of ProveContext + buffer.

ProbeContext

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:376
&gt; +    &quot;bic       x1, x1, #0xf&quot; &quot;\n&quot; // The ARM EABI specifies that the stack needs to be 16 byte aligned.

IIUC x1 is:
RESULT_SP - (PROBE_SIZE_PLUS_EXTRA + OUT_SIZE)
Right?

So why do you need to align it? It seems like OUT_SIZE is the only thing that could force misalignment, no? Why not assert it&apos;s always a value that won&apos;t mis-align SP?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:377
&gt; +    &quot;mov       sp, x1&quot; &quot;\n&quot; // Set the new sp to protect that memory from interrupts before we copy the ProbeContext.

I think you should also set FP here, so that backtraces will look fine.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:264
&gt;      &quot;bic       r3, r3, #0xf&quot; &quot;\n&quot;

Ditto on mask.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:265
&gt; +    &quot;mov       sp, r3&quot; &quot;\n&quot; // Set the sp to protect the ProbeContext from interrupts before we initialize it.

Ditto on FP.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:292
&gt; +    &quot;vstmia.64 ip!, { d16-d31 }&quot; &quot;\n&quot;

Wait... The previous code was just wrong, lost half the values, overwrote the other half, and kept garbage?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:296
&gt; +    // Initialize ProbeContex::initializeStackFunction to zero.

ProbeContext

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:314
&gt; +    &quot;bic       r1, r1, #0xf&quot; &quot;\n&quot; // The ARM EABI specifies that the stack needs to be 16 byte aligned.

Ditto

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:328
&gt; +    &quot;str       r4, [r6], #4&quot; &quot;\n&quot;

You could use load / store pair here, but I&apos;m not sure it&apos;s worth sweating the details on ARM32. You could also use load / store multiple to avoid looping entirely and have less code, but it&apos;s not necessarily faster.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp:235
&gt; +    // Initialize ProbeContex::initializeStackFunction to zero.

ProbeContext

&gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp:254
&gt; +    &quot;bic       r1, r1, #0xf&quot; &quot;\n&quot; // The ARM EABI specifies that the stack needs to be 16 byte aligned.

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339275</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-16 13:34:50 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to JF Bastien from comment #4)
&gt; On x86-64 I think you should do a follow-up patch to avoid setting eflags
&gt; with pushf / popf. It&apos;s slow, and historically has been the source of some
&gt; exploits. I have code and benchmark for it here:
&gt; https://github.com/jfbastien/benchmark-x86-flags  I&apos;d use seto+lahf /
&gt; addb+sahf instead.

I filed https://bugs.webkit.org/show_bug.cgi?id=175636 to address this later.

&gt; &gt; Source/JavaScriptCore/ChangeLog:60
&gt; &gt; +           we&apos;re moving the ProbeContext, we&apos;re always be moving it to a lower address.
&gt; 
&gt; &quot;we&apos;re always be moving it&quot;
&gt; *we&apos;ll ?

Fixed.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:358
&gt; &gt; +    // Initialize ProbeContex::initializeStackFunction to zero.
&gt; 
&gt; ProbeContext

Fixed.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:370
&gt; &gt; +    &quot;add       x2, x27, #&quot; STRINGIZE_VALUE_OF(PROBE_SIZE_PLUS_EXTRAS + OUT_SIZE) &quot;\n&quot; // End of ProveContext + buffer.
&gt; 
&gt; ProbeContext

Fixed.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:376
&gt; &gt; +    &quot;bic       x1, x1, #0xf&quot; &quot;\n&quot; // The ARM EABI specifies that the stack needs to be 16 byte aligned.
&gt; 
&gt; IIUC x1 is:
&gt; RESULT_SP - (PROBE_SIZE_PLUS_EXTRA + OUT_SIZE)
&gt; Right?

RESULT_SP is set by the probe function.  Technically, it should never set it to an unaligned value, but if it does due to a bug, I don&apos;t what the crash to happen in the trampoline code.

&gt; So why do you need to align it? It seems like OUT_SIZE is the only thing
&gt; that could force misalignment, no? Why not assert it&apos;s always a value that
&gt; won&apos;t mis-align SP?

The probe code is not meant for use in performance hot paths, plus an explicit mask here makes the probe trampoline more robust and impervious to a bug in the probe function setting a misaligned sp.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp:377
&gt; &gt; +    &quot;mov       sp, x1&quot; &quot;\n&quot; // Set the new sp to protect that memory from interrupts before we copy the ProbeContext.
&gt; 
&gt; I think you should also set FP here, so that backtraces will look fine.

Not strictly needed but is nice to have.  I filed https://bugs.webkit.org/show_bug.cgi?id=175637 to address this later.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:264
&gt; &gt;      &quot;bic       r3, r3, #0xf&quot; &quot;\n&quot;
&gt; 
&gt; Ditto on mask.

Same reason as above: not perf critical, and more robust (does not require PROBE_SIZE and OUT_SIZE to be carefully packed for alignment).

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:265
&gt; &gt; +    &quot;mov       sp, r3&quot; &quot;\n&quot; // Set the sp to protect the ProbeContext from interrupts before we initialize it.
&gt; 
&gt; Ditto on FP.

Will address later in https://bugs.webkit.org/show_bug.cgi?id=175637.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:292
&gt; &gt; +    &quot;vstmia.64 ip!, { d16-d31 }&quot; &quot;\n&quot;
&gt; 
&gt; Wait... The previous code was just wrong, lost half the values, overwrote
&gt; the other half, and kept garbage?

Yep.  This is a bug fix.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:296
&gt; &gt; +    // Initialize ProbeContex::initializeStackFunction to zero.
&gt; 
&gt; ProbeContext

Fixed.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:314
&gt; &gt; +    &quot;bic       r1, r1, #0xf&quot; &quot;\n&quot; // The ARM EABI specifies that the stack needs to be 16 byte aligned.
&gt; 
&gt; Ditto

Same as above.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:328
&gt; &gt; +    &quot;str       r4, [r6], #4&quot; &quot;\n&quot;
&gt; 
&gt; You could use load / store pair here, but I&apos;m not sure it&apos;s worth sweating
&gt; the details on ARM32. You could also use load / store multiple to avoid
&gt; looping entirely and have less code, but it&apos;s not necessarily faster.

Yeah.  I&apos;m keeping it simple as is.  The ARM_TRADITIONAL folks can choose to optimize if they see a need later.  Since this is not hot path code, I don&apos;t think there&apos;ll be a need.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp:235
&gt; &gt; +    // Initialize ProbeContex::initializeStackFunction to zero.
&gt; 
&gt; ProbeContext

Fixed.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerARMv7.cpp:254
&gt; &gt; +    &quot;bic       r1, r1, #0xf&quot; &quot;\n&quot; // The ARM EABI specifies that the stack needs to be 16 byte aligned.
&gt; 
&gt; Ditto

Same as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339278</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-16 13:43:42 -0700</bug_when>
    <thetext>Landed in r220807: &lt;http://trac.webkit.org/r220807&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339451</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-16 23:55:08 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #6)
&gt; Landed in r220807: &lt;http://trac.webkit.org/r220807&gt;.

It broke the ARMv7 traditional build:
standard input}:76: Error: selected processor does not support ARM mode `cbz r2,.LctiMasmProbeTrampolineRestoreRegisters&apos;

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjaghefc.html

It says that cbz is 16 bit thumb1 instruction,
there is no cbz 32 bit ARM instruction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339454</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-17 00:05:52 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #7)
&gt; It broke the ARMv7 traditional build:
&gt; standard input}:76: Error: selected processor does not support ARM mode `cbz
&gt; r2,.LctiMasmProbeTrampolineRestoreRegisters&apos;

Fixed in r220834: &lt;http://trac.webkit.org/r220834&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340208</commentid>
    <comment_count>9</comment_count>
      <attachid>318278</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-08-18 13:24:17 -0700</bug_when>
    <thetext>Comment on attachment 318278
proposed patch.

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

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:608
&gt; +            context-&gt;initializeStackFunction = fillStack;
&gt; +            context-&gt;initializeStackArg = &amp;data;

This is a super weird API.  Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340209</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-18 13:25:59 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #9)
&gt; Comment on attachment 318278 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318278&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/assembler/testmasm.cpp:608
&gt; &gt; +            context-&gt;initializeStackFunction = fillStack;
&gt; &gt; +            context-&gt;initializeStackArg = &amp;data;
&gt; 
&gt; This is a super weird API.  Why is this needed?

This is needed by the low level implementation because we can&apos;t write things to the stack until after we move the stack pointer.  That said, this is not the API you&apos;re looking for.  What you want will be coming in https://bugs.webkit.org/show_bug.cgi?id=175688 soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318234</attachid>
            <date>2017-08-15 22:34:10 -0700</date>
            <delta_ts>2017-08-16 11:42:05 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175617.patch</filename>
            <type>text/plain</type>
            <size>56060</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNzg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE3LTA4LTE1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBF
bmhhbmNlIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpIHRvIHN1cHBvcnQgYW4gaW5pdGlhbGl6ZVN0
YWNrRnVuY3Rpb24gY2FsbGJhY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzU2MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzOTEyMTA0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNLmNwcDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHA6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICogYXNzZW1ibGVy
L3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlUHJlc2VydmVzR1BSUyk6Cisg
ICAgICAgIChKU0M6OnRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyKToKKyAgICAgICAgKEpT
Qzo6ZmlsbFN0YWNrKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNTdGFja1dpdGhD
YWxsYmFjayk6CisgICAgICAgIChKU0M6OnJ1bik6CisKIDIwMTctMDgtMTUgIFJvYmluIE1vcmlz
c2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBhcmUgdG9vIGNvbnNlcnZh
dGl2ZSBhYm91dCB0aGUgZWZmZWN0cyBvZiBQdXNoV2l0aFNjb3BlCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lvbiAy
MjA3ODApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NDIsNiArMTg0MiwyOSBAQCBwdWJsaWM6CiAgICAgLy8g
VGhlIFByb2JlQ29udGV4dCBpcyBzdGFjayBhbGxvY2F0ZWQgYW5kIGlzIG9ubHkgdmFsaWQgZm9y
IHRoZSBkdXJhdGlvbgogICAgIC8vIG9mIHRoZSBjYWxsIHRvIHRoZSB1c2VyIHByb2JlIGZ1bmN0
aW9uLgogICAgIC8vCisgICAgLy8gVGhlIHByb2JlIGZ1bmN0aW9uIG1heSBjaG9vc2UgdG8gbW92
ZSB0aGUgc3RhY2sgcG9pbnRlciAoaW4gYW55IGRpcmVjdGlvbikuCisgICAgLy8gVG8gZG8gdGhp
cywgdGhlIHByb2JlIGZ1bmN0aW9uIG5lZWRzIHRvIHNldCB0aGUgbmV3IHNwIHZhbHVlIGluIHRo
ZSBDUFVTdGF0ZS4KKyAgICAvLworICAgIC8vIFRoZSBwcm9iZSBmdW5jdGlvbiBtYXkgYWxzbyBj
aG9vc2UgdG8gZmlsbCBzdGFjayBzcGFjZSB3aXRoIHNvbWUgdmFsdWVzLgorICAgIC8vIFRvIGRv
IHRoaXMsIHRoZSBwcm9iZSBmdW5jdGlvbiBtdXN0IGZpcnN0OgorICAgIC8vIDEuIFNldCB0aGUg
bmV3IHNwIHZhbHVlIGluIHRoZSBDUFVTdGF0ZSAoYXMgYXBwcm9wcmlhdGUpLgorICAgIC8vIDIu
IFNldCBjb250ZXh0LT5pbml0aWFsaXplU3RhY2tGdW5jdGlvbiB0byBhIFByb2JlRnVuY3Rpb24g
Y2FsbGJhY2sgdG8gZmlsbAorICAgIC8vICAgIGluIHRoZSB2YWx1ZXMuCisgICAgLy8gMy4gU2V0
IGNvbnRleHQtPmluaXRpYWxpemVTdGFja0FyZ3MgdG8gYW55IHZhbHVlIHRoYXQgaXQgd2lzaGVz
IHRvIHBhc3MgdG8KKyAgICAvLyAgICB0byB0aGUgY29udGV4dC0+aW5pdGlhbGl6ZVN0YWNrRnVu
Y3Rpb24gUHJvYmVGdW5jdGlvbi4KKyAgICAvLyA0LiBSZXR1cm4gZnJvbSB0aGUgcHJvYmUgZnVu
Y3Rpb24uCisgICAgLy8KKyAgICAvLyBVcG9uIHJldHVybmluZyBmcm9tIHRoZSBwcm9iZSBmdW5j
dGlvbiwgdGhlIHByb2JlIHRyYW1wb2xpbmUgd2lsbCBhZGp1c3QgdGhlCisgICAgLy8gdGhlIHN0
YWNrIHBvaW50ZXIgYmFzZWQgb24gdGhlIHNwIHZhbHVlIGluIENQVVN0YXRlLiBJZiBpbml0aWFs
aXplU3RhY2tGdW5jdGlvbgorICAgIC8vIHdhcyBzZXQsIHRoZSB0cmFtcG9saW5lIHdpbGwgbW92
ZSB0aGUgUHJvYmVDb250ZXh0IGJleW9uZCB0aGUgcmFuZ2Ugb2YgdGhlCisgICAgLy8gc3RhY2sg
cG9pbnRlciBpLmUuIGl0IHdpbGwgYmUgcGxhY2VzIGF0IGFuIGFkZHJlc3MgbG93ZXIgdGhhbiB3
aGVyZSBDUFVTdGF0ZS5zcCgpCisgICAgLy8gcG9pbnRzLiBUaGVuLCB0aGUgdHJhbXBvbGluZSB3
aWxsIGNhbGwgYmFjayB0byB0aGUgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24KKyAgICAvLyBQcm9i
ZUZ1bmN0aW9uIHRvIGxldCBpdCBmaWxsIGluIHRoZSBzdGFjayB2YWx1ZXMgYXMgZGVzaXJlZC4g
VGhlCisgICAgLy8gaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gUHJvYmVGdW5jdGlvbiB3aWxsIGJl
IHBhc3NlZCB0aGUgc2FtZSBQcm9iZUNvbnRleHQKKyAgICAvLyAoc2FtZSBpbiB0ZXJtcyBvZiB0
aGUgdmFsdWVzIGl0IGNvbnRhaW5zKSBhcyB0aGUgb3JpZ2luYWwgcHJvYmUgZnVuY3Rpb24uCisg
ICAgLy8gaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8gY2hhbmdlIENQ
VVN0YXRlLnNwKCkuIFVuZGVyd2lzZSwKKyAgICAvLyBiZWhhdmlvciBpcyB1bmRlZmluZWQuCisg
ICAgLy8KICAgICAvLyBOb3RlOiB0aGlzIHZlcnNpb24gb2YgcHJvYmUoKSBzaG91bGQgYmUgaW1w
bGVtZW50ZWQgYnkgdGhlIHRhcmdldCBzcGVjaWZpYwogICAgIC8vIE1hY3JvQXNzZW1ibGVyLgog
ICAgIHZvaWQgcHJvYmUoUHJvYmVGdW5jdGlvbiwgdm9pZCogYXJnKTsKQEAgLTE5OTUsNiArMjAx
OCw4IEBAIHN0cnVjdCBQcm9iZUNvbnRleHQgewogCiAgICAgUHJvYmVGdW5jdGlvbiBwcm9iZUZ1
bmN0aW9uOwogICAgIHZvaWQqIGFyZzsKKyAgICBQcm9iZUZ1bmN0aW9uIGluaXRpYWxpemVTdGFj
a0Z1bmN0aW9uOworICAgIHZvaWQqIGluaXRpYWxpemVTdGFja0FyZzsKICAgICBDUFVTdGF0ZSBj
cHU7CiAKICAgICAvLyBDb252ZW5pZW5jZSBtZXRob2RzOgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwCShy
ZXZpc2lvbiAyMjA3ODApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw4ICs0MywxMCBAQCB1c2lu
ZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CiAjZGVmaW5lIFBUUl9TSVpFIDgKICNkZWZpbmUg
UFJPQkVfUFJPQkVfRlVOQ1RJT05fT0ZGU0VUICgwICogUFRSX1NJWkUpCiAjZGVmaW5lIFBST0JF
X0FSR19PRkZTRVQgKDEgKiBQVFJfU0laRSkKKyNkZWZpbmUgUFJPQkVfSU5JVF9TVEFDS19GVU5D
VElPTl9PRkZTRVQgKDIgKiBQVFJfU0laRSkKKyNkZWZpbmUgUFJPQkVfSU5JVF9TVEFDS19BUkdf
T0ZGU0VUICgzICogUFRSX1NJWkUpCiAKLSNkZWZpbmUgUFJPQkVfRklSU1RfR1BSRUdfT0ZGU0VU
ICgyICogUFRSX1NJWkUpCisjZGVmaW5lIFBST0JFX0ZJUlNUX0dQUkVHX09GRlNFVCAoNCAqIFBU
Ul9TSVpFKQogCiAjZGVmaW5lIEdQUkVHX1NJWkUgOAogI2RlZmluZSBQUk9CRV9DUFVfWDBfT0ZG
U0VUIChQUk9CRV9GSVJTVF9HUFJFR19PRkZTRVQgKyAoMCAqIEdQUkVHX1NJWkUpKQpAQCAtMTMx
LDYgKzEzMyw4IEBAIHVzaW5nIG5hbWVzcGFjZSBBUk02NFJlZ2lzdGVyczsKICNkZWZpbmUgUFJP
QkVfT0ZGU0VUT0YoeCkgb2Zmc2V0b2Yoc3RydWN0IFByb2JlQ29udGV4dCwgeCkKIENPTVBJTEVf
QVNTRVJUKFBST0JFX09GRlNFVE9GKHByb2JlRnVuY3Rpb24pID09IFBST0JFX1BST0JFX0ZVTkNU
SU9OX09GRlNFVCwgUHJvYmVDb250ZXh0X3Byb2JlRnVuY3Rpb25fb2Zmc2V0X21hdGNoZXNfY3Rp
TWFzbVByb2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihhcmcp
ID09IFBST0JFX0FSR19PRkZTRVQsIFByb2JlQ29udGV4dF9hcmdfb2Zmc2V0X21hdGNoZXNfY3Rp
TWFzbVByb2JlVHJhbXBvbGluZSk7CitDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihpbml0
aWFsaXplU3RhY2tGdW5jdGlvbikgPT0gUFJPQkVfSU5JVF9TVEFDS19GVU5DVElPTl9PRkZTRVQs
IFByb2JlQ29udGV4dF9pbml0aWFsaXplU3RhY2tGdW5jdGlvbl9vZmZzZXRfbWF0Y2hlc19jdGlN
YXNtUHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGluaXRp
YWxpemVTdGFja0FyZykgPT0gUFJPQkVfSU5JVF9TVEFDS19BUkdfT0ZGU0VULCBQcm9iZUNvbnRl
eHRfaW5pdGlhbGl6ZVN0YWNrQXJnX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xp
bmUpOwogCiBDT01QSUxFX0FTU0VSVCghKFBST0JFX0NQVV9YMF9PRkZTRVQgJiAweDcpLCBQcm9i
ZUNvbnRleHRfY3B1X3IwX29mZnNldF9zaG91bGRfYmVfOF9ieXRlX2FsaWduZWQpOwogCkBAIC0y
MDksNiArMjEzLDcgQEAgQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQQog
Q09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQVJNNjRSZWdpc3RlcnM6OnEz
MV0pID09IFBST0JFX0NQVV9RMzFfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X3EzMV9vZmZzZXRf
bWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9m
KFByb2JlQ29udGV4dCkgPT0gUFJPQkVfU0laRSwgUHJvYmVDb250ZXh0X3NpemVfbWF0Y2hlc19j
dGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKCEoUFJPQkVfU0laRV9QTFVT
X0VYVFJBUyAmIDB4ZiksIFByb2JlQ29udGV4dF9zaXplX2lzXzE2X2J5dGVfYWxpZ25lZCk7CiAK
IC8vIENvbmRpdGlvbnMgZm9yIHVzaW5nIGxkcCBhbmQgc3RwLgogc3RhdGljX2Fzc2VydChQUk9C
RV9DUFVfUENfT0ZGU0VUID09IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBQVFJfU0laRSwgIlBST0JF
X0NQVV9TUF9PRkZTRVQgYW5kIFBST0JFX0NQVV9QQ19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIp
OwpAQCAtMjY5LDcgKzI3NCw3IEBAIHN0YXRpY19hc3NlcnQoT1VUX1gyOF9PRkZTRVQgPT0gb2Zm
c2V0b2YKIHN0YXRpY19hc3NlcnQoT1VUX0ZQX09GRlNFVCA9PSBvZmZzZXRvZihPdXRnb2luZ1By
b2JlUmVjb3JkLCBmcCksICJPVVRfRlBfT0ZGU0VUIGlzIGluY29ycmVjdCIpOwogc3RhdGljX2Fz
c2VydChPVVRfTFJfT0ZGU0VUID09IG9mZnNldG9mKE91dGdvaW5nUHJvYmVSZWNvcmQsIGxyKSwg
Ik9VVF9MUl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CiBzdGF0aWNfYXNzZXJ0KE9VVF9TSVpFID09
IHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3JkKSwgIk9VVF9TSVpFIGlzIGluY29ycmVjdCIpOwot
c3RhdGljX2Fzc2VydCghKHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3JkKSAmIDB4ZiksICJJbmNv
bWluZ1Byb2JlU3RhY2sgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQiKTsKK3N0YXRpY19hc3NlcnQo
IShzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkgJiAweGYpLCAiT3V0Z29pbmdQcm9iZVN0YWNr
IG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkIik7CiAKICNkZWZpbmUgU1RBVEVfUENfTk9UX0NIQU5H
RUQgMAogI2RlZmluZSBTVEFURV9QQ19DSEFOR0VEIDEKQEAgLTM1MCwxMSArMzU1LDUyIEBAIGFz
bSAoCiAKICAgICAibW92ICAgICAgIHgyNywgc3AiICJcbiIgLy8gU2F2ZSB0aGUgUHJvYmVDb250
ZXh0KiBpbiBhIGNhbGxlZSBzYXZlZCByZWdpc3Rlci4KIAorICAgIC8vIEluaXRpYWxpemUgUHJv
YmVDb250ZXg6OmluaXRpYWxpemVTdGFja0Z1bmN0aW9uIHRvIHplcm8uCisgICAgInN0ciAgICAg
ICB4enIsIFt4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9JTklUX1NUQUNLX0ZVTkNU
SU9OX09GRlNFVCkgIl0iICJcbiIKKwogICAgIC8vIE5vdGU6IHdlIGhhdmVuJ3QgY2hhbmdlZCB0
aGUgdmFsdWUgb2YgZnAuIEhlbmNlLCBpdCBpcyBzdGlsbCBwb2ludGluZyB0byB0aGUgZnJhbWUg
b2YKICAgICAvLyB0aGUgY2FsbGVyIG9mIHRoZSBwcm9iZSAod2hpY2ggaXMgd2hhdCB3ZSB3YW50
IGluIG9yZGVyIHRvIHBsYXkgbmljZSB3aXRoIGRlYnVnZ2VycyBlLmcuIGxsZGIpLgogICAgICJt
b3YgICAgICAgeDAsIHNwIiAiXG4iIC8vIFNldCB0aGUgUHJvYmVDb250ZXh0KiBhcmcuCiAgICAg
ImJsciAgICAgICB4MiIgIlxuIiAvLyBDYWxsIHRoZSBwcm9iZSBoYW5kbGVyIGZ1bmN0aW9uIChs
b2FkZWQgaW50byB4MiBhYm92ZSkuCiAKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFByb2JlQ29udGV4
dCBpcyBlbnRpcmVseSBiZWxvdyB0aGUgcmVzdWx0IHN0YWNrIHBvaW50ZXIgc28KKyAgICAvLyB0
aGF0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3RpbGwgcHJlc2VydmVkIHdoZW4gd2UgY2FsbCB0aGUg
aW5pdGlhbGl6ZVN0YWNrCisgICAgLy8gZnVuY3Rpb24uCisgICAgImxkciAgICAgICB4MSwgW3gy
NywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iIC8v
IFJlc3VsdCBzcC4KKyAgICAiYWRkICAgICAgIHgyLCB4MjcsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9TSVpFX1BMVVNfRVhUUkFTICsgT1VUX1NJWkUpICJcbiIgLy8gRW5kIG9mIFByb3Zl
Q29udGV4dCArIGJ1ZmZlci4KKyAgICAiY21wICAgICAgIHgxLCB4MiIgIlxuIgorICAgICJiZ2Ug
ICAgICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVQcm9iZUNvbnRl
eHRJc1NhZmUpICJcbiIKKworICAgIC8vIEFsbG9jYXRlIGEgc2FmZSBwbGFjZSBvbiB0aGUgc3Rh
Y2sgYmVsb3cgdGhlIHJlc3VsdCBzdGFjayBwb2ludGVyIHRvIHN0YXNoIHRoZSBQcm9iZUNvbnRl
eHQuCisgICAgInN1YiAgICAgICB4MSwgeDEsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9T
SVpFX1BMVVNfRVhUUkFTICsgT1VUX1NJWkUpICJcbiIKKyAgICAiYmljICAgICAgIHgxLCB4MSwg
IzB4ZiIgIlxuIiAvLyBUaGUgQVJNIEVBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHN0YWNrIG5lZWRz
IHRvIGJlIDE2IGJ5dGUgYWxpZ25lZC4KKyAgICAibW92ICAgICAgIHNwLCB4MSIgIlxuIiAvLyBT
ZXQgdGhlIG5ldyBzcCBiZWZvcmUgd2UgY29weSB0aGUgUHJvYmVDb250ZXh0LgorCisgICAgLy8g
Q29weSB0aGUgUHJvYmVDb250ZXh0IHRvIHRoZSBzYWZlIHBsYWNlLgorICAgIC8vIE5vdGU6IHdl
IGhhdmUgdG8gY29weSBmcm9tIGxvdyBhZGRyZXNzIHRvIGhpZ2hlciBhZGRyZXNzIGJlY2F1c2Ug
d2UncmUgbW92aW5nIHRoZQorICAgIC8vIFByb2JlQ29udGV4dCB0byBhIGxvd2VyIGFkZHJlc3Mu
CisgICAgIm1vdiAgICAgICB4NSwgeDI3IiAiXG4iCisgICAgIm1vdiAgICAgICB4NiwgeDEiICJc
biIKKyAgICAiYWRkICAgICAgIHg3LCB4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9T
SVpFX1BMVVNfRVhUUkFTKSAiXG4iCisKKyAgICBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVBy
b2JlVHJhbXBvbGluZUNvcHlMb29wKSAiOiIgIlxuIgorICAgICJsZHAgICAgICAgeDMsIHg0LCBb
eDVdLCAjMTYiICJcbiIKKyAgICAic3RwICAgICAgIHgzLCB4NCwgW3g2XSwgIzE2IiAiXG4iCisg
ICAgImNtcCAgICAgICB4NSwgeDciICJcbiIKKyAgICAiYmx0ICAgICAiIExPQ0FMX0xBQkVMX1NU
UklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lQ29weUxvb3ApICJcbiIKKworICAgICJtb3YgICAg
ICAgeDI3LCB4MSIgIlxuIgorCisgICAgLy8gQ2FsbCBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBp
ZiBwcmVzZW50LgorICAgIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5l
UHJvYmVDb250ZXh0SXNTYWZlKSAiOiIgIlxuIgorICAgICJsZHIgICAgICAgeDIsIFt4MjcsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCkgIl0i
ICJcbiIKKyAgICAiY2J6ICAgICAgIHgyLCAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJv
YmVUcmFtcG9saW5lUmVzdG9yZVJlZ2lzdGVycykgIlxuIgorCisgICAgIm1vdiAgICAgICB4MCwg
eDI3IiAiXG4iIC8vIFNldCB0aGUgUHJvYmVDb250ZXh0KiBhcmcuCisgICAgImJsciAgICAgICB4
MiIgIlxuIiAvLyBDYWxsIHRoZSBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiAobG9hZGVkIGludG8g
eDIgYWJvdmUpLgorCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xp
bmVSZXN0b3JlUmVnaXN0ZXJzKSAiOiIgIlxuIgorCiAgICAgIm1vdiAgICAgICBzcCwgeDI3IiAi
XG4iCiAKICAgICAvLyBUbyBlbmFibGUgcHJvYmVzIHRvIG1vZGlmeSByZWdpc3RlciBzdGF0ZSwg
d2UgY29weSBhbGwgcmVnaXN0ZXJzCkBAIC00MjgsNDggKzQ3NCw2IEBAIGFzbSAoCiAKICAgICAi
bGRyICAgICAgIHgyOSwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoU0FWRURfUFJPQkVfUkVU
VVJOX1BDX09GRlNFVCkgIl0iICJcbiIgLy8gUHJlbG9hZCB0aGUgcHJvYmUgcmV0dXJuIHNpdGUg
cGMuCiAKLSAgICAvLyBUaGUgcHJvYmUgaGFuZGxlciBtYXkgaGF2ZSBtb3ZlZCB0aGUgc3AuIEZv
ciB0aGUgcmV0dXJuIHByb2Nlc3MsIHdlIG1heSBuZWVkCi0gICAgLy8gc3BhY2UgZm9yIDIgT3V0
Z29pbmdQcm9iZVJlY29yZHMgYmVsb3cgdGhlIGZpbmFsIHNwIHZhbHVlLiBXZSBuZWVkIHRvIG1h
a2UKLSAgICAvLyBzdXJlIHRoYXQgdGhlIHNwYWNlIGZvciB0aGVzZSAyIE91dGdvaW5nUHJvYmVS
ZWNvcmRzIGRvIG5vdCBvdmVybGFwIHRoZQotICAgIC8vIHJlc3RvcmUgdmFsdWVzIG9mIHRoZSBy
ZWdpc3RlcnMuCi0KLSAgICAvLyBBbGwgcmVzdG9yZSB2YWx1ZXMgYXJlIGxvY2F0ZWQgYXQgb2Zm
c2V0IDw9IFBST0JFX0NQVV9GUFNSX09GRlNFVC4gSGVuY2UsCi0gICAgLy8gd2UgbmVlZCB0byBt
YWtlIHN1cmUgdGhhdCByZXN1bHRhbnQgc3AgPiBvZmZzZXQgb2YgZnBzciArIDIgKiBzaXplb2Yo
T3V0Z29pbmdQcm9iZVJlY29yZCkuCi0KLSAgICAiYWRkICAgICAgIHgyNywgc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRlBTUl9PRkZTRVQgKyAyICogT1VUX1NJWkUpICJcbiIK
LSAgICAibGRyICAgICAgIHgyOCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1NQX09GRlNFVCkgIl0iICJcbiIKLSAgICAiY21wICAgICAgIHgyOCwgeDI3IiAiXG4iCi0gICAg
ImJndCAgICAgIiBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUZpbGxP
dXRnb2luZ1Byb2JlUmVjb3JkcykgIlxuIgotCi0gICAgLy8gVGhlcmUgaXMgb3ZlcmxhcC4gV2Ug
bmVlZCB0byBjb3B5IHRoZSBQcm9iZUNvbnRleHQgdG8gYSBzYWZlIGFyZWEgZmlyc3QuCi0gICAg
Ly8gTGV0J3MgbG9jYXRlIHRoZSAic2FmZSBhcmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0
KSBiZWxvdyB3aGVyZSB0aGUgT3V0Z29pbmdQcm9iZVJlY29yZHMgYXJlLgotICAgIC8vIFRoaXMg
ZW5zdXJlcyB0aGF0OgotICAgIC8vIDEuIFRoZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0
aGUgT3V0Z29pbmdQcm9iZVJlY29yZHMuCi0gICAgLy8gMi4gVGhlIHNhZmUgYXJlYSBkb2VzIG5v
dCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQuCi0KLSAgICAvLyB4MjggYWxyZWFkeSBjb250YWlu
cyBbc3AsICNTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCldLgotICAgICJz
dWIgICAgICAgeDI4LCB4MjgsICMiIFNUUklOR0laRV9WQUxVRV9PRigyICogUFJPQkVfU0laRSkg
IlxuIgotCi0gICAgIm1vdiAgICAgICB4MjcsIHNwIiAiXG4iIC8vIFNhdmUgdGhlIG9yaWdpbmFs
IFByb2JlQ29udGV4dCouCi0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9p
bnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQotICAgIC8vIHNhZmUg
YXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQu
Ci0gICAgIm1vdiAgICAgICBzcCwgeDI4IiAiXG4iIC8vIHNwIG5vdyBwb2ludHMgdG8gdGhlIG5l
dyBQcm9iZUNvbnRleHQgaW4gdGhlIHNhZmUgYXJlYS4KLQotICAgIC8vIENvcHkgdGhlIHJlbGV2
YW50IHJlc3RvcmUgZGF0YSB0byB0aGUgbmV3IFByb2JlQ29udGV4dCouCi0gICAgInN0ciAgICAg
ICB4MzAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9YMF9PRkZTRVQpICJd
IiAiXG4iIC8vIFN0YXNoIHRoZSBwYyBjaGFuZ2VkIHN0YXRlIGF3YXkgc28gdGhhdCB3ZSBjYW4g
dXNlIGxyLgotCi0gICAgImxkcCAgICAgICB4MjgsIHgzMCwgW3gyNywgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9YMjdfT0ZGU0VUKSAiXSIgIlxuIiAvLyBjb3B5IHgyNyBhbmQgeDI4
LgotICAgICJzdHAgICAgICAgeDI4LCB4MzAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9YMjdfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHAgICAgICAgeDI4LCB4MzAsIFt4
MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRlBfT0ZGU0VUKSAiXSIgIlxuIiAv
LyBjb3B5IGZwIGFuZCBsci4KLSAgICAic3RwICAgICAgIHgyOCwgeDMwLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRlBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHAgICAg
ICAgeDI4LCB4MzAsIFt4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZG
U0VUKSAiXSIgIlxuIiAvLyBjb3B5IHNwIGFuZCBwYy4KLSAgICAic3RwICAgICAgIHgyOCwgeDMw
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJsZHAgICAgICAgeDI4LCB4MzAsIFt4MjcsICMiIFNUUklOR0laRV9WQUxVRV9PRihQ
Uk9CRV9DUFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iIC8vIGNvcHkgbnpjdiBhbmQgZnBzci4KLSAg
ICAic3RwICAgICAgIHgyOCwgeDMwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfTlpDVl9PRkZTRVQpICJdIiAiXG4iCi0KLSAgICAibGRyICAgICAgIHgzMCwgW3NwLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gwX09GRlNFVCkgIl0iICJcbiIgLy8gUmV0cmll
dmUgdGhlIHN0YXNoZWQgdGhlIHBjIGNoYW5nZWQgc3RhdGUuCi0KICAgICBMT0NBTF9MQUJFTF9T
VFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUZpbGxPdXRnb2luZ1Byb2JlUmVjb3JkcykgIjoi
ICJcbiIKIAogICAgICJjYm56ICAgICAgIHgzMCwgIiBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFz
bVByb2JlVHJhbXBvbGluZUVuZCkgIlxuIiAvLyBTa2lwIGxyIHJlc3RvcmF0aW9uIHNldHVwIGlm
IHN0YXRlIChpbiBscikgPT0gU1RBVEVfUENfQ0hBTkdFRC4KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwCShyZXZp
c2lvbiAyMjA3ODApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksMTUgKzk5LDE3IEBAIHZvaWQgTWFj
cm9Bc3NlbWJsZXJBUk06OmxvYWQzMldpdGhVbmFsaWcKIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNt
UHJvYmVUcmFtcG9saW5lKCk7CiAKICNpZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCi0gICAgCisK
IC8vIFRoZSBmb2xsb3dpbmcgYXJlIG9mZnNldHMgZm9yIFByb2JlQ29udGV4dCBmaWVsZHMgYWNj
ZXNzZWQKIC8vIGJ5IHRoZSBjdGlNYXNtUHJvYmVUcmFtcG9saW5lIHN0dWIuCiAKICNkZWZpbmUg
UFRSX1NJWkUgNAogI2RlZmluZSBQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQgKDAgKiBQVFJf
U0laRSkKICNkZWZpbmUgUFJPQkVfQVJHX09GRlNFVCAoMSAqIFBUUl9TSVpFKQorI2RlZmluZSBQ
Uk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCAoMiAqIFBUUl9TSVpFKQorI2RlZmluZSBQ
Uk9CRV9JTklUX1NUQUNLX0FSR19PRkZTRVQgKDMgKiBQVFJfU0laRSkKIAotI2RlZmluZSBQUk9C
RV9GSVJTVF9HUFJFR19PRkZTRVQgKDIgKiBQVFJfU0laRSkKKyNkZWZpbmUgUFJPQkVfRklSU1Rf
R1BSRUdfT0ZGU0VUICg0ICogUFRSX1NJWkUpCiAKICNkZWZpbmUgR1BSRUdfU0laRSA0CiAjZGVm
aW5lIFBST0JFX0NQVV9SMF9PRkZTRVQgKFBST0JFX0ZJUlNUX0dQUkVHX09GRlNFVCArICgwICog
R1BSRUdfU0laRSkpCkBAIC0xNjcsMTMgKzE2OSwxNyBAQCBleHRlcm4gIkMiIHZvaWQgY3RpTWFz
bVByb2JlVHJhbXBvbGluZSgpCiAjZGVmaW5lIFBST0JFX0NQVV9EMzFfT0ZGU0VUIChQUk9CRV9G
SVJTVF9GUFJFR19PRkZTRVQgKyAoMzEgKiBGUFJFR19TSVpFKSkKIAogI2RlZmluZSBQUk9CRV9T
SVpFIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzIgKiBGUFJFR19TSVpFKSkKLSNkZWZp
bmUgUFJPQkVfQUxJR05FRF9TSVpFIChQUk9CRV9TSVpFKQorI2RlZmluZSBQUk9CRV9BTElHTkVE
X1NJWkUgKFBST0JFX1NJWkUgKyBGUFJFR19TSVpFKQorCisjZGVmaW5lIE9VVF9TSVpFIEdQUkVH
X1NJWkUKIAogLy8gVGhlc2UgQVNTRVJUcyByZW1pbmQgeW91IHRoYXQgaWYgeW91IGNoYW5nZSB0
aGUgbGF5b3V0IG9mIFByb2JlQ29udGV4dCwKIC8vIHlvdSBuZWVkIHRvIGNoYW5nZSBjdGlNYXNt
UHJvYmVUcmFtcG9saW5lIG9mZnNldHMgYWJvdmUgdG8gbWF0Y2guCiAjZGVmaW5lIFBST0JFX09G
RlNFVE9GKHgpIG9mZnNldG9mKHN0cnVjdCBQcm9iZUNvbnRleHQsIHgpCiBDT01QSUxFX0FTU0VS
VChQUk9CRV9PRkZTRVRPRihwcm9iZUZ1bmN0aW9uKSA9PSBQUk9CRV9QUk9CRV9GVU5DVElPTl9P
RkZTRVQsIFByb2JlQ29udGV4dF9wcm9iZUZ1bmN0aW9uX29mZnNldF9tYXRjaGVzX2N0aU1hc21Q
cm9iZVRyYW1wb2xpbmUpOwogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoYXJnKSA9PSBQ
Uk9CRV9BUkdfT0ZGU0VULCBQcm9iZUNvbnRleHRfYXJnX29mZnNldF9tYXRjaGVzX2N0aU1hc21Q
cm9iZVRyYW1wb2xpbmUpOworQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoaW5pdGlhbGl6
ZVN0YWNrRnVuY3Rpb24pID09IFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VULCBQcm9i
ZUNvbnRleHRfaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb25fb2Zmc2V0X21hdGNoZXNfY3RpTWFzbVBy
b2JlVHJhbXBvbGluZSk7CitDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihpbml0aWFsaXpl
U3RhY2tBcmcpID09IFBST0JFX0lOSVRfU1RBQ0tfQVJHX09GRlNFVCwgUHJvYmVDb250ZXh0X2lu
aXRpYWxpemVTdGFja0FyZ19vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsK
IAogQ09NUElMRV9BU1NFUlQoIShQUk9CRV9DUFVfUjBfT0ZGU0VUICYgMHgzKSwgUHJvYmVDb250
ZXh0X2NwdV9yMF9vZmZzZXRfc2hvdWxkX2JlXzRfYnl0ZV9hbGlnbmVkKTsKIApAQCAtMTk3LDcg
KzIwMyw3IEBAIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5ncHJzW0EKIENPTVBJ
TEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5zcHJzW0FSTVJlZ2lzdGVyczo6YXBzcl0pID09
IFBST0JFX0NQVV9BUFNSX09GRlNFVCwgUHJvYmVDb250ZXh0X2NwdV9hcHNyX29mZnNldF9tYXRj
aGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VU
T0YoY3B1LnNwcnNbQVJNUmVnaXN0ZXJzOjpmcHNjcl0pID09IFBST0JFX0NQVV9GUFNDUl9PRkZT
RVQsIFByb2JlQ29udGV4dF9jcHVfZnBzY3Jfb2Zmc2V0X21hdGNoZXNfY3RpTWFzbVByb2JlVHJh
bXBvbGluZSk7CiAKLUNPTVBJTEVfQVNTRVJUKCEoUFJPQkVfQ1BVX0QwX09GRlNFVCAmIDB4Ziks
IFByb2JlQ29udGV4dF9jcHVfZDBfb2Zmc2V0X3Nob3VsZF9iZV8xNl9ieXRlX2FsaWduZWQpOwor
Q09NUElMRV9BU1NFUlQoIShQUk9CRV9DUFVfRDBfT0ZGU0VUICYgMHg3KSwgUHJvYmVDb250ZXh0
X2NwdV9kMF9vZmZzZXRfc2hvdWxkX2JlXzhfYnl0ZV9hbGlnbmVkKTsKIAogQ09NUElMRV9BU1NF
UlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQVJNUmVnaXN0ZXJzOjpkMF0pID09IFBST0JFX0NQ
VV9EMF9PRkZTRVQsIFByb2JlQ29udGV4dF9jcHVfZDBfb2Zmc2V0X21hdGNoZXNfY3RpTWFzbVBy
b2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tB
Uk1SZWdpc3RlcnM6OmQxXSkgPT0gUFJPQkVfQ1BVX0QxX09GRlNFVCwgUHJvYmVDb250ZXh0X2Nw
dV9kMV9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKQEAgLTIzMyw3ICsy
MzksNyBAQCBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tBCiBDT01QSUxF
X0FTU0VSVChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tBUk1SZWdpc3RlcnM6OmQzMV0pID09IFBS
T0JFX0NQVV9EMzFfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X2QzMV9vZmZzZXRfbWF0Y2hlc19j
dGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFByb2JlQ29u
dGV4dCkgPT0gUFJPQkVfU0laRSwgUHJvYmVDb250ZXh0X3NpemVfbWF0Y2hlc19jdGlNYXNtUHJv
YmVUcmFtcG9saW5lKTsKLUNPTVBJTEVfQVNTRVJUKCEoUFJPQkVfQUxJR05FRF9TSVpFICYgMHhm
KSwgUHJvYmVDb250ZXh0X2FsaWduZWRfc2l6ZV9vZmZzZXRfc2hvdWxkX2JlXzE2X2J5dGVfYWxp
Z25lZCk7CitDT01QSUxFX0FTU0VSVCghKFBST0JFX0FMSUdORURfU0laRSAmIDB4ZiksIFByb2Jl
Q29udGV4dF9hbGlnbmVkX3NpemVfc2hvdWxkX2JlXzE2X2J5dGVfYWxpZ25lZCk7CiAjdW5kZWYg
UFJPQkVfT0ZGU0VUT0YKIAogYXNtICgKQEAgLTI4NCwxNSArMjkwLDU5IEBAIGFzbSAoCiAgICAg
ImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09G
RlNFVCkgIl0iICJcbiIKIAogICAgICJhZGQgICAgICAgaXAsIHNwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0QwX09GRlNFVCkgIlxuIgotICAgICJ2c3RtaWEuNjQgaXAsIHsgZDAt
ZDE1IH0iICJcbiIKLSAgICAidnN0bWlhLjY0IGlwLCB7IGQxNi1kMzEgfSIgIlxuIgorICAgICJ2
c3RtaWEuNjQgaXAhLCB7IGQwLWQxNSB9IiAiXG4iCisgICAgInZzdG1pYS42NCBpcCEsIHsgZDE2
LWQzMSB9IiAiXG4iCiAKICAgICAibW92ICAgICAgIGZwLCBzcCIgIlxuIiAvLyBTYXZlIHRoZSBQ
cm9iZUNvbnRleHQqLgogCisgICAgLy8gSW5pdGlhbGl6ZSBQcm9iZUNvbnRleDo6aW5pdGlhbGl6
ZVN0YWNrRnVuY3Rpb24gdG8gemVyby4KKyAgICAibW92ICAgICAgIHIwLCAjMCIgIlxuIgorICAg
ICJzdHIgICAgICAgcjAsIFtmcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RB
Q0tfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgorCiAgICAgImxkciAgICAgICBpcCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfUFJPQkVfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxu
IgogICAgICJtb3YgICAgICAgcjAsIHNwIiAiXG4iIC8vIHRoZSBQcm9iZUNvbnRleHQqIGFyZy4K
ICAgICAiYmx4ICAgICAgIGlwIiAiXG4iCiAKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFByb2JlQ29u
dGV4dCBpcyBlbnRpcmVseSBiZWxvdyB0aGUgcmVzdWx0IHN0YWNrIHBvaW50ZXIgc28KKyAgICAv
LyB0aGF0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3RpbGwgcHJlc2VydmVkIHdoZW4gd2UgY2FsbCB0
aGUgaW5pdGlhbGl6ZVN0YWNrCisgICAgLy8gZnVuY3Rpb24uCisgICAgImxkciAgICAgICByMSwg
W2ZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIg
Ly8gUmVzdWx0IHNwLgorICAgICJhZGQgICAgICAgcjIsIGZwLCAjIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfU0laRSArIE9VVF9TSVpFKSAiXG4iIC8vIEVuZCBvZiBQcm92ZUNvbnRleHQgKyBi
dWZmZXIuCisgICAgImNtcCAgICAgICByMSwgcjIiICJcbiIKKyAgICAiYmdlICAgICAiIExPQ0FM
X0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJvYmVDb250ZXh0SXNTYWZlKSAi
XG4iCisKKyAgICAvLyBBbGxvY2F0ZSBhIHNhZmUgcGxhY2Ugb24gdGhlIHN0YWNrIGJlbG93IHRo
ZSByZXN1bHQgc3RhY2sgcG9pbnRlciB0byBzdGFzaCB0aGUgUHJvYmVDb250ZXh0LgorICAgICJz
dWIgICAgICAgcjEsIHIxLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfU0laRSArIE9VVF9T
SVpFKSAiXG4iCisgICAgImJpYyAgICAgICByMSwgcjEsICMweGYiICJcbiIgLy8gVGhlIEFSTSBF
QUJJIHNwZWNpZmllcyB0aGF0IHRoZSBzdGFjayBuZWVkcyB0byBiZSAxNiBieXRlIGFsaWduZWQu
CisgICAgIm1vdiAgICAgICBzcCwgcjEiICJcbiIgLy8gU2V0IHRoZSBuZXcgc3AgYmVmb3JlIHdl
IGNvcHkgdGhlIFByb2JlQ29udGV4dC4KKworICAgIC8vIENvcHkgdGhlIFByb2JlQ29udGV4dCB0
byB0aGUgc2FmZSBwbGFjZS4KKyAgICAvLyBOb3RlOiB3ZSBoYXZlIHRvIGNvcHkgZnJvbSBsb3cg
YWRkcmVzcyB0byBoaWdoZXIgYWRkcmVzcyBiZWNhdXNlIHdlJ3JlIG1vdmluZyB0aGUKKyAgICAv
LyBQcm9iZUNvbnRleHQgdG8gYSBsb3dlciBhZGRyZXNzLgorICAgICJtb3YgICAgICAgcjUsIGZw
IiAiXG4iCisgICAgIm1vdiAgICAgICByNiwgcjEiICJcbiIKKyAgICAiYWRkICAgICAgIHI3LCBm
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJWkUpICJcbiIKKworICAgIExPQ0FMX0xB
QkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lQ29weUxvb3ApICI6IiAiXG4iCisgICAg
ImxkciAgICAgICByMywgW3I1XSwgIzQiICJcbiIKKyAgICAibGRyICAgICAgIHI0LCBbcjVdLCAj
NCIgIlxuIgorICAgICJzdHIgICAgICAgcjMsIFtyNl0sICM0IiAiXG4iCisgICAgInN0ciAgICAg
ICByNCwgW3I2XSwgIzQiICJcbiIKKyAgICAiY21wICAgICAgIHI1LCByNyIgIlxuIgorICAgICJi
bHQgICAgICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVDb3B5TG9v
cCkgIlxuIgorCisgICAgIm1vdiAgICAgICBmcCwgcjEiICJcbiIKKworICAgIC8vIENhbGwgaW5p
dGlhbGl6ZVN0YWNrRnVuY3Rpb24gaWYgcHJlc2VudC4KKyAgICBMT0NBTF9MQUJFTF9TVFJJTkco
Y3RpTWFzbVByb2JlVHJhbXBvbGluZVByb2JlQ29udGV4dElzU2FmZSkgIjoiICJcbiIKKyAgICAi
bGRyICAgICAgIHIyLCBbZnAsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9JTklUX1NUQUNL
X0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIKKyAgICAiY2J6ICAgICAgIHIyLCAiIExPQ0FMX0xB
QkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUmVzdG9yZVJlZ2lzdGVycykgIlxuIgor
CisgICAgIm1vdiAgICAgICByMCwgZnAiICJcbiIgLy8gU2V0IHRoZSBQcm9iZUNvbnRleHQqIGFy
Zy4KKyAgICAiYmx4ICAgICAgIHIyIiAiXG4iIC8vIENhbGwgdGhlIGluaXRpYWxpemVTdGFja0Z1
bmN0aW9uIChsb2FkZWQgaW50byByMiBhYm92ZSkuCisKKyAgICBMT0NBTF9MQUJFTF9TVFJJTkco
Y3RpTWFzbVByb2JlVHJhbXBvbGluZVJlc3RvcmVSZWdpc3RlcnMpICI6IiAiXG4iCisKICAgICAi
bW92ICAgICAgIHNwLCBmcCIgIlxuIgogCiAgICAgLy8gVG8gZW5hYmxlIHByb2JlcyB0byBtb2Rp
ZnkgcmVnaXN0ZXIgc3RhdGUsIHdlIGNvcHkgYWxsIHJlZ2lzdGVycwpAQCAtMzA3LDc4ICszNTcs
OSBAQCBhc20gKAogICAgICJ2bXNyICAgICAgRlBTQ1IsIGlwIiAiXG4iCiAKICAgICAvLyBUaGVy
ZSBhcmUgNSBtb3JlIHJlZ2lzdGVycyBsZWZ0IHRvIHJlc3RvcmU6IGlwLCBzcCwgbHIsIHBjLCBh
bmQgYXBzci4KLSAgICAvLyBUaGVyZSBhcmUgMiBpc3N1ZXMgdGhhdCBjb21wbGljYXRlIHRoZSBy
ZXN0b3JhdGlvbiBvZiB0aGVzZSBsYXN0IGZldwotICAgIC8vIHJlZ2lzdGVyczoKLSAgICAvLwot
ICAgIC8vIDEuIE5vcm1hbCBBUk0gY2FsbGluZyBjb252ZW50aW9uIHJlbGllcyBvbiBtb3Zpbmcg
bHIgdG8gcGMgdG8gcmV0dXJuIHRvCi0gICAgLy8gICAgdGhlIGNhbGxlci4gSW4gb3VyIGNhc2Us
IHRoZSBhZGRyZXNzIHRvIHJldHVybiB0byBpcyBzcGVjaWZpZWQgYnkKLSAgICAvLyAgICBQcm9i
ZUNvbnRleHQuY3B1LnBjLiBBbmQgYXQgdGhhdCBtb21lbnQsIHdlIHdvbid0IGhhdmUgYW55IGF2
YWlsYWJsZQotICAgIC8vICAgIHNjcmF0Y2ggcmVnaXN0ZXJzIHRvIGhvbGQgdGhlIHJldHVybiBh
ZGRyZXNzIChsciBuZWVkcyB0byBob2xkCi0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5sciwg
bm90IHRoZSByZXR1cm4gYWRkcmVzcykuCi0gICAgLy8KLSAgICAvLyAgICBUaGUgc29sdXRpb24g
aXMgdG8gc3RvcmUgdGhlIHJldHVybiBhZGRyZXNzIG9uIHRoZSBzdGFjayBhbmQgbG9hZCB0aGUK
LSAgICAvLyAgICAgcGMgZnJvbSB0aGVyZS4KLSAgICAvLwotICAgIC8vIDIuIElzc3VlIDEgbWVh
bnMgd2Ugd2lsbCBuZWVkIHRvIHdyaXRlIHRvIHRoZSBzdGFjayBsb2NhdGlvbiBhdAotICAgIC8v
ICAgIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tzcF0gLSBQVFJfU0laRS4gQnV0IGlmIHRoZSB1c2Vy
IHByb2JlIGZ1bmN0aW9uIGhhZAotICAgIC8vICAgIG1vZGlmaWVkIHRoZSB2YWx1ZSBvZiBQcm9i
ZUNvbnRleHQuY3B1LmdwcnNbc3BdIHRvIHBvaW50IGluIHRoZSByYW5nZSBiZXR3ZWVuCi0gICAg
Ly8gICAgJlByb2JlQ29udGV4dC5jcHUuZ3Byc1tpcF0gdGhydSAmUHJvYmVDb250ZXh0LmNwdS5z
cHJzW2FzcHJdLCB0aGVuIHRoZSBhY3Rpb24KLSAgICAvLyAgICBmb3IgSXNzdWUgMSBtYXkgdHJh
c2ggdGhlIHZhbHVlcyB0byBiZSByZXN0b3JlZCBiZWZvcmUgd2UgY2FuIHJlc3RvcmUgdGhlbS4K
LSAgICAvLwotICAgIC8vICAgIFRoZSBzb2x1dGlvbiBpcyB0byBjaGVjayBpZiBQcm9iZUNvbnRl
eHQuY3B1LmdwcnNbc3BdIGNvbnRhaW5zIGEgdmFsdWUgaW4KLSAgICAvLyAgICB0aGUgdW5kZXNp
cmFibGUgcmFuZ2UuIElmIHNvLCB3ZSBjb3B5IHRoZSByZW1haW5pbmcgUHJvYmVDb250ZXh0Ci0g
ICAgLy8gICAgcmVnaXN0ZXIgZGF0YSB0byBhIHNhZmUgYXJlYSBmaXJzdCwgYW5kIHJlc3RvcmUg
dGhlIHJlbWFpbmluZyByZWdpc3RlcgotICAgIC8vICAgIGZyb20gdGhpcyBuZXcgc2FmZSBhcmVh
LgotCi0gICAgLy8gVGhlIHJlc3RvcmUgYXJlYSBmb3IgdGhlIHBjIHdpbGwgYmUgbG9jYXRlZCBh
dCAxIHdvcmQgYmVsb3cgdGhlIHJlc3VsdGFudCBzcC4KLSAgICAvLyBBbGwgcmVzdG9yZSB2YWx1
ZXMgYXJlIGxvY2F0ZWQgYXQgb2Zmc2V0IDw9IFBST0JFX0NQVV9BUFNSX09GRlNFVC4gSGVuY2Us
Ci0gICAgLy8gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCByZXN1bHRhbnQgc3AgPiBvZmZzZXQg
b2YgYXBzciArIDEuCi0gICAgImFkZCAgICAgICBpcCwgc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfQVBTUl9PRkZTRVQgKyBQVFJfU0laRSkgIlxuIgotICAgICJsZHIgICAgICAg
bHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAi
XG4iCi0gICAgImNtcCAgICAgICBsciwgaXAiICJcbiIKLSAgICAiYmd0ICAgICAiIFNZTUJPTF9T
VFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkgIlxuIgotCi0gICAgLy8gR2V0dGluZyBo
ZXJlIG1lYW5zIHRoYXQgdGhlIHJlc3RvcmUgYXJlYSB3aWxsIG92ZXJsYXAgdGhlIFByb2JlQ29u
dGV4dCBkYXRhCi0gICAgLy8gdGhhdCB3ZSB3aWxsIG5lZWQgdG8gZ2V0IHRoZSByZXN0b3JhdGlv
biB2YWx1ZXMgZnJvbS4gU28sIGxldCdzIG1vdmUgdGhhdAotICAgIC8vIGRhdGEgdG8gYSBzYWZl
IHBsYWNlIGJlZm9yZSB3ZSBzdGFydCB3cml0aW5nIGludG8gdGhlIHJlc3RvcmUgYXJlYS4KLSAg
ICAvLyBMZXQncyBsb2NhdGUgdGhlICJzYWZlIGFyZWEiIGF0IDJ4IHNpemVvZihQcm9iZUNvbnRl
eHQpIGJlbG93IHdoZXJlIHRoZQotICAgIC8vIHJlc3RvcmUgYXJlYS4gVGhpcyBlbnN1cmVzIHRo
YXQ6Ci0gICAgLy8gMS4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSByZXN0b3Jl
IGFyZWEuCi0gICAgLy8gMi4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSBQcm9i
ZUNvbnRleHQuCi0gICAgLy8gICAgVGhpcyBtYWtlcyBpdCBzbyB0aGF0IHdlIGNhbiB1c2UgbWVt
Y3B5IChkb2VzIG5vdCByZXF1aXJlIG1lbW1vdmUpIHNlbWFudGljcwotICAgIC8vICAgIHRvIGNv
cHkgdGhlIHJlc3RvcmUgdmFsdWVzIHRvIHRoZSBzYWZlIGFyZWEuCi0gICAgCi0gICAgLy8gbHIg
YWxyZWFkeSBjb250YWlucyBbc3AsICNTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09G
RlNFVCldLgotICAgICJzdWIgICAgICAgbHIsIGxyLCAjKDIgKiAiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9BTElHTkVEX1NJWkUpICIpIiAiXG4iCi0KLSAgICAibW92ICAgICAgIGlwLCBzcCIg
IlxuIiAvLyBTYXZlIHRoZSBvcmlnaW5hbCBQcm9iZUNvbnRleHQqLgotCi0gICAgLy8gTWFrZSBz
dXJlIHRoZSBzdGFjayBwb2ludGVyIHBvaW50cyB0byB0aGUgc2FmZSBhcmVhLiBUaGlzIGVuc3Vy
ZXMgdGhhdCB0aGUKLSAgICAvLyBzYWZlIGFyZWEgaXMgcHJvdGVjdGVkIGZyb20gaW50ZXJydXB0
IGhhbmRsZXJzIG92ZXJ3cml0aW5nIGl0LgotICAgICJtb3YgICAgICAgc3AsIGxyIiAiXG4iIC8v
IHNwIG5vdyBwb2ludHMgdG8gdGhlIG5ldyBQcm9iZUNvbnRleHQgaW4gdGhlIHNhZmUgYXJlYS4K
LQotICAgICJtb3YgICAgICAgbHIsIGlwIiAiXG4iIC8vIFVzZSBsciBhcyB0aGUgb2xkIFByb2Jl
Q29udGV4dCouCi0KLSAgICAvLyBDb3B5IHRoZSByZXN0b3JlIGRhdGEgdG8gdGhlIG5ldyBQcm9i
ZUNvbnRleHQqLgotICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9JUF9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNFVCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBpcCwgW2xy
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTFJf
T0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
QVBTUl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgLy8gY3Rp
TWFzbVByb2JlVHJhbXBvbGluZUVuZCBleHBlY3RzIGxyIHRvIGNvbnRhaW4gdGhlIHNwIHZhbHVl
IHRvIGJlIHJlc3RvcmVkLgotICAgIC8vIFNpbmNlIHdlIHVzZWQgaXQgYXMgc2NyYXRjaCBhYm92
ZSwgbGV0J3MgcmVzdG9yZSBpdC4KLSAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgU1lNQk9MX1NU
UklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogCiAgICAgLy8gU2V0IHVw
IHRoZSByZXN0b3JlIGFyZWEgZm9yIHNwIGFuZCBwYy4KLSAgICAvLyBsciBhbHJlYWR5IGNvbnRh
aW5zIFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKV0uCisgICAg
ImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09G
RlNFVCkgIl0iICJcbiIKIAogICAgIC8vIFB1c2ggdGhlIHBjIG9uIHRvIHRoZSByZXN0b3JlIGFy
ZWEuCiAgICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX1BDX09GRlNFVCkgIl0iICJcbiIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcAkocmV2aXNpb24gMjIw
NzgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TXY3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsMTAgQEAgZXh0ZXJuICJDIiB2b2lk
IGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKQogI2RlZmluZSBQVFJfU0laRSA0CiAjZGVmaW5lIFBS
T0JFX1BST0JFX0ZVTkNUSU9OX09GRlNFVCAoMCAqIFBUUl9TSVpFKQogI2RlZmluZSBQUk9CRV9B
UkdfT0ZGU0VUICgxICogUFRSX1NJWkUpCisjZGVmaW5lIFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJ
T05fT0ZGU0VUICgyICogUFRSX1NJWkUpCisjZGVmaW5lIFBST0JFX0lOSVRfU1RBQ0tfQVJHX09G
RlNFVCAoMyAqIFBUUl9TSVpFKQogCi0jZGVmaW5lIFBST0JFX0ZJUlNUX0dQUkVHX09GRlNFVCAo
MiAqIFBUUl9TSVpFKQorI2RlZmluZSBQUk9CRV9GSVJTVF9HUFJFR19PRkZTRVQgKDQgKiBQVFJf
U0laRSkKIAogI2RlZmluZSBHUFJFR19TSVpFIDQKICNkZWZpbmUgUFJPQkVfQ1BVX1IwX09GRlNF
VCAoUFJPQkVfRklSU1RfR1BSRUdfT0ZGU0VUICsgKDAgKiBHUFJFR19TSVpFKSkKQEAgLTEwMSwx
NCArMTAzLDE5IEBAIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCkKICNk
ZWZpbmUgUFJPQkVfQ1BVX0QyOV9PRkZTRVQgKFBST0JFX0ZJUlNUX0ZQUkVHX09GRlNFVCArICgy
OSAqIEZQUkVHX1NJWkUpKQogI2RlZmluZSBQUk9CRV9DUFVfRDMwX09GRlNFVCAoUFJPQkVfRklS
U1RfRlBSRUdfT0ZGU0VUICsgKDMwICogRlBSRUdfU0laRSkpCiAjZGVmaW5lIFBST0JFX0NQVV9E
MzFfT0ZGU0VUIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzEgKiBGUFJFR19TSVpFKSkK
KwogI2RlZmluZSBQUk9CRV9TSVpFIChQUk9CRV9GSVJTVF9GUFJFR19PRkZTRVQgKyAoMzIgKiBG
UFJFR19TSVpFKSkKLSNkZWZpbmUgUFJPQkVfQUxJR05FRF9TSVpFIChQUk9CRV9TSVpFKQorI2Rl
ZmluZSBQUk9CRV9BTElHTkVEX1NJWkUgKFBST0JFX1NJWkUgKyBGUFJFR19TSVpFKQorCisjZGVm
aW5lIE9VVF9TSVpFIEdQUkVHX1NJWkUKIAogLy8gVGhlc2UgQVNTRVJUcyByZW1pbmQgeW91IHRo
YXQgaWYgeW91IGNoYW5nZSB0aGUgbGF5b3V0IG9mIFByb2JlQ29udGV4dCwKIC8vIHlvdSBuZWVk
IHRvIGNoYW5nZSBjdGlNYXNtUHJvYmVUcmFtcG9saW5lIG9mZnNldHMgYWJvdmUgdG8gbWF0Y2gu
CiAjZGVmaW5lIFBST0JFX09GRlNFVE9GKHgpIG9mZnNldG9mKHN0cnVjdCBQcm9iZUNvbnRleHQs
IHgpCiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihwcm9iZUZ1bmN0aW9uKSA9PSBQUk9C
RV9QUk9CRV9GVU5DVElPTl9PRkZTRVQsIFByb2JlQ29udGV4dF9wcm9iZUZ1bmN0aW9uX29mZnNl
dF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwogQ09NUElMRV9BU1NFUlQoUFJPQkVf
T0ZGU0VUT0YoYXJnKSA9PSBQUk9CRV9BUkdfT0ZGU0VULCBQcm9iZUNvbnRleHRfYXJnX29mZnNl
dF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOworQ09NUElMRV9BU1NFUlQoUFJPQkVf
T0ZGU0VUT0YoaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24pID09IFBST0JFX0lOSVRfU1RBQ0tfRlVO
Q1RJT05fT0ZGU0VULCBQcm9iZUNvbnRleHRfaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb25fb2Zmc2V0
X21hdGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CitDT01QSUxFX0FTU0VSVChQUk9CRV9P
RkZTRVRPRihpbml0aWFsaXplU3RhY2tBcmcpID09IFBST0JFX0lOSVRfU1RBQ0tfQVJHX09GRlNF
VCwgUHJvYmVDb250ZXh0X2luaXRpYWxpemVTdGFja0FyZ19vZmZzZXRfbWF0Y2hlc19jdGlNYXNt
UHJvYmVUcmFtcG9saW5lKTsKIAogQ09NUElMRV9BU1NFUlQoIShQUk9CRV9DUFVfUjBfT0ZGU0VU
ICYgMHgzKSwgUHJvYmVDb250ZXh0X2NwdV9yMF9vZmZzZXRfc2hvdWxkX2JlXzRfYnl0ZV9hbGln
bmVkKTsKIApAQCAtMTMyLDcgKzEzOSw3IEBAIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9G
KGNwdS5ncHJzW0EKIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5zcHJzW0FSTVJl
Z2lzdGVyczo6YXBzcl0pID09IFBST0JFX0NQVV9BUFNSX09GRlNFVCwgUHJvYmVDb250ZXh0X2Nw
dV9hcHNyX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwogQ09NUElMRV9B
U1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LnNwcnNbQVJNUmVnaXN0ZXJzOjpmcHNjcl0pID09IFBS
T0JFX0NQVV9GUFNDUl9PRkZTRVQsIFByb2JlQ29udGV4dF9jcHVfZnBzY3Jfb2Zmc2V0X21hdGNo
ZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CiAKLUNPTVBJTEVfQVNTRVJUKCEoUFJPQkVfQ1BV
X0QwX09GRlNFVCAmIDB4ZiksIFByb2JlQ29udGV4dF9jcHVfZDBfb2Zmc2V0X3Nob3VsZF9iZV8x
Nl9ieXRlX2FsaWduZWQpOworQ09NUElMRV9BU1NFUlQoIShQUk9CRV9DUFVfRDBfT0ZGU0VUICYg
MHg3KSwgUHJvYmVDb250ZXh0X2NwdV9kMF9vZmZzZXRfc2hvdWxkX2JlXzhfYnl0ZV9hbGlnbmVk
KTsKIAogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbQVJNUmVnaXN0ZXJz
OjpkMF0pID09IFBST0JFX0NQVV9EMF9PRkZTRVQsIFByb2JlQ29udGV4dF9jcHVfZDBfb2Zmc2V0
X21hdGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VSVChQUk9CRV9P
RkZTRVRPRihjcHUuZnByc1tBUk1SZWdpc3RlcnM6OmQxXSkgPT0gUFJPQkVfQ1BVX0QxX09GRlNF
VCwgUHJvYmVDb250ZXh0X2NwdV9kMV9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9s
aW5lKTsKQEAgLTE2OSw3ICsxNzYsNyBAQCBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihj
cHUuZnByc1tBCiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tBUk1SZWdp
c3RlcnM6OmQzMV0pID09IFBST0JFX0NQVV9EMzFfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X2Qz
MV9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIAogQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKFByb2JlQ29udGV4dCkgPT0gUFJPQkVfU0laRSwgUHJvYmVDb250ZXh0X3NpemVf
bWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKLUNPTVBJTEVfQVNTRVJUKCEoUFJPQkVf
QUxJR05FRF9TSVpFICYgMHhmKSwgUHJvYmVDb250ZXh0X2FsaWduZWRfc2l6ZV9vZmZzZXRfc2hv
dWxkX2JlXzE2X2J5dGVfYWxpZ25lZCk7CitDT01QSUxFX0FTU0VSVCghKFBST0JFX0FMSUdORURf
U0laRSAmIDB4ZiksIFByb2JlQ29udGV4dF9hbGlnbmVkX3NpemVfc2hvdWxkX2JlXzE2X2J5dGVf
YWxpZ25lZCk7CiAKICN1bmRlZiBQUk9CRV9PRkZTRVRPRgogICAgIApAQCAtMjI4LDEwICsyMzUs
NTYgQEAgYXNtICgKIAogICAgICJtb3YgICAgICAgZnAsIHNwIiAiXG4iIC8vIFNhdmUgdGhlIFBy
b2JlQ29udGV4dCouCiAKKyAgICAvLyBJbml0aWFsaXplIFByb2JlQ29udGV4Ojppbml0aWFsaXpl
U3RhY2tGdW5jdGlvbiB0byB6ZXJvLgorICAgICJtb3YgICAgICAgcjAsICMwIiAiXG4iCisgICAg
InN0ciAgICAgICByMCwgW2ZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfSU5JVF9TVEFD
S19GVU5DVElPTl9PRkZTRVQpICJdIiAiXG4iCisKICAgICAibGRyICAgICAgIGlwLCBbc3AsICMi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQpICJdIiAiXG4i
CiAgICAgIm1vdiAgICAgICByMCwgc3AiICJcbiIgLy8gdGhlIFByb2JlQ29udGV4dCogYXJnLgog
ICAgICJibHggICAgICAgaXAiICJcbiIKIAorICAgIC8vIE1ha2Ugc3VyZSB0aGUgUHJvYmVDb250
ZXh0IGlzIGVudGlyZWx5IGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9pbnRlciBzbworICAgIC8v
IHRoYXQgcmVnaXN0ZXIgdmFsdWVzIGFyZSBzdGlsbCBwcmVzZXJ2ZWQgd2hlbiB3ZSBjYWxsIHRo
ZSBpbml0aWFsaXplU3RhY2sKKyAgICAvLyBmdW5jdGlvbi4KKyAgICAibGRyICAgICAgIHIxLCBb
ZnAsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIiAv
LyBSZXN1bHQgc3AuCisgICAgImFkZCAgICAgICByMiwgZnAsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9TSVpFICsgT1VUX1NJWkUpICJcbiIgLy8gRW5kIG9mIFByb3ZlQ29udGV4dCArIGJ1
ZmZlci4KKyAgICAiY21wICAgICAgIHIxLCByMiIgIlxuIgorICAgICJpdCAgICAgICAgZ2UiICJc
biIKKyAgICAiYmdlICAgICAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9s
aW5lUHJvYmVDb250ZXh0SXNTYWZlKSAiXG4iCisKKyAgICAvLyBBbGxvY2F0ZSBhIHNhZmUgcGxh
Y2Ugb24gdGhlIHN0YWNrIGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9pbnRlciB0byBzdGFzaCB0
aGUgUHJvYmVDb250ZXh0LgorICAgICJzdWIgICAgICAgcjEsIHIxLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfU0laRSArIE9VVF9TSVpFKSAiXG4iCisgICAgImJpYyAgICAgICByMSwgcjEs
ICMweGYiICJcbiIgLy8gVGhlIEFSTSBFQUJJIHNwZWNpZmllcyB0aGF0IHRoZSBzdGFjayBuZWVk
cyB0byBiZSAxNiBieXRlIGFsaWduZWQuCisgICAgIm1vdiAgICAgICBzcCwgcjEiICJcbiIgLy8g
U2V0IHRoZSBuZXcgc3AgYmVmb3JlIHdlIGNvcHkgdGhlIFByb2JlQ29udGV4dC4KKworICAgIC8v
IENvcHkgdGhlIFByb2JlQ29udGV4dCB0byB0aGUgc2FmZSBwbGFjZS4KKyAgICAvLyBOb3RlOiB3
ZSBoYXZlIHRvIGNvcHkgZnJvbSBsb3cgYWRkcmVzcyB0byBoaWdoZXIgYWRkcmVzcyBiZWNhdXNl
IHdlJ3JlIG1vdmluZyB0aGUKKyAgICAvLyBQcm9iZUNvbnRleHQgdG8gYSBsb3dlciBhZGRyZXNz
LgorICAgICJtb3YgICAgICAgcjUsIGZwIiAiXG4iCisgICAgIm1vdiAgICAgICByNiwgcjEiICJc
biIKKyAgICAiYWRkICAgICAgIHI3LCBmcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJ
WkUpICJcbiIKKworICAgIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5l
Q29weUxvb3ApICI6IiAiXG4iCisgICAgImxkciAgICAgICByMywgW3I1XSwgIzQiICJcbiIKKyAg
ICAibGRyICAgICAgIHI0LCBbcjVdLCAjNCIgIlxuIgorICAgICJzdHIgICAgICAgcjMsIFtyNl0s
ICM0IiAiXG4iCisgICAgInN0ciAgICAgICByNCwgW3I2XSwgIzQiICJcbiIKKyAgICAiY21wICAg
ICAgIHI1LCByNyIgIlxuIgorICAgICJpdCAgICAgICAgbHQiICJcbiIKKyAgICAiYmx0ICAgICAi
IExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lQ29weUxvb3ApICJcbiIK
KworICAgICJtb3YgICAgICAgZnAsIHIxIiAiXG4iCisKKyAgICAvLyBDYWxsIGluaXRpYWxpemVT
dGFja0Z1bmN0aW9uIGlmIHByZXNlbnQuCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Q
cm9iZVRyYW1wb2xpbmVQcm9iZUNvbnRleHRJc1NhZmUpICI6IiAiXG4iCisgICAgImxkciAgICAg
ICByMiwgW2ZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfSU5JVF9TVEFDS19GVU5DVElP
Tl9PRkZTRVQpICJdIiAiXG4iCisgICAgImNieiAgICAgICByMiwgIiBMT0NBTF9MQUJFTF9TVFJJ
TkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZVJlc3RvcmVSZWdpc3RlcnMpICJcbiIKKworICAgICJt
b3YgICAgICAgcjAsIGZwIiAiXG4iIC8vIFNldCB0aGUgUHJvYmVDb250ZXh0KiBhcmcuCisgICAg
ImJseCAgICAgICByMiIgIlxuIiAvLyBDYWxsIHRoZSBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiAo
bG9hZGVkIGludG8gcjIgYWJvdmUpLgorCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Q
cm9iZVRyYW1wb2xpbmVSZXN0b3JlUmVnaXN0ZXJzKSAiOiIgIlxuIgorCiAgICAgIm1vdiAgICAg
ICBzcCwgZnAiICJcbiIKIAogICAgIC8vIFRvIGVuYWJsZSBwcm9iZXMgdG8gbW9kaWZ5IHJlZ2lz
dGVyIHN0YXRlLCB3ZSBjb3B5IGFsbCByZWdpc3RlcnMKQEAgLTI0Nyw4MCArMzAwLDkgQEAgYXNt
ICgKICAgICAidm1zciAgICAgIEZQU0NSLCBpcCIgIlxuIgogCiAgICAgLy8gVGhlcmUgYXJlIDUg
bW9yZSByZWdpc3RlcnMgbGVmdCB0byByZXN0b3JlOiBpcCwgc3AsIGxyLCBwYywgYW5kIGFwc3Iu
Ci0gICAgLy8gVGhlcmUgYXJlIDIgaXNzdWVzIHRoYXQgY29tcGxpY2F0ZSB0aGUgcmVzdG9yYXRp
b24gb2YgdGhlc2UgbGFzdCBmZXcKLSAgICAvLyByZWdpc3RlcnM6Ci0gICAgLy8KLSAgICAvLyAx
LiBOb3JtYWwgQVJNIGNhbGxpbmcgY29udmVudGlvbiByZWxpZXMgb24gbW92aW5nIGxyIHRvIHBj
IHRvIHJldHVybiB0bwotICAgIC8vICAgIHRoZSBjYWxsZXIuIEluIG91ciBjYXNlLCB0aGUgYWRk
cmVzcyB0byByZXR1cm4gdG8gaXMgc3BlY2lmaWVkIGJ5Ci0gICAgLy8gICAgUHJvYmVDb250ZXh0
LmNwdS5ncHJzW3BjXS4gQW5kIGF0IHRoYXQgbW9tZW50LCB3ZSB3b24ndCBoYXZlIGFueSBhdmFp
bGFibGUKLSAgICAvLyAgICBzY3JhdGNoIHJlZ2lzdGVycyB0byBob2xkIHRoZSByZXR1cm4gYWRk
cmVzcyAobHIgbmVlZHMgdG8gaG9sZAotICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUuZ3Byc1ts
cl0sIG5vdCB0aGUgcmV0dXJuIGFkZHJlc3MpLgotICAgIC8vCi0gICAgLy8gICAgVGhlIHNvbHV0
aW9uIGlzIHRvIHN0b3JlIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgYW5kIGxvYWQg
dGhlCi0gICAgLy8gICAgcGMgZnJvbSB0aGVyZS4KLSAgICAvLwotICAgIC8vIDIuIElzc3VlIDEg
bWVhbnMgd2Ugd2lsbCBuZWVkIHRvIHdyaXRlIHRvIHRoZSBzdGFjayBsb2NhdGlvbiBhdAotICAg
IC8vICAgIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tzcF0gLSBQVFJfU0laRS4gQnV0IGlmIHRoZSB1
c2VyIHByb2JlIGZ1bmN0aW9uIGhhZAotICAgIC8vICAgIG1vZGlmaWVkIHRoZSB2YWx1ZSBvZiBQ
cm9iZUNvbnRleHQuY3B1LmdwcnNbc3BdIHRvIHBvaW50IGluIHRoZSByYW5nZSBiZXR3ZWVuCi0g
ICAgLy8gICAgJlByb2JlQ29udGV4dC5jcHUuZ3Byc1tpcF0gdGhydSAmUHJvYmVDb250ZXh0LmNw
dS5zcHJzW2FzcHJdLCB0aGVuIHRoZSBhY3Rpb24KLSAgICAvLyAgICBmb3IgSXNzdWUgMSBtYXkg
dHJhc2ggdGhlIHZhbHVlcyB0byBiZSByZXN0b3JlZCBiZWZvcmUgd2UgY2FuIHJlc3RvcmUgdGhl
bS4KLSAgICAvLwotICAgIC8vICAgIFRoZSBzb2x1dGlvbiBpcyB0byBjaGVjayBpZiBQcm9iZUNv
bnRleHQuY3B1LmdwcnNbc3BdIGNvbnRhaW5zIGEgdmFsdWUgaW4KLSAgICAvLyAgICB0aGUgdW5k
ZXNpcmFibGUgcmFuZ2UuIElmIHNvLCB3ZSBjb3B5IHRoZSByZW1haW5pbmcgUHJvYmVDb250ZXh0
Ci0gICAgLy8gICAgcmVnaXN0ZXIgZGF0YSB0byBhIHNhZmUgYXJlYSBmaXJzdCwgYW5kIHJlc3Rv
cmUgdGhlIHJlbWFpbmluZyByZWdpc3RlcgotICAgIC8vICAgIGZyb20gdGhpcyBuZXcgc2FmZSBh
cmVhLgotCi0gICAgLy8gVGhlIHJlc3RvcmUgYXJlYSBmb3IgdGhlIHBjIHdpbGwgYmUgbG9jYXRl
ZCBhdCAxIHdvcmQgYmVsb3cgdGhlIHJlc3VsdGFudCBzcC4KLSAgICAvLyBBbGwgcmVzdG9yZSB2
YWx1ZXMgYXJlIGxvY2F0ZWQgYXQgb2Zmc2V0IDw9IFBST0JFX0NQVV9BUFNSX09GRlNFVC4gSGVu
Y2UsCi0gICAgLy8gd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCByZXN1bHRhbnQgc3AgPiBvZmZz
ZXQgb2YgYXBzciArIDEuCi0gICAgImFkZCAgICAgICBpcCwgc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfQVBTUl9PRkZTRVQgKyBQVFJfU0laRSkgIlxuIgotICAgICJsZHIgICAg
ICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJd
IiAiXG4iCi0gICAgImNtcCAgICAgICBsciwgaXAiICJcbiIKLSAgICAiaXQgICAgICAgIGd0IiAi
XG4iCi0gICAgImJndCAgICAgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVF
bmQpICJcbiIKLQotICAgIC8vIEdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRoZSByZXN0b3JlIGFy
ZWEgd2lsbCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQgZGF0YQotICAgIC8vIHRoYXQgd2Ugd2ls
bCBuZWVkIHRvIGdldCB0aGUgcmVzdG9yYXRpb24gdmFsdWVzIGZyb20uIFNvLCBsZXQncyBtb3Zl
IHRoYXQKLSAgICAvLyBkYXRhIHRvIGEgc2FmZSBwbGFjZSBiZWZvcmUgd2Ugc3RhcnQgd3JpdGlu
ZyBpbnRvIHRoZSByZXN0b3JlIGFyZWEuCi0gICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAic2FmZSBh
cmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUKLSAgICAvLyBy
ZXN0b3JlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0OgotICAgIC8vIDEuIFRoZSBzYWZlIGFyZWEg
ZG9lcyBub3Qgb3ZlcmxhcCB0aGUgcmVzdG9yZSBhcmVhLgotICAgIC8vIDIuIFRoZSBzYWZlIGFy
ZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0LgotICAgIC8vICAgIFRoaXMgbWFr
ZXMgaXQgc28gdGhhdCB3ZSBjYW4gdXNlIG1lbWNweSAoZG9lcyBub3QgcmVxdWlyZSBtZW1tb3Zl
KSBzZW1hbnRpY3MKLSAgICAvLyAgICB0byBjb3B5IHRoZSByZXN0b3JlIHZhbHVlcyB0byB0aGUg
c2FmZSBhcmVhLgotCi0gICAgLy8gbHIgYWxyZWFkeSBjb250YWlucyBbc3AsICNTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCldLgotICAgICJzdWIgICAgICAgbHIsIGxyLCAj
KDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9BTElHTkVEX1NJWkUpICIpIiAiXG4iCi0g
ICAgCi0gICAgIm1vdiAgICAgICBpcCwgc3AiICJcbiIgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgUHJv
YmVDb250ZXh0Ki4KLSAgICAKLSAgICAvLyBNYWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9p
bnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQotICAgIC8vIHNhZmUg
YXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQu
Ci0gICAgIm1vdiAgICAgICBzcCwgbHIiICJcbiIgLy8gc3Agbm93IHBvaW50cyB0byB0aGUgbmV3
IFByb2JlQ29udGV4dCBpbiB0aGUgc2FmZSBhcmVhLgotICAgIAotICAgICJtb3YgICAgICAgbHIs
IGlwIiAiXG4iIC8vIFVzZSBsciBhcyB0aGUgb2xkIFByb2JlQ29udGV4dCouCi0gICAgCi0gICAg
Ly8gQ29weSB0aGUgcmVzdG9yZSBkYXRhIHRvIHRoZSBuZXcgUHJvYmVDb250ZXh0Ki4KLSAgICAi
bGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfSVBfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9JUF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBpcCwgW2xy
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKLSAg
ICAic3RyICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1Bf
T0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9MUl9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwg
W3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJcbiIK
LSAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
UENfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBp
cCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUKSAiXSIg
IlxuIgotICAgICJzdHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9BUFNSX09GRlNFVCkgIl0iICJcbiIKLQotICAgIC8vIGN0aU1hc21Qcm9iZVRyYW1wb2xp
bmVFbmQgZXhwZWN0cyBsciB0byBjb250YWluIHRoZSBzcCB2YWx1ZSB0byBiZSByZXN0b3JlZC4K
LSAgICAvLyBTaW5jZSB3ZSB1c2VkIGl0IGFzIHNjcmF0Y2ggYWJvdmUsIGxldCdzIHJlc3RvcmUg
aXQuCi0gICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX1NQX09GRlNFVCkgIl0iICJcbiIKLQotICAgICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNf
UEFSQU0oY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkgIlxuIgotICAgIFNZTUJPTF9TVFJJTkco
Y3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKIAogICAgIC8vIFNldCB1cCB0aGUg
cmVzdG9yZSBhcmVhIGZvciBzcCBhbmQgcGMuCi0gICAgLy8gbHIgYWxyZWFkeSBjb250YWlucyBb
c3AsICNTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCldLgorICAgICJsZHIg
ICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQp
ICJdIiAiXG4iCiAKICAgICAvLyBQdXNoIHRoZSBwYyBvbiB0byB0aGUgcmVzdG9yZSBhcmVhLgog
ICAgICJsZHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Q
Q19PRkZTRVQpICJdIiAiXG4iCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAkocmV2aXNpb24g
MjIwNzgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDEwIEBAIGV4dGVybiAi
QyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCkKIAogI2RlZmluZSBQUk9CRV9QUk9CRV9G
VU5DVElPTl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKICNkZWZpbmUgUFJPQkVfQVJHX09GRlNFVCAo
MSAqIFBUUl9TSVpFKQorI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCAo
MiAqIFBUUl9TSVpFKQorI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0FSR19PRkZTRVQgKDMgKiBQ
VFJfU0laRSkKIAotI2RlZmluZSBQUk9CRV9GSVJTVF9HUFJfT0ZGU0VUICgyICogUFRSX1NJWkUp
CisjZGVmaW5lIFBST0JFX0ZJUlNUX0dQUl9PRkZTRVQgKDQgKiBQVFJfU0laRSkKICNkZWZpbmUg
UFJPQkVfQ1BVX0VBWF9PRkZTRVQgKFBST0JFX0ZJUlNUX0dQUl9PRkZTRVQgKyAoMCAqIFBUUl9T
SVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX0VDWF9PRkZTRVQgKFBST0JFX0ZJUlNUX0dQUl9PRkZT
RVQgKyAoMSAqIFBUUl9TSVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX0VEWF9PRkZTRVQgKFBST0JF
X0ZJUlNUX0dQUl9PRkZTRVQgKyAoMiAqIFBUUl9TSVpFKSkKQEAgLTg3LDcgKzg5LDcgQEAgZXh0
ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKQogCiAjaWYgQ1BVKFg4NikKICNk
ZWZpbmUgUFJPQkVfU0laRSAoUFJPQkVfQ1BVX1hNTTdfT0ZGU0VUICsgWE1NX1NJWkUpCi0jZGVm
aW5lIFBST0JFX0FMSUdORURfU0laRSAoUFJPQkVfU0laRSArICgyICogWE1NX1NJWkUpKQorI2Rl
ZmluZSBQUk9CRV9BTElHTkVEX1NJWkUgKFBST0JFX1NJWkUgKyAoMSAqIFhNTV9TSVpFKSkKICNl
bHNlIC8vIENQVShYODZfNjQpCiAjZGVmaW5lIFBST0JFX0NQVV9YTU04X09GRlNFVCAoUFJPQkVf
RklSU1RfWE1NX09GRlNFVCArICg4ICogWE1NX1NJWkUpKQogI2RlZmluZSBQUk9CRV9DUFVfWE1N
OV9PRkZTRVQgKFBST0JFX0ZJUlNUX1hNTV9PRkZTRVQgKyAoOSAqIFhNTV9TSVpFKSkKQEAgLTk4
LDE0ICsxMDAsMjAgQEAgZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKQog
I2RlZmluZSBQUk9CRV9DUFVfWE1NMTRfT0ZGU0VUIChQUk9CRV9GSVJTVF9YTU1fT0ZGU0VUICsg
KDE0ICogWE1NX1NJWkUpKQogI2RlZmluZSBQUk9CRV9DUFVfWE1NMTVfT0ZGU0VUIChQUk9CRV9G
SVJTVF9YTU1fT0ZGU0VUICsgKDE1ICogWE1NX1NJWkUpKQogI2RlZmluZSBQUk9CRV9TSVpFIChQ
Uk9CRV9DUFVfWE1NMTVfT0ZGU0VUICsgWE1NX1NJWkUpCi0jZGVmaW5lIFBST0JFX0FMSUdORURf
U0laRSAoUFJPQkVfU0laRSArICg0ICogWE1NX1NJWkUpKQorI2RlZmluZSBQUk9CRV9BTElHTkVE
X1NJWkUgKFBST0JFX1NJWkUgKyAoMiAqIFhNTV9TSVpFKSkKICNlbmRpZiAvLyBDUFUoWDg2XzY0
KQogCisvLyBUaGUgb3V0Z29pbmcgcmVjb3JkIHRvIGJlIHBvcHBlZCBvZmYgdGhlIHN0YWNrIGF0
IHRoZSBlbmQgY29uc2lzdHMgb2Y6CisvLyBlZmxhZ3MsIGVheCwgZWN4LCBlYnAsIGVpcC4KKyNk
ZWZpbmUgT1VUX1NJWkUgICAgICAgICg1ICogUFRSX1NJWkUpCisKIC8vIFRoZXNlIEFTU0VSVHMg
cmVtaW5kIHlvdSB0aGF0IGlmIHlvdSBjaGFuZ2UgdGhlIGxheW91dCBvZiBQcm9iZUNvbnRleHQs
CiAvLyB5b3UgbmVlZCB0byBjaGFuZ2UgY3RpTWFzbVByb2JlVHJhbXBvbGluZSBvZmZzZXRzIGFi
b3ZlIHRvIG1hdGNoLgogI2RlZmluZSBQUk9CRV9PRkZTRVRPRih4KSBvZmZzZXRvZihzdHJ1Y3Qg
UHJvYmVDb250ZXh0LCB4KQogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YocHJvYmVGdW5j
dGlvbikgPT0gUFJPQkVfUFJPQkVfRlVOQ1RJT05fT0ZGU0VULCBQcm9iZUNvbnRleHRfcHJvYmVG
dW5jdGlvbl9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIENPTVBJTEVf
QVNTRVJUKFBST0JFX09GRlNFVE9GKGFyZykgPT0gUFJPQkVfQVJHX09GRlNFVCwgUHJvYmVDb250
ZXh0X2FyZ19vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVf
QVNTRVJUKFBST0JFX09GRlNFVE9GKGluaXRpYWxpemVTdGFja0Z1bmN0aW9uKSA9PSBQUk9CRV9J
TklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCwgUHJvYmVDb250ZXh0X2luaXRpYWxpemVTdGFja0Z1
bmN0aW9uX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOworQ09NUElMRV9B
U1NFUlQoUFJPQkVfT0ZGU0VUT0YoaW5pdGlhbGl6ZVN0YWNrQXJnKSA9PSBQUk9CRV9JTklUX1NU
QUNLX0FSR19PRkZTRVQsIFByb2JlQ29udGV4dF9pbml0aWFsaXplU3RhY2tBcmdfb2Zmc2V0X21h
dGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CiAKIENPTVBJTEVfQVNTRVJUKFBST0JFX09G
RlNFVE9GKGNwdS5ncHJzW1g4NlJlZ2lzdGVyczo6ZWF4XSkgPT0gUFJPQkVfQ1BVX0VBWF9PRkZT
RVQsIFByb2JlQ29udGV4dF9jcHVfZWF4X29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1w
b2xpbmUpOwogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmdwcnNbWDg2UmVnaXN0
ZXJzOjplY3hdKSA9PSBQUk9CRV9DUFVfRUNYX09GRlNFVCwgUHJvYmVDb250ZXh0X2NwdV9lY3hf
b2Zmc2V0X21hdGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CkBAIC0yMTIsNiArMjIwLDkg
QEAgYXNtICgKICAgICAibW92cSAleG1tNiwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1hNTTZfT0ZGU0VUKSAiKCVlYnApIiAiXG4iCiAgICAgIm1vdnEgJXhtbTcsICIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9YTU03X09GRlNFVCkgIiglZWJwKSIgIlxuIgogCisgICAgInhv
cmwgJWVheCwgJWVheCIgIlxuIgorICAgICJtb3ZsICVlYXgsICIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiKCVlYnApIiAiXG4iCisKICAgICAv
LyBSZXNlcnZlIHN0YWNrIHNwYWNlIGZvciB0aGUgYXJnIHdoaWxlIG1haW50YWluaW5nIHRoZSBy
ZXF1aXJlZCBzdGFjawogICAgIC8vIHBvaW50ZXIgMzIgYnl0ZSBhbGlnbm1lbnQ6CiAgICAgInN1
YmwgJDB4MjAsICVlc3AiICJcbiIKQEAgLTIxOSw2ICsyMzAsNDkgQEAgYXNtICgKIAogICAgICJj
YWxsICoiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQpICIo
JWVicCkiICJcbiIKIAorICAgIC8vIE1ha2Ugc3VyZSB0aGUgUHJvYmVDb250ZXh0IGlzIGVudGly
ZWx5IGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9pbnRlciBzbworICAgIC8vIHRoYXQgcmVnaXN0
ZXIgdmFsdWVzIGFyZSBzdGlsbCBwcmVzZXJ2ZWQgd2hlbiB3ZSBjYWxsIHRoZSBpbml0aWFsaXpl
U3RhY2sKKyAgICAvLyBmdW5jdGlvbi4KKyAgICAibW92bCAkIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfU0laRSArIE9VVF9TSVpFKSAiLCAlZWN4IiAiXG4iCisgICAgIm1vdmwgJWVicCwgJWVh
eCIgIlxuIgorICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZG
U0VUKSAiKCVlYnApLCAlZWR4IiAiXG4iCisgICAgImFkZGwgJWVjeCwgJWVheCIgIlxuIgorICAg
ICJjbXBsICVlYXgsICVlZHgiICJcbiIKKyAgICAiamdlICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0
aU1hc21Qcm9iZVRyYW1wb2xpbmVQcm9iZUNvbnRleHRJc1NhZmUpICJcbiIKKworICAgIC8vIEFs
bG9jYXRlIGEgc2FmZSBwbGFjZSBvbiB0aGUgc3RhY2sgYmVsb3cgdGhlIHJlc3VsdCBzdGFjayBw
b2ludGVyIHRvIHN0YXNoIHRoZSBQcm9iZUNvbnRleHQuCisgICAgInN1YmwgJWVjeCwgJWVkeCIg
IlxuIgorICAgIC8vIEtlZXAgdGhlIHN0YWNrIHBvaW50ZXIgMzIgYnl0ZXMgYWxpZ25lZC4KKyAg
ICAiYW5kbCAkfjB4MWYsICVlZHgiICJcbiIKKyAgICAieG9ybCAlZWF4LCAlZWF4IiAiXG4iCisg
ICAgIm1vdmwgJWVkeCwgJWVzcCIgIlxuIgorCisgICAgIm1vdmwgJCIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX1NJWkUpICIsICVlY3giICJcbiIKKworICAgIC8vIENvcHkgdGhlIFByb2JlQ29u
dGV4dCB0byB0aGUgc2FmZSBwbGFjZS4KKyAgICBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVBy
b2JlVHJhbXBvbGluZUNvcHlMb29wKSAiOiIgIlxuIgorICAgICJtb3ZsICglZWJwLCAlZWF4KSwg
JWVkeCIgIlxuIgorICAgICJtb3ZsICVlZHgsICglZXNwLCAlZWF4KSIgIlxuIgorICAgICJhZGRs
ICQiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJWVheCIgIlxuIgorICAgICJjbXBs
ICVlYXgsICVlY3giICJcbiIKKyAgICAiamcgIiBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVBy
b2JlVHJhbXBvbGluZUNvcHlMb29wKSAiXG4iCisKKyAgICAibW92bCAlZXNwLCAlZWJwIiAiXG4i
CisKKyAgICAvLyBDYWxsIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIGlmIHByZXNlbnQuCisgICAg
TE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVQcm9iZUNvbnRleHRJc1Nh
ZmUpICI6IiAiXG4iCisgICAgInhvcmwgJWVjeCwgJWVjeCIgIlxuIgorICAgICJhZGRsICIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiKCVlYnAp
LCAlZWN4IiAiXG4iCisgICAgImplICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRy
YW1wb2xpbmVSZXN0b3JlUmVnaXN0ZXJzKSAiXG4iCisKKyAgICAvLyBSZXNlcnZlIHN0YWNrIHNw
YWNlIGZvciB0aGUgYXJnIHdoaWxlIG1haW50YWluaW5nIHRoZSByZXF1aXJlZCBzdGFjaworICAg
IC8vIHBvaW50ZXIgMzIgYnl0ZSBhbGlnbm1lbnQ6CisgICAgInN1YmwgJDB4MjAsICVlc3AiICJc
biIKKyAgICAibW92bCAlZWJwLCAwKCVlc3ApIiAiXG4iIC8vIHRoZSBQcm9iZUNvbnRleHQqIGFy
Zy4KKyAgICAiY2FsbCAqJWVjeCIgIlxuIgorCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1h
c21Qcm9iZVRyYW1wb2xpbmVSZXN0b3JlUmVnaXN0ZXJzKSAiOiIgIlxuIgorCiAgICAgLy8gVG8g
ZW5hYmxlIHByb2JlcyB0byBtb2RpZnkgcmVnaXN0ZXIgc3RhdGUsIHdlIGNvcHkgYWxsIHJlZ2lz
dGVycwogICAgIC8vIG91dCBvZiB0aGUgUHJvYmVDb250ZXh0IGJlZm9yZSByZXR1cm5pbmcuCiAK
QEAgLTI0OSw1OSArMzAzLDEwIEBAIGFzbSAoCiAKICAgICAvLyBlY3ggbm93IHBvaW50cyB0byB0
aGUgcmVzdG9yZSBhcmVhLgogCi0gICAgLy8gQmVmb3JlIHdlIGNvcHkgdmFsdWVzIGZyb20gdGhl
IFByb2JlQ29udGV4dCB0byB0aGUgcmVzdG9yZSBhcmVhLCB3ZSBuZWVkIHRvCi0gICAgLy8gbWFr
ZSBzdXJlIHRoYXQgdGhlIHJlc3RvcmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIGFueSBvZiB0aGUg
dmFsdWVzIHRoYXQgd2UnbGwKLSAgICAvLyBiZSBjb3B5aW5nIGZyb20gaW4gdGhlIFByb2JlQ29u
dGV4dC4gQWxsIHRoZSByZXN0b3JlIHZhbHVlcyB0byBiZSBjb3BpZWQgZnJvbQotICAgIC8vIGNv
bWVzIGZyb20gb2Zmc2V0IDw9IFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUIGluIHRoZSBQcm9iZUNv
bnRleHQuCi0gICAgIm1vdmwgJWVicCwgJWVheCIgIlxuIgotICAgICJhZGRsICQiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfRUZMQUdTX09GRlNFVCkgIiwgJWVheCIgIlxuIgotICAgICJj
bXBsICVlYXgsICVlY3giICJcbiIKLSAgICAiamcgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9i
ZVRyYW1wb2xpbmVFbmQpICJcbiIKLQotICAgIC8vIEdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRo
ZSByZXN0b3JlIGFyZWEgd2lsbCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQgZGF0YQotICAgIC8v
IHRoYXQgd2Ugd2lsbCBuZWVkIHRvIGdldCB0aGUgcmVzdG9yYXRpb24gdmFsdWVzIGZyb20uIFNv
LCBsZXQncyBtb3ZlIHRoYXQKLSAgICAvLyBkYXRhIHRvIGEgc2FmZSBwbGFjZSBiZWZvcmUgd2Ug
c3RhcnQgd3JpdGluZyBpbnRvIHRoZSByZXN0b3JlIGFyZWEuCi0gICAgLy8gTGV0J3MgbG9jYXRl
IHRoZSAic2FmZSBhcmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0
aGUKLSAgICAvLyByZXN0b3JlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0OgotICAgIC8vIDEuIFRo
ZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgcmVzdG9yZSBhcmVhLgotICAgIC8vIDIu
IFRoZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0LgotICAgIC8v
ICAgIFRoaXMgbWFrZXMgaXQgc28gdGhhdCB3ZSBjYW4gdXNlIG1lbWNweSAoZG9lcyBub3QgcmVx
dWlyZSBtZW1tb3ZlKSBzZW1hbnRpY3MKLSAgICAvLyAgICB0byBjb3B5IHRoZSByZXN0b3JlIHZh
bHVlcyB0byB0aGUgc2FmZSBhcmVhLgotICAgIC8vIE5vdGU6IHRoZSBzYWZlIGFyZWEgZG9lcyBu
b3QgaGF2ZSB0byAzMi1ieXRlIGFsaWduIGl0IGJlY2F1c2Ugd2UncmUgbm90IHVzaW5nCi0gICAg
Ly8gaXQgdG8gc3RvcmUgYW55IHhtbSByZWdzLgotICAgICJtb3ZsICVlY3gsICVlYXgiICJcbiIK
LSAgICAic3VibCAkMiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkg
IiwgJWVheCIgIlxuIgotCi0gICAgLy8gZWF4IG5vdyBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4K
LQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUg
YXJlYS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlCi0gICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3Rl
ZCBmcm9tIGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KLSAgICAibW92bCAlZWF4
LCAlZXNwIiAiXG4iCi0KLSAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
RUFYX09GRlNFVCkgIiglZWJwKSwgJWVjeCIgIlxuIgotICAgICJtb3ZsICVlY3gsICIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQVhfT0ZGU0VUKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1v
dmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VDWF9PRkZTRVQpICIoJWVicCksICVl
Y3giICJcbiIKLSAgICAibW92bCAlZWN4LCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
RUNYX09GRlNFVCkgIiglZWF4KSIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9FQlBfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAiXG4iCi0gICAgIm1vdmwgJWVj
eCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VCUF9PRkZTRVQpICIoJWVheCkiICJc
biIKLSAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkg
IiglZWJwKSwgJWVjeCIgIlxuIgotICAgICJtb3ZsICVlY3gsICIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1vdmwgIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VJUF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIKLSAg
ICAibW92bCAlZWN4LCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUlQX09GRlNFVCkg
IiglZWF4KSIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9F
RkxBR1NfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAiXG4iCi0gICAgIm1vdmwgJWVjeCwgIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJWVheCkiICJcbiIKLSAg
ICAibW92bCAlZWF4LCAlZWJwIiAiXG4iCi0KLSAgICAvLyBXZSB1c2VkIGVjeCBhYm92ZSBhcyBz
Y3JhdGNoIHJlZ2lzdGVyLiBMZXQncyByZXN0b3JlIGl0IHRvIHBvaW50cyB0byB0aGUKLSAgICAv
LyByZXN0b3JlIGFyZWEuCi0gICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X0VTUF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIKLSAgICAic3VibCAkNSAqICIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAlZWN4IiAiXG4iCi0KLSAgICAvLyBlY3ggbm93IHBv
aW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgotCi0gICAgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJv
YmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgotCiAgICAgLy8gQ29weSByZW1haW5pbmcgcmVzdG9y
ZSB2YWx1ZXMgZnJvbSB0aGUgUHJvYmVDb250ZXh0IHRvIHRoZSByZXN0b3JlIGFyZWEuCisgICAg
Ly8gTm90ZTogV2UgYWxyZWFkeSBlbnN1cmVkIGFib3ZlIHRoYXQgdGhlIFByb2JlQ29udGV4dCBp
cyBpbiBhIHNhZmUgbG9jYXRpb24gYmVmb3JlCisgICAgLy8gY2FsbGluZyB0aGUgaW5pdGlhbGl6
ZVN0YWNrRnVuY3Rpb24uIFRoZSBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBpcyBub3QgYWxsb3dl
ZCB0bworICAgIC8vIGNoYW5nZSB0aGUgc3RhY2sgcG9pbnRlciBhZ2Fpbi4KICAgICAibW92bCAi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUZMQUdTX09GRlNFVCkgIiglZWJwKSwgJWVh
eCIgIlxuIgogICAgICJtb3ZsICVlYXgsIDAgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0la
RSkgIiglZWN4KSIgIlxuIgogICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9FQVhfT0ZGU0VUKSAiKCVlYnApLCAlZWF4IiAiXG4iCkBAIC0zOTYsOSArNDAxLDUyIEBAIGFz
bSAoCiAgICAgIm1vdnEgJXhtbTE0LCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWE1N
MTRfT0ZGU0VUKSAiKCVyYnApIiAiXG4iCiAgICAgIm1vdnEgJXhtbTE1LCAiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfWE1NMTVfT0ZGU0VUKSAiKCVyYnApIiAiXG4iCiAKKyAgICAieG9y
cSAlcmF4LCAlcmF4IiAiXG4iCisgICAgIm1vdnEgJXJheCwgIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfSU5JVF9TVEFDS19GVU5DVElPTl9PRkZTRVQpICIoJXJicCkiICJcbiIKKwogICAgICJt
b3ZxICVyYnAsICVyZGkiICJcbiIgLy8gdGhlIFByb2JlQ29udGV4dCogYXJnLgogICAgICJjYWxs
ICoiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQpICIoJXJi
cCkiICJcbiIKIAorICAgIC8vIE1ha2Ugc3VyZSB0aGUgUHJvYmVDb250ZXh0IGlzIGVudGlyZWx5
IGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9pbnRlciBzbworICAgIC8vIHRoYXQgcmVnaXN0ZXIg
dmFsdWVzIGFyZSBzdGlsbCBwcmVzZXJ2ZWQgd2hlbiB3ZSBjYWxsIHRoZSBpbml0aWFsaXplU3Rh
Y2sKKyAgICAvLyBmdW5jdGlvbi4KKyAgICAibW92cSAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfU0laRSArIE9VVF9TSVpFKSAiLCAlcmN4IiAiXG4iCisgICAgIm1vdnEgJXJicCwgJXJheCIg
IlxuIgorICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VU
KSAiKCVyYnApLCAlcmR4IiAiXG4iCisgICAgImFkZHEgJXJjeCwgJXJheCIgIlxuIgorICAgICJj
bXBxICVyYXgsICVyZHgiICJcbiIKKyAgICAiamdlICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1h
c21Qcm9iZVRyYW1wb2xpbmVQcm9iZUNvbnRleHRJc1NhZmUpICJcbiIKKyAKKyAgICAvLyBBbGxv
Y2F0ZSBhIHNhZmUgcGxhY2Ugb24gdGhlIHN0YWNrIGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9p
bnRlciB0byBzdGFzaCB0aGUgUHJvYmVDb250ZXh0LgorICAgICJzdWJxICVyY3gsICVyZHgiICJc
biIKKyAgICAvLyBUaGUgWDg2XzY0IEFCSSBzcGVjaWZpZXMgdGhhdCB0aGUgd29yc2UgY2FzZSBz
dGFjayBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgaXMgMzIgYnl0ZXMuCisgICAgImFuZHEgJH4weDFm
LCAlcmR4IiAiXG4iCisgICAgInhvcnEgJXJheCwgJXJheCIgIlxuIgorICAgICJtb3ZxICVyZHgs
ICVyc3AiICJcbiIKKworICAgICJtb3ZxICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9TSVpF
KSAiLCAlcmN4IiAiXG4iCisKKyAgICAvLyBDb3B5IHRoZSBQcm9iZUNvbnRleHQgdG8gdGhlIHNh
ZmUgcGxhY2UuCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVD
b3B5TG9vcCkgIjoiICJcbiIKKyAgICAibW92cSAoJXJicCwgJXJheCksICVyZHgiICJcbiIKKyAg
ICAibW92cSAlcmR4LCAoJXJzcCwgJXJheCkiICJcbiIKKyAgICAiYWRkcSAkIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFRSX1NJWkUpICIsICVyYXgiICJcbiIKKyAgICAiY21wcSAlcmF4LCAlcmN4IiAi
XG4iCisgICAgImpnICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVD
b3B5TG9vcCkgIlxuIgorCisgICAgIm1vdnEgJXJzcCwgJXJicCIgIlxuIgorCisgICAgLy8gQ2Fs
bCBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBpZiBwcmVzZW50LgorICAgIExPQ0FMX0xBQkVMX1NU
UklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJvYmVDb250ZXh0SXNTYWZlKSAiOiIgIlxuIgor
ICAgICJ4b3JxICVyY3gsICVyY3giICJcbiIKKyAgICAiYWRkcSAiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCkgIiglcmJwKSwgJXJjeCIgIlxuIgor
ICAgICJqZSAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUmVzdG9y
ZVJlZ2lzdGVycykgIlxuIgorCisgICAgIm1vdnEgJXJicCwgJXJkaSIgIlxuIiAvLyB0aGUgUHJv
YmVDb250ZXh0KiBhcmcuCisgICAgImNhbGwgKiVyY3giICJcbiIKKworICAgIExPQ0FMX0xBQkVM
X1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUmVzdG9yZVJlZ2lzdGVycykgIjoiICJcbiIK
KwogICAgIC8vIFRvIGVuYWJsZSBwcm9iZXMgdG8gbW9kaWZ5IHJlZ2lzdGVyIHN0YXRlLCB3ZSBj
b3B5IGFsbCByZWdpc3RlcnMKICAgICAvLyBvdXQgb2YgdGhlIFByb2JlQ29udGV4dCBiZWZvcmUg
cmV0dXJuaW5nLgogCkBAIC00NDYsNTkgKzQ5NCwxMCBAQCBhc20gKAogCiAgICAgLy8gcmN4IG5v
dyBwb2ludHMgdG8gdGhlIHJlc3RvcmUgYXJlYS4KIAotICAgIC8vIEJlZm9yZSB3ZSBjb3B5IHZh
bHVlcyBmcm9tIHRoZSBQcm9iZUNvbnRleHQgdG8gdGhlIHJlc3RvcmUgYXJlYSwgd2UgbmVlZCB0
bwotICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXN0b3JlIGFyZWEgZG9lcyBub3Qgb3Zlcmxh
cCBhbnkgb2YgdGhlIHZhbHVlcyB0aGF0IHdlJ2xsCi0gICAgLy8gYmUgY29weWluZyBmcm9tIGlu
IHRoZSBQcm9iZUNvbnRleHQuIEFsbCB0aGUgcmVzdG9yZSB2YWx1ZXMgdG8gYmUgY29waWVkIGZy
b20KLSAgICAvLyBjb21lcyBmcm9tIG9mZnNldCA8PSBQUk9CRV9DUFVfRUZMQUdTX09GRlNFVCBp
biB0aGUgUHJvYmVDb250ZXh0LgotICAgICJtb3ZxICVyYnAsICVyYXgiICJcbiIKLSAgICAiYWRk
cSAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIsICVyYXgi
ICJcbiIKLSAgICAiY21wcSAlcmF4LCAlcmN4IiAiXG4iCi0gICAgImpnICIgU1lNQk9MX1NUUklO
RyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iCi0KLSAgICAvLyBHZXR0aW5nIGhlcmUg
bWVhbnMgdGhhdCB0aGUgcmVzdG9yZSBhcmVhIHdpbGwgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0
IGRhdGEKLSAgICAvLyB0aGF0IHdlIHdpbGwgbmVlZCB0byBnZXQgdGhlIHJlc3RvcmF0aW9uIHZh
bHVlcyBmcm9tLiBTbywgbGV0J3MgbW92ZSB0aGF0Ci0gICAgLy8gZGF0YSB0byBhIHNhZmUgcGxh
Y2UgYmVmb3JlIHdlIHN0YXJ0IHdyaXRpbmcgaW50byB0aGUgcmVzdG9yZSBhcmVhLgotICAgIC8v
IExldCdzIGxvY2F0ZSB0aGUgInNhZmUgYXJlYSIgYXQgMnggc2l6ZW9mKFByb2JlQ29udGV4dCkg
YmVsb3cgd2hlcmUgdGhlCi0gICAgLy8gcmVzdG9yZSBhcmVhLiBUaGlzIGVuc3VyZXMgdGhhdDoK
LSAgICAvLyAxLiBUaGUgc2FmZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIHJlc3RvcmUgYXJl
YS4KLSAgICAvLyAyLiBUaGUgc2FmZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIFByb2JlQ29u
dGV4dC4KLSAgICAvLyAgICBUaGlzIG1ha2VzIGl0IHNvIHRoYXQgd2UgY2FuIHVzZSBtZW1jcHkg
KGRvZXMgbm90IHJlcXVpcmUgbWVtbW92ZSkgc2VtYW50aWNzCi0gICAgLy8gICAgdG8gY29weSB0
aGUgcmVzdG9yZSB2YWx1ZXMgdG8gdGhlIHNhZmUgYXJlYS4KLSAgICAvLyBOb3RlOiB0aGUgc2Fm
ZSBhcmVhIGRvZXMgbm90IGhhdmUgdG8gMzItYnl0ZSBhbGlnbiBpdCBiZWNhdXNlIHdlJ3JlIG5v
dCB1c2luZwotICAgIC8vIGl0IHRvIHN0b3JlIGFueSB4bW0gcmVncy4KLSAgICAibW92cSAlcmN4
LCAlcmF4IiAiXG4iCi0gICAgInN1YnEgJDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9B
TElHTkVEX1NJWkUpICIsICVyYXgiICJcbiIKLQotICAgIC8vIHJheCBub3cgcG9pbnRzIHRvIHRo
ZSBzYWZlIGFyZWEuCi0KLSAgICAvLyBNYWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9pbnRz
IHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQotICAgIC8vIHNhZmUgYXJl
YSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuCi0g
ICAgIm1vdnEgJXJheCwgJXJzcCIgIlxuIgotCi0gICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VBWF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKLSAgICAibW92cSAl
cmN4LCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglcmF4KSIg
IlxuIgotICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQ1hfT0ZGU0VU
KSAiKCVyYnApLCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VDWF9PRkZTRVQpICIoJXJheCkiICJcbiIKLSAgICAibW92cSAiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUJQX09GRlNFVCkgIiglcmJwKSwgJXJjeCIgIlxuIgot
ICAgICJtb3ZxICVyY3gsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQlBfT0ZGU0VU
KSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X0VTUF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKLSAgICAibW92cSAlcmN4LCAiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIiglcmF4KSIgIlxuIgotICAgICJt
b3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FSVBfT0ZGU0VUKSAiKCVyYnApLCAl
cmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X0VJUF9PRkZTRVQpICIoJXJheCkiICJcbiIKLSAgICAibW92cSAiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfRUZMQUdTX09GRlNFVCkgIiglcmJwKSwgJXJjeCIgIlxuIgotICAgICJtb3Zx
ICVyY3gsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAiKCVy
YXgpIiAiXG4iCi0gICAgIm1vdnEgJXJheCwgJXJicCIgIlxuIgotCi0gICAgLy8gV2UgdXNlZCBy
Y3ggYWJvdmUgYXMgc2NyYXRjaCByZWdpc3Rlci4gTGV0J3MgcmVzdG9yZSBpdCB0byBwb2ludHMg
dG8gdGhlCi0gICAgLy8gcmVzdG9yZSBhcmVhLgotICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVyYnApLCAlcmN4IiAiXG4iCi0gICAgInN1YnEg
JDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJXJjeCIgIlxuIgotCi0gICAg
Ly8gcmN4IG5vdyBwb2ludHMgdG8gdGhlIHJlc3RvcmUgYXJlYS4KLQotICAgIFNZTUJPTF9TVFJJ
TkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKLQogICAgIC8vIENvcHkgcmVt
YWluaW5nIHJlc3RvcmUgdmFsdWVzIGZyb20gdGhlIFByb2JlQ29udGV4dCB0byB0aGUgcmVzdG9y
ZSBhcmVhLgorICAgIC8vIE5vdGU6IFdlIGFscmVhZHkgZW5zdXJlZCBhYm92ZSB0aGF0IHRoZSBQ
cm9iZUNvbnRleHQgaXMgaW4gYSBzYWZlIGxvY2F0aW9uIGJlZm9yZQorICAgIC8vIGNhbGxpbmcg
dGhlIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uLiBUaGUgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24g
aXMgbm90IGFsbG93ZWQgdG8KKyAgICAvLyBjaGFuZ2UgdGhlIHN0YWNrIHBvaW50ZXIgYWdhaW4u
CiAgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQp
ICIoJXJicCksICVyYXgiICJcbiIKICAgICAibW92cSAlcmF4LCAwICogIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFRSX1NJWkUpICIoJXJjeCkiICJcbiIKICAgICAibW92cSAiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglcmJwKSwgJXJheCIgIlxuIgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHJldmlzaW9uIDIy
MDc4MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSB7CiAKK3VzaW5nIENQVVN0YXRlID0gTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlOwor
CiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogdHlwZWRlZiBXVEY6OkZ1bmN0aW9uPHZvaWQoQ0Nh
bGxIZWxwZXJzJik+IEdlbmVyYXRvcjsKQEAgLTI2Nyw3ICsyNjksNyBAQCB2b2lkIHRlc3RQcm9i
ZVByZXNlcnZlc0dQUlMoKQogICAgIC8vIGhhdmluZyBhbHJlYWR5IHZhbGlkYXRlZCB0aGF0IHdl
IGNhbiByZWFkIGFuZCB3cml0ZSBmcm9tIHJlZ2lzdGVycy4gV2UnbGwgdXNlIHRoZXNlIGFiaWxp
dGllcwogICAgIC8vIHRvIHZhbGlkYXRlIHRoYXQgdGhlIHByb2JlIHByZXNlcnZlcyByZWdpc3Rl
ciB2YWx1ZXMuCiAgICAgdW5zaWduZWQgcHJvYmVDYWxsQ291bnQgPSAwOwotICAgIE1hY3JvQXNz
ZW1ibGVyOjpDUFVTdGF0ZSBvcmlnaW5hbFN0YXRlOworICAgIENQVVN0YXRlIG9yaWdpbmFsU3Rh
dGU7CiAKICAgICBjb21waWxlQW5kUnVuPHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsK
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CkBAIC0zNDcsNyArMzQ5LDcgQEAg
dm9pZCB0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKCkKIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNTdGFj
a1BvaW50ZXIoV1RGOjpGdW5jdGlvbjx2b2lkKihQcm9iZUNvbnRleHQqKT4gY29tcHV0ZU1vZGlm
aWVkU3RhY2spCiB7CiAgICAgdW5zaWduZWQgcHJvYmVDYWxsQ291bnQgPSAwOwotICAgIE1hY3Jv
QXNzZW1ibGVyOjpDUFVTdGF0ZSBvcmlnaW5hbFN0YXRlOworICAgIENQVVN0YXRlIG9yaWdpbmFs
U3RhdGU7CiAgICAgdm9pZCogb3JpZ2luYWxTUCB7IG51bGxwdHIgfTsKICAgICB2b2lkKiBtb2Rp
ZmllZFNQIHsgbnVsbHB0ciB9OwogICAgIHVpbnRwdHJfdCBtb2RpZmllZEZsYWdzIHsgMCB9OwpA
QCAtNTA4LDYgKzUxMCwxNTggQEAgdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1Byb2dyYW1Db3VudGVy
KCkKICAgICBDSEVDS19FUShjb250aW51YXRpb25XYXNSZWFjaGVkLCB0cnVlKTsKIH0KIAorc3Ry
dWN0IEZpbGxTdGFja0RhdGEgeworICAgIENQVVN0YXRlIG9yaWdpbmFsU3RhdGU7CisgICAgdm9p
ZCogb3JpZ2luYWxTUCB7IG51bGxwdHIgfTsKKyAgICB2b2lkKiBuZXdTUCB7IG51bGxwdHIgfTsK
KyAgICB1aW50cHRyX3QgbW9kaWZpZWRGbGFncyB7IDAgfTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6
U1BSZWdpc3RlcklEIGZsYWdzU1BSOworfTsKKworc3RhdGljIHZvaWQgZmlsbFN0YWNrKFByb2Jl
Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBhdXRvJiBjcHUgPSBjb250ZXh0LT5jcHU7CisKKyAg
ICBGaWxsU3RhY2tEYXRhJiBkYXRhID0gKnJlaW50ZXJwcmV0X2Nhc3Q8RmlsbFN0YWNrRGF0YSo+
KGNvbnRleHQtPmluaXRpYWxpemVTdGFja0FyZyk7CisgICAgQ1BVU3RhdGUmIG9yaWdpbmFsU3Rh
dGUgPSBkYXRhLm9yaWdpbmFsU3RhdGU7CisgICAgdm9pZComIG9yaWdpbmFsU1AgPSBkYXRhLm9y
aWdpbmFsU1A7CisgICAgdm9pZComIG5ld1NQID0gZGF0YS5uZXdTUDsKKyAgICB1aW50cHRyX3Qm
IG1vZGlmaWVkRmxhZ3MgPSBkYXRhLm1vZGlmaWVkRmxhZ3M7CisgICAgTWFjcm9Bc3NlbWJsZXI6
OlNQUmVnaXN0ZXJJRCYgZmxhZ3NTUFIgPSBkYXRhLmZsYWdzU1BSOworCisgICAgQ0hFQ0tfRVEo
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oY29udGV4dC0+aW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24p
LCByZWludGVycHJldF9jYXN0PHZvaWQqPihmaWxsU3RhY2spKTsKKyAgICBDSEVDS19FUShjcHUu
c3AoKSwgbmV3U1ApOworCisgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHByb2JlIGhhcyBwdXQgdGhl
IFByb2JlQ29udGV4dCBvdXQgb2YgaGFybSdzIHdheS4KKyAgICBDSEVDS19FUSgocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oY29udGV4dCArIDEpIDw9IGNwdS5zcCgpKSwgdHJ1ZSk7CisKKyAgICAv
LyBWZXJpZnkgdGhlIENQVSBzdGF0ZS4KKyAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6
OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQg
PSBuZXh0SUQoaWQpKSB7CisgICAgICAgIGlmIChpc0ZQKGlkKSkgeworICAgICAgICAgICAgQ0hF
Q0tfRVEoY3B1LmdwcihpZCksIG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBDSEVDS19FUShjcHUuZ3ByKGlkKSwgdGVzdFdvcmQo
aWQpKTsKKyAgICB9CisgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVn
aXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJ
RChpZCkpCisgICAgICAgIENIRUNLX0VRKGNwdS5mcHI8dWludDY0X3Q+KGlkKSwgdGVzdFdvcmQ2
NChpZCkpOworICAgIENIRUNLX0VRKGNwdS5zcHIoZmxhZ3NTUFIpLCBtb2RpZmllZEZsYWdzKTsK
KworICAgIC8vIEZpbGwgdGhlIHN0YWNrIHdpdGggdmFsdWVzLgorICAgIHVpbnRwdHJfdCogcCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Kj4obmV3U1ApOworICAgIGludCBjb3VudCA9IDA7
CisgICAgd2hpbGUgKHAgPCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCo+KG9yaWdpbmFsU1Ap
KQorICAgICAgICAqcCsrID0gdGVzdFdvcmQoY291bnQrKyk7Cit9OworCit2b2lkIHRlc3RQcm9i
ZU1vZGlmaWVzU3RhY2tXaXRoQ2FsbGJhY2soKQoreworICAgIHVuc2lnbmVkIHByb2JlQ2FsbENv
dW50ID0gMDsKKyAgICBGaWxsU3RhY2tEYXRhIGRhdGE7CisgICAgQ1BVU3RhdGUmIG9yaWdpbmFs
U3RhdGUgPSBkYXRhLm9yaWdpbmFsU3RhdGU7CisgICAgdm9pZComIG9yaWdpbmFsU1AgPSBkYXRh
Lm9yaWdpbmFsU1A7CisgICAgdm9pZComIG5ld1NQID0gZGF0YS5uZXdTUDsKKyAgICB1aW50cHRy
X3QmIG1vZGlmaWVkRmxhZ3MgPSBkYXRhLm1vZGlmaWVkRmxhZ3M7CisgICAgc2l6ZV90IG51bWJl
ck9mRXh0cmFFbnRyaWVzVG9Xcml0ZSA9IDEwOyAvLyBBUk02NCByZXF1aXJlcyB0aGF0IHRoaXMg
YmUgMiB3b3JkIGFsaWduZWQuCisgICAgTWFjcm9Bc3NlbWJsZXI6OlNQUmVnaXN0ZXJJRCYgZmxh
Z3NTUFIgPSBkYXRhLmZsYWdzU1BSOworCisjaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyAg
ICBmbGFnc1NQUiA9IFg4NlJlZ2lzdGVyczo6ZWZsYWdzOworICAgIHVpbnRwdHJfdCBmbGFnc01h
c2sgPSAweGM1OworI2VsaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1fVFJBRElUSU9OQUwp
CisgICAgZmxhZ3NTUFIgPSBBUk1SZWdpc3RlcnM6OmFwc3I7CisgICAgdWludHB0cl90IGZsYWdz
TWFzayA9IDB4ZjAwMDAwMDA7CisjZWxpZiBDUFUoQVJNNjQpCisgICAgZmxhZ3NTUFIgPSBBUk02
NFJlZ2lzdGVyczo6bnpjdjsKKyAgICB1aW50cHRyX3QgZmxhZ3NNYXNrID0gMHhmMDAwMDAwMDsK
KyNlbmRpZgorCisgICAgY29tcGlsZUFuZFJ1bjx2b2lkPihbJl0gKENDYWxsSGVscGVycyYgaml0
KSB7CisgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9sb2d1ZSgpOworCisgICAgICAgIC8vIFdy
aXRlIGV4cGVjdGVkIHZhbHVlcyBpbnRvIHRoZSByZWdpc3RlcnMuCisgICAgICAgIGppdC5wcm9i
ZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAgYXV0byYgY3B1ID0g
Y29udGV4dC0+Y3B1OworICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKKworICAgICAgICAg
ICAgLy8gUHJlc2VydmUgdGhlIG9yaWdpbmFsIENQVSBzdGF0ZS4KKyAgICAgICAgICAgIGZvciAo
YXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBl
cnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKKyAgICAgICAgICAgICAgICBv
cmlnaW5hbFN0YXRlLmdwcihpZCkgPSBjcHUuZ3ByKGlkKTsKKyAgICAgICAgICAgICAgICBpZiAo
aXNTcGVjaWFsR1BSKGlkKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICAgICAgY3B1LmdwcihpZCkgPSB0ZXN0V29yZChzdGF0aWNfY2FzdDxpbnQ+KGlkKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZp
cnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlk
ID0gbmV4dElEKGlkKSkgeworICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuZnByKGlkKSA9
IGNwdS5mcHIoaWQpOworICAgICAgICAgICAgICAgIGNwdS5mcHIoaWQpID0gYml0d2lzZV9jYXN0
PGRvdWJsZT4odGVzdFdvcmQ2NChpZCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3Jp
Z2luYWxTdGF0ZS5zcHIoZmxhZ3NTUFIpID0gY3B1LnNwcihmbGFnc1NQUik7CisgICAgICAgICAg
ICBtb2RpZmllZEZsYWdzID0gb3JpZ2luYWxTdGF0ZS5zcHIoZmxhZ3NTUFIpIF4gZmxhZ3NNYXNr
OworICAgICAgICAgICAgY3B1LnNwcihmbGFnc1NQUikgPSBtb2RpZmllZEZsYWdzOworCisgICAg
ICAgICAgICBDSEVDS19FUShyZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LT5pbml0aWFs
aXplU3RhY2tGdW5jdGlvbiksIDApOworCisgICAgICAgICAgICAvLyBQcmVwYXJlIGZvciBpbml0
aWFsaXplU3RhY2sgY2FsbGJhY2suCisgICAgICAgICAgICBjb250ZXh0LT5pbml0aWFsaXplU3Rh
Y2tGdW5jdGlvbiA9IGZpbGxTdGFjazsKKyAgICAgICAgICAgIGNvbnRleHQtPmluaXRpYWxpemVT
dGFja0FyZyA9ICZkYXRhOworCisgICAgICAgICAgICAvLyBFbnN1cmUgdGhhdCB3ZSdsbCBiZSB3
cml0aW5nIG92ZXIgdGhlIHJlZ2lvbnMgb2YgdGhlIHN0YWNrIHdoZXJlIHRoZSBQcm9iZUNvbnRl
eHQgaXMuCisgICAgICAgICAgICBvcmlnaW5hbFNQID0gY3B1LnNwKCk7CisgICAgICAgICAgICBu
ZXdTUCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Kj4oY29udGV4dCkgLSBudW1iZXJPZkV4
dHJhRW50cmllc1RvV3JpdGU7CisgICAgICAgICAgICBjcHUuc3AoKSA9IG5ld1NQOworICAgICAg
ICB9KTsKKworICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSByZWdpc3RlcnMgYW5kIHN0YWNr
IGhhdmUgdGhlIGV4cGVjdGVkIHZhbHVlcy4KKyAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVD
b250ZXh0KiBjb250ZXh0KSB7CisgICAgICAgICAgICBhdXRvJiBjcHUgPSBjb250ZXh0LT5jcHU7
CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOworCisgICAgICAgICAgICAvLyBWYWxpZGF0
ZSB0aGUgcmVnaXN0ZXIgdmFsdWVzLgorICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxI
ZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVy
KCk7IGlkID0gbmV4dElEKGlkKSkgeworICAgICAgICAgICAgICAgIGlmIChpc0ZQKGlkKSkgewor
ICAgICAgICAgICAgICAgICAgICBDSEVDS19FUShjcHUuZ3ByKGlkKSwgb3JpZ2luYWxTdGF0ZS5n
cHIoaWQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxHUFIoaWQpKQorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUShjcHUuZ3ByKGlkKSwgdGVz
dFdvcmQoaWQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IEND
YWxsSGVscGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQ
UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKQorICAgICAgICAgICAgICAgIENIRUNLX0VRKGNw
dS5mcHI8dWludDY0X3Q+KGlkKSwgdGVzdFdvcmQ2NChpZCkpOworICAgICAgICAgICAgQ0hFQ0tf
RVEoY3B1LnNwcihmbGFnc1NQUiksIG1vZGlmaWVkRmxhZ3MpOworICAgICAgICAgICAgQ0hFQ0tf
RVEoY3B1LnNwKCksIG5ld1NQKTsKKworICAgICAgICAgICAgLy8gVmFsaWRhdGUgdGhlIHN0YWNr
IHdpdGggdmFsdWVzLgorICAgICAgICAgICAgdWludHB0cl90KiBwID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3QqPihuZXdTUCk7CisgICAgICAgICAgICBpbnQgY291bnQgPSAwOworICAgICAg
ICAgICAgd2hpbGUgKHAgPCByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCo+KG9yaWdpbmFsU1Ap
KQorICAgICAgICAgICAgICAgIENIRUNLX0VRKCpwKyssIHRlc3RXb3JkKGNvdW50KyspKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgc3RhdGUuCisgICAg
ICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAg
YXV0byYgY3B1ID0gY29udGV4dC0+Y3B1OworICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsK
KyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3Rlcigp
OyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAoaXNTcGVjaWFsR1BSKGlkKSkKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICAgICAgY3B1LmdwcihpZCkgPSBvcmlnaW5hbFN0YXRl
LmdwcihpZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2Fs
bEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJl
Z2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkKKyAgICAgICAgICAgICAgICBjcHUuZnByKGlkKSA9
IG9yaWdpbmFsU3RhdGUuZnByKGlkKTsKKyAgICAgICAgICAgIGNwdS5zcHIoZmxhZ3NTUFIpID0g
b3JpZ2luYWxTdGF0ZS5zcHIoZmxhZ3NTUFIpOworICAgICAgICAgICAgY3B1LnNwKCkgPSBvcmln
aW5hbFNQOworICAgICAgICB9KTsKKworICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKKyAgICAgICAgaml0LnJldCgpOworICAgIH0pOworCisgICAgQ0hFQ0tfRVEocHJvYmVDYWxs
Q291bnQsIDMpOworfQorCiAjZGVmaW5lIFJVTih0ZXN0KSBkbyB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgIGlmICghc2hvdWxkUnVuKCN0ZXN0KSkgICAgICAgICAgICAgICAg
ICBcCiAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBA
IC01NDAsNiArNjk0LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0
ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250ZXh0T25TdGFjaygp
KTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXJUb05CeXRlc0JlbG93U1Ao
KSk7CiAgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIoKSk7CisgICAgUlVO
KHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tXaXRoQ2FsbGJhY2soKSk7CiAKICAgICBpZiAodGFza3Mu
aXNFbXB0eSgpKQogICAgICAgICB1c2FnZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318278</attachid>
            <date>2017-08-16 11:42:05 -0700</date>
            <delta_ts>2017-08-16 13:12:29 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175617.patch</filename>
            <type>text/plain</type>
            <size>63385</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2IEBA
CisyMDE3LTA4LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBF
bmhhbmNlIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpIHRvIHN1cHBvcnQgYW4gaW5pdGlhbGl6ZVN0
YWNrRnVuY3Rpb24gY2FsbGJhY2suCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzU2MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzOTEyMTA0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggYWRkcyBhIG5ldyBmZWF0dXJlIHRvIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpIHdoZXJlIHRo
ZSBwcm9iZSBmdW5jdGlvbgorICAgICAgICBjYW4gcHJvdmlkZSBhIFByb2JlRnVuY3Rpb24gY2Fs
bGJhY2sgdG8gZmlsbCBpbiBzdGFjayB2YWx1ZXMgYWZ0ZXIgdGhlIHN0YWNrCisgICAgICAgIHBv
aW50ZXIgaGFzIGJlZW4gYWRqdXN0ZWQuICBUaGUgcHJvYmUgZnVuY3Rpb24gY2FuIHVzZSB0aGlz
IGZlYXR1cmUgYXMgZm9sbG93czoKKworICAgICAgICAxLiBTZXQgdGhlIG5ldyBzcCB2YWx1ZSBp
biB0aGUgUHJvYmVDb250ZXh0J3MgQ1BVU3RhdGUuCisKKyAgICAgICAgMi4gU2V0IHRoZSBQcm9i
ZUNvbnRleHQncyBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiB0byBhIFByb2JlRnVuY3Rpb24gY2Fs
bGJhY2sKKyAgICAgICAgICAgd2hpY2ggd2lsbCBkbyB0aGUgd29yayBvZiBmaWxsaW5nIGluIHRo
ZSBzdGFjayB2YWx1ZXMgYWZ0ZXIgdGhlIHByb2JlCisgICAgICAgICAgIHRyYW1wb2xpbmUgaGFz
IGFkanVzdGVkIHRoZSBtYWNoaW5lIHN0YWNrIHBvaW50ZXIuCisKKyAgICAgICAgMy4gU2V0IHRo
ZSBQcm9iZUNvbnRleHQncyBpbml0aWFsaXplU3RhY2tBcmdzIHRvIGFueSB2YWx1ZSB0aGF0IHRo
ZSBjbGllbnQgd2FudHMKKyAgICAgICAgICAgdG8gcGFzcyB0byB0aGUgaW5pdGlhbGl6ZVN0YWNr
RnVuY3Rpb24gY2FsbGJhY2suCisKKyAgICAgICAgNC4gUmV0dXJuIGZyb20gdGhlIHByb2JlIGZ1
bmN0aW9uLgorCisgICAgICAgIFVwb24gcmV0dXJuaW5nIGZyb20gdGhlIHByb2JlIGZ1bmN0aW9u
LCB0aGUgcHJvYmUgdHJhbXBvbGluZSB3aWxsIGFkanVzdCB0aGUKKyAgICAgICAgdGhlIHN0YWNr
IHBvaW50ZXIgYmFzZWQgb24gdGhlIHNwIHZhbHVlIGluIENQVVN0YXRlLiAgSWYgaW5pdGlhbGl6
ZVN0YWNrRnVuY3Rpb24KKyAgICAgICAgaXMgbm90IHNldCwgdGhlIHByb2JlIHRyYW1wb2xpbmUg
d2lsbCByZXN0b3JlIHJlZ2lzdGVycyBhbmQgcmV0dXJuIHRvIGl0cyBjYWxsZXIuCisKKyAgICAg
ICAgSWYgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gaXMgc2V0LCB0aGUgdHJhbXBvbGluZSB3aWxs
IG1vdmUgdGhlIFByb2JlQ29udGV4dAorICAgICAgICBiZXlvbmQgdGhlIHJhbmdlIG9mIHRoZSBz
dGFjayBwb2ludGVyIGkuZS4gaXQgd2lsbCBwbGFjZSB0aGUgbmV3IFByb2JlQ29udGV4dCBhdAor
ICAgICAgICBhbiBhZGRyZXNzIGxvd2VyIHRoYW4gd2hlcmUgQ1BVU3RhdGUuc3AoKSBwb2ludHMu
ICBUaGlzIGVuc3VyZXMgdGhhdCB0aGUKKyAgICAgICAgUHJvYmVDb250ZXh0IHdpbGwgbm90IGJl
IHRyYXNoZWQgYnkgdGhlIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIHdoZW4gaXQgd3JpdGVzIHRv
CisgICAgICAgIHRoZSBzdGFjay4gIFRoZW4sIHRoZSB0cmFtcG9saW5lIHdpbGwgY2FsbCBiYWNr
IHRvIHRoZSBpbml0aWFsaXplU3RhY2tGdW5jdGlvbgorICAgICAgICBQcm9iZUZ1bmN0aW9uIHRv
IGxldCBpdCBmaWxsIGluIHRoZSBzdGFjayB2YWx1ZXMgYXMgZGVzaXJlZC4gIFRoZQorICAgICAg
ICBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBQcm9iZUZ1bmN0aW9uIHdpbGwgYmUgcGFzc2VkIHRo
ZSBtb3ZlZCBQcm9iZUNvbnRleHQgYXQKKyAgICAgICAgdGhlIG5ldyBsb2NhdGlvbi4KKworICAg
ICAgICBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBtYXkgbm93IHdyaXRlIHRvIHRoZSBzdGFjayBh
dCBhZGRyZXNzZXMgZ3JlYXRlciBvcgorICAgICAgICBlcXVhbCB0byBDUFVTdGF0ZS5zcCgpLCBi
dXQgbm90IGJlbG93IHRoYXQuICBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBpcyBhbHNvCisgICAg
ICAgIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBDUFVTdGF0ZS5zcCgpLiAgSWYgdGhlIGluaXRpYWxp
emVTdGFja0Z1bmN0aW9uIGRvZXMgbm90CisgICAgICAgIGFiaWRlIGJ5IHRoZXNlIHJ1bGVzLCB0
aGVuIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCwgYW5kIGJhZCB0aGluZ3MgbWF5IGhhcHBlbi4KKwor
ICAgICAgICBGb3IgZnV0dXJlIHJlZmVyZW5jZSwgc29tZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxz
IHRoYXQgdGhpcyBwYXRjaCBuZWVkZWQgdG8KKyAgICAgICAgYmUgbWluZGZ1bCBvZjoKKworICAg
ICAgICAxLiBXaGVuIHRoZSBwcm9iZSB0cmFtcG9saW5lIGFsbG9jYXRlcyBzdGFjayBzcGFjZSBm
b3IgdGhlIFByb2JlQ29udGV4dCwgaXQKKyAgICAgICAgICAgc2hvdWxkIGluY2x1ZGUgT1VUX1NJ
WkUgYXMgd2VsbC4gIFRoaXMgZW5zdXJlcyB0aGF0IGl0IGRvZXNuJ3QgaGF2ZSB0byBtb3ZlCisg
ICAgICAgICAgIHRoZSBQcm9iZUNvbnRleHQgb24gZXhpdCBpZiB0aGUgcHJvYmUgZnVuY3Rpb24g
ZGlkbid0IGNoYW5nZSB0aGUgc3AuCisKKyAgICAgICAgMi4gSWYgdGhlIHRyYW1wb2xpbmUgaGFz
IHRvIG1vdmUgdGhlIFByb2JlQ29udGV4dCwgaXQgbmVlZHMgdG8gcG9pbnQgdGhlIG1hY2hpbmUK
KyAgICAgICAgICAgc3AgdG8gbmV3IFByb2JlQ29udGV4dCBmaXJzdCBiZWZvcmUgY29weWluZyBv
dmVyIHRoZSBQcm9iZUNvbnRleHQgZGF0YS4gIFRoaXMKKyAgICAgICAgICAgcHJvdGVjdHMgdGhl
IG5ldyBQcm9iZUNvbnRleHQgZnJvbSBwb3NzaWJseSBiZWluZyB0cmFzaGVkIGJ5IGludGVycnVw
dHMuCisKKyAgICAgICAgMy4gV2hlbiBjb21wdXRpbmcgdGhlIG5ldyBhZGRyZXNzIG9mIFByb2Jl
Q29udGV4dCB0byBtb3ZlIHRvLCB3ZSBuZWVkIHRvIG1ha2UKKyAgICAgICAgICAgc3VyZSB0aGF0
IGl0IGlzIHByb3Blcmx5IGFsaWduZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHN0YWNrIEFCSSByZXF1
aXJlbWVudHMKKyAgICAgICAgICAgKGp1c3QgbGlrZSB3ZSBkaWQgd2hlbiB3ZSBhbGxvY2F0ZWQg
dGhlIFByb2JlQ29udGV4dCBvbiBlbnRyeSB0byB0aGUKKyAgICAgICAgICAgcHJvYmUgdHJhbXBv
bGluZSkuCisKKyAgICAgICAgNC4gV2hlbiBjb3B5aW5nIHRoZSBQcm9iZUNvbnRleHQgdG8gaXRz
IG5ldyBsb2NhdGlvbiwgdGhlIHRyYW1wb2xpbmUgc2hvdWxkCisgICAgICAgICAgIGFsd2F5cyBj
b3B5IHdvcmRzIGZyb20gbG93IGFkZHJlc3NlcyB0byBoaWdoIGFkZHJlc3Nlcy4gIFRoaXMgaXMg
YmVjYXVzZSBpZgorICAgICAgICAgICB3ZSdyZSBtb3ZpbmcgdGhlIFByb2JlQ29udGV4dCwgd2Un
cmUgYWx3YXlzIGJlIG1vdmluZyBpdCB0byBhIGxvd2VyIGFkZHJlc3MuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uY3BwOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNw
cDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6CisgICAgICAg
ICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcDoKKyAgICAgICAgKiBhc3Nl
bWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJT
KToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIpOgorICAgICAg
ICAoSlNDOjpmaWxsU3RhY2spOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVNb2RpZmllc1N0YWNr
V2l0aENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6cnVuKToKKwogMjAxNy0wOC0xNiAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBKU0NPbmx5IEFS
TSBidWlsZGJvdHMgYWZ0ZXIgcjIyMDA0NyBhbmQgcjIyMDE4NApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjIw
Nzk4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xODQyLDYgKzE4NDIsMzcgQEAgcHVibGljOgogICAgIC8vIFRo
ZSBQcm9iZUNvbnRleHQgaXMgc3RhY2sgYWxsb2NhdGVkIGFuZCBpcyBvbmx5IHZhbGlkIGZvciB0
aGUgZHVyYXRpb24KICAgICAvLyBvZiB0aGUgY2FsbCB0byB0aGUgdXNlciBwcm9iZSBmdW5jdGlv
bi4KICAgICAvLworICAgIC8vIFRoZSBwcm9iZSBmdW5jdGlvbiBtYXkgY2hvb3NlIHRvIG1vdmUg
dGhlIHN0YWNrIHBvaW50ZXIgKGluIGFueSBkaXJlY3Rpb24pLgorICAgIC8vIFRvIGRvIHRoaXMs
IHRoZSBwcm9iZSBmdW5jdGlvbiBuZWVkcyB0byBzZXQgdGhlIG5ldyBzcCB2YWx1ZSBpbiB0aGUg
Q1BVU3RhdGUuCisgICAgLy8KKyAgICAvLyBUaGUgcHJvYmUgZnVuY3Rpb24gbWF5IGFsc28gY2hv
b3NlIHRvIGZpbGwgc3RhY2sgc3BhY2Ugd2l0aCBzb21lIHZhbHVlcy4KKyAgICAvLyBUbyBkbyB0
aGlzLCB0aGUgcHJvYmUgZnVuY3Rpb24gbXVzdCBmaXJzdDoKKyAgICAvLyAxLiBTZXQgdGhlIG5l
dyBzcCB2YWx1ZSBpbiB0aGUgUHJvYmVDb250ZXh0J3MgQ1BVU3RhdGUuCisgICAgLy8gMi4gU2V0
IHRoZSBQcm9iZUNvbnRleHQncyBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiB0byBhIFByb2JlRnVu
Y3Rpb24gY2FsbGJhY2sKKyAgICAvLyAgICB3aGljaCB3aWxsIGRvIHRoZSB3b3JrIG9mIGZpbGxp
bmcgaW4gdGhlIHN0YWNrIHZhbHVlcyBhZnRlciB0aGUgcHJvYmUKKyAgICAvLyAgICB0cmFtcG9s
aW5lIGhhcyBhZGp1c3RlZCB0aGUgbWFjaGluZSBzdGFjayBwb2ludGVyLgorICAgIC8vIDMuIFNl
dCB0aGUgUHJvYmVDb250ZXh0J3MgaW5pdGlhbGl6ZVN0YWNrQXJncyB0byBhbnkgdmFsdWUgdGhh
dCB0aGUgY2xpZW50IHdhbnRzCisgICAgLy8gICAgdG8gcGFzcyB0byB0aGUgaW5pdGlhbGl6ZVN0
YWNrRnVuY3Rpb24gY2FsbGJhY2suCisgICAgLy8gNC4gUmV0dXJuIGZyb20gdGhlIHByb2JlIGZ1
bmN0aW9uLgorICAgIC8vCisgICAgLy8gVXBvbiByZXR1cm5pbmcgZnJvbSB0aGUgcHJvYmUgZnVu
Y3Rpb24sIHRoZSBwcm9iZSB0cmFtcG9saW5lIHdpbGwgYWRqdXN0IHRoZQorICAgIC8vIHRoZSBz
dGFjayBwb2ludGVyIGJhc2VkIG9uIHRoZSBzcCB2YWx1ZSBpbiBDUFVTdGF0ZS4gSWYgaW5pdGlh
bGl6ZVN0YWNrRnVuY3Rpb24KKyAgICAvLyBpcyBub3Qgc2V0LCB0aGUgcHJvYmUgdHJhbXBvbGlu
ZSB3aWxsIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gdG8gaXRzIGNhbGxlci4KKyAgICAv
LworICAgIC8vIElmIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIGlzIHNldCwgdGhlIHRyYW1wb2xp
bmUgd2lsbCBtb3ZlIHRoZSBQcm9iZUNvbnRleHQKKyAgICAvLyBiZXlvbmQgdGhlIHJhbmdlIG9m
IHRoZSBzdGFjayBwb2ludGVyIGkuZS4gaXQgd2lsbCBwbGFjZSB0aGUgbmV3IFByb2JlQ29udGV4
dCBhdAorICAgIC8vIGFuIGFkZHJlc3MgbG93ZXIgdGhhbiB3aGVyZSBDUFVTdGF0ZS5zcCgpIHBv
aW50cy4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlCisgICAgLy8gUHJvYmVDb250ZXh0IHdpbGwgbm90
IGJlIHRyYXNoZWQgYnkgdGhlIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIHdoZW4gaXQgd3JpdGVz
IHRvCisgICAgLy8gdGhlIHN0YWNrLiBUaGVuLCB0aGUgdHJhbXBvbGluZSB3aWxsIGNhbGwgYmFj
ayB0byB0aGUgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24KKyAgICAvLyBQcm9iZUZ1bmN0aW9uIHRv
IGxldCBpdCBmaWxsIGluIHRoZSBzdGFjayB2YWx1ZXMgYXMgZGVzaXJlZC4gVGhlCisgICAgLy8g
aW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gUHJvYmVGdW5jdGlvbiB3aWxsIGJlIHBhc3NlZCB0aGUg
bW92ZWQgUHJvYmVDb250ZXh0IGF0CisgICAgLy8gdGhlIG5ldyBsb2NhdGlvbi4KKyAgICAvLwor
ICAgIC8vIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIG1heSBub3cgd3JpdGUgdG8gdGhlIHN0YWNr
IGF0IGFkZHJlc3NlcyBncmVhdGVyIG9yCisgICAgLy8gZXF1YWwgdG8gQ1BVU3RhdGUuc3AoKSwg
YnV0IG5vdCBiZWxvdyB0aGF0LiBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBpcyBhbHNvCisgICAg
Ly8gbm90IGFsbG93ZWQgdG8gY2hhbmdlIENQVVN0YXRlLnNwKCkuIElmIHRoZSBpbml0aWFsaXpl
U3RhY2tGdW5jdGlvbiBkb2VzIG5vdAorICAgIC8vIGFiaWRlIGJ5IHRoZXNlIHJ1bGVzLCB0aGVu
IGJlaGF2aW9yIGlzIHVuZGVmaW5lZCwgYW5kIGJhZCB0aGluZ3MgbWF5IGhhcHBlbi4KKyAgICAv
LwogICAgIC8vIE5vdGU6IHRoaXMgdmVyc2lvbiBvZiBwcm9iZSgpIHNob3VsZCBiZSBpbXBsZW1l
bnRlZCBieSB0aGUgdGFyZ2V0IHNwZWNpZmljCiAgICAgLy8gTWFjcm9Bc3NlbWJsZXIuCiAgICAg
dm9pZCBwcm9iZShQcm9iZUZ1bmN0aW9uLCB2b2lkKiBhcmcpOwpAQCAtMTk5NSw2ICsyMDI2LDgg
QEAgc3RydWN0IFByb2JlQ29udGV4dCB7CiAKICAgICBQcm9iZUZ1bmN0aW9uIHByb2JlRnVuY3Rp
b247CiAgICAgdm9pZCogYXJnOworICAgIFByb2JlRnVuY3Rpb24gaW5pdGlhbGl6ZVN0YWNrRnVu
Y3Rpb247CisgICAgdm9pZCogaW5pdGlhbGl6ZVN0YWNrQXJnOwogICAgIENQVVN0YXRlIGNwdTsK
IAogICAgIC8vIENvbnZlbmllbmNlIG1ldGhvZHM6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAJKHJldmlz
aW9uIDIyMDc5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk02NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDggKzQzLDEwIEBAIHVzaW5nIG5h
bWVzcGFjZSBBUk02NFJlZ2lzdGVyczsKICNkZWZpbmUgUFRSX1NJWkUgOAogI2RlZmluZSBQUk9C
RV9QUk9CRV9GVU5DVElPTl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKICNkZWZpbmUgUFJPQkVfQVJH
X09GRlNFVCAoMSAqIFBUUl9TSVpFKQorI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9O
X09GRlNFVCAoMiAqIFBUUl9TSVpFKQorI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0FSR19PRkZT
RVQgKDMgKiBQVFJfU0laRSkKIAotI2RlZmluZSBQUk9CRV9GSVJTVF9HUFJFR19PRkZTRVQgKDIg
KiBQVFJfU0laRSkKKyNkZWZpbmUgUFJPQkVfRklSU1RfR1BSRUdfT0ZGU0VUICg0ICogUFRSX1NJ
WkUpCiAKICNkZWZpbmUgR1BSRUdfU0laRSA4CiAjZGVmaW5lIFBST0JFX0NQVV9YMF9PRkZTRVQg
KFBST0JFX0ZJUlNUX0dQUkVHX09GRlNFVCArICgwICogR1BSRUdfU0laRSkpCkBAIC0xMzEsNiAr
MTMzLDggQEAgdXNpbmcgbmFtZXNwYWNlIEFSTTY0UmVnaXN0ZXJzOwogI2RlZmluZSBQUk9CRV9P
RkZTRVRPRih4KSBvZmZzZXRvZihzdHJ1Y3QgUHJvYmVDb250ZXh0LCB4KQogQ09NUElMRV9BU1NF
UlQoUFJPQkVfT0ZGU0VUT0YocHJvYmVGdW5jdGlvbikgPT0gUFJPQkVfUFJPQkVfRlVOQ1RJT05f
T0ZGU0VULCBQcm9iZUNvbnRleHRfcHJvYmVGdW5jdGlvbl9vZmZzZXRfbWF0Y2hlc19jdGlNYXNt
UHJvYmVUcmFtcG9saW5lKTsKIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGFyZykgPT0g
UFJPQkVfQVJHX09GRlNFVCwgUHJvYmVDb250ZXh0X2FyZ19vZmZzZXRfbWF0Y2hlc19jdGlNYXNt
UHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGluaXRpYWxp
emVTdGFja0Z1bmN0aW9uKSA9PSBQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCwgUHJv
YmVDb250ZXh0X2luaXRpYWxpemVTdGFja0Z1bmN0aW9uX29mZnNldF9tYXRjaGVzX2N0aU1hc21Q
cm9iZVRyYW1wb2xpbmUpOworQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoaW5pdGlhbGl6
ZVN0YWNrQXJnKSA9PSBQUk9CRV9JTklUX1NUQUNLX0FSR19PRkZTRVQsIFByb2JlQ29udGV4dF9p
bml0aWFsaXplU3RhY2tBcmdfb2Zmc2V0X21hdGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7
CiAKIENPTVBJTEVfQVNTRVJUKCEoUFJPQkVfQ1BVX1gwX09GRlNFVCAmIDB4NyksIFByb2JlQ29u
dGV4dF9jcHVfcjBfb2Zmc2V0X3Nob3VsZF9iZV84X2J5dGVfYWxpZ25lZCk7CiAKQEAgLTIxMiw2
ICsyMTYsNyBAQCBDT01QSUxFX0FTU0VSVChzaXplb2YoUHJvYmVDb250ZXh0KSA9PSBQCiAKIC8v
IENvbmRpdGlvbnMgZm9yIHVzaW5nIGxkcCBhbmQgc3RwLgogc3RhdGljX2Fzc2VydChQUk9CRV9D
UFVfUENfT0ZGU0VUID09IFBST0JFX0NQVV9TUF9PRkZTRVQgKyBQVFJfU0laRSwgIlBST0JFX0NQ
VV9TUF9PRkZTRVQgYW5kIFBST0JFX0NQVV9QQ19PRkZTRVQgbXVzdCBiZSBhZGphY2VudCIpOwor
c3RhdGljX2Fzc2VydCghKFBST0JFX1NJWkVfUExVU19FWFRSQVMgJiAweGYpLCAiUFJPQkVfU0la
RV9QTFVTX0VYVFJBUyBzaG91bGQgYmUgMTYgYnl0ZSBhbGlnbmVkIik7IC8vIHRoZSBQcm9iZUNv
bnRleHQgY29weWluZyBjb2RlIHJlbGllcyBvbiB0aGlzLgogCiAjdW5kZWYgUFJPQkVfT0ZGU0VU
T0YKIApAQCAtMjY5LDcgKzI3NCw3IEBAIHN0YXRpY19hc3NlcnQoT1VUX1gyOF9PRkZTRVQgPT0g
b2Zmc2V0b2YKIHN0YXRpY19hc3NlcnQoT1VUX0ZQX09GRlNFVCA9PSBvZmZzZXRvZihPdXRnb2lu
Z1Byb2JlUmVjb3JkLCBmcCksICJPVVRfRlBfT0ZGU0VUIGlzIGluY29ycmVjdCIpOwogc3RhdGlj
X2Fzc2VydChPVVRfTFJfT0ZGU0VUID09IG9mZnNldG9mKE91dGdvaW5nUHJvYmVSZWNvcmQsIGxy
KSwgIk9VVF9MUl9PRkZTRVQgaXMgaW5jb3JyZWN0Iik7CiBzdGF0aWNfYXNzZXJ0KE9VVF9TSVpF
ID09IHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3JkKSwgIk9VVF9TSVpFIGlzIGluY29ycmVjdCIp
Owotc3RhdGljX2Fzc2VydCghKHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3JkKSAmIDB4ZiksICJJ
bmNvbWluZ1Byb2JlU3RhY2sgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQiKTsKK3N0YXRpY19hc3Nl
cnQoIShzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkgJiAweGYpLCAiT3V0Z29pbmdQcm9iZVN0
YWNrIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkIik7CiAKICNkZWZpbmUgU1RBVEVfUENfTk9UX0NI
QU5HRUQgMAogI2RlZmluZSBTVEFURV9QQ19DSEFOR0VEIDEKQEAgLTI5MCw5ICsyOTUsOSBAQCBh
c20gKAogICAgICJtb3YgICAgICAgeDI2LCBzcCIgIlxuIgogICAgICJtb3YgICAgICAgeDI3LCBz
cCIgIlxuIgogCi0gICAgInN1YiAgICAgICB4MjcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX1NJWkVfUExVU19FWFRSQVMpICJcbiIKKyAgICAic3ViICAgICAgIHgyNywgeDI3LCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfU0laRV9QTFVTX0VYVFJBUyArIE9VVF9TSVpFKSAi
XG4iCiAgICAgImJpYyAgICAgICB4MjcsIHgyNywgIzB4ZiIgIlxuIiAvLyBUaGUgQVJNIEVBQkkg
c3BlY2lmaWVzIHRoYXQgdGhlIHN0YWNrIG5lZWRzIHRvIGJlIDE2IGJ5dGUgYWxpZ25lZC4KLSAg
ICAibW92ICAgICAgIHNwLCB4MjciICJcbiIgLy8gTWFrZSBzdXJlIGludGVycnVwdHMgZG9uJ3Qg
b3Zlci13cml0ZSBvdXIgZGF0YSBvbiB0aGUgc3RhY2suCisgICAgIm1vdiAgICAgICBzcCwgeDI3
IiAiXG4iIC8vIFNldCB0aGUgc3AgdG8gcHJvdGVjdCB0aGUgUHJvYmVDb250ZXh0IGZyb20gaW50
ZXJydXB0cyBiZWZvcmUgd2UgaW5pdGlhbGl6ZSBpdC4KIAogICAgICJzdHAgICAgICAgeDAsIHgx
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDBfT0ZGU0VUKSAiXSIgIlxu
IgogICAgICJtcnMgICAgICAgeDAsIG56Y3YiICJcbiIgLy8gUHJlbG9hZCBuemN2LgpAQCAtMzUw
LDExICszNTUsNTIgQEAgYXNtICgKIAogICAgICJtb3YgICAgICAgeDI3LCBzcCIgIlxuIiAvLyBT
YXZlIHRoZSBQcm9iZUNvbnRleHQqIGluIGEgY2FsbGVlIHNhdmVkIHJlZ2lzdGVyLgogCisgICAg
Ly8gSW5pdGlhbGl6ZSBQcm9iZUNvbnRleDo6aW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gdG8gemVy
by4KKyAgICAic3RyICAgICAgIHh6ciwgW3gyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgorCiAgICAgLy8gTm90ZTogd2Ug
aGF2ZW4ndCBjaGFuZ2VkIHRoZSB2YWx1ZSBvZiBmcC4gSGVuY2UsIGl0IGlzIHN0aWxsIHBvaW50
aW5nIHRvIHRoZSBmcmFtZSBvZgogICAgIC8vIHRoZSBjYWxsZXIgb2YgdGhlIHByb2JlICh3aGlj
aCBpcyB3aGF0IHdlIHdhbnQgaW4gb3JkZXIgdG8gcGxheSBuaWNlIHdpdGggZGVidWdnZXJzIGUu
Zy4gbGxkYikuCiAgICAgIm1vdiAgICAgICB4MCwgc3AiICJcbiIgLy8gU2V0IHRoZSBQcm9iZUNv
bnRleHQqIGFyZy4KICAgICAiYmxyICAgICAgIHgyIiAiXG4iIC8vIENhbGwgdGhlIHByb2JlIGhh
bmRsZXIgZnVuY3Rpb24gKGxvYWRlZCBpbnRvIHgyIGFib3ZlKS4KIAorICAgIC8vIE1ha2Ugc3Vy
ZSB0aGUgUHJvYmVDb250ZXh0IGlzIGVudGlyZWx5IGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9p
bnRlciBzbworICAgIC8vIHRoYXQgcmVnaXN0ZXIgdmFsdWVzIGFyZSBzdGlsbCBwcmVzZXJ2ZWQg
d2hlbiB3ZSBjYWxsIHRoZSBpbml0aWFsaXplU3RhY2sKKyAgICAvLyBmdW5jdGlvbi4KKyAgICAi
bGRyICAgICAgIHgxLCBbeDI3LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09G
RlNFVCkgIl0iICJcbiIgLy8gUmVzdWx0IHNwLgorICAgICJhZGQgICAgICAgeDIsIHgyNywgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJWkVfUExVU19FWFRSQVMgKyBPVVRfU0laRSkgIlxu
IiAvLyBFbmQgb2YgUHJvdmVDb250ZXh0ICsgYnVmZmVyLgorICAgICJjbXAgICAgICAgeDEsIHgy
IiAiXG4iCisgICAgImJnZSAgICAgIiBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJh
bXBvbGluZVByb2JlQ29udGV4dElzU2FmZSkgIlxuIgorCisgICAgLy8gQWxsb2NhdGUgYSBzYWZl
IHBsYWNlIG9uIHRoZSBzdGFjayBiZWxvdyB0aGUgcmVzdWx0IHN0YWNrIHBvaW50ZXIgdG8gc3Rh
c2ggdGhlIFByb2JlQ29udGV4dC4KKyAgICAic3ViICAgICAgIHgxLCB4MSwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX1NJWkVfUExVU19FWFRSQVMgKyBPVVRfU0laRSkgIlxuIgorICAgICJi
aWMgICAgICAgeDEsIHgxLCAjMHhmIiAiXG4iIC8vIFRoZSBBUk0gRUFCSSBzcGVjaWZpZXMgdGhh
dCB0aGUgc3RhY2sgbmVlZHMgdG8gYmUgMTYgYnl0ZSBhbGlnbmVkLgorICAgICJtb3YgICAgICAg
c3AsIHgxIiAiXG4iIC8vIFNldCB0aGUgbmV3IHNwIHRvIHByb3RlY3QgdGhhdCBtZW1vcnkgZnJv
bSBpbnRlcnJ1cHRzIGJlZm9yZSB3ZSBjb3B5IHRoZSBQcm9iZUNvbnRleHQuCisKKyAgICAvLyBD
b3B5IHRoZSBQcm9iZUNvbnRleHQgdG8gdGhlIHNhZmUgcGxhY2UuCisgICAgLy8gTm90ZTogd2Ug
aGF2ZSB0byBjb3B5IGZyb20gbG93IGFkZHJlc3MgdG8gaGlnaGVyIGFkZHJlc3MgYmVjYXVzZSB3
ZSdyZSBtb3ZpbmcgdGhlCisgICAgLy8gUHJvYmVDb250ZXh0IHRvIGEgbG93ZXIgYWRkcmVzcy4K
KyAgICAibW92ICAgICAgIHg1LCB4MjciICJcbiIKKyAgICAibW92ICAgICAgIHg2LCB4MSIgIlxu
IgorICAgICJhZGQgICAgICAgeDcsIHgyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJ
WkVfUExVU19FWFRSQVMpICJcbiIKKworICAgIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJv
YmVUcmFtcG9saW5lQ29weUxvb3ApICI6IiAiXG4iCisgICAgImxkcCAgICAgICB4MywgeDQsIFt4
NV0sICMxNiIgIlxuIgorICAgICJzdHAgICAgICAgeDMsIHg0LCBbeDZdLCAjMTYiICJcbiIKKyAg
ICAiY21wICAgICAgIHg1LCB4NyIgIlxuIgorICAgICJibHQgICAgICIgTE9DQUxfTEFCRUxfU1RS
SU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVDb3B5TG9vcCkgIlxuIgorCisgICAgIm1vdiAgICAg
ICB4MjcsIHgxIiAiXG4iCisKKyAgICAvLyBDYWxsIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIGlm
IHByZXNlbnQuCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVQ
cm9iZUNvbnRleHRJc1NhZmUpICI6IiAiXG4iCisgICAgImxkciAgICAgICB4MiwgW3gyNywgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiXSIg
IlxuIgorICAgICJjYnogICAgICAgeDIsICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9i
ZVRyYW1wb2xpbmVSZXN0b3JlUmVnaXN0ZXJzKSAiXG4iCisKKyAgICAibW92ICAgICAgIHgwLCB4
MjciICJcbiIgLy8gU2V0IHRoZSBQcm9iZUNvbnRleHQqIGFyZy4KKyAgICAiYmxyICAgICAgIHgy
IiAiXG4iIC8vIENhbGwgdGhlIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIChsb2FkZWQgaW50byB4
MiBhYm92ZSkuCisKKyAgICBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGlu
ZVJlc3RvcmVSZWdpc3RlcnMpICI6IiAiXG4iCisKICAgICAibW92ICAgICAgIHNwLCB4MjciICJc
biIKIAogICAgIC8vIFRvIGVuYWJsZSBwcm9iZXMgdG8gbW9kaWZ5IHJlZ2lzdGVyIHN0YXRlLCB3
ZSBjb3B5IGFsbCByZWdpc3RlcnMKQEAgLTQyOCw0OCArNDc0LDYgQEAgYXNtICgKIAogICAgICJs
ZHIgICAgICAgeDI5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihTQVZFRF9QUk9CRV9SRVRV
Uk5fUENfT0ZGU0VUKSAiXSIgIlxuIiAvLyBQcmVsb2FkIHRoZSBwcm9iZSByZXR1cm4gc2l0ZSBw
Yy4KIAotICAgIC8vIFRoZSBwcm9iZSBoYW5kbGVyIG1heSBoYXZlIG1vdmVkIHRoZSBzcC4gRm9y
IHRoZSByZXR1cm4gcHJvY2Vzcywgd2UgbWF5IG5lZWQKLSAgICAvLyBzcGFjZSBmb3IgMiBPdXRn
b2luZ1Byb2JlUmVjb3JkcyBiZWxvdyB0aGUgZmluYWwgc3AgdmFsdWUuIFdlIG5lZWQgdG8gbWFr
ZQotICAgIC8vIHN1cmUgdGhhdCB0aGUgc3BhY2UgZm9yIHRoZXNlIDIgT3V0Z29pbmdQcm9iZVJl
Y29yZHMgZG8gbm90IG92ZXJsYXAgdGhlCi0gICAgLy8gcmVzdG9yZSB2YWx1ZXMgb2YgdGhlIHJl
Z2lzdGVycy4KLQotICAgIC8vIEFsbCByZXN0b3JlIHZhbHVlcyBhcmUgbG9jYXRlZCBhdCBvZmZz
ZXQgPD0gUFJPQkVfQ1BVX0ZQU1JfT0ZGU0VULiBIZW5jZSwKLSAgICAvLyB3ZSBuZWVkIHRvIG1h
a2Ugc3VyZSB0aGF0IHJlc3VsdGFudCBzcCA+IG9mZnNldCBvZiBmcHNyICsgMiAqIHNpemVvZihP
dXRnb2luZ1Byb2JlUmVjb3JkKS4KLQotICAgICJhZGQgICAgICAgeDI3LCBzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9GUFNSX09GRlNFVCArIDIgKiBPVVRfU0laRSkgIlxuIgot
ICAgICJsZHIgICAgICAgeDI4LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVf
U1BfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJjbXAgICAgICAgeDI4LCB4MjciICJcbiIKLSAgICAi
Ymd0ICAgICAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRmlsbE91
dGdvaW5nUHJvYmVSZWNvcmRzKSAiXG4iCi0KLSAgICAvLyBUaGVyZSBpcyBvdmVybGFwLiBXZSBu
ZWVkIHRvIGNvcHkgdGhlIFByb2JlQ29udGV4dCB0byBhIHNhZmUgYXJlYSBmaXJzdC4KLSAgICAv
LyBMZXQncyBsb2NhdGUgdGhlICJzYWZlIGFyZWEiIGF0IDJ4IHNpemVvZihQcm9iZUNvbnRleHQp
IGJlbG93IHdoZXJlIHRoZSBPdXRnb2luZ1Byb2JlUmVjb3JkcyBhcmUuCi0gICAgLy8gVGhpcyBl
bnN1cmVzIHRoYXQ6Ci0gICAgLy8gMS4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRo
ZSBPdXRnb2luZ1Byb2JlUmVjb3Jkcy4KLSAgICAvLyAyLiBUaGUgc2FmZSBhcmVhIGRvZXMgbm90
IG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dC4KLQotICAgIC8vIHgyOCBhbHJlYWR5IGNvbnRhaW5z
IFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKV0uCi0gICAgInN1
YiAgICAgICB4MjgsIHgyOCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKDIgKiBQUk9CRV9TSVpFKSAi
XG4iCi0KLSAgICAibW92ICAgICAgIHgyNywgc3AiICJcbiIgLy8gU2F2ZSB0aGUgb3JpZ2luYWwg
UHJvYmVDb250ZXh0Ki4KLQotICAgIC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2lu
dHMgdG8gdGhlIHNhZmUgYXJlYS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlCi0gICAgLy8gc2FmZSBh
cmVhIGlzIHByb3RlY3RlZCBmcm9tIGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4K
LSAgICAibW92ICAgICAgIHNwLCB4MjgiICJcbiIgLy8gc3Agbm93IHBvaW50cyB0byB0aGUgbmV3
IFByb2JlQ29udGV4dCBpbiB0aGUgc2FmZSBhcmVhLgotCi0gICAgLy8gQ29weSB0aGUgcmVsZXZh
bnQgcmVzdG9yZSBkYXRhIHRvIHRoZSBuZXcgUHJvYmVDb250ZXh0Ki4KLSAgICAic3RyICAgICAg
IHgzMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1gwX09GRlNFVCkgIl0i
ICJcbiIgLy8gU3Rhc2ggdGhlIHBjIGNoYW5nZWQgc3RhdGUgYXdheSBzbyB0aGF0IHdlIGNhbiB1
c2UgbHIuCi0KLSAgICAibGRwICAgICAgIHgyOCwgeDMwLCBbeDI3LCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1gyN19PRkZTRVQpICJdIiAiXG4iIC8vIGNvcHkgeDI3IGFuZCB4Mjgu
Ci0gICAgInN0cCAgICAgICB4MjgsIHgzMCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1gyN19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkcCAgICAgICB4MjgsIHgzMCwgW3gy
NywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9GUF9PRkZTRVQpICJdIiAiXG4iIC8v
IGNvcHkgZnAgYW5kIGxyLgotICAgICJzdHAgICAgICAgeDI4LCB4MzAsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9GUF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkcCAgICAg
ICB4MjgsIHgzMCwgW3gyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZT
RVQpICJdIiAiXG4iIC8vIGNvcHkgc3AgYW5kIHBjLgotICAgICJzdHAgICAgICAgeDI4LCB4MzAs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4i
Ci0gICAgImxkcCAgICAgICB4MjgsIHgzMCwgW3gyNywgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9OWkNWX09GRlNFVCkgIl0iICJcbiIgLy8gY29weSBuemN2IGFuZCBmcHNyLgotICAg
ICJzdHAgICAgICAgeDI4LCB4MzAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9OWkNWX09GRlNFVCkgIl0iICJcbiIKLQotICAgICJsZHIgICAgICAgeDMwLCBbc3AsICMiIFNU
UklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfWDBfT0ZGU0VUKSAiXSIgIlxuIiAvLyBSZXRyaWV2
ZSB0aGUgc3Rhc2hlZCB0aGUgcGMgY2hhbmdlZCBzdGF0ZS4KLQogICAgIExPQ0FMX0xBQkVMX1NU
UklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRmlsbE91dGdvaW5nUHJvYmVSZWNvcmRzKSAiOiIg
IlxuIgogCiAgICAgImNibnogICAgICAgeDMwLCAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNt
UHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iIC8vIFNraXAgbHIgcmVzdG9yYXRpb24gc2V0dXAgaWYg
c3RhdGUgKGluIGxyKSA9PSBTVEFURV9QQ19DSEFOR0VELgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAJKHJldmlz
aW9uIDIyMDc5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSwxNSArOTksMTcgQEAgdm9pZCBNYWNy
b0Fzc2VtYmxlckFSTTo6bG9hZDMyV2l0aFVuYWxpZwogZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Q
cm9iZVRyYW1wb2xpbmUoKTsKIAogI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKLSAgICAKKwog
Ly8gVGhlIGZvbGxvd2luZyBhcmUgb2Zmc2V0cyBmb3IgUHJvYmVDb250ZXh0IGZpZWxkcyBhY2Nl
c3NlZAogLy8gYnkgdGhlIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUgc3R1Yi4KIAogI2RlZmluZSBQ
VFJfU0laRSA0CiAjZGVmaW5lIFBST0JFX1BST0JFX0ZVTkNUSU9OX09GRlNFVCAoMCAqIFBUUl9T
SVpFKQogI2RlZmluZSBQUk9CRV9BUkdfT0ZGU0VUICgxICogUFRSX1NJWkUpCisjZGVmaW5lIFBS
T0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUICgyICogUFRSX1NJWkUpCisjZGVmaW5lIFBS
T0JFX0lOSVRfU1RBQ0tfQVJHX09GRlNFVCAoMyAqIFBUUl9TSVpFKQogCi0jZGVmaW5lIFBST0JF
X0ZJUlNUX0dQUkVHX09GRlNFVCAoMiAqIFBUUl9TSVpFKQorI2RlZmluZSBQUk9CRV9GSVJTVF9H
UFJFR19PRkZTRVQgKDQgKiBQVFJfU0laRSkKIAogI2RlZmluZSBHUFJFR19TSVpFIDQKICNkZWZp
bmUgUFJPQkVfQ1BVX1IwX09GRlNFVCAoUFJPQkVfRklSU1RfR1BSRUdfT0ZGU0VUICsgKDAgKiBH
UFJFR19TSVpFKSkKQEAgLTE2NywxMyArMTY5LDE2IEBAIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNt
UHJvYmVUcmFtcG9saW5lKCkKICNkZWZpbmUgUFJPQkVfQ1BVX0QzMV9PRkZTRVQgKFBST0JFX0ZJ
UlNUX0ZQUkVHX09GRlNFVCArICgzMSAqIEZQUkVHX1NJWkUpKQogCiAjZGVmaW5lIFBST0JFX1NJ
WkUgKFBST0JFX0ZJUlNUX0ZQUkVHX09GRlNFVCArICgzMiAqIEZQUkVHX1NJWkUpKQotI2RlZmlu
ZSBQUk9CRV9BTElHTkVEX1NJWkUgKFBST0JFX1NJWkUpCisKKyNkZWZpbmUgT1VUX1NJWkUgR1BS
RUdfU0laRQogCiAvLyBUaGVzZSBBU1NFUlRzIHJlbWluZCB5b3UgdGhhdCBpZiB5b3UgY2hhbmdl
IHRoZSBsYXlvdXQgb2YgUHJvYmVDb250ZXh0LAogLy8geW91IG5lZWQgdG8gY2hhbmdlIGN0aU1h
c21Qcm9iZVRyYW1wb2xpbmUgb2Zmc2V0cyBhYm92ZSB0byBtYXRjaC4KICNkZWZpbmUgUFJPQkVf
T0ZGU0VUT0YoeCkgb2Zmc2V0b2Yoc3RydWN0IFByb2JlQ29udGV4dCwgeCkKIENPTVBJTEVfQVNT
RVJUKFBST0JFX09GRlNFVE9GKHByb2JlRnVuY3Rpb24pID09IFBST0JFX1BST0JFX0ZVTkNUSU9O
X09GRlNFVCwgUHJvYmVDb250ZXh0X3Byb2JlRnVuY3Rpb25fb2Zmc2V0X21hdGNoZXNfY3RpTWFz
bVByb2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihhcmcpID09
IFBST0JFX0FSR19PRkZTRVQsIFByb2JlQ29udGV4dF9hcmdfb2Zmc2V0X21hdGNoZXNfY3RpTWFz
bVByb2JlVHJhbXBvbGluZSk7CitDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihpbml0aWFs
aXplU3RhY2tGdW5jdGlvbikgPT0gUFJPQkVfSU5JVF9TVEFDS19GVU5DVElPTl9PRkZTRVQsIFBy
b2JlQ29udGV4dF9pbml0aWFsaXplU3RhY2tGdW5jdGlvbl9vZmZzZXRfbWF0Y2hlc19jdGlNYXNt
UHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGluaXRpYWxp
emVTdGFja0FyZykgPT0gUFJPQkVfSU5JVF9TVEFDS19BUkdfT0ZGU0VULCBQcm9iZUNvbnRleHRf
aW5pdGlhbGl6ZVN0YWNrQXJnX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUp
OwogCiBDT01QSUxFX0FTU0VSVCghKFBST0JFX0NQVV9SMF9PRkZTRVQgJiAweDMpLCBQcm9iZUNv
bnRleHRfY3B1X3IwX29mZnNldF9zaG91bGRfYmVfNF9ieXRlX2FsaWduZWQpOwogCkBAIC0xOTcs
NyArMjAyLDcgQEAgQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmdwcnNbQQogQ09N
UElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LnNwcnNbQVJNUmVnaXN0ZXJzOjphcHNyXSkg
PT0gUFJPQkVfQ1BVX0FQU1JfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X2Fwc3Jfb2Zmc2V0X21h
dGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZT
RVRPRihjcHUuc3Byc1tBUk1SZWdpc3RlcnM6OmZwc2NyXSkgPT0gUFJPQkVfQ1BVX0ZQU0NSX09G
RlNFVCwgUHJvYmVDb250ZXh0X2NwdV9mcHNjcl9vZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVU
cmFtcG9saW5lKTsKIAotQ09NUElMRV9BU1NFUlQoIShQUk9CRV9DUFVfRDBfT0ZGU0VUICYgMHhm
KSwgUHJvYmVDb250ZXh0X2NwdV9kMF9vZmZzZXRfc2hvdWxkX2JlXzE2X2J5dGVfYWxpZ25lZCk7
CitDT01QSUxFX0FTU0VSVCghKFBST0JFX0NQVV9EMF9PRkZTRVQgJiAweDcpLCBQcm9iZUNvbnRl
eHRfY3B1X2QwX29mZnNldF9zaG91bGRfYmVfOF9ieXRlX2FsaWduZWQpOwogCiBDT01QSUxFX0FT
U0VSVChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tBUk1SZWdpc3RlcnM6OmQwXSkgPT0gUFJPQkVf
Q1BVX0QwX09GRlNFVCwgUHJvYmVDb250ZXh0X2NwdV9kMF9vZmZzZXRfbWF0Y2hlc19jdGlNYXNt
UHJvYmVUcmFtcG9saW5lKTsKIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5mcHJz
W0FSTVJlZ2lzdGVyczo6ZDFdKSA9PSBQUk9CRV9DUFVfRDFfT0ZGU0VULCBQcm9iZUNvbnRleHRf
Y3B1X2QxX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwpAQCAtMjMzLDcg
KzIzOCw2IEBAIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5mcHJzW0EKIENPTVBJ
TEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5mcHJzW0FSTVJlZ2lzdGVyczo6ZDMxXSkgPT0g
UFJPQkVfQ1BVX0QzMV9PRkZTRVQsIFByb2JlQ29udGV4dF9jcHVfZDMxX29mZnNldF9tYXRjaGVz
X2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoUHJvYmVD
b250ZXh0KSA9PSBQUk9CRV9TSVpFLCBQcm9iZUNvbnRleHRfc2l6ZV9tYXRjaGVzX2N0aU1hc21Q
cm9iZVRyYW1wb2xpbmUpOwotQ09NUElMRV9BU1NFUlQoIShQUk9CRV9BTElHTkVEX1NJWkUgJiAw
eGYpLCBQcm9iZUNvbnRleHRfYWxpZ25lZF9zaXplX29mZnNldF9zaG91bGRfYmVfMTZfYnl0ZV9h
bGlnbmVkKTsKICN1bmRlZiBQUk9CRV9PRkZTRVRPRgogCiBhc20gKApAQCAtMjU0LDExICsyNTgs
MTEgQEAgYXNtICgKIAogICAgICJtb3YgICAgICAgaXAsIHNwIiAiXG4iCiAgICAgIm1vdiAgICAg
ICByMywgc3AiICJcbiIKLSAgICAic3ViICAgICAgIHIzLCByMywgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0FMSUdORURfU0laRSkgIlxuIgorICAgICJzdWIgICAgICAgcjMsIHIzLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfU0laRSArIE9VVF9TSVpFKSAiXG4iCiAKICAgICAvLyBU
aGUgQVJNIEVBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHN0YWNrIG5lZWRzIHRvIGJlIDE2IGJ5dGUg
YWxpZ25lZC4KICAgICAiYmljICAgICAgIHIzLCByMywgIzB4ZiIgIlxuIgotICAgICJtb3YgICAg
ICAgc3AsIHIzIiAiXG4iCisgICAgIm1vdiAgICAgICBzcCwgcjMiICJcbiIgLy8gU2V0IHRoZSBz
cCB0byBwcm90ZWN0IHRoZSBQcm9iZUNvbnRleHQgZnJvbSBpbnRlcnJ1cHRzIGJlZm9yZSB3ZSBp
bml0aWFsaXplIGl0LgogCiAgICAgInN0ciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKICAgICAiYWRkICAgICAgIGxyLCBz
cCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9SMF9PRkZTRVQpICJcbiIKQEAgLTI4
NCwxNSArMjg4LDU5IEBAIGFzbSAoCiAgICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKIAogICAgICJhZGQgICAg
ICAgaXAsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0QwX09GRlNFVCkgIlxu
IgotICAgICJ2c3RtaWEuNjQgaXAsIHsgZDAtZDE1IH0iICJcbiIKLSAgICAidnN0bWlhLjY0IGlw
LCB7IGQxNi1kMzEgfSIgIlxuIgorICAgICJ2c3RtaWEuNjQgaXAhLCB7IGQwLWQxNSB9IiAiXG4i
CisgICAgInZzdG1pYS42NCBpcCEsIHsgZDE2LWQzMSB9IiAiXG4iCiAKICAgICAibW92ICAgICAg
IGZwLCBzcCIgIlxuIiAvLyBTYXZlIHRoZSBQcm9iZUNvbnRleHQqLgogCisgICAgLy8gSW5pdGlh
bGl6ZSBQcm9iZUNvbnRleDo6aW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gdG8gemVyby4KKyAgICAi
bW92ICAgICAgIHIwLCAjMCIgIlxuIgorICAgICJzdHIgICAgICAgcjAsIFtmcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgor
CiAgICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfUFJP
QkVfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgogICAgICJtb3YgICAgICAgcjAsIHNwIiAiXG4i
IC8vIHRoZSBQcm9iZUNvbnRleHQqIGFyZy4KICAgICAiYmx4ICAgICAgIGlwIiAiXG4iCiAKKyAg
ICAvLyBNYWtlIHN1cmUgdGhlIFByb2JlQ29udGV4dCBpcyBlbnRpcmVseSBiZWxvdyB0aGUgcmVz
dWx0IHN0YWNrIHBvaW50ZXIgc28KKyAgICAvLyB0aGF0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3Rp
bGwgcHJlc2VydmVkIHdoZW4gd2UgY2FsbCB0aGUgaW5pdGlhbGl6ZVN0YWNrCisgICAgLy8gZnVu
Y3Rpb24uCisgICAgImxkciAgICAgICByMSwgW2ZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIgLy8gUmVzdWx0IHNwLgorICAgICJhZGQgICAgICAg
cjIsIGZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfU0laRSArIE9VVF9TSVpFKSAiXG4i
IC8vIEVuZCBvZiBQcm92ZUNvbnRleHQgKyBidWZmZXIuCisgICAgImNtcCAgICAgICByMSwgcjIi
ICJcbiIKKyAgICAiYmdlICAgICAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFt
cG9saW5lUHJvYmVDb250ZXh0SXNTYWZlKSAiXG4iCisKKyAgICAvLyBBbGxvY2F0ZSBhIHNhZmUg
cGxhY2Ugb24gdGhlIHN0YWNrIGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9pbnRlciB0byBzdGFz
aCB0aGUgUHJvYmVDb250ZXh0LgorICAgICJzdWIgICAgICAgcjEsIHIxLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfU0laRSArIE9VVF9TSVpFKSAiXG4iCisgICAgImJpYyAgICAgICByMSwg
cjEsICMweGYiICJcbiIgLy8gVGhlIEFSTSBFQUJJIHNwZWNpZmllcyB0aGF0IHRoZSBzdGFjayBu
ZWVkcyB0byBiZSAxNiBieXRlIGFsaWduZWQuCisgICAgIm1vdiAgICAgICBzcCwgcjEiICJcbiIg
Ly8gU2V0IHRoZSBuZXcgc3AgdG8gcHJvdGVjdCB0aGF0IG1lbW9yeSBmcm9tIGludGVycnVwdHMg
YmVmb3JlIHdlIGNvcHkgdGhlIFByb2JlQ29udGV4dC4KKworICAgIC8vIENvcHkgdGhlIFByb2Jl
Q29udGV4dCB0byB0aGUgc2FmZSBwbGFjZS4KKyAgICAvLyBOb3RlOiB3ZSBoYXZlIHRvIGNvcHkg
ZnJvbSBsb3cgYWRkcmVzcyB0byBoaWdoZXIgYWRkcmVzcyBiZWNhdXNlIHdlJ3JlIG1vdmluZyB0
aGUKKyAgICAvLyBQcm9iZUNvbnRleHQgdG8gYSBsb3dlciBhZGRyZXNzLgorICAgICJtb3YgICAg
ICAgcjUsIGZwIiAiXG4iCisgICAgIm1vdiAgICAgICByNiwgcjEiICJcbiIKKyAgICAiYWRkICAg
ICAgIHI3LCBmcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJWkUpICJcbiIKKworICAg
IExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lQ29weUxvb3ApICI6IiAi
XG4iCisgICAgImxkciAgICAgICByMywgW3I1XSwgIzQiICJcbiIKKyAgICAibGRyICAgICAgIHI0
LCBbcjVdLCAjNCIgIlxuIgorICAgICJzdHIgICAgICAgcjMsIFtyNl0sICM0IiAiXG4iCisgICAg
InN0ciAgICAgICByNCwgW3I2XSwgIzQiICJcbiIKKyAgICAiY21wICAgICAgIHI1LCByNyIgIlxu
IgorICAgICJibHQgICAgICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xp
bmVDb3B5TG9vcCkgIlxuIgorCisgICAgIm1vdiAgICAgICBmcCwgcjEiICJcbiIKKworICAgIC8v
IENhbGwgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gaWYgcHJlc2VudC4KKyAgICBMT0NBTF9MQUJF
TF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZVByb2JlQ29udGV4dElzU2FmZSkgIjoiICJc
biIKKyAgICAibGRyICAgICAgIHIyLCBbZnAsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9J
TklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCkgIl0iICJcbiIKKyAgICAiY2J6ICAgICAgIHIyLCAi
IExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUmVzdG9yZVJlZ2lzdGVy
cykgIlxuIgorCisgICAgIm1vdiAgICAgICByMCwgZnAiICJcbiIgLy8gU2V0IHRoZSBQcm9iZUNv
bnRleHQqIGFyZy4KKyAgICAiYmx4ICAgICAgIHIyIiAiXG4iIC8vIENhbGwgdGhlIGluaXRpYWxp
emVTdGFja0Z1bmN0aW9uIChsb2FkZWQgaW50byByMiBhYm92ZSkuCisKKyAgICBMT0NBTF9MQUJF
TF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZVJlc3RvcmVSZWdpc3RlcnMpICI6IiAiXG4i
CisKICAgICAibW92ICAgICAgIHNwLCBmcCIgIlxuIgogCiAgICAgLy8gVG8gZW5hYmxlIHByb2Jl
cyB0byBtb2RpZnkgcmVnaXN0ZXIgc3RhdGUsIHdlIGNvcHkgYWxsIHJlZ2lzdGVycwpAQCAtMzA3
LDgyICszNTUsMTMgQEAgYXNtICgKICAgICAidm1zciAgICAgIEZQU0NSLCBpcCIgIlxuIgogCiAg
ICAgLy8gVGhlcmUgYXJlIDUgbW9yZSByZWdpc3RlcnMgbGVmdCB0byByZXN0b3JlOiBpcCwgc3As
IGxyLCBwYywgYW5kIGFwc3IuCi0gICAgLy8gVGhlcmUgYXJlIDIgaXNzdWVzIHRoYXQgY29tcGxp
Y2F0ZSB0aGUgcmVzdG9yYXRpb24gb2YgdGhlc2UgbGFzdCBmZXcKLSAgICAvLyByZWdpc3RlcnM6
Ci0gICAgLy8KLSAgICAvLyAxLiBOb3JtYWwgQVJNIGNhbGxpbmcgY29udmVudGlvbiByZWxpZXMg
b24gbW92aW5nIGxyIHRvIHBjIHRvIHJldHVybiB0bwotICAgIC8vICAgIHRoZSBjYWxsZXIuIElu
IG91ciBjYXNlLCB0aGUgYWRkcmVzcyB0byByZXR1cm4gdG8gaXMgc3BlY2lmaWVkIGJ5Ci0gICAg
Ly8gICAgUHJvYmVDb250ZXh0LmNwdS5wYy4gQW5kIGF0IHRoYXQgbW9tZW50LCB3ZSB3b24ndCBo
YXZlIGFueSBhdmFpbGFibGUKLSAgICAvLyAgICBzY3JhdGNoIHJlZ2lzdGVycyB0byBob2xkIHRo
ZSByZXR1cm4gYWRkcmVzcyAobHIgbmVlZHMgdG8gaG9sZAotICAgIC8vICAgIFByb2JlQ29udGV4
dC5jcHUubHIsIG5vdCB0aGUgcmV0dXJuIGFkZHJlc3MpLgotICAgIC8vCi0gICAgLy8gICAgVGhl
IHNvbHV0aW9uIGlzIHRvIHN0b3JlIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgYW5k
IGxvYWQgdGhlCi0gICAgLy8gICAgIHBjIGZyb20gdGhlcmUuCi0gICAgLy8KLSAgICAvLyAyLiBJ
c3N1ZSAxIG1lYW5zIHdlIHdpbGwgbmVlZCB0byB3cml0ZSB0byB0aGUgc3RhY2sgbG9jYXRpb24g
YXQKLSAgICAvLyAgICBQcm9iZUNvbnRleHQuY3B1LmdwcnNbc3BdIC0gUFRSX1NJWkUuIEJ1dCBp
ZiB0aGUgdXNlciBwcm9iZSBmdW5jdGlvbiBoYWQKLSAgICAvLyAgICBtb2RpZmllZCB0aGUgdmFs
dWUgb2YgUHJvYmVDb250ZXh0LmNwdS5ncHJzW3NwXSB0byBwb2ludCBpbiB0aGUgcmFuZ2UgYmV0
d2VlbgotICAgIC8vICAgICZQcm9iZUNvbnRleHQuY3B1LmdwcnNbaXBdIHRocnUgJlByb2JlQ29u
dGV4dC5jcHUuc3Byc1thc3ByXSwgdGhlbiB0aGUgYWN0aW9uCi0gICAgLy8gICAgZm9yIElzc3Vl
IDEgbWF5IHRyYXNoIHRoZSB2YWx1ZXMgdG8gYmUgcmVzdG9yZWQgYmVmb3JlIHdlIGNhbiByZXN0
b3JlIHRoZW0uCi0gICAgLy8KLSAgICAvLyAgICBUaGUgc29sdXRpb24gaXMgdG8gY2hlY2sgaWYg
UHJvYmVDb250ZXh0LmNwdS5ncHJzW3NwXSBjb250YWlucyBhIHZhbHVlIGluCi0gICAgLy8gICAg
dGhlIHVuZGVzaXJhYmxlIHJhbmdlLiBJZiBzbywgd2UgY29weSB0aGUgcmVtYWluaW5nIFByb2Jl
Q29udGV4dAotICAgIC8vICAgIHJlZ2lzdGVyIGRhdGEgdG8gYSBzYWZlIGFyZWEgZmlyc3QsIGFu
ZCByZXN0b3JlIHRoZSByZW1haW5pbmcgcmVnaXN0ZXIKLSAgICAvLyAgICBmcm9tIHRoaXMgbmV3
IHNhZmUgYXJlYS4KLQotICAgIC8vIFRoZSByZXN0b3JlIGFyZWEgZm9yIHRoZSBwYyB3aWxsIGJl
IGxvY2F0ZWQgYXQgMSB3b3JkIGJlbG93IHRoZSByZXN1bHRhbnQgc3AuCi0gICAgLy8gQWxsIHJl
c3RvcmUgdmFsdWVzIGFyZSBsb2NhdGVkIGF0IG9mZnNldCA8PSBQUk9CRV9DUFVfQVBTUl9PRkZT
RVQuIEhlbmNlLAotICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgcmVzdWx0YW50IHNw
ID4gb2Zmc2V0IG9mIGFwc3IgKyAxLgotICAgICJhZGQgICAgICAgaXAsIHNwLCAjIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUICsgUFRSX1NJWkUpICJcbiIKLSAgICAi
bGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJjbXAgICAgICAgbHIsIGlwIiAiXG4iCi0gICAgImJndCAgICAg
IiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICJcbiIKLQotICAgIC8v
IEdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRoZSByZXN0b3JlIGFyZWEgd2lsbCBvdmVybGFwIHRo
ZSBQcm9iZUNvbnRleHQgZGF0YQotICAgIC8vIHRoYXQgd2Ugd2lsbCBuZWVkIHRvIGdldCB0aGUg
cmVzdG9yYXRpb24gdmFsdWVzIGZyb20uIFNvLCBsZXQncyBtb3ZlIHRoYXQKLSAgICAvLyBkYXRh
IHRvIGEgc2FmZSBwbGFjZSBiZWZvcmUgd2Ugc3RhcnQgd3JpdGluZyBpbnRvIHRoZSByZXN0b3Jl
IGFyZWEuCi0gICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAic2FmZSBhcmVhIiBhdCAyeCBzaXplb2Yo
UHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUKLSAgICAvLyByZXN0b3JlIGFyZWEuIFRoaXMg
ZW5zdXJlcyB0aGF0OgotICAgIC8vIDEuIFRoZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0
aGUgcmVzdG9yZSBhcmVhLgotICAgIC8vIDIuIFRoZSBzYWZlIGFyZWEgZG9lcyBub3Qgb3Zlcmxh
cCB0aGUgUHJvYmVDb250ZXh0LgotICAgIC8vICAgIFRoaXMgbWFrZXMgaXQgc28gdGhhdCB3ZSBj
YW4gdXNlIG1lbWNweSAoZG9lcyBub3QgcmVxdWlyZSBtZW1tb3ZlKSBzZW1hbnRpY3MKLSAgICAv
LyAgICB0byBjb3B5IHRoZSByZXN0b3JlIHZhbHVlcyB0byB0aGUgc2FmZSBhcmVhLgotICAgIAot
ICAgIC8vIGxyIGFscmVhZHkgY29udGFpbnMgW3NwLCAjU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9TUF9PRkZTRVQpXS4KLSAgICAic3ViICAgICAgIGxyLCBsciwgIygyICogIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQUxJR05FRF9TSVpFKSAiKSIgIlxuIgotCi0gICAgIm1vdiAgICAg
ICBpcCwgc3AiICJcbiIgLy8gU2F2ZSB0aGUgb3JpZ2luYWwgUHJvYmVDb250ZXh0Ki4KLQotICAg
IC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4g
VGhpcyBlbnN1cmVzIHRoYXQgdGhlCi0gICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KLSAgICAibW92ICAgICAgIHNwLCBs
ciIgIlxuIiAvLyBzcCBub3cgcG9pbnRzIHRvIHRoZSBuZXcgUHJvYmVDb250ZXh0IGluIHRoZSBz
YWZlIGFyZWEuCi0KLSAgICAibW92ICAgICAgIGxyLCBpcCIgIlxuIiAvLyBVc2UgbHIgYXMgdGhl
IG9sZCBQcm9iZUNvbnRleHQqLgotCi0gICAgLy8gQ29weSB0aGUgcmVzdG9yZSBkYXRhIHRvIHRo
ZSBuZXcgUHJvYmVDb250ZXh0Ki4KLSAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfSVBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAg
aXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9JUF9PRkZTRVQpICJdIiAi
XG4iCi0gICAgImxkciAgICAgICBpcCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX1NQX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3RyICAgICAgIGlwLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAg
ICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9MUl9PRkZTRVQpICJd
IiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNU
UklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfUENfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIg
ICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9QQ19PRkZTRVQp
ICJdIiAiXG4iCi0gICAgImxkciAgICAgICBpcCwgW2xyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX0FQU1JfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJzdHIgICAgICAgaXAsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9BUFNSX09GRlNFVCkgIl0iICJcbiIKLQot
ICAgIC8vIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQgZXhwZWN0cyBsciB0byBjb250YWluIHRo
ZSBzcCB2YWx1ZSB0byBiZSByZXN0b3JlZC4KLSAgICAvLyBTaW5jZSB3ZSB1c2VkIGl0IGFzIHNj
cmF0Y2ggYWJvdmUsIGxldCdzIHJlc3RvcmUgaXQuCi0gICAgImxkciAgICAgICBsciwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKLQotICAg
IFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKIAogICAg
IC8vIFNldCB1cCB0aGUgcmVzdG9yZSBhcmVhIGZvciBzcCBhbmQgcGMuCi0gICAgLy8gbHIgYWxy
ZWFkeSBjb250YWlucyBbc3AsICNTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNF
VCldLgorICAgICJsZHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCiAKICAgICAvLyBQdXNoIHRoZSBwYyBvbiB0byB0aGUg
cmVzdG9yZSBhcmVhLgogICAgICJsZHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN1YiAgICAgICBsciwgbHIs
ICMiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIlxuIgorICAgICJzdWIgICAgICAgbHIs
IGxyLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoT1VUX1NJWkUpICJcbiIKICAgICAic3RyICAgICAg
IGlwLCBbbHJdIiAiXG4iCiAgICAgLy8gUG9pbnQgc3AgdG8gdGhlIHJlc3RvcmUgYXJlYS4KICAg
ICAic3RyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1Bf
T0ZGU0VUKSAiXSIgIlxuIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlckFSTXY3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwCShyZXZpc2lvbiAyMjA3OTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0MiwxMCBAQCBleHRlcm4gIkMiIHZvaWQgY3RpTWFz
bVByb2JlVHJhbXBvbGluZSgpCiAjZGVmaW5lIFBUUl9TSVpFIDQKICNkZWZpbmUgUFJPQkVfUFJP
QkVfRlVOQ1RJT05fT0ZGU0VUICgwICogUFRSX1NJWkUpCiAjZGVmaW5lIFBST0JFX0FSR19PRkZT
RVQgKDEgKiBQVFJfU0laRSkKKyNkZWZpbmUgUFJPQkVfSU5JVF9TVEFDS19GVU5DVElPTl9PRkZT
RVQgKDIgKiBQVFJfU0laRSkKKyNkZWZpbmUgUFJPQkVfSU5JVF9TVEFDS19BUkdfT0ZGU0VUICgz
ICogUFRSX1NJWkUpCiAKLSNkZWZpbmUgUFJPQkVfRklSU1RfR1BSRUdfT0ZGU0VUICgyICogUFRS
X1NJWkUpCisjZGVmaW5lIFBST0JFX0ZJUlNUX0dQUkVHX09GRlNFVCAoNCAqIFBUUl9TSVpFKQog
CiAjZGVmaW5lIEdQUkVHX1NJWkUgNAogI2RlZmluZSBQUk9CRV9DUFVfUjBfT0ZGU0VUIChQUk9C
RV9GSVJTVF9HUFJFR19PRkZTRVQgKyAoMCAqIEdQUkVHX1NJWkUpKQpAQCAtMTAxLDE0ICsxMDMs
MTggQEAgZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKQogI2RlZmluZSBQ
Uk9CRV9DUFVfRDI5X09GRlNFVCAoUFJPQkVfRklSU1RfRlBSRUdfT0ZGU0VUICsgKDI5ICogRlBS
RUdfU0laRSkpCiAjZGVmaW5lIFBST0JFX0NQVV9EMzBfT0ZGU0VUIChQUk9CRV9GSVJTVF9GUFJF
R19PRkZTRVQgKyAoMzAgKiBGUFJFR19TSVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX0QzMV9PRkZT
RVQgKFBST0JFX0ZJUlNUX0ZQUkVHX09GRlNFVCArICgzMSAqIEZQUkVHX1NJWkUpKQorCiAjZGVm
aW5lIFBST0JFX1NJWkUgKFBST0JFX0ZJUlNUX0ZQUkVHX09GRlNFVCArICgzMiAqIEZQUkVHX1NJ
WkUpKQotI2RlZmluZSBQUk9CRV9BTElHTkVEX1NJWkUgKFBST0JFX1NJWkUpCisKKyNkZWZpbmUg
T1VUX1NJWkUgR1BSRUdfU0laRQogCiAvLyBUaGVzZSBBU1NFUlRzIHJlbWluZCB5b3UgdGhhdCBp
ZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgUHJvYmVDb250ZXh0LAogLy8geW91IG5lZWQgdG8g
Y2hhbmdlIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUgb2Zmc2V0cyBhYm92ZSB0byBtYXRjaC4KICNk
ZWZpbmUgUFJPQkVfT0ZGU0VUT0YoeCkgb2Zmc2V0b2Yoc3RydWN0IFByb2JlQ29udGV4dCwgeCkK
IENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKHByb2JlRnVuY3Rpb24pID09IFBST0JFX1BS
T0JFX0ZVTkNUSU9OX09GRlNFVCwgUHJvYmVDb250ZXh0X3Byb2JlRnVuY3Rpb25fb2Zmc2V0X21h
dGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZT
RVRPRihhcmcpID09IFBST0JFX0FSR19PRkZTRVQsIFByb2JlQ29udGV4dF9hcmdfb2Zmc2V0X21h
dGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CitDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZT
RVRPRihpbml0aWFsaXplU3RhY2tGdW5jdGlvbikgPT0gUFJPQkVfSU5JVF9TVEFDS19GVU5DVElP
Tl9PRkZTRVQsIFByb2JlQ29udGV4dF9pbml0aWFsaXplU3RhY2tGdW5jdGlvbl9vZmZzZXRfbWF0
Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNF
VE9GKGluaXRpYWxpemVTdGFja0FyZykgPT0gUFJPQkVfSU5JVF9TVEFDS19BUkdfT0ZGU0VULCBQ
cm9iZUNvbnRleHRfaW5pdGlhbGl6ZVN0YWNrQXJnX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9i
ZVRyYW1wb2xpbmUpOwogCiBDT01QSUxFX0FTU0VSVCghKFBST0JFX0NQVV9SMF9PRkZTRVQgJiAw
eDMpLCBQcm9iZUNvbnRleHRfY3B1X3IwX29mZnNldF9zaG91bGRfYmVfNF9ieXRlX2FsaWduZWQp
OwogCkBAIC0xMzIsNyArMTM4LDcgQEAgQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1
LmdwcnNbQQogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LnNwcnNbQVJNUmVnaXN0
ZXJzOjphcHNyXSkgPT0gUFJPQkVfQ1BVX0FQU1JfT0ZGU0VULCBQcm9iZUNvbnRleHRfY3B1X2Fw
c3Jfb2Zmc2V0X21hdGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CiBDT01QSUxFX0FTU0VS
VChQUk9CRV9PRkZTRVRPRihjcHUuc3Byc1tBUk1SZWdpc3RlcnM6OmZwc2NyXSkgPT0gUFJPQkVf
Q1BVX0ZQU0NSX09GRlNFVCwgUHJvYmVDb250ZXh0X2NwdV9mcHNjcl9vZmZzZXRfbWF0Y2hlc19j
dGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIAotQ09NUElMRV9BU1NFUlQoIShQUk9CRV9DUFVfRDBf
T0ZGU0VUICYgMHhmKSwgUHJvYmVDb250ZXh0X2NwdV9kMF9vZmZzZXRfc2hvdWxkX2JlXzE2X2J5
dGVfYWxpZ25lZCk7CitDT01QSUxFX0FTU0VSVCghKFBST0JFX0NQVV9EMF9PRkZTRVQgJiAweDcp
LCBQcm9iZUNvbnRleHRfY3B1X2QwX29mZnNldF9zaG91bGRfYmVfOF9ieXRlX2FsaWduZWQpOwog
CiBDT01QSUxFX0FTU0VSVChQUk9CRV9PRkZTRVRPRihjcHUuZnByc1tBUk1SZWdpc3RlcnM6OmQw
XSkgPT0gUFJPQkVfQ1BVX0QwX09GRlNFVCwgUHJvYmVDb250ZXh0X2NwdV9kMF9vZmZzZXRfbWF0
Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNF
VE9GKGNwdS5mcHJzW0FSTVJlZ2lzdGVyczo6ZDFdKSA9PSBQUk9CRV9DUFVfRDFfT0ZGU0VULCBQ
cm9iZUNvbnRleHRfY3B1X2QxX29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUp
OwpAQCAtMTY5LDggKzE3NSw2IEBAIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5m
cHJzW0EKIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNwdS5mcHJzW0FSTVJlZ2lzdGVy
czo6ZDMxXSkgPT0gUFJPQkVfQ1BVX0QzMV9PRkZTRVQsIFByb2JlQ29udGV4dF9jcHVfZDMxX29m
ZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwogCiBDT01QSUxFX0FTU0VSVChz
aXplb2YoUHJvYmVDb250ZXh0KSA9PSBQUk9CRV9TSVpFLCBQcm9iZUNvbnRleHRfc2l6ZV9tYXRj
aGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwotQ09NUElMRV9BU1NFUlQoIShQUk9CRV9BTElH
TkVEX1NJWkUgJiAweGYpLCBQcm9iZUNvbnRleHRfYWxpZ25lZF9zaXplX29mZnNldF9zaG91bGRf
YmVfMTZfYnl0ZV9hbGlnbmVkKTsKLQogI3VuZGVmIFBST0JFX09GRlNFVE9GCiAgICAgCiBhc20g
KApAQCAtMTkzLDExICsxOTcsMTEgQEAgYXNtICgKIAogICAgICJtb3YgICAgICAgaXAsIHNwIiAi
XG4iCiAgICAgIm1vdiAgICAgICByMCwgc3AiICJcbiIKLSAgICAic3ViICAgICAgIHIwLCByMCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkgIlxuIgorICAgICJzdWIg
ICAgICAgcjAsIHIwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfU0laRSArIE9VVF9TSVpF
KSAiXG4iCiAKICAgICAvLyBUaGUgQVJNIEVBQkkgc3BlY2lmaWVzIHRoYXQgdGhlIHN0YWNrIG5l
ZWRzIHRvIGJlIDE2IGJ5dGUgYWxpZ25lZC4KICAgICAiYmljICAgICAgIHIwLCByMCwgIzB4ZiIg
IlxuIgotICAgICJtb3YgICAgICAgc3AsIHIwIiAiXG4iCisgICAgIm1vdiAgICAgICBzcCwgcjAi
ICJcbiIgLy8gU2V0IHRoZSBzcCB0byBwcm90ZWN0IHRoZSBQcm9iZUNvbnRleHQgZnJvbSBpbnRl
cnJ1cHRzIGJlZm9yZSB3ZSBpbml0aWFsaXplIGl0LgogCiAgICAgInN0ciAgICAgICBsciwgW3Nw
LCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKICAg
ICAiYWRkICAgICAgIGxyLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9SMV9P
RkZTRVQpICJcbiIKQEAgLTIyOCwxMCArMjMyLDU2IEBAIGFzbSAoCiAKICAgICAibW92ICAgICAg
IGZwLCBzcCIgIlxuIiAvLyBTYXZlIHRoZSBQcm9iZUNvbnRleHQqLgogCisgICAgLy8gSW5pdGlh
bGl6ZSBQcm9iZUNvbnRleDo6aW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gdG8gemVyby4KKyAgICAi
bW92ICAgICAgIHIwLCAjMCIgIlxuIgorICAgICJzdHIgICAgICAgcjAsIFtmcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgor
CiAgICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfUFJP
QkVfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgogICAgICJtb3YgICAgICAgcjAsIHNwIiAiXG4i
IC8vIHRoZSBQcm9iZUNvbnRleHQqIGFyZy4KICAgICAiYmx4ICAgICAgIGlwIiAiXG4iCiAKKyAg
ICAvLyBNYWtlIHN1cmUgdGhlIFByb2JlQ29udGV4dCBpcyBlbnRpcmVseSBiZWxvdyB0aGUgcmVz
dWx0IHN0YWNrIHBvaW50ZXIgc28KKyAgICAvLyB0aGF0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3Rp
bGwgcHJlc2VydmVkIHdoZW4gd2UgY2FsbCB0aGUgaW5pdGlhbGl6ZVN0YWNrCisgICAgLy8gZnVu
Y3Rpb24uCisgICAgImxkciAgICAgICByMSwgW2ZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIgLy8gUmVzdWx0IHNwLgorICAgICJhZGQgICAgICAg
cjIsIGZwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfU0laRSArIE9VVF9TSVpFKSAiXG4i
IC8vIEVuZCBvZiBQcm92ZUNvbnRleHQgKyBidWZmZXIuCisgICAgImNtcCAgICAgICByMSwgcjIi
ICJcbiIKKyAgICAiaXQgICAgICAgIGdlIiAiXG4iCisgICAgImJnZSAgICAgIiBMT0NBTF9MQUJF
TF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZVByb2JlQ29udGV4dElzU2FmZSkgIlxuIgor
CisgICAgLy8gQWxsb2NhdGUgYSBzYWZlIHBsYWNlIG9uIHRoZSBzdGFjayBiZWxvdyB0aGUgcmVz
dWx0IHN0YWNrIHBvaW50ZXIgdG8gc3Rhc2ggdGhlIFByb2JlQ29udGV4dC4KKyAgICAic3ViICAg
ICAgIHIxLCByMSwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJWkUgKyBPVVRfU0laRSkg
IlxuIgorICAgICJiaWMgICAgICAgcjEsIHIxLCAjMHhmIiAiXG4iIC8vIFRoZSBBUk0gRUFCSSBz
cGVjaWZpZXMgdGhhdCB0aGUgc3RhY2sgbmVlZHMgdG8gYmUgMTYgYnl0ZSBhbGlnbmVkLgorICAg
ICJtb3YgICAgICAgc3AsIHIxIiAiXG4iIC8vIFNldCB0aGUgbmV3IHNwIHRvIHByb3RlY3QgdGhh
dCBtZW1vcnkgZnJvbSBpbnRlcnJ1cHRzIGJlZm9yZSB3ZSBjb3B5IHRoZSBQcm9iZUNvbnRleHQu
CisKKyAgICAvLyBDb3B5IHRoZSBQcm9iZUNvbnRleHQgdG8gdGhlIHNhZmUgcGxhY2UuCisgICAg
Ly8gTm90ZTogd2UgaGF2ZSB0byBjb3B5IGZyb20gbG93IGFkZHJlc3MgdG8gaGlnaGVyIGFkZHJl
c3MgYmVjYXVzZSB3ZSdyZSBtb3ZpbmcgdGhlCisgICAgLy8gUHJvYmVDb250ZXh0IHRvIGEgbG93
ZXIgYWRkcmVzcy4KKyAgICAibW92ICAgICAgIHI1LCBmcCIgIlxuIgorICAgICJtb3YgICAgICAg
cjYsIHIxIiAiXG4iCisgICAgImFkZCAgICAgICByNywgZnAsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9TSVpFKSAiXG4iCisKKyAgICBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2Jl
VHJhbXBvbGluZUNvcHlMb29wKSAiOiIgIlxuIgorICAgICJsZHIgICAgICAgcjMsIFtyNV0sICM0
IiAiXG4iCisgICAgImxkciAgICAgICByNCwgW3I1XSwgIzQiICJcbiIKKyAgICAic3RyICAgICAg
IHIzLCBbcjZdLCAjNCIgIlxuIgorICAgICJzdHIgICAgICAgcjQsIFtyNl0sICM0IiAiXG4iCisg
ICAgImNtcCAgICAgICByNSwgcjciICJcbiIKKyAgICAiaXQgICAgICAgIGx0IiAiXG4iCisgICAg
ImJsdCAgICAgIiBMT0NBTF9MQUJFTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUNvcHlM
b29wKSAiXG4iCisKKyAgICAibW92ICAgICAgIGZwLCByMSIgIlxuIgorCisgICAgLy8gQ2FsbCBp
bml0aWFsaXplU3RhY2tGdW5jdGlvbiBpZiBwcmVzZW50LgorICAgIExPQ0FMX0xBQkVMX1NUUklO
RyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJvYmVDb250ZXh0SXNTYWZlKSAiOiIgIlxuIgorICAg
ICJsZHIgICAgICAgcjIsIFtmcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RB
Q0tfRlVOQ1RJT05fT0ZGU0VUKSAiXSIgIlxuIgorICAgICJjYnogICAgICAgcjIsICIgTE9DQUxf
TEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVSZXN0b3JlUmVnaXN0ZXJzKSAiXG4i
CisKKyAgICAibW92ICAgICAgIHIwLCBmcCIgIlxuIiAvLyBTZXQgdGhlIFByb2JlQ29udGV4dCog
YXJnLgorICAgICJibHggICAgICAgcjIiICJcbiIgLy8gQ2FsbCB0aGUgaW5pdGlhbGl6ZVN0YWNr
RnVuY3Rpb24gKGxvYWRlZCBpbnRvIHIyIGFib3ZlKS4KKworICAgIExPQ0FMX0xBQkVMX1NUUklO
RyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUmVzdG9yZVJlZ2lzdGVycykgIjoiICJcbiIKKwogICAg
ICJtb3YgICAgICAgc3AsIGZwIiAiXG4iCiAKICAgICAvLyBUbyBlbmFibGUgcHJvYmVzIHRvIG1v
ZGlmeSByZWdpc3RlciBzdGF0ZSwgd2UgY29weSBhbGwgcmVnaXN0ZXJzCkBAIC0yNDcsODQgKzI5
NywxMyBAQCBhc20gKAogICAgICJ2bXNyICAgICAgRlBTQ1IsIGlwIiAiXG4iCiAKICAgICAvLyBU
aGVyZSBhcmUgNSBtb3JlIHJlZ2lzdGVycyBsZWZ0IHRvIHJlc3RvcmU6IGlwLCBzcCwgbHIsIHBj
LCBhbmQgYXBzci4KLSAgICAvLyBUaGVyZSBhcmUgMiBpc3N1ZXMgdGhhdCBjb21wbGljYXRlIHRo
ZSByZXN0b3JhdGlvbiBvZiB0aGVzZSBsYXN0IGZldwotICAgIC8vIHJlZ2lzdGVyczoKLSAgICAv
LwotICAgIC8vIDEuIE5vcm1hbCBBUk0gY2FsbGluZyBjb252ZW50aW9uIHJlbGllcyBvbiBtb3Zp
bmcgbHIgdG8gcGMgdG8gcmV0dXJuIHRvCi0gICAgLy8gICAgdGhlIGNhbGxlci4gSW4gb3VyIGNh
c2UsIHRoZSBhZGRyZXNzIHRvIHJldHVybiB0byBpcyBzcGVjaWZpZWQgYnkKLSAgICAvLyAgICBQ
cm9iZUNvbnRleHQuY3B1LmdwcnNbcGNdLiBBbmQgYXQgdGhhdCBtb21lbnQsIHdlIHdvbid0IGhh
dmUgYW55IGF2YWlsYWJsZQotICAgIC8vICAgIHNjcmF0Y2ggcmVnaXN0ZXJzIHRvIGhvbGQgdGhl
IHJldHVybiBhZGRyZXNzIChsciBuZWVkcyB0byBob2xkCi0gICAgLy8gICAgUHJvYmVDb250ZXh0
LmNwdS5ncHJzW2xyXSwgbm90IHRoZSByZXR1cm4gYWRkcmVzcykuCi0gICAgLy8KLSAgICAvLyAg
ICBUaGUgc29sdXRpb24gaXMgdG8gc3RvcmUgdGhlIHJldHVybiBhZGRyZXNzIG9uIHRoZSBzdGFj
ayBhbmQgbG9hZCB0aGUKLSAgICAvLyAgICBwYyBmcm9tIHRoZXJlLgotICAgIC8vCi0gICAgLy8g
Mi4gSXNzdWUgMSBtZWFucyB3ZSB3aWxsIG5lZWQgdG8gd3JpdGUgdG8gdGhlIHN0YWNrIGxvY2F0
aW9uIGF0Ci0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5ncHJzW3NwXSAtIFBUUl9TSVpFLiBC
dXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24gaGFkCi0gICAgLy8gICAgbW9kaWZpZWQgdGhl
IHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tzcF0gdG8gcG9pbnQgaW4gdGhlIHJhbmdl
IGJldHdlZW4KLSAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNwdS5ncHJzW2lwXSB0aHJ1ICZQcm9i
ZUNvbnRleHQuY3B1LnNwcnNbYXNwcl0sIHRoZW4gdGhlIGFjdGlvbgotICAgIC8vICAgIGZvciBJ
c3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJlZm9yZSB3ZSBjYW4g
cmVzdG9yZSB0aGVtLgotICAgIC8vCi0gICAgLy8gICAgVGhlIHNvbHV0aW9uIGlzIHRvIGNoZWNr
IGlmIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tzcF0gY29udGFpbnMgYSB2YWx1ZSBpbgotICAgIC8v
ICAgIHRoZSB1bmRlc2lyYWJsZSByYW5nZS4gSWYgc28sIHdlIGNvcHkgdGhlIHJlbWFpbmluZyBQ
cm9iZUNvbnRleHQKLSAgICAvLyAgICByZWdpc3RlciBkYXRhIHRvIGEgc2FmZSBhcmVhIGZpcnN0
LCBhbmQgcmVzdG9yZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCi0gICAgLy8gICAgZnJvbSB0aGlz
IG5ldyBzYWZlIGFyZWEuCi0KLSAgICAvLyBUaGUgcmVzdG9yZSBhcmVhIGZvciB0aGUgcGMgd2ls
bCBiZSBsb2NhdGVkIGF0IDEgd29yZCBiZWxvdyB0aGUgcmVzdWx0YW50IHNwLgotICAgIC8vIEFs
bCByZXN0b3JlIHZhbHVlcyBhcmUgbG9jYXRlZCBhdCBvZmZzZXQgPD0gUFJPQkVfQ1BVX0FQU1Jf
T0ZGU0VULiBIZW5jZSwKLSAgICAvLyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHJlc3VsdGFu
dCBzcCA+IG9mZnNldCBvZiBhcHNyICsgMS4KLSAgICAiYWRkICAgICAgIGlwLCBzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9BUFNSX09GRlNFVCArIFBUUl9TSVpFKSAiXG4iCi0g
ICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQ
X09GRlNFVCkgIl0iICJcbiIKLSAgICAiY21wICAgICAgIGxyLCBpcCIgIlxuIgotICAgICJpdCAg
ICAgICAgZ3QiICJcbiIKLSAgICAiYmd0ICAgICAiIFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2Jl
VHJhbXBvbGluZUVuZCkgIlxuIgotCi0gICAgLy8gR2V0dGluZyBoZXJlIG1lYW5zIHRoYXQgdGhl
IHJlc3RvcmUgYXJlYSB3aWxsIG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dCBkYXRhCi0gICAgLy8g
dGhhdCB3ZSB3aWxsIG5lZWQgdG8gZ2V0IHRoZSByZXN0b3JhdGlvbiB2YWx1ZXMgZnJvbS4gU28s
IGxldCdzIG1vdmUgdGhhdAotICAgIC8vIGRhdGEgdG8gYSBzYWZlIHBsYWNlIGJlZm9yZSB3ZSBz
dGFydCB3cml0aW5nIGludG8gdGhlIHJlc3RvcmUgYXJlYS4KLSAgICAvLyBMZXQncyBsb2NhdGUg
dGhlICJzYWZlIGFyZWEiIGF0IDJ4IHNpemVvZihQcm9iZUNvbnRleHQpIGJlbG93IHdoZXJlIHRo
ZQotICAgIC8vIHJlc3RvcmUgYXJlYS4gVGhpcyBlbnN1cmVzIHRoYXQ6Ci0gICAgLy8gMS4gVGhl
IHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSByZXN0b3JlIGFyZWEuCi0gICAgLy8gMi4g
VGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQuCi0gICAgLy8g
ICAgVGhpcyBtYWtlcyBpdCBzbyB0aGF0IHdlIGNhbiB1c2UgbWVtY3B5IChkb2VzIG5vdCByZXF1
aXJlIG1lbW1vdmUpIHNlbWFudGljcwotICAgIC8vICAgIHRvIGNvcHkgdGhlIHJlc3RvcmUgdmFs
dWVzIHRvIHRoZSBzYWZlIGFyZWEuCi0KLSAgICAvLyBsciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwg
I1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKV0uCi0gICAgInN1YiAgICAg
ICBsciwgbHIsICMoMiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkg
IikiICJcbiIKLSAgICAKLSAgICAibW92ICAgICAgIGlwLCBzcCIgIlxuIiAvLyBTYXZlIHRoZSBv
cmlnaW5hbCBQcm9iZUNvbnRleHQqLgotICAgIAotICAgIC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sg
cG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlCi0g
ICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9tIGludGVycnVwdCBoYW5kbGVycyBvdmVy
d3JpdGluZyBpdC4KLSAgICAibW92ICAgICAgIHNwLCBsciIgIlxuIiAvLyBzcCBub3cgcG9pbnRz
IHRvIHRoZSBuZXcgUHJvYmVDb250ZXh0IGluIHRoZSBzYWZlIGFyZWEuCi0gICAgCi0gICAgIm1v
diAgICAgICBsciwgaXAiICJcbiIgLy8gVXNlIGxyIGFzIHRoZSBvbGQgUHJvYmVDb250ZXh0Ki4K
LSAgICAKLSAgICAvLyBDb3B5IHRoZSByZXN0b3JlIGRhdGEgdG8gdGhlIG5ldyBQcm9iZUNvbnRl
eHQqLgotICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9JUF9PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAg
ICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAi
XSIgIlxuIgotICAgICJzdHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBpcCwgW2xyLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3Ry
ICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTFJfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9QQ19PRkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwgW3NwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKLSAgICAi
bGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfQVBTUl9P
RkZTRVQpICJdIiAiXG4iCi0gICAgInN0ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgLy8gY3RpTWFzbVBy
b2JlVHJhbXBvbGluZUVuZCBleHBlY3RzIGxyIHRvIGNvbnRhaW4gdGhlIHNwIHZhbHVlIHRvIGJl
IHJlc3RvcmVkLgotICAgIC8vIFNpbmNlIHdlIHVzZWQgaXQgYXMgc2NyYXRjaCBhYm92ZSwgbGV0
J3MgcmVzdG9yZSBpdC4KLSAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgotCi0gICAgIi50aHVtYl9mdW5jICIg
VEhVTUJfRlVOQ19QQVJBTShjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iCi0gICAgU1lN
Qk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgogCiAgICAgLy8g
U2V0IHVwIHRoZSByZXN0b3JlIGFyZWEgZm9yIHNwIGFuZCBwYy4KLSAgICAvLyBsciBhbHJlYWR5
IGNvbnRhaW5zIFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKV0u
CisgICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X1NQX09GRlNFVCkgIl0iICJcbiIKIAogICAgIC8vIFB1c2ggdGhlIHBjIG9uIHRvIHRoZSByZXN0
b3JlIGFyZWEuCiAgICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0iICJcbiIKLSAgICAic3ViICAgICAgIGxyLCBsciwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiXG4iCisgICAgInN1YiAgICAgICBsciwgbHIs
ICMiIFNUUklOR0laRV9WQUxVRV9PRihPVVRfU0laRSkgIlxuIgogICAgICJzdHIgICAgICAgaXAs
IFtscl0iICJcbiIKICAgICAvLyBQb2ludCBzcCB0byB0aGUgcmVzdG9yZSBhcmVhLgogICAgICJz
dHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZT
RVQpICJdIiAiXG4iCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAkocmV2aXNpb24gMjIwNzk4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDEwIEBAIGV4dGVybiAiQyIgdm9p
ZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCkKIAogI2RlZmluZSBQUk9CRV9QUk9CRV9GVU5DVElP
Tl9PRkZTRVQgKDAgKiBQVFJfU0laRSkKICNkZWZpbmUgUFJPQkVfQVJHX09GRlNFVCAoMSAqIFBU
Ul9TSVpFKQorI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCAoMiAqIFBU
Ul9TSVpFKQorI2RlZmluZSBQUk9CRV9JTklUX1NUQUNLX0FSR19PRkZTRVQgKDMgKiBQVFJfU0la
RSkKIAotI2RlZmluZSBQUk9CRV9GSVJTVF9HUFJfT0ZGU0VUICgyICogUFRSX1NJWkUpCisjZGVm
aW5lIFBST0JFX0ZJUlNUX0dQUl9PRkZTRVQgKDQgKiBQVFJfU0laRSkKICNkZWZpbmUgUFJPQkVf
Q1BVX0VBWF9PRkZTRVQgKFBST0JFX0ZJUlNUX0dQUl9PRkZTRVQgKyAoMCAqIFBUUl9TSVpFKSkK
ICNkZWZpbmUgUFJPQkVfQ1BVX0VDWF9PRkZTRVQgKFBST0JFX0ZJUlNUX0dQUl9PRkZTRVQgKyAo
MSAqIFBUUl9TSVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX0VEWF9PRkZTRVQgKFBST0JFX0ZJUlNU
X0dQUl9PRkZTRVQgKyAoMiAqIFBUUl9TSVpFKSkKQEAgLTg3LDcgKzg5LDYgQEAgZXh0ZXJuICJD
IiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKQogCiAjaWYgQ1BVKFg4NikKICNkZWZpbmUg
UFJPQkVfU0laRSAoUFJPQkVfQ1BVX1hNTTdfT0ZGU0VUICsgWE1NX1NJWkUpCi0jZGVmaW5lIFBS
T0JFX0FMSUdORURfU0laRSAoUFJPQkVfU0laRSArICgyICogWE1NX1NJWkUpKQogI2Vsc2UgLy8g
Q1BVKFg4Nl82NCkKICNkZWZpbmUgUFJPQkVfQ1BVX1hNTThfT0ZGU0VUIChQUk9CRV9GSVJTVF9Y
TU1fT0ZGU0VUICsgKDggKiBYTU1fU0laRSkpCiAjZGVmaW5lIFBST0JFX0NQVV9YTU05X09GRlNF
VCAoUFJPQkVfRklSU1RfWE1NX09GRlNFVCArICg5ICogWE1NX1NJWkUpKQpAQCAtOTgsMTQgKzk5
LDE5IEBAIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCkKICNkZWZpbmUg
UFJPQkVfQ1BVX1hNTTE0X09GRlNFVCAoUFJPQkVfRklSU1RfWE1NX09GRlNFVCArICgxNCAqIFhN
TV9TSVpFKSkKICNkZWZpbmUgUFJPQkVfQ1BVX1hNTTE1X09GRlNFVCAoUFJPQkVfRklSU1RfWE1N
X09GRlNFVCArICgxNSAqIFhNTV9TSVpFKSkKICNkZWZpbmUgUFJPQkVfU0laRSAoUFJPQkVfQ1BV
X1hNTTE1X09GRlNFVCArIFhNTV9TSVpFKQotI2RlZmluZSBQUk9CRV9BTElHTkVEX1NJWkUgKFBS
T0JFX1NJWkUgKyAoNCAqIFhNTV9TSVpFKSkKICNlbmRpZiAvLyBDUFUoWDg2XzY0KQogCisvLyBU
aGUgb3V0Z29pbmcgcmVjb3JkIHRvIGJlIHBvcHBlZCBvZmYgdGhlIHN0YWNrIGF0IHRoZSBlbmQg
Y29uc2lzdHMgb2Y6CisvLyBlZmxhZ3MsIGVheCwgZWN4LCBlYnAsIGVpcC4KKyNkZWZpbmUgT1VU
X1NJWkUgICAgICAgICg1ICogUFRSX1NJWkUpCisKIC8vIFRoZXNlIEFTU0VSVHMgcmVtaW5kIHlv
dSB0aGF0IGlmIHlvdSBjaGFuZ2UgdGhlIGxheW91dCBvZiBQcm9iZUNvbnRleHQsCiAvLyB5b3Ug
bmVlZCB0byBjaGFuZ2UgY3RpTWFzbVByb2JlVHJhbXBvbGluZSBvZmZzZXRzIGFib3ZlIHRvIG1h
dGNoLgogI2RlZmluZSBQUk9CRV9PRkZTRVRPRih4KSBvZmZzZXRvZihzdHJ1Y3QgUHJvYmVDb250
ZXh0LCB4KQogQ09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YocHJvYmVGdW5jdGlvbikgPT0g
UFJPQkVfUFJPQkVfRlVOQ1RJT05fT0ZGU0VULCBQcm9iZUNvbnRleHRfcHJvYmVGdW5jdGlvbl9v
ZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKIENPTVBJTEVfQVNTRVJUKFBS
T0JFX09GRlNFVE9GKGFyZykgPT0gUFJPQkVfQVJHX09GRlNFVCwgUHJvYmVDb250ZXh0X2FyZ19v
ZmZzZXRfbWF0Y2hlc19jdGlNYXNtUHJvYmVUcmFtcG9saW5lKTsKK0NPTVBJTEVfQVNTRVJUKFBS
T0JFX09GRlNFVE9GKGluaXRpYWxpemVTdGFja0Z1bmN0aW9uKSA9PSBQUk9CRV9JTklUX1NUQUNL
X0ZVTkNUSU9OX09GRlNFVCwgUHJvYmVDb250ZXh0X2luaXRpYWxpemVTdGFja0Z1bmN0aW9uX29m
ZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOworQ09NUElMRV9BU1NFUlQoUFJP
QkVfT0ZGU0VUT0YoaW5pdGlhbGl6ZVN0YWNrQXJnKSA9PSBQUk9CRV9JTklUX1NUQUNLX0FSR19P
RkZTRVQsIFByb2JlQ29udGV4dF9pbml0aWFsaXplU3RhY2tBcmdfb2Zmc2V0X21hdGNoZXNfY3Rp
TWFzbVByb2JlVHJhbXBvbGluZSk7CiAKIENPTVBJTEVfQVNTRVJUKFBST0JFX09GRlNFVE9GKGNw
dS5ncHJzW1g4NlJlZ2lzdGVyczo6ZWF4XSkgPT0gUFJPQkVfQ1BVX0VBWF9PRkZTRVQsIFByb2Jl
Q29udGV4dF9jcHVfZWF4X29mZnNldF9tYXRjaGVzX2N0aU1hc21Qcm9iZVRyYW1wb2xpbmUpOwog
Q09NUElMRV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmdwcnNbWDg2UmVnaXN0ZXJzOjplY3hd
KSA9PSBQUk9CRV9DUFVfRUNYX09GRlNFVCwgUHJvYmVDb250ZXh0X2NwdV9lY3hfb2Zmc2V0X21h
dGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7CkBAIC0xNTIsNyArMTU4LDYgQEAgQ09NUElM
RV9BU1NFUlQoUFJPQkVfT0ZGU0VUT0YoY3B1LmZwcnNbWAogI2VuZGlmIC8vIENQVShYODZfNjQp
CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihQcm9iZUNvbnRleHQpID09IFBST0JFX1NJWkUsIFBy
b2JlQ29udGV4dF9zaXplX21hdGNoZXNfY3RpTWFzbVByb2JlVHJhbXBvbGluZSk7Ci1DT01QSUxF
X0FTU0VSVCghKFBST0JFX0FMSUdORURfU0laRSAmIDB4MWYpLCBQcm9iZUNvbnRleHRfYWxpZ25l
ZF9zaXplX29mZnNldF9zaG91bGRfYmVfMzJfYnl0ZV9hbGlnbmVkKTsKIAogI3VuZGVmIFBST0JF
X09GRlNFVE9GCiAKQEAgLTE3NSwxMCArMTgwLDkgQEAgYXNtICgKICAgICAvLyAgICAgZXNwWzUg
KiBwdHJTaXplXTogc2F2ZWQgZXNwCiAKICAgICAibW92bCAlZXNwLCAlZWF4IiAiXG4iCi0gICAg
InN1YmwgJCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkgIiwgJWVzcCIg
IlxuIgorICAgICJzdWJsICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9TSVpFICsgT1VUX1NJ
WkUpICIsICVlc3AiICJcbiIKIAotICAgIC8vIFRoZSBYODZfNjQgQUJJIHNwZWNpZmllcyB0aGF0
IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudCByZXF1aXJlbWVudAotICAgIC8vIGlzIDMy
IGJ5dGVzLgorICAgIC8vIFRoZSBYODZfNjQgQUJJIHNwZWNpZmllcyB0aGF0IHRoZSB3b3JzZSBj
YXNlIHN0YWNrIGFsaWdubWVudCByZXF1aXJlbWVudCBpcyAzMiBieXRlcy4KICAgICAiYW5kbCAk
fjB4MWYsICVlc3AiICJcbiIKIAogICAgICJtb3ZsICVlYnAsICIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9FQlBfT0ZGU0VUKSAiKCVlc3ApIiAiXG4iCkBAIC0yMTIsNiArMjE2LDkgQEAg
YXNtICgKICAgICAibW92cSAleG1tNiwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1hN
TTZfT0ZGU0VUKSAiKCVlYnApIiAiXG4iCiAgICAgIm1vdnEgJXhtbTcsICIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9YTU03X09GRlNFVCkgIiglZWJwKSIgIlxuIgogCisgICAgInhvcmwg
JWVheCwgJWVheCIgIlxuIgorICAgICJtb3ZsICVlYXgsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAiKCVlYnApIiAiXG4iCisKICAgICAvLyBS
ZXNlcnZlIHN0YWNrIHNwYWNlIGZvciB0aGUgYXJnIHdoaWxlIG1haW50YWluaW5nIHRoZSByZXF1
aXJlZCBzdGFjawogICAgIC8vIHBvaW50ZXIgMzIgYnl0ZSBhbGlnbm1lbnQ6CiAgICAgInN1Ymwg
JDB4MjAsICVlc3AiICJcbiIKQEAgLTIxOSw2ICsyMjYsNDggQEAgYXNtICgKIAogICAgICJjYWxs
ICoiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9QUk9CRV9GVU5DVElPTl9PRkZTRVQpICIoJWVi
cCkiICJcbiIKIAorICAgIC8vIE1ha2Ugc3VyZSB0aGUgUHJvYmVDb250ZXh0IGlzIGVudGlyZWx5
IGJlbG93IHRoZSByZXN1bHQgc3RhY2sgcG9pbnRlciBzbworICAgIC8vIHRoYXQgcmVnaXN0ZXIg
dmFsdWVzIGFyZSBzdGlsbCBwcmVzZXJ2ZWQgd2hlbiB3ZSBjYWxsIHRoZSBpbml0aWFsaXplU3Rh
Y2sKKyAgICAvLyBmdW5jdGlvbi4KKyAgICAibW92bCAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfU0laRSArIE9VVF9TSVpFKSAiLCAlZWN4IiAiXG4iCisgICAgIm1vdmwgJWVicCwgJWVheCIg
IlxuIgorICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VU
KSAiKCVlYnApLCAlZWR4IiAiXG4iCisgICAgImFkZGwgJWVjeCwgJWVheCIgIlxuIgorICAgICJj
bXBsICVlYXgsICVlZHgiICJcbiIKKyAgICAiamdlICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1h
c21Qcm9iZVRyYW1wb2xpbmVQcm9iZUNvbnRleHRJc1NhZmUpICJcbiIKKworICAgIC8vIEFsbG9j
YXRlIGEgc2FmZSBwbGFjZSBvbiB0aGUgc3RhY2sgYmVsb3cgdGhlIHJlc3VsdCBzdGFjayBwb2lu
dGVyIHRvIHN0YXNoIHRoZSBQcm9iZUNvbnRleHQuCisgICAgInN1YmwgJWVjeCwgJWVkeCIgIlxu
IgorICAgICJhbmRsICR+MHgxZiwgJWVkeCIgIlxuIiAvLyBLZWVwIHRoZSBzdGFjayBwb2ludGVy
IDMyIGJ5dGVzIGFsaWduZWQuCisgICAgInhvcmwgJWVheCwgJWVheCIgIlxuIgorICAgICJtb3Zs
ICVlZHgsICVlc3AiICJcbiIKKworICAgICJtb3ZsICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9TSVpFKSAiLCAlZWN4IiAiXG4iCisKKyAgICAvLyBDb3B5IHRoZSBQcm9iZUNvbnRleHQgdG8g
dGhlIHNhZmUgcGxhY2UuCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1w
b2xpbmVDb3B5TG9vcCkgIjoiICJcbiIKKyAgICAibW92bCAoJWVicCwgJWVheCksICVlZHgiICJc
biIKKyAgICAibW92bCAlZWR4LCAoJWVzcCwgJWVheCkiICJcbiIKKyAgICAiYWRkbCAkIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIsICVlYXgiICJcbiIKKyAgICAiY21wbCAlZWF4LCAl
ZWN4IiAiXG4iCisgICAgImpnICIgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1w
b2xpbmVDb3B5TG9vcCkgIlxuIgorCisgICAgIm1vdmwgJWVzcCwgJWVicCIgIlxuIgorCisgICAg
Ly8gQ2FsbCBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBpZiBwcmVzZW50LgorICAgIExPQ0FMX0xB
QkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJvYmVDb250ZXh0SXNTYWZlKSAiOiIg
IlxuIgorICAgICJ4b3JsICVlY3gsICVlY3giICJcbiIKKyAgICAiYWRkbCAiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9JTklUX1NUQUNLX0ZVTkNUSU9OX09GRlNFVCkgIiglZWJwKSwgJWVjeCIg
IlxuIgorICAgICJqZSAiIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5l
UmVzdG9yZVJlZ2lzdGVycykgIlxuIgorCisgICAgLy8gUmVzZXJ2ZSBzdGFjayBzcGFjZSBmb3Ig
dGhlIGFyZyB3aGlsZSBtYWludGFpbmluZyB0aGUgcmVxdWlyZWQgc3RhY2sKKyAgICAvLyBwb2lu
dGVyIDMyIGJ5dGUgYWxpZ25tZW50OgorICAgICJzdWJsICQweDIwLCAlZXNwIiAiXG4iCisgICAg
Im1vdmwgJWVicCwgMCglZXNwKSIgIlxuIiAvLyB0aGUgUHJvYmVDb250ZXh0KiBhcmcuCisgICAg
ImNhbGwgKiVlY3giICJcbiIKKworICAgIExPQ0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVU
cmFtcG9saW5lUmVzdG9yZVJlZ2lzdGVycykgIjoiICJcbiIKKwogICAgIC8vIFRvIGVuYWJsZSBw
cm9iZXMgdG8gbW9kaWZ5IHJlZ2lzdGVyIHN0YXRlLCB3ZSBjb3B5IGFsbCByZWdpc3RlcnMKICAg
ICAvLyBvdXQgb2YgdGhlIFByb2JlQ29udGV4dCBiZWZvcmUgcmV0dXJuaW5nLgogCkBAIC0yNDks
NTkgKzI5OCwxMCBAQCBhc20gKAogCiAgICAgLy8gZWN4IG5vdyBwb2ludHMgdG8gdGhlIHJlc3Rv
cmUgYXJlYS4KIAotICAgIC8vIEJlZm9yZSB3ZSBjb3B5IHZhbHVlcyBmcm9tIHRoZSBQcm9iZUNv
bnRleHQgdG8gdGhlIHJlc3RvcmUgYXJlYSwgd2UgbmVlZCB0bwotICAgIC8vIG1ha2Ugc3VyZSB0
aGF0IHRoZSByZXN0b3JlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCBhbnkgb2YgdGhlIHZhbHVlcyB0
aGF0IHdlJ2xsCi0gICAgLy8gYmUgY29weWluZyBmcm9tIGluIHRoZSBQcm9iZUNvbnRleHQuIEFs
bCB0aGUgcmVzdG9yZSB2YWx1ZXMgdG8gYmUgY29waWVkIGZyb20KLSAgICAvLyBjb21lcyBmcm9t
IG9mZnNldCA8PSBQUk9CRV9DUFVfRUZMQUdTX09GRlNFVCBpbiB0aGUgUHJvYmVDb250ZXh0Lgot
ICAgICJtb3ZsICVlYnAsICVlYXgiICJcbiIKLSAgICAiYWRkbCAkIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIsICVlYXgiICJcbiIKLSAgICAiY21wbCAlZWF4
LCAlZWN4IiAiXG4iCi0gICAgImpnICIgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9s
aW5lRW5kKSAiXG4iCi0KLSAgICAvLyBHZXR0aW5nIGhlcmUgbWVhbnMgdGhhdCB0aGUgcmVzdG9y
ZSBhcmVhIHdpbGwgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0IGRhdGEKLSAgICAvLyB0aGF0IHdl
IHdpbGwgbmVlZCB0byBnZXQgdGhlIHJlc3RvcmF0aW9uIHZhbHVlcyBmcm9tLiBTbywgbGV0J3Mg
bW92ZSB0aGF0Ci0gICAgLy8gZGF0YSB0byBhIHNhZmUgcGxhY2UgYmVmb3JlIHdlIHN0YXJ0IHdy
aXRpbmcgaW50byB0aGUgcmVzdG9yZSBhcmVhLgotICAgIC8vIExldCdzIGxvY2F0ZSB0aGUgInNh
ZmUgYXJlYSIgYXQgMnggc2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlCi0gICAg
Ly8gcmVzdG9yZSBhcmVhLiBUaGlzIGVuc3VyZXMgdGhhdDoKLSAgICAvLyAxLiBUaGUgc2FmZSBh
cmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIHJlc3RvcmUgYXJlYS4KLSAgICAvLyAyLiBUaGUgc2Fm
ZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dC4KLSAgICAvLyAgICBUaGlz
IG1ha2VzIGl0IHNvIHRoYXQgd2UgY2FuIHVzZSBtZW1jcHkgKGRvZXMgbm90IHJlcXVpcmUgbWVt
bW92ZSkgc2VtYW50aWNzCi0gICAgLy8gICAgdG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZXMgdG8g
dGhlIHNhZmUgYXJlYS4KLSAgICAvLyBOb3RlOiB0aGUgc2FmZSBhcmVhIGRvZXMgbm90IGhhdmUg
dG8gMzItYnl0ZSBhbGlnbiBpdCBiZWNhdXNlIHdlJ3JlIG5vdCB1c2luZwotICAgIC8vIGl0IHRv
IHN0b3JlIGFueSB4bW0gcmVncy4KLSAgICAibW92bCAlZWN4LCAlZWF4IiAiXG4iCi0gICAgInN1
YmwgJDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9BTElHTkVEX1NJWkUpICIsICVlYXgi
ICJcbiIKLQotICAgIC8vIGVheCBub3cgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuCi0KLSAgICAv
LyBNYWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRo
aXMgZW5zdXJlcyB0aGF0IHRoZQotICAgIC8vIHNhZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBp
bnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuCi0gICAgIm1vdmwgJWVheCwgJWVzcCIg
IlxuIgotCi0gICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VBWF9PRkZT
RVQpICIoJWVicCksICVlY3giICJcbiIKLSAgICAibW92bCAlZWN4LCAiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglZWF4KSIgIlxuIgotICAgICJtb3ZsICIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQ1hfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAiXG4i
Ci0gICAgIm1vdmwgJWVjeCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VDWF9PRkZT
RVQpICIoJWVheCkiICJcbiIKLSAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfRUJQX09GRlNFVCkgIiglZWJwKSwgJWVjeCIgIlxuIgotICAgICJtb3ZsICVlY3gsICIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQlBfT0ZGU0VUKSAiKCVlYXgpIiAiXG4iCi0gICAg
Im1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJWVicCks
ICVlY3giICJcbiIKLSAgICAibW92bCAlZWN4LCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfRVNQX09GRlNFVCkgIiglZWF4KSIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0NQVV9FSVBfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAiXG4iCi0gICAgIm1vdmwg
JWVjeCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VJUF9PRkZTRVQpICIoJWVheCki
ICJcbiIKLSAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUZMQUdTX09G
RlNFVCkgIiglZWJwKSwgJWVjeCIgIlxuIgotICAgICJtb3ZsICVlY3gsICIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1vdmwg
JWVheCwgJWVicCIgIlxuIgotCi0gICAgLy8gV2UgdXNlZCBlY3ggYWJvdmUgYXMgc2NyYXRjaCBy
ZWdpc3Rlci4gTGV0J3MgcmVzdG9yZSBpdCB0byBwb2ludHMgdG8gdGhlCi0gICAgLy8gcmVzdG9y
ZSBhcmVhLgotICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZG
U0VUKSAiKCVlYnApLCAlZWN4IiAiXG4iCi0gICAgInN1YmwgJDUgKiAiIFNUUklOR0laRV9WQUxV
RV9PRihQVFJfU0laRSkgIiwgJWVjeCIgIlxuIgotCi0gICAgLy8gZWN4IG5vdyBwb2ludHMgdG8g
dGhlIHJlc3RvcmUgYXJlYS4KLQotICAgIFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2JlVHJhbXBv
bGluZUVuZCkgIjoiICJcbiIKLQogICAgIC8vIENvcHkgcmVtYWluaW5nIHJlc3RvcmUgdmFsdWVz
IGZyb20gdGhlIFByb2JlQ29udGV4dCB0byB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIE5vdGU6
IFdlIGFscmVhZHkgZW5zdXJlZCBhYm92ZSB0aGF0IHRoZSBQcm9iZUNvbnRleHQgaXMgaW4gYSBz
YWZlIGxvY2F0aW9uIGJlZm9yZQorICAgIC8vIGNhbGxpbmcgdGhlIGluaXRpYWxpemVTdGFja0Z1
bmN0aW9uLiBUaGUgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgdG8KKyAg
ICAvLyBjaGFuZ2UgdGhlIHN0YWNrIHBvaW50ZXIgYWdhaW4uCiAgICAgIm1vdmwgIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJWVicCksICVlYXgiICJcbiIK
ICAgICAibW92bCAlZWF4LCAwICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVj
eCkiICJcbiIKICAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUFYX09G
RlNFVCkgIiglZWJwKSwgJWVheCIgIlxuIgpAQCAtMzQyLDExICszNDIsMTEgQEAgYXNtICgKICAg
ICAvLyAgICAgZXNwWzUgKiBwdHJTaXplXTogc2F2ZWQgcnNwCiAKICAgICAibW92cSAlcnNwLCAl
cmF4IiAiXG4iCi0gICAgInN1YnEgJCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURf
U0laRSkgIiwgJXJzcCIgIlxuIgorICAgICJzdWJxICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9TSVpFICsgT1VUX1NJWkUpICIsICVyc3AiICJcbiIKIAotICAgIC8vIFRoZSBYODZfNjQgQUJJ
IHNwZWNpZmllcyB0aGF0IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudCByZXF1aXJlbWVu
dAotICAgIC8vIGlzIDMyIGJ5dGVzLgorICAgIC8vIFRoZSBYODZfNjQgQUJJIHNwZWNpZmllcyB0
aGF0IHRoZSB3b3JzZSBjYXNlIHN0YWNrIGFsaWdubWVudCByZXF1aXJlbWVudCBpcyAzMiBieXRl
cy4KICAgICAiYW5kcSAkfjB4MWYsICVyc3AiICJcbiIKKyAgICAvLyBTaW5jZSBzcCBwb2ludHMg
dG8gdGhlIFByb2JlQ29udGV4dCwgd2UndmUgZW5zdXJlZCB0aGF0IGl0J3MgcHJvdGVjdGVkIGZy
b20gaW50ZXJydXB0cyBiZWZvcmUgd2UgaW5pdGlhbGl6ZSBpdC4KIAogICAgICJtb3ZxICVyYnAs
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQlBfT0ZGU0VUKSAiKCVyc3ApIiAiXG4i
CiAgICAgIm1vdnEgJXJzcCwgJXJicCIgIlxuIiAvLyBTYXZlIHRoZSBQcm9iZUNvbnRleHQqLgpA
QCAtMzk2LDkgKzM5Niw1MSBAQCBhc20gKAogICAgICJtb3ZxICV4bW0xNCwgIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1hNTTE0X09GRlNFVCkgIiglcmJwKSIgIlxuIgogICAgICJtb3Zx
ICV4bW0xNSwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1hNTTE1X09GRlNFVCkgIigl
cmJwKSIgIlxuIgogCisgICAgInhvcnEgJXJheCwgJXJheCIgIlxuIgorICAgICJtb3ZxICVyYXgs
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05fT0ZGU0VUKSAi
KCVyYnApIiAiXG4iCisKICAgICAibW92cSAlcmJwLCAlcmRpIiAiXG4iIC8vIHRoZSBQcm9iZUNv
bnRleHQqIGFyZy4KICAgICAiY2FsbCAqIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfUFJPQkVf
RlVOQ1RJT05fT0ZGU0VUKSAiKCVyYnApIiAiXG4iCiAKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFBy
b2JlQ29udGV4dCBpcyBlbnRpcmVseSBiZWxvdyB0aGUgcmVzdWx0IHN0YWNrIHBvaW50ZXIgc28K
KyAgICAvLyB0aGF0IHJlZ2lzdGVyIHZhbHVlcyBhcmUgc3RpbGwgcHJlc2VydmVkIHdoZW4gd2Ug
Y2FsbCB0aGUgaW5pdGlhbGl6ZVN0YWNrCisgICAgLy8gZnVuY3Rpb24uCisgICAgIm1vdnEgJCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJWkUgKyBPVVRfU0laRSkgIiwgJXJjeCIgIlxuIgor
ICAgICJtb3ZxICVyYnAsICVyYXgiICJcbiIKKyAgICAibW92cSAiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIiglcmJwKSwgJXJkeCIgIlxuIgorICAgICJhZGRxICVy
Y3gsICVyYXgiICJcbiIKKyAgICAiY21wcSAlcmF4LCAlcmR4IiAiXG4iCisgICAgImpnZSAiIExP
Q0FMX0xBQkVMX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lUHJvYmVDb250ZXh0SXNTYWZl
KSAiXG4iCisgCisgICAgLy8gQWxsb2NhdGUgYSBzYWZlIHBsYWNlIG9uIHRoZSBzdGFjayBiZWxv
dyB0aGUgcmVzdWx0IHN0YWNrIHBvaW50ZXIgdG8gc3Rhc2ggdGhlIFByb2JlQ29udGV4dC4KKyAg
ICAic3VicSAlcmN4LCAlcmR4IiAiXG4iCisgICAgImFuZHEgJH4weDFmLCAlcmR4IiAiXG4iIC8v
IEtlZXAgdGhlIHN0YWNrIHBvaW50ZXIgMzIgYnl0ZXMgYWxpZ25lZC4KKyAgICAieG9ycSAlcmF4
LCAlcmF4IiAiXG4iCisgICAgIm1vdnEgJXJkeCwgJXJzcCIgIlxuIgorCisgICAgIm1vdnEgJCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX1NJWkUpICIsICVyY3giICJcbiIKKworICAgIC8vIENv
cHkgdGhlIFByb2JlQ29udGV4dCB0byB0aGUgc2FmZSBwbGFjZS4KKyAgICBMT0NBTF9MQUJFTF9T
VFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUNvcHlMb29wKSAiOiIgIlxuIgorICAgICJtb3Zx
ICglcmJwLCAlcmF4KSwgJXJkeCIgIlxuIgorICAgICJtb3ZxICVyZHgsICglcnNwLCAlcmF4KSIg
IlxuIgorICAgICJhZGRxICQiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJXJheCIg
IlxuIgorICAgICJjbXBxICVyYXgsICVyY3giICJcbiIKKyAgICAiamcgIiBMT0NBTF9MQUJFTF9T
VFJJTkcoY3RpTWFzbVByb2JlVHJhbXBvbGluZUNvcHlMb29wKSAiXG4iCisKKyAgICAibW92cSAl
cnNwLCAlcmJwIiAiXG4iCisKKyAgICAvLyBDYWxsIGluaXRpYWxpemVTdGFja0Z1bmN0aW9uIGlm
IHByZXNlbnQuCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVQ
cm9iZUNvbnRleHRJc1NhZmUpICI6IiAiXG4iCisgICAgInhvcnEgJXJjeCwgJXJjeCIgIlxuIgor
ICAgICJhZGRxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0lOSVRfU1RBQ0tfRlVOQ1RJT05f
T0ZGU0VUKSAiKCVyYnApLCAlcmN4IiAiXG4iCisgICAgImplICIgTE9DQUxfTEFCRUxfU1RSSU5H
KGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVSZXN0b3JlUmVnaXN0ZXJzKSAiXG4iCisKKyAgICAibW92
cSAlcmJwLCAlcmRpIiAiXG4iIC8vIHRoZSBQcm9iZUNvbnRleHQqIGFyZy4KKyAgICAiY2FsbCAq
JXJjeCIgIlxuIgorCisgICAgTE9DQUxfTEFCRUxfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xp
bmVSZXN0b3JlUmVnaXN0ZXJzKSAiOiIgIlxuIgorCiAgICAgLy8gVG8gZW5hYmxlIHByb2JlcyB0
byBtb2RpZnkgcmVnaXN0ZXIgc3RhdGUsIHdlIGNvcHkgYWxsIHJlZ2lzdGVycwogICAgIC8vIG91
dCBvZiB0aGUgUHJvYmVDb250ZXh0IGJlZm9yZSByZXR1cm5pbmcuCiAKQEAgLTQ0Niw1OSArNDg4
LDEwIEBAIGFzbSAoCiAKICAgICAvLyByY3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVh
LgogCi0gICAgLy8gQmVmb3JlIHdlIGNvcHkgdmFsdWVzIGZyb20gdGhlIFByb2JlQ29udGV4dCB0
byB0aGUgcmVzdG9yZSBhcmVhLCB3ZSBuZWVkIHRvCi0gICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhl
IHJlc3RvcmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIGFueSBvZiB0aGUgdmFsdWVzIHRoYXQgd2Un
bGwKLSAgICAvLyBiZSBjb3B5aW5nIGZyb20gaW4gdGhlIFByb2JlQ29udGV4dC4gQWxsIHRoZSBy
ZXN0b3JlIHZhbHVlcyB0byBiZSBjb3BpZWQgZnJvbQotICAgIC8vIGNvbWVzIGZyb20gb2Zmc2V0
IDw9IFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUIGluIHRoZSBQcm9iZUNvbnRleHQuCi0gICAgIm1v
dnEgJXJicCwgJXJheCIgIlxuIgotICAgICJhZGRxICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfRUZMQUdTX09GRlNFVCkgIiwgJXJheCIgIlxuIgotICAgICJjbXBxICVyYXgsICVyY3gi
ICJcbiIKLSAgICAiamcgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQp
ICJcbiIKLQotICAgIC8vIEdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRoZSByZXN0b3JlIGFyZWEg
d2lsbCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQgZGF0YQotICAgIC8vIHRoYXQgd2Ugd2lsbCBu
ZWVkIHRvIGdldCB0aGUgcmVzdG9yYXRpb24gdmFsdWVzIGZyb20uIFNvLCBsZXQncyBtb3ZlIHRo
YXQKLSAgICAvLyBkYXRhIHRvIGEgc2FmZSBwbGFjZSBiZWZvcmUgd2Ugc3RhcnQgd3JpdGluZyBp
bnRvIHRoZSByZXN0b3JlIGFyZWEuCi0gICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAic2FmZSBhcmVh
IiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUKLSAgICAvLyByZXN0
b3JlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0OgotICAgIC8vIDEuIFRoZSBzYWZlIGFyZWEgZG9l
cyBub3Qgb3ZlcmxhcCB0aGUgcmVzdG9yZSBhcmVhLgotICAgIC8vIDIuIFRoZSBzYWZlIGFyZWEg
ZG9lcyBub3Qgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0LgotICAgIC8vICAgIFRoaXMgbWFrZXMg
aXQgc28gdGhhdCB3ZSBjYW4gdXNlIG1lbWNweSAoZG9lcyBub3QgcmVxdWlyZSBtZW1tb3ZlKSBz
ZW1hbnRpY3MKLSAgICAvLyAgICB0byBjb3B5IHRoZSByZXN0b3JlIHZhbHVlcyB0byB0aGUgc2Fm
ZSBhcmVhLgotICAgIC8vIE5vdGU6IHRoZSBzYWZlIGFyZWEgZG9lcyBub3QgaGF2ZSB0byAzMi1i
eXRlIGFsaWduIGl0IGJlY2F1c2Ugd2UncmUgbm90IHVzaW5nCi0gICAgLy8gaXQgdG8gc3RvcmUg
YW55IHhtbSByZWdzLgotICAgICJtb3ZxICVyY3gsICVyYXgiICJcbiIKLSAgICAic3VicSAkMiAq
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkgIiwgJXJheCIgIlxuIgot
Ci0gICAgLy8gcmF4IG5vdyBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4KLQotICAgIC8vIE1ha2Ug
c3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4gVGhpcyBlbnN1
cmVzIHRoYXQgdGhlCi0gICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9tIGludGVycnVw
dCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KLSAgICAibW92cSAlcmF4LCAlcnNwIiAiXG4iCi0K
LSAgICAibW92cSAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIigl
cmJwKSwgJXJjeCIgIlxuIgotICAgICJtb3ZxICVyY3gsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9FQVhfT0ZGU0VUKSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX0VDWF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKLSAgICAi
bW92cSAlcmN4LCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUNYX09GRlNFVCkgIigl
cmF4KSIgIlxuIgotICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQlBf
T0ZGU0VUKSAiKCVyYnApLCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX0VCUF9PRkZTRVQpICIoJXJheCkiICJcbiIKLSAgICAibW92cSAi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIiglcmJwKSwgJXJjeCIg
IlxuIgotICAgICJtb3ZxICVyY3gsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1Bf
T0ZGU0VUKSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX0VJUF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKLSAgICAibW92cSAlcmN4LCAi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUlQX09GRlNFVCkgIiglcmF4KSIgIlxuIgot
ICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAi
KCVyYnApLCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJXJheCkiICJcbiIKLSAgICAibW92cSAlcmF4LCAl
cmJwIiAiXG4iCi0KLSAgICAvLyBXZSB1c2VkIHJjeCBhYm92ZSBhcyBzY3JhdGNoIHJlZ2lzdGVy
LiBMZXQncyByZXN0b3JlIGl0IHRvIHBvaW50cyB0byB0aGUKLSAgICAvLyByZXN0b3JlIGFyZWEu
Ci0gICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIo
JXJicCksICVyY3giICJcbiIKLSAgICAic3VicSAkNSAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBU
Ul9TSVpFKSAiLCAlcmN4IiAiXG4iCi0KLSAgICAvLyByY3ggbm93IHBvaW50cyB0byB0aGUgcmVz
dG9yZSBhcmVhLgotCi0gICAgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5k
KSAiOiIgIlxuIgotCiAgICAgLy8gQ29weSByZW1haW5pbmcgcmVzdG9yZSB2YWx1ZXMgZnJvbSB0
aGUgUHJvYmVDb250ZXh0IHRvIHRoZSByZXN0b3JlIGFyZWEuCisgICAgLy8gTm90ZTogV2UgYWxy
ZWFkeSBlbnN1cmVkIGFib3ZlIHRoYXQgdGhlIFByb2JlQ29udGV4dCBpcyBpbiBhIHNhZmUgbG9j
YXRpb24gYmVmb3JlCisgICAgLy8gY2FsbGluZyB0aGUgaW5pdGlhbGl6ZVN0YWNrRnVuY3Rpb24u
IFRoZSBpbml0aWFsaXplU3RhY2tGdW5jdGlvbiBpcyBub3QgYWxsb3dlZCB0bworICAgIC8vIGNo
YW5nZSB0aGUgc3RhY2sgcG9pbnRlciBhZ2Fpbi4KICAgICAibW92cSAiIFNUUklOR0laRV9WQUxV
RV9PRihQUk9CRV9DUFVfRUZMQUdTX09GRlNFVCkgIiglcmJwKSwgJXJheCIgIlxuIgogICAgICJt
b3ZxICVyYXgsIDAgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiglcmN4KSIgIlxu
IgogICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQVhfT0ZGU0VUKSAi
KCVyYnApLCAlcmF4IiAiXG4iCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L3Rlc3RtYXNtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL3Rlc3RtYXNtLmNwcAkocmV2aXNpb24gMjIwNzk4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIHsKIAordXNpbmcgQ1BVU3RhdGUg
PSBNYWNyb0Fzc2VtYmxlcjo6Q1BVU3RhdGU7CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiB0
eXBlZGVmIFdURjo6RnVuY3Rpb248dm9pZChDQ2FsbEhlbHBlcnMmKT4gR2VuZXJhdG9yOwpAQCAt
MjY3LDcgKzI2OSw3IEBAIHZvaWQgdGVzdFByb2JlUHJlc2VydmVzR1BSUygpCiAgICAgLy8gaGF2
aW5nIGFscmVhZHkgdmFsaWRhdGVkIHRoYXQgd2UgY2FuIHJlYWQgYW5kIHdyaXRlIGZyb20gcmVn
aXN0ZXJzLiBXZSdsbCB1c2UgdGhlc2UgYWJpbGl0aWVzCiAgICAgLy8gdG8gdmFsaWRhdGUgdGhh
dCB0aGUgcHJvYmUgcHJlc2VydmVzIHJlZ2lzdGVyIHZhbHVlcy4KICAgICB1bnNpZ25lZCBwcm9i
ZUNhbGxDb3VudCA9IDA7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIG9yaWdpbmFsU3Rh
dGU7CisgICAgQ1BVU3RhdGUgb3JpZ2luYWxTdGF0ZTsKIAogICAgIGNvbXBpbGVBbmRSdW48dm9p
ZD4oWyZdIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uUHJv
bG9ndWUoKTsKQEAgLTM0Nyw3ICszNDksNyBAQCB2b2lkIHRlc3RQcm9iZVByZXNlcnZlc0dQUlMo
KQogdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihXVEY6OkZ1bmN0aW9uPHZvaWQq
KFByb2JlQ29udGV4dCopPiBjb21wdXRlTW9kaWZpZWRTdGFjaykKIHsKICAgICB1bnNpZ25lZCBw
cm9iZUNhbGxDb3VudCA9IDA7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIG9yaWdpbmFs
U3RhdGU7CisgICAgQ1BVU3RhdGUgb3JpZ2luYWxTdGF0ZTsKICAgICB2b2lkKiBvcmlnaW5hbFNQ
IHsgbnVsbHB0ciB9OwogICAgIHZvaWQqIG1vZGlmaWVkU1AgeyBudWxscHRyIH07CiAgICAgdWlu
dHB0cl90IG1vZGlmaWVkRmxhZ3MgeyAwIH07CkBAIC01MDgsNiArNTEwLDE1OCBAQCB2b2lkIHRl
c3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIoKQogICAgIENIRUNLX0VRKGNvbnRpbnVhdGlv
bldhc1JlYWNoZWQsIHRydWUpOwogfQogCitzdHJ1Y3QgRmlsbFN0YWNrRGF0YSB7CisgICAgQ1BV
U3RhdGUgb3JpZ2luYWxTdGF0ZTsKKyAgICB2b2lkKiBvcmlnaW5hbFNQIHsgbnVsbHB0ciB9Owor
ICAgIHZvaWQqIG5ld1NQIHsgbnVsbHB0ciB9OworICAgIHVpbnRwdHJfdCBtb2RpZmllZEZsYWdz
IHsgMCB9OworICAgIE1hY3JvQXNzZW1ibGVyOjpTUFJlZ2lzdGVySUQgZmxhZ3NTUFI7Cit9Owor
CitzdGF0aWMgdm9pZCBmaWxsU3RhY2soUHJvYmVDb250ZXh0KiBjb250ZXh0KQoreworICAgIGF1
dG8mIGNwdSA9IGNvbnRleHQtPmNwdTsKKworICAgIEZpbGxTdGFja0RhdGEmIGRhdGEgPSAqcmVp
bnRlcnByZXRfY2FzdDxGaWxsU3RhY2tEYXRhKj4oY29udGV4dC0+aW5pdGlhbGl6ZVN0YWNrQXJn
KTsKKyAgICBDUFVTdGF0ZSYgb3JpZ2luYWxTdGF0ZSA9IGRhdGEub3JpZ2luYWxTdGF0ZTsKKyAg
ICB2b2lkKiYgb3JpZ2luYWxTUCA9IGRhdGEub3JpZ2luYWxTUDsKKyAgICB2b2lkKiYgbmV3U1Ag
PSBkYXRhLm5ld1NQOworICAgIHVpbnRwdHJfdCYgbW9kaWZpZWRGbGFncyA9IGRhdGEubW9kaWZp
ZWRGbGFnczsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6U1BSZWdpc3RlcklEJiBmbGFnc1NQUiA9IGRh
dGEuZmxhZ3NTUFI7CisKKyAgICBDSEVDS19FUShyZWludGVycHJldF9jYXN0PHZvaWQqPihjb250
ZXh0LT5pbml0aWFsaXplU3RhY2tGdW5jdGlvbiksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGZp
bGxTdGFjaykpOworICAgIENIRUNLX0VRKGNwdS5zcCgpLCBuZXdTUCk7CisKKyAgICAvLyBWZXJp
ZnkgdGhhdCB0aGUgcHJvYmUgaGFzIHB1dCB0aGUgUHJvYmVDb250ZXh0IG91dCBvZiBoYXJtJ3Mg
d2F5LgorICAgIENIRUNLX0VRKChyZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0ICsgMSkg
PD0gY3B1LnNwKCkpLCB0cnVlKTsKKworICAgIC8vIFZlcmlmeSB0aGUgQ1BVIHN0YXRlLgorICAg
IGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2Fs
bEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKKyAgICAgICAgaWYg
KGlzRlAoaWQpKSB7CisgICAgICAgICAgICBDSEVDS19FUShjcHUuZ3ByKGlkKSwgb3JpZ2luYWxT
dGF0ZS5ncHIoaWQpKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAg
IGlmIChpc1NwZWNpYWxHUFIoaWQpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIENI
RUNLX0VRKGNwdS5ncHIoaWQpLCB0ZXN0V29yZChpZCkpOworICAgIH0KKyAgICBmb3IgKGF1dG8g
aWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6
Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkKKyAgICAgICAgQ0hFQ0tfRVEoY3B1
LmZwcjx1aW50NjRfdD4oaWQpLCB0ZXN0V29yZDY0KGlkKSk7CisgICAgQ0hFQ0tfRVEoY3B1LnNw
cihmbGFnc1NQUiksIG1vZGlmaWVkRmxhZ3MpOworCisgICAgLy8gRmlsbCB0aGUgc3RhY2sgd2l0
aCB2YWx1ZXMuCisgICAgdWludHB0cl90KiBwID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Qq
PihuZXdTUCk7CisgICAgaW50IGNvdW50ID0gMDsKKyAgICB3aGlsZSAocCA8IHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90Kj4ob3JpZ2luYWxTUCkpCisgICAgICAgICpwKysgPSB0ZXN0V29yZChj
b3VudCsrKTsKK307CisKK3ZvaWQgdGVzdFByb2JlTW9kaWZpZXNTdGFja1dpdGhDYWxsYmFjaygp
Cit7CisgICAgdW5zaWduZWQgcHJvYmVDYWxsQ291bnQgPSAwOworICAgIEZpbGxTdGFja0RhdGEg
ZGF0YTsKKyAgICBDUFVTdGF0ZSYgb3JpZ2luYWxTdGF0ZSA9IGRhdGEub3JpZ2luYWxTdGF0ZTsK
KyAgICB2b2lkKiYgb3JpZ2luYWxTUCA9IGRhdGEub3JpZ2luYWxTUDsKKyAgICB2b2lkKiYgbmV3
U1AgPSBkYXRhLm5ld1NQOworICAgIHVpbnRwdHJfdCYgbW9kaWZpZWRGbGFncyA9IGRhdGEubW9k
aWZpZWRGbGFnczsKKyAgICBzaXplX3QgbnVtYmVyT2ZFeHRyYUVudHJpZXNUb1dyaXRlID0gMTA7
IC8vIEFSTTY0IHJlcXVpcmVzIHRoYXQgdGhpcyBiZSAyIHdvcmQgYWxpZ25lZC4KKyAgICBNYWNy
b0Fzc2VtYmxlcjo6U1BSZWdpc3RlcklEJiBmbGFnc1NQUiA9IGRhdGEuZmxhZ3NTUFI7CisKKyNp
ZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorICAgIGZsYWdzU1BSID0gWDg2UmVnaXN0ZXJzOjpl
ZmxhZ3M7CisgICAgdWludHB0cl90IGZsYWdzTWFzayA9IDB4YzU7CisjZWxpZiBDUFUoQVJNX1RI
VU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkKKyAgICBmbGFnc1NQUiA9IEFSTVJlZ2lzdGVy
czo6YXBzcjsKKyAgICB1aW50cHRyX3QgZmxhZ3NNYXNrID0gMHhmMDAwMDAwMDsKKyNlbGlmIENQ
VShBUk02NCkKKyAgICBmbGFnc1NQUiA9IEFSTTY0UmVnaXN0ZXJzOjpuemN2OworICAgIHVpbnRw
dHJfdCBmbGFnc01hc2sgPSAweGYwMDAwMDAwOworI2VuZGlmCisKKyAgICBjb21waWxlQW5kUnVu
PHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgaml0LmVtaXRGdW5jdGlv
blByb2xvZ3VlKCk7CisKKyAgICAgICAgLy8gV3JpdGUgZXhwZWN0ZWQgdmFsdWVzIGludG8gdGhl
IHJlZ2lzdGVycy4KKyAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250ZXh0
KSB7CisgICAgICAgICAgICBhdXRvJiBjcHUgPSBjb250ZXh0LT5jcHU7CisgICAgICAgICAgICBw
cm9iZUNhbGxDb3VudCsrOworCisgICAgICAgICAgICAvLyBQcmVzZXJ2ZSB0aGUgb3JpZ2luYWwg
Q1BVIHN0YXRlLgorICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJz
dFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4
dElEKGlkKSkgeworICAgICAgICAgICAgICAgIG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSA9IGNwdS5n
cHIoaWQpOworICAgICAgICAgICAgICAgIGlmIChpc1NwZWNpYWxHUFIoaWQpKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjcHUuZ3ByKGlkKSA9IHRlc3RX
b3JkKHN0YXRpY19jYXN0PGludD4oaWQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZv
ciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxs
SGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAg
ICAgICAgb3JpZ2luYWxTdGF0ZS5mcHIoaWQpID0gY3B1LmZwcihpZCk7CisgICAgICAgICAgICAg
ICAgY3B1LmZwcihpZCkgPSBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih0ZXN0V29yZDY0KGlkKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQUikgPSBj
cHUuc3ByKGZsYWdzU1BSKTsKKyAgICAgICAgICAgIG1vZGlmaWVkRmxhZ3MgPSBvcmlnaW5hbFN0
YXRlLnNwcihmbGFnc1NQUikgXiBmbGFnc01hc2s7CisgICAgICAgICAgICBjcHUuc3ByKGZsYWdz
U1BSKSA9IG1vZGlmaWVkRmxhZ3M7CisKKyAgICAgICAgICAgIENIRUNLX0VRKHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KGNvbnRleHQtPmluaXRpYWxpemVTdGFja0Z1bmN0aW9uKSwgMCk7CisKKyAg
ICAgICAgICAgIC8vIFByZXBhcmUgZm9yIGluaXRpYWxpemVTdGFjayBjYWxsYmFjay4KKyAgICAg
ICAgICAgIGNvbnRleHQtPmluaXRpYWxpemVTdGFja0Z1bmN0aW9uID0gZmlsbFN0YWNrOworICAg
ICAgICAgICAgY29udGV4dC0+aW5pdGlhbGl6ZVN0YWNrQXJnID0gJmRhdGE7CisKKyAgICAgICAg
ICAgIC8vIEVuc3VyZSB0aGF0IHdlJ2xsIGJlIHdyaXRpbmcgb3ZlciB0aGUgcmVnaW9ucyBvZiB0
aGUgc3RhY2sgd2hlcmUgdGhlIFByb2JlQ29udGV4dCBpcy4KKyAgICAgICAgICAgIG9yaWdpbmFs
U1AgPSBjcHUuc3AoKTsKKyAgICAgICAgICAgIG5ld1NQID0gcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3QqPihjb250ZXh0KSAtIG51bWJlck9mRXh0cmFFbnRyaWVzVG9Xcml0ZTsKKyAgICAgICAg
ICAgIGNwdS5zcCgpID0gbmV3U1A7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFZhbGlkYXRl
IHRoYXQgdGhlIHJlZ2lzdGVycyBhbmQgc3RhY2sgaGF2ZSB0aGUgZXhwZWN0ZWQgdmFsdWVzLgor
ICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAg
ICAgIGF1dG8mIGNwdSA9IGNvbnRleHQtPmNwdTsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50
Kys7CisKKyAgICAgICAgICAgIC8vIFZhbGlkYXRlIHRoZSByZWdpc3RlciB2YWx1ZXMuCisgICAg
ICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQg
PD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGlzRlAoaWQpKSB7CisgICAgICAgICAgICAgICAgICAgIENIRUNLX0VR
KGNwdS5ncHIoaWQpLCBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOworICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGlzU3Bl
Y2lhbEdQUihpZCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIENIRUNLX0VRKGNwdS5ncHIoaWQpLCB0ZXN0V29yZChpZCkpOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIo
KTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkp
CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEoY3B1LmZwcjx1aW50NjRfdD4oaWQpLCB0ZXN0V29y
ZDY0KGlkKSk7CisgICAgICAgICAgICBDSEVDS19FUShjcHUuc3ByKGZsYWdzU1BSKSwgbW9kaWZp
ZWRGbGFncyk7CisgICAgICAgICAgICBDSEVDS19FUShjcHUuc3AoKSwgbmV3U1ApOworCisgICAg
ICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgc3RhY2sgd2l0aCB2YWx1ZXMuCisgICAgICAgICAgICB1
aW50cHRyX3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdCo+KG5ld1NQKTsKKyAgICAg
ICAgICAgIGludCBjb3VudCA9IDA7CisgICAgICAgICAgICB3aGlsZSAocCA8IHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90Kj4ob3JpZ2luYWxTUCkpCisgICAgICAgICAgICAgICAgQ0hFQ0tfRVEo
KnArKywgdGVzdFdvcmQoY291bnQrKykpOworICAgICAgICB9KTsKKworICAgICAgICAvLyBSZXN0
b3JlIHRoZSBvcmlnaW5hbCBzdGF0ZS4KKyAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250
ZXh0KiBjb250ZXh0KSB7CisgICAgICAgICAgICBhdXRvJiBjcHUgPSBjb250ZXh0LT5jcHU7Cisg
ICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOworICAgICAgICAgICAgZm9yIChhdXRvIGlkID0g
Q0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdFJl
Z2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgeworICAgICAgICAgICAgICAgIGlmIChpc1NwZWNp
YWxHUFIoaWQpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAg
ICBjcHUuZ3ByKGlkKSA9IG9yaWdpbmFsU3RhdGUuZ3ByKGlkKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJlZ2lzdGVyKCk7
IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKQor
ICAgICAgICAgICAgICAgIGNwdS5mcHIoaWQpID0gb3JpZ2luYWxTdGF0ZS5mcHIoaWQpOworICAg
ICAgICAgICAgY3B1LnNwcihmbGFnc1NQUikgPSBvcmlnaW5hbFN0YXRlLnNwcihmbGFnc1NQUik7
CisgICAgICAgICAgICBjcHUuc3AoKSA9IG9yaWdpbmFsU1A7CisgICAgICAgIH0pOworCisgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOworICAgICAgICBqaXQucmV0KCk7CisgICAg
fSk7CisKKyAgICBDSEVDS19FUShwcm9iZUNhbGxDb3VudCwgMyk7Cit9CisKICNkZWZpbmUgUlVO
KHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKCFzaG91
bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIGJyZWFrOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTU0MCw2ICs2OTQsNyBAQCB2b2lkIHJ1bihj
b25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVy
VG9JbnNpZGVQcm9iZUNvbnRleHRPblN0YWNrKCkpOwogICAgIFJVTih0ZXN0UHJvYmVNb2RpZmll
c1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZp
ZXNQcm9ncmFtQ291bnRlcigpKTsKKyAgICBSVU4odGVzdFByb2JlTW9kaWZpZXNTdGFja1dpdGhD
YWxsYmFjaygpKTsKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7
Cg==
</data>
<flag name="review"
          id="338699"
          type_id="1"
          status="+"
          setter="jfbastien"
    />
          </attachment>
      

    </bug>

</bugzilla>